From b7799c1782288d90b8e38aaf79feceec6b3ad453 Mon Sep 17 00:00:00 2001
From: Daniele Varrazzo
Date: Sat, 10 Nov 2012 22:33:57 +0000
Subject: [PATCH] Fork the pg_repack extension
---
META.json | 10 +-
Makefile | 6 +-
README.rst | 14 +-
SPECS/{pg_reorg84.spec => pg_repack84.spec} | 22 +--
SPECS/{pg_reorg90.spec => pg_repack90.spec} | 22 +--
bin/.gitignore | 2 +-
bin/Makefile | 8 +-
bin/expected/{reorg.out => repack.out} | 16 +-
bin/{pg_reorg.c => pg_repack.c} | 92 +++++------
bin/sql/init-extension.sql | 2 +-
bin/sql/init-legacy.sql | 2 +-
bin/sql/{reorg.sql => repack.sql} | 16 +-
doc/index-ja.html | 20 +--
doc/index.html | 22 +--
doc/{pg_reorg-ja.html => pg_repack-ja.html} | 72 ++++-----
doc/{pg_reorg.html => pg_repack.html} | 82 +++++-----
lib/.gitignore | 4 +-
lib/Makefile | 20 +--
lib/pg_reorg--1.1.7--1.1.8.sql | 25 ---
lib/pg_repack--1.1.7--1.1.8.sql | 25 +++
lib/{pg_reorg.control => pg_repack.control} | 6 +-
lib/{pg_reorg.sql.in => pg_repack.sql.in} | 124 +++++++--------
lib/{reorg.c => repack.c} | 148 +++++++++---------
...l_pg_reorg.sql => uninstall_pg_repack.sql} | 4 +-
msvc/bin.2010.vcxproj | 22 +--
msvc/bin.2010.vcxproj.filters | 10 +-
msvc/bin.vcproj | 6 +-
msvc/lib.2010.vcxproj | 18 +--
msvc/lib.2010.vcxproj.filters | 6 +-
msvc/lib.vcproj | 6 +-
.../{pg_reorg.2010.sln => pg_repack.2010.sln} | 0
msvc/{pg_reorg.sln => pg_repack.sln} | 0
32 files changed, 416 insertions(+), 416 deletions(-)
rename SPECS/{pg_reorg84.spec => pg_repack84.spec} (71%)
rename SPECS/{pg_reorg90.spec => pg_repack90.spec} (73%)
rename bin/expected/{reorg.out => repack.out} (97%)
rename bin/{pg_reorg.c => pg_repack.c} (86%)
rename bin/sql/{reorg.sql => repack.sql} (91%)
rename doc/{pg_reorg-ja.html => pg_repack-ja.html} (78%)
rename doc/{pg_reorg.html => pg_repack.html} (75%)
delete mode 100644 lib/pg_reorg--1.1.7--1.1.8.sql
create mode 100644 lib/pg_repack--1.1.7--1.1.8.sql
rename lib/{pg_reorg.control => pg_repack.control} (55%)
rename lib/{pg_reorg.sql.in => pg_repack.sql.in} (50%)
rename lib/{reorg.c => repack.c} (87%)
rename lib/{uninstall_pg_reorg.sql => uninstall_pg_repack.sql} (64%)
rename msvc/{pg_reorg.2010.sln => pg_repack.2010.sln} (100%)
rename msvc/{pg_reorg.sln => pg_repack.sln} (100%)
diff --git a/META.json b/META.json
index bb2f415..1a384b1 100644
--- a/META.json
+++ b/META.json
@@ -1,15 +1,15 @@
{
- "name": "pg_reorg",
+ "name": "pg_repack",
"abstract": "PostgreSQL module for data reorganization",
- "description": "pg_reorg is a PostgreSQL module allowing to reorganize a table without any locks.",
+ "description": "pg_repack is a PostgreSQL module allowing to reorganize a table without any locks.",
"version": "1.2dev0",
"maintainer": "Takahiro Itagaki",
"tags": [ "bloat", "maintenance", "vacuum", "cluster" ],
"release_status": "stable",
"license": "bsd",
"provides": {
- "pg_reorg": {
- "file": "lib/pg_reorg.sql",
+ "pg_repack": {
+ "file": "lib/pg_repack.sql",
"version": "1.2dev0",
"abstract": "PostgreSQL module for data reorganization"
}
@@ -22,7 +22,7 @@
}
},
"resources": {
- "homepage": "http://reorg.projects.postgresql.org/",
+ "homepage": "http://repack.projects.postgresql.org/",
"bugtracker": {
"web": "http://pgfoundry.org/tracker/?atid=1376&group_id=1000411&func=browse"
}
diff --git a/Makefile b/Makefile
index c053398..d1f782d 100755
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
#
-# pg_reorg: Makefile
+# pg_repack: Makefile
#
# Portions Copyright (c) 2008-2011, NIPPON TELEGRAPH AND TELEPHONE CORPORATION
# Portions Copyright (c) 2011, Itagaki Takahiro
@@ -17,7 +17,7 @@ PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
else
-subdir = pg_reorg
+subdir = pg_repack
include $(makefile_global)
include $(top_srcdir)/contrib/contrib-global.mk
endif
@@ -29,7 +29,7 @@ VERSION = $(shell $(PG_CONFIG) --version | awk '{print $$2}')
# We support PostgreSQL 8.3 and later.
ifneq ($(shell echo $(VERSION) | grep -E "^7\.|^8\.[012]"),)
-$(error pg_reorg requires PostgreSQL 8.3 or later. This is $(VERSION))
+$(error pg_repack requires PostgreSQL 8.3 or later. This is $(VERSION))
endif
diff --git a/README.rst b/README.rst
index d985bb5..be53cbb 100644
--- a/README.rst
+++ b/README.rst
@@ -1,12 +1,12 @@
-pg_reorg -- UNOFFICIAL REPOSITORY
+pg_repack -- UNOFFICIAL REPOSITORY
=================================
-This is NOT the official pg_reorg repository. Official development is
-currently on pgFoundry: http://pgfoundry.org/projects/reorg
+This is NOT the official pg_repack repository. Official development is
+currently on pgFoundry: http://pgfoundry.org/projects/repack
-This repository (and the url https://github.com/reorg) has been set up by me
+This repository (and the url https://github.com/repack) has been set up by me
(Daniele) to provide greater visibility and easier contribution to the
-pg_reorg project, an intention apparent from a recent `mailing list
+pg_repack project, an intention apparent from a recent `mailing list
discussion`__.
.. __: http://archives.postgresql.org/pgsql-hackers/2012-09/msg00746.php
@@ -18,9 +18,9 @@ administrative privileges, keeping total control of the project.
This repository has been created using the command::
- git cvsimport -v -d :pserver:anonymous@cvs.pgfoundry.org:/cvsroot/reorg -A pg_reorg.auths -C pg_reorg -k -r cvs pg_reorg
+ git cvsimport -v -d :pserver:anonymous@cvs.pgfoundry.org:/cvsroot/repack -A pg_repack.auths -C pg_repack -k -r cvs pg_repack
-with a suitably populated pg_reorg.auths.
+with a suitably populated pg_repack.auths.
I assume new CSV commits will be added to ``remotes/cvs/master``, but I'm not
sure yet, so please consider this repository unstable until the development
diff --git a/SPECS/pg_reorg84.spec b/SPECS/pg_repack84.spec
similarity index 71%
rename from SPECS/pg_reorg84.spec
rename to SPECS/pg_repack84.spec
index 19b8637..36d6baa 100755
--- a/SPECS/pg_reorg84.spec
+++ b/SPECS/pg_repack84.spec
@@ -1,6 +1,6 @@
-# SPEC file for pg_reorg
+# SPEC file for pg_repack
# Copyright(C) 2009-2010 NIPPON TELEGRAPH AND TELEPHONE CORPORATION
-%define sname pg_reorg
+%define sname pg_repack
Summary: Reorganize tables in PostgreSQL databases without any locks.
Name: %{sname}
@@ -16,7 +16,7 @@ BuildRequires: postgresql-devel, postgresql
Requires: postgresql, postgresql-libs
%description
-pg_reorg can re-organize tables on a postgres database without any locks so that
+pg_repack can re-organize tables on a postgres database without any locks so that
you can retrieve or update rows in tables being reorganized.
The module is developed to be a better alternative of CLUSTER and VACUUM FULL.
@@ -34,20 +34,20 @@ install -d %{buildroot}%{_libdir}/pgsql
install -d %{buildroot}%{_bindir}
install -d %{buildroot}%{_datadir}/pgsql/contrib
-install -m 755 bin/pg_reorg %{buildroot}%{_bindir}/pg_reorg
-install -m 755 lib/pg_reorg.so %{buildroot}%{_libdir}/pgsql/pg_reorg.so
-install -m 644 lib/pg_reorg.sql %{buildroot}%{_datadir}/pgsql/contrib/pg_reorg.sql
-install -m 644 lib/uninstall_pg_reorg.sql %{buildroot}%{_datadir}/pgsql/contrib/uninstall_pg_reorg.sql
+install -m 755 bin/pg_repack %{buildroot}%{_bindir}/pg_repack
+install -m 755 lib/pg_repack.so %{buildroot}%{_libdir}/pgsql/pg_repack.so
+install -m 644 lib/pg_repack.sql %{buildroot}%{_datadir}/pgsql/contrib/pg_repack.sql
+install -m 644 lib/uninstall_pg_repack.sql %{buildroot}%{_datadir}/pgsql/contrib/uninstall_pg_repack.sql
%define pg_sharedir
%files
%defattr(755,root,root,755)
-%{_bindir}/pg_reorg
-%{_libdir}/pgsql/pg_reorg.so
+%{_bindir}/pg_repack
+%{_libdir}/pgsql/pg_repack.so
%defattr(644,root,root,755)
-%{_datadir}/pgsql/contrib/pg_reorg.sql
-%{_datadir}/pgsql/contrib/uninstall_pg_reorg.sql
+%{_datadir}/pgsql/contrib/pg_repack.sql
+%{_datadir}/pgsql/contrib/uninstall_pg_repack.sql
%clean
rm -rf %{buildroot}
diff --git a/SPECS/pg_reorg90.spec b/SPECS/pg_repack90.spec
similarity index 73%
rename from SPECS/pg_reorg90.spec
rename to SPECS/pg_repack90.spec
index 760fc80..775ef71 100755
--- a/SPECS/pg_reorg90.spec
+++ b/SPECS/pg_repack90.spec
@@ -1,6 +1,6 @@
-# SPEC file for pg_reorg
+# SPEC file for pg_repack
# Copyright(C) 2009-2010 NIPPON TELEGRAPH AND TELEPHONE CORPORATION
-%define sname pg_reorg
+%define sname pg_repack
%define _pgdir /usr/pgsql-9.0
%define _bindir %{_pgdir}/bin
@@ -21,7 +21,7 @@ BuildRequires: postgresql90-devel, postgresql90
Requires: postgresql90, postgresql90-libs
%description
-pg_reorg can re-organize tables on a postgres database without any locks so that
+pg_repack can re-organize tables on a postgres database without any locks so that
you can retrieve or update rows in tables being reorganized.
The module is developed to be a better alternative of CLUSTER and VACUUM FULL.
@@ -39,20 +39,20 @@ install -d %{buildroot}%{_libdir}
install -d %{buildroot}%{_bindir}
install -d %{buildroot}%{_datadir}/contrib
-install -m 755 bin/pg_reorg %{buildroot}%{_bindir}/pg_reorg
-install -m 755 lib/pg_reorg.so %{buildroot}%{_libdir}/pg_reorg.so
-install -m 644 lib/pg_reorg.sql %{buildroot}%{_datadir}/contrib/pg_reorg.sql
-install -m 644 lib/uninstall_pg_reorg.sql %{buildroot}%{_datadir}/contrib/uninstall_pg_reorg.sql
+install -m 755 bin/pg_repack %{buildroot}%{_bindir}/pg_repack
+install -m 755 lib/pg_repack.so %{buildroot}%{_libdir}/pg_repack.so
+install -m 644 lib/pg_repack.sql %{buildroot}%{_datadir}/contrib/pg_repack.sql
+install -m 644 lib/uninstall_pg_repack.sql %{buildroot}%{_datadir}/contrib/uninstall_pg_repack.sql
%define pg_sharedir
%files
%defattr(755,root,root,755)
-%{_bindir}/pg_reorg
-%{_libdir}/pg_reorg.so
+%{_bindir}/pg_repack
+%{_libdir}/pg_repack.so
%defattr(644,root,root,755)
-%{_datadir}/contrib/pg_reorg.sql
-%{_datadir}/contrib/uninstall_pg_reorg.sql
+%{_datadir}/contrib/pg_repack.sql
+%{_datadir}/contrib/uninstall_pg_repack.sql
%clean
rm -rf %{buildroot}
diff --git a/bin/.gitignore b/bin/.gitignore
index 4e5c1dc..00ac7f8 100644
--- a/bin/.gitignore
+++ b/bin/.gitignore
@@ -1,5 +1,5 @@
/.deps/
-/pg_reorg
+/pg_repack
/results/
/sql/init.sql
/sql/init-*.*.sql
diff --git a/bin/Makefile b/bin/Makefile
index 7d22a35..991e34d 100755
--- a/bin/Makefile
+++ b/bin/Makefile
@@ -1,13 +1,13 @@
#
-# pg_reorg: bin/Makefile
+# pg_repack: bin/Makefile
#
# Portions Copyright (c) 2008-2012, NIPPON TELEGRAPH AND TELEPHONE CORPORATION
# Portions Copyright (c) 2011, Itagaki Takahiro
#
-SRCS = pg_reorg.c pgut/pgut.c pgut/pgut-fe.c
+SRCS = pg_repack.c pgut/pgut.c pgut/pgut-fe.c
OBJS = $(SRCS:.c=.o)
-PROGRAM = pg_reorg
-REGRESS = init reorg
+PROGRAM = pg_repack
+REGRESS = init repack
EXTRA_CLEAN = sql/init-$(MAJORVERSION).sql sql/init.sql
diff --git a/bin/expected/reorg.out b/bin/expected/repack.out
similarity index 97%
rename from bin/expected/reorg.out
rename to bin/expected/repack.out
index 3c32bcf..2fab3d7 100755
--- a/bin/expected/reorg.out
+++ b/bin/expected/repack.out
@@ -111,12 +111,12 @@ SELECT * FROM tbl_with_dropped_toast;
(2 rows)
--
--- do reorg
+-- do repack
--
-\! pg_reorg --dbname=contrib_regression --no-order
+\! pg_repack --dbname=contrib_regression --no-order
WARNING: skipping invalid index: CREATE UNIQUE INDEX idx_badindex_n ON tbl_badindex USING btree (n)
-\! pg_reorg --dbname=contrib_regression
-\! pg_reorg --dbname=contrib_regression --table=tbl_cluster
+\! pg_repack --dbname=contrib_regression
+\! pg_repack --dbname=contrib_regression --table=tbl_cluster
--
-- after
--
@@ -298,13 +298,13 @@ CREATE TABLE tbl_nn (col1 int NOT NULL, col2 int NOT NULL);
CREATE TABLE tbl_uk (col1 int NOT NULL, col2 int , UNIQUE(col1, col2));
CREATE TABLE tbl_nn_uk (col1 int NOT NULL, col2 int NOT NULL, UNIQUE(col1, col2));
CREATE TABLE tbl_pk_uk (col1 int NOT NULL, col2 int NOT NULL, PRIMARY KEY(col1, col2), UNIQUE(col2, col1));
-\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_nn
+\! pg_repack --dbname=contrib_regression --no-order --table=tbl_nn
ERROR: relation "tbl_nn" must have a primary key or not-null unique keys
-- => ERROR
-\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_uk
+\! pg_repack --dbname=contrib_regression --no-order --table=tbl_uk
ERROR: relation "tbl_uk" must have a primary key or not-null unique keys
-- => ERROR
-\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_nn_uk
+\! pg_repack --dbname=contrib_regression --no-order --table=tbl_nn_uk
-- => OK
-\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_pk_uk
+\! pg_repack --dbname=contrib_regression --no-order --table=tbl_pk_uk
-- => OK
diff --git a/bin/pg_reorg.c b/bin/pg_repack.c
similarity index 86%
rename from bin/pg_reorg.c
rename to bin/pg_repack.c
index 44c29d0..797d5b5 100755
--- a/bin/pg_reorg.c
+++ b/bin/pg_repack.c
@@ -1,5 +1,5 @@
/*
- * pg_reorg.c: bin/pg_reorg.c
+ * pg_repack.c: bin/pg_repack.c
*
* Portions Copyright (c) 2008-2011, NIPPON TELEGRAPH AND TELEPHONE CORPORATION
* Portions Copyright (c) 2011, Itagaki Takahiro
@@ -10,8 +10,8 @@
*/
const char *PROGRAM_VERSION = "1.1.7";
-const char *PROGRAM_URL = "http://reorg.projects.postgresql.org/";
-const char *PROGRAM_EMAIL = "reorg-general@lists.pgfoundry.org";
+const char *PROGRAM_URL = "http://repack.projects.postgresql.org/";
+const char *PROGRAM_EMAIL = "repack-general@lists.pgfoundry.org";
#include "pgut/pgut-fe.h"
@@ -30,7 +30,7 @@ const char *PROGRAM_EMAIL = "reorg-general@lists.pgfoundry.org";
* servers. See GH ticket #1.
*/
#define SQL_XID_SNAPSHOT \
- "SELECT reorg.array_accum(virtualtransaction) FROM pg_locks"\
+ "SELECT repack.array_accum(virtualtransaction) FROM pg_locks"\
" WHERE locktype = 'virtualxid' AND pid <> pg_backend_pid()"\
" AND (virtualxid, virtualtransaction) <> ('1/1', '-1/0')"
@@ -41,7 +41,7 @@ const char *PROGRAM_EMAIL = "reorg-general@lists.pgfoundry.org";
/*
* per-table information
*/
-typedef struct reorg_table
+typedef struct repack_table
{
const char *target_name; /* target: relname */
Oid target_oid; /* target: OID */
@@ -51,8 +51,8 @@ typedef struct reorg_table
Oid ckid; /* target: CK OID */
const char *create_pktype; /* CREATE TYPE pk */
const char *create_log; /* CREATE TABLE log */
- const char *create_trigger; /* CREATE TRIGGER z_reorg_trigger */
- const char *alter_table; /* ALTER TABLE ENABLE ALWAYS TRIGGER z_reorg_trigger */
+ const char *create_trigger; /* CREATE TRIGGER z_repack_trigger */
+ const char *alter_table; /* ALTER TABLE ENABLE ALWAYS TRIGGER z_repack_trigger */
const char *create_table; /* CREATE TABLE table AS SELECT */
const char *drop_columns; /* ALTER TABLE DROP COLUMNs */
const char *delete_log; /* DELETE FROM log */
@@ -62,21 +62,21 @@ typedef struct reorg_table
const char *sql_delete; /* SQL used in flush */
const char *sql_update; /* SQL used in flush */
const char *sql_pop; /* SQL used in flush */
-} reorg_table;
+} repack_table;
/*
* per-index information
*/
-typedef struct reorg_index
+typedef struct repack_index
{
Oid target_oid; /* target: OID */
const char *create_index; /* CREATE INDEX */
-} reorg_index;
+} repack_index;
-static void reorg_all_databases(const char *order_by);
-static bool reorg_one_database(const char *order_by, const char *table);
-static void reorg_one_table(const reorg_table *table, const char *order_by);
-static void reorg_cleanup(bool fatal, void *userdata);
+static void repack_all_databases(const char *order_by);
+static bool repack_one_database(const char *order_by, const char *table);
+static void repack_one_table(const repack_table *table, const char *order_by);
+static void repack_cleanup(bool fatal, void *userdata);
static char *getstr(PGresult *res, int row, int col);
static Oid getoid(PGresult *res, int row, int col);
@@ -138,12 +138,12 @@ main(int argc, char *argv[])
if (table)
ereport(ERROR,
(errcode(EINVAL),
- errmsg("cannot reorg a specific table in all databases")));
- reorg_all_databases(orderby);
+ errmsg("cannot repack a specific table in all databases")));
+ repack_all_databases(orderby);
}
else
{
- if (!reorg_one_database(orderby, table))
+ if (!repack_one_database(orderby, table))
ereport(ERROR,
(errcode(ENOENT),
errmsg("%s is not installed", PROGRAM_NAME)));
@@ -153,10 +153,10 @@ main(int argc, char *argv[])
}
/*
- * Call reorg_one_database for each database.
+ * Call repack_one_database for each database.
*/
static void
-reorg_all_databases(const char *orderby)
+repack_all_databases(const char *orderby)
{
PGresult *result;
int i;
@@ -174,11 +174,11 @@ reorg_all_databases(const char *orderby)
if (pgut_log_level >= INFO)
{
- printf("%s: reorg database \"%s\"", PROGRAM_NAME, dbname);
+ printf("%s: repack database \"%s\"", PROGRAM_NAME, dbname);
fflush(stdout);
}
- ret = reorg_one_database(orderby, NULL);
+ ret = repack_one_database(orderby, NULL);
if (pgut_log_level >= INFO)
{
@@ -213,10 +213,10 @@ getoid(PGresult *res, int row, int col)
}
/*
- * Call reorg_one_table for the target table or each table in a database.
+ * Call repack_one_table for the target table or each table in a database.
*/
static bool
-reorg_one_database(const char *orderby, const char *table)
+repack_one_database(const char *orderby, const char *table)
{
bool ret = true;
PGresult *res;
@@ -238,7 +238,7 @@ reorg_one_database(const char *orderby, const char *table)
command("SET client_min_messages = warning", 0, NULL);
/* acquire target tables */
- appendStringInfoString(&sql, "SELECT * FROM reorg.tables WHERE ");
+ appendStringInfoString(&sql, "SELECT * FROM repack.tables WHERE ");
if (table)
{
appendStringInfoString(&sql, "relid = $1::regclass");
@@ -256,7 +256,7 @@ reorg_one_database(const char *orderby, const char *table)
{
if (sqlstate_equals(res, SQLSTATE_INVALID_SCHEMA_NAME))
{
- /* Schema reorg does not exist. Skip the database. */
+ /* Schema repack does not exist. Skip the database. */
ret = false;
goto cleanup;
}
@@ -273,7 +273,7 @@ reorg_one_database(const char *orderby, const char *table)
for (i = 0; i < num; i++)
{
- reorg_table table;
+ repack_table table;
const char *create_table;
const char *ckey;
int c = 0;
@@ -330,7 +330,7 @@ reorg_one_database(const char *orderby, const char *table)
table.sql_update = getstr(res, i, c++);
table.sql_pop = getstr(res, i, c++);
- reorg_one_table(&table, orderby);
+ repack_one_table(&table, orderby);
}
cleanup:
@@ -341,7 +341,7 @@ cleanup:
}
static int
-apply_log(const reorg_table *table, int count)
+apply_log(const repack_table *table, int count)
{
int result;
PGresult *res;
@@ -355,7 +355,7 @@ apply_log(const reorg_table *table, int count)
params[4] = table->sql_pop;
params[5] = utoa(count, buffer);
- res = execute("SELECT reorg.reorg_apply($1, $2, $3, $4, $5, $6)",
+ res = execute("SELECT repack.repack_apply($1, $2, $3, $4, $5, $6)",
6, params);
result = atoi(PQgetvalue(res, 0, 0));
PQclear(res);
@@ -367,7 +367,7 @@ apply_log(const reorg_table *table, int count)
* Re-organize one table.
*/
static void
-reorg_one_table(const reorg_table *table, const char *orderby)
+repack_one_table(const repack_table *table, const char *orderby)
{
PGresult *res;
const char *params[1];
@@ -380,7 +380,7 @@ reorg_one_table(const reorg_table *table, const char *orderby)
initStringInfo(&sql);
- elog(DEBUG2, "---- reorg_one_table ----");
+ elog(DEBUG2, "---- repack_one_table ----");
elog(DEBUG2, "target_name : %s", table->target_name);
elog(DEBUG2, "target_oid : %u", table->target_oid);
elog(DEBUG2, "target_toast : %u", table->target_toast);
@@ -408,12 +408,12 @@ reorg_one_table(const reorg_table *table, const char *orderby)
lock_exclusive(utoa(table->target_oid, buffer), table->lock_table);
/*
- * Check z_reorg_trigger is the trigger executed at last so that
+ * Check z_repack_trigger is the trigger executed at last so that
* other before triggers cannot modify triggered tuples.
*/
params[0] = utoa(table->target_oid, buffer);
- res = execute("SELECT reorg.conflicted_triggers($1)", 1, params);
+ res = execute("SELECT repack.conflicted_triggers($1)", 1, params);
if (PQntuples(res) > 0)
ereport(ERROR,
(errcode(E_PG_COMMAND),
@@ -425,7 +425,7 @@ reorg_one_table(const reorg_table *table, const char *orderby)
command(table->create_log, 0, NULL);
command(table->create_trigger, 0, NULL);
command(table->alter_table, 0, NULL);
- printfStringInfo(&sql, "SELECT reorg.disable_autovacuum('reorg.log_%u')", table->target_oid);
+ printfStringInfo(&sql, "SELECT repack.disable_autovacuum('repack.log_%u')", table->target_oid);
command(sql.data, 0, NULL);
command("COMMIT", 0, NULL);
@@ -434,7 +434,7 @@ reorg_one_table(const reorg_table *table, const char *orderby)
* an advisory lock. The registration should be done after
* the first command succeeds.
*/
- pgut_atexit_push(&reorg_cleanup, (void *) table);
+ pgut_atexit_push(&repack_cleanup, (void *) table);
/*
* 2. Copy tuples into temp table.
@@ -451,7 +451,7 @@ reorg_one_table(const reorg_table *table, const char *orderby)
PQclear(res);
command(table->delete_log, 0, NULL);
command(table->create_table, 0, NULL);
- printfStringInfo(&sql, "SELECT reorg.disable_autovacuum('reorg.table_%u')", table->target_oid);
+ printfStringInfo(&sql, "SELECT repack.disable_autovacuum('repack.table_%u')", table->target_oid);
if (table->drop_columns)
command(table->drop_columns, 0, NULL);
command(sql.data, 0, NULL);
@@ -464,7 +464,7 @@ reorg_one_table(const reorg_table *table, const char *orderby)
params[0] = utoa(table->target_oid, buffer);
res = execute("SELECT indexrelid,"
- " reorg.reorg_indexdef(indexrelid, indrelid),"
+ " repack.repack_indexdef(indexrelid, indrelid),"
" indisvalid,"
" pg_get_indexdef(indexrelid)"
" FROM pg_index WHERE indrelid = $1", 1, params);
@@ -472,7 +472,7 @@ reorg_one_table(const reorg_table *table, const char *orderby)
num = PQntuples(res);
for (i = 0; i < num; i++)
{
- reorg_index index;
+ repack_index index;
int c = 0;
const char *isvalid;
const char *indexdef;
@@ -548,7 +548,7 @@ reorg_one_table(const reorg_table *table, const char *orderby)
lock_exclusive(utoa(table->target_oid, buffer), table->lock_table);
apply_log(table, 0);
params[0] = utoa(table->target_oid, buffer);
- command("SELECT reorg.reorg_swap($1)", 1, params);
+ command("SELECT repack.repack_swap($1)", 1, params);
command("COMMIT", 0, NULL);
/*
@@ -558,10 +558,10 @@ reorg_one_table(const reorg_table *table, const char *orderby)
command("BEGIN ISOLATION LEVEL READ COMMITTED", 0, NULL);
params[0] = utoa(table->target_oid, buffer);
- command("SELECT reorg.reorg_drop($1)", 1, params);
+ command("SELECT repack.repack_drop($1)", 1, params);
command("COMMIT", 0, NULL);
- pgut_atexit_pop(&reorg_cleanup, (void *) table);
+ pgut_atexit_pop(&repack_cleanup, (void *) table);
free(vxid);
/*
@@ -660,9 +660,9 @@ lock_exclusive(const char *relid, const char *lock_query)
* objects before the program exits.
*/
static void
-reorg_cleanup(bool fatal, void *userdata)
+repack_cleanup(bool fatal, void *userdata)
{
- const reorg_table *table = (const reorg_table *) userdata;
+ const repack_table *table = (const repack_table *) userdata;
if (fatal)
{
@@ -683,7 +683,7 @@ reorg_cleanup(bool fatal, void *userdata)
/* do cleanup */
params[0] = utoa(table->target_oid, buffer);
- command("SELECT reorg.reorg_drop($1)", 1, params);
+ command("SELECT repack.repack_drop($1)", 1, params);
}
}
@@ -698,10 +698,10 @@ pgut_help(bool details)
return;
printf("Options:\n");
- printf(" -a, --all reorg all databases\n");
+ printf(" -a, --all repack all databases\n");
printf(" -n, --no-order do vacuum full instead of cluster\n");
printf(" -o, --order-by=columns order by columns instead of cluster keys\n");
- printf(" -t, --table=TABLE reorg specific table only\n");
+ printf(" -t, --table=TABLE repack specific table only\n");
printf(" -T, --wait-timeout=secs timeout to cancel other backends on conflict\n");
printf(" -Z, --no-analyze don't analyze at end\n");
}
diff --git a/bin/sql/init-extension.sql b/bin/sql/init-extension.sql
index 5f37a49..9da3176 100644
--- a/bin/sql/init-extension.sql
+++ b/bin/sql/init-extension.sql
@@ -1,5 +1,5 @@
SET client_min_messages = warning;
\set ECHO none
-CREATE EXTENSION pg_reorg;
+CREATE EXTENSION pg_repack;
\set ECHO all
RESET client_min_messages;
diff --git a/bin/sql/init-legacy.sql b/bin/sql/init-legacy.sql
index a49b271..8b7b998 100644
--- a/bin/sql/init-legacy.sql
+++ b/bin/sql/init-legacy.sql
@@ -1,5 +1,5 @@
SET client_min_messages = warning;
\set ECHO none
-\i ../lib/pg_reorg.sql
+\i ../lib/pg_repack.sql
\set ECHO all
RESET client_min_messages;
diff --git a/bin/sql/reorg.sql b/bin/sql/repack.sql
similarity index 91%
rename from bin/sql/reorg.sql
rename to bin/sql/repack.sql
index d301475..732c573 100755
--- a/bin/sql/reorg.sql
+++ b/bin/sql/repack.sql
@@ -113,12 +113,12 @@ SELECT * FROM view_for_dropped_column;
SELECT * FROM tbl_with_dropped_toast;
--
--- do reorg
+-- do repack
--
-\! pg_reorg --dbname=contrib_regression --no-order
-\! pg_reorg --dbname=contrib_regression
-\! pg_reorg --dbname=contrib_regression --table=tbl_cluster
+\! pg_repack --dbname=contrib_regression --no-order
+\! pg_repack --dbname=contrib_regression
+\! pg_repack --dbname=contrib_regression --table=tbl_cluster
--
-- after
@@ -171,11 +171,11 @@ CREATE TABLE tbl_nn (col1 int NOT NULL, col2 int NOT NULL);
CREATE TABLE tbl_uk (col1 int NOT NULL, col2 int , UNIQUE(col1, col2));
CREATE TABLE tbl_nn_uk (col1 int NOT NULL, col2 int NOT NULL, UNIQUE(col1, col2));
CREATE TABLE tbl_pk_uk (col1 int NOT NULL, col2 int NOT NULL, PRIMARY KEY(col1, col2), UNIQUE(col2, col1));
-\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_nn
+\! pg_repack --dbname=contrib_regression --no-order --table=tbl_nn
-- => ERROR
-\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_uk
+\! pg_repack --dbname=contrib_regression --no-order --table=tbl_uk
-- => ERROR
-\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_nn_uk
+\! pg_repack --dbname=contrib_regression --no-order --table=tbl_nn_uk
-- => OK
-\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_pk_uk
+\! pg_repack --dbname=contrib_regression --no-order --table=tbl_pk_uk
-- => OK
diff --git a/doc/index-ja.html b/doc/index-ja.html
index 2ec9b72..805a4ad 100755
--- a/doc/index-ja.html
+++ b/doc/index-ja.html
@@ -8,20 +8,20 @@
- pg_reorg: Project Home Page
+ pg_repack: Project Home Page
-pg_reorg ホームページへようこそ
+pg_repack ホームページへようこそ
-このプロジェクトでは pg_reorg と pg_batch の2つのツールを頒布しています。
+このプロジェクトでは pg_repack と pg_batch の2つのツールを頒布しています。
-pg_reorg は PostgreSQL のテーブルを再編成するシェルコマンドです。
+pg_repack は PostgreSQL のテーブルを再編成するシェルコマンドです。
共有ロックや排他ロックを取得しないため、再編成中であっても行の参照や更新を行うことができます。
このモジュールは CLUSTER や VACUUM FULL コマンドのより良い代替になります。
@@ -32,7 +32,7 @@
VACUUM を行うスクリプトが付属しており、"より良い vacuumdb" として利用できます。
-この pg_reorg プロジェクトは PostgreSQL コミュニティによる pgFoundry の中のプロジェクト です。
+この pg_repack プロジェクトは PostgreSQL コミュニティによる pgFoundry の中のプロジェクト です。
ダウンロード : ソースコードのほか、Windows 用バイナリもダウンロードできます。
バグレポート
@@ -46,15 +46,15 @@ VACUUM を行うスクリプトが付属しており、"より良い vacuumdb"
ドキュメント
実行時間
-pg_reorg とclusterdb の比較に示します。
-断片化のないソートされた状態 (not fragmented) では clusterdb のほうが高速ですが、完全に断片化した状態 (fully fragmented) では pg_reorg が大幅に高速です。
-一般的に、再編成は断片化が進行した状態で実施されることを考えると、pg_reorg は clusterdb よりも実行時間が短いと言えます。
+pg_repack とclusterdb の比較に示します。
+断片化のないソートされた状態 (not fragmented) では clusterdb のほうが高速ですが、完全に断片化した状態 (fully fragmented) では pg_repack が大幅に高速です。
+一般的に、再編成は断片化が進行した状態で実施されることを考えると、pg_repack は clusterdb よりも実行時間が短いと言えます。
@@ -92,7 +92,7 @@ pg_reorg とclusterdb の比較に示します。
PostgreSQL 8.3.3
- pg_reorg
+ pg_repack
1.0.0
diff --git a/doc/index.html b/doc/index.html
index 5186959..12f8f3f 100755
--- a/doc/index.html
+++ b/doc/index.html
@@ -8,22 +8,22 @@
- pg_reorg: Project Home Page
+ pg_repack: Project Home Page
-Welcome to the pg_reorg Project Home Page
+Welcome to the pg_repack Project Home Page
-This project provides two tools for PostgreSQL; pg_reorg and pg_batch .
+This project provides two tools for PostgreSQL; pg_repack and pg_batch .
-pg_reorg can re-organize tables on a postgres database without any locks so that you can retrieve or update rows in tables being reorganized.
+pg_repack can re-organize tables on a postgres database without any locks so that you can retrieve or update rows in tables being reorganized.
The module is developed to be a better alternative of CLUSTER and VACUUM FULL.
@@ -34,10 +34,10 @@ It can be used as "a better vacuumdb" with the attached script to run VACUUM.
-The pg_reorg project is a PostgreSQL Community project that is a part of the pgFoundry .
+The pg_repack project is a PostgreSQL Community project that is a part of the pgFoundry .
-The pgFoundry page for the project is at http://pgfoundry.org/projects/reorg ,
+The pgFoundry page for the project is at http://pgfoundry.org/projects/repack ,
where you can find downloads , documentation, bug reports, mailing lists, and a whole lot more.
- pg_reorg
+ pg_repack
1.0.0
diff --git a/doc/pg_reorg-ja.html b/doc/pg_repack-ja.html
similarity index 78%
rename from doc/pg_reorg-ja.html
rename to doc/pg_repack-ja.html
index 8ad5b01..ef0a896 100755
--- a/doc/pg_reorg-ja.html
+++ b/doc/pg_repack-ja.html
@@ -1,17 +1,17 @@
-pg_reorg
-
+pg_repack
+
-pg_reorg 1.1.7
+pg_repack 1.1.7
@@ -33,11 +33,11 @@
名前
-pg_reorg -- PostgreSQLデータベース内のテーブルに対して、参照/更新処理をブロックせずに再編成を行います。
+pg_repack -- PostgreSQLデータベース内のテーブルに対して、参照/更新処理をブロックせずに再編成を行います。
概要
-pg_reorg [OPTIONS]
+pg_repack [OPTIONS]
オプション OPTIONS には以下を指定できます。
@@ -68,7 +68,7 @@ pg_reorg [OPTIONS]
説明
-pg_reorg は、PostgreSQLデータベース内のテーブルを再編成(行の並び替え)するユーティリティです。
+
pg_repack は、PostgreSQLデータベース内のテーブルを再編成(行の並び替え)するユーティリティです。
clusterdb と異なり、参照/更新処理をブロックしません。
再編成の方式として、以下のいずれか1つを選択できます。
$ pg_reorg test
+$ pg_repack test
testという名前のデータベースのfooという1つのテーブルに対してオンライン VACUUM FULL を行うには、下記のコマンドを実行します。
-$ pg_reorg --no-order --table foo -d test
+
$ pg_repack --no-order --table foo -d test
オプション
-pg_reorg では、下記のコマンドライン引数を指定できます。
+pg_repack では、下記のコマンドライン引数を指定できます。
固有オプション
-pg_reorg を実行する対象と並び替えの基準を指定するパラメータです。
+
pg_repack を実行する対象と並び替えの基準を指定するパラメータです。
何も指定されていない場合は、cluster index順にオンライン CLUSTER を行います。
この2つを同時に指定することはできません。
@@ -210,19 +210,19 @@ DEBUG, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, PANIC から選択します。
トラブルシューティング
-pg_reorg の実行に失敗した場合にエラーが表示されます。
+
pg_repack の実行に失敗した場合にエラーが表示されます。
想像されるエラー原因と対処を示します。
致命的なエラーで終了した場合、手動によるクリーンアップを行う必要があります。
-クリーンアップは、エラーが発生したデータベースに対して、$PGHOME/share/contrib/uninstall_pg_reorg.sql を実行し、その後、$PGHOME/share/contrib/pg_reorg.sql を実行します。
+クリーンアップは、エラーが発生したデータベースに対して、$PGHOME/share/contrib/uninstall_pg_repack.sql を実行し、その後、$PGHOME/share/contrib/pg_repack.sql を実行します。
-pg_reorg : reorg database "template1" ... skipped
---allオプションを指定した際に、pg_reorg がインストールされていないデータベースに対して表示されます。
-pg_reorg スキーマのインストールを行ってください。
+pg_repack : repack database "template1" ... skipped
+--allオプションを指定した際に、pg_repack がインストールされていないデータベースに対して表示されます。
+pg_repack スキーマのインストールを行ってください。
-ERROR: pg_reorg is not installed
---dbnameで指定したデータベースにpg_reorg がインストールされていません。
-pg_reorg のインストールを行ってください。
+ERROR: pg_repack is not installed
+--dbnameで指定したデータベースにpg_repack がインストールされていません。
+pg_repack のインストールを行ってください。
ERROR: relation "table" has no primary key
指定したテーブルにPRIMARY KEYが存在していません。
@@ -232,45 +232,45 @@ DEBUG, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, PANIC から選択します。
指定したテーブルに CLUSTER KEYが存在していません。
対象のテーブルに CLUSTER KEYの作成を行ってください。(ALTER TABLE CLUSTER)
-pg_reorg : query failed: ERROR: column "col" does not exist
+pg_repack : query failed: ERROR: column "col" does not exist
--order-by で指定したカラムが対象のテーブルに存在していません。
対象のテーブルに存在するカラムを指定してください。
-ERROR: permission denied for schema reorg
+ERROR: permission denied for schema repack
操作を行おうとした対象に権限がありません。
スーパーユーザで操作を行ってください。
-pg_reorg : query failed: ERROR: trigger "z_reorg_trigger" for relation "tbl" already exists
-操作を行おうとした対象にpg_reorg が処理のために作成するトリガと同名のものが存在しています。
+pg_repack : query failed: ERROR: trigger "z_repack_trigger" for relation "tbl" already exists
+操作を行おうとした対象にpg_repack が処理のために作成するトリガと同名のものが存在しています。
トリガの改名か削除を行ってください。
-pg_reorg : trigger conflicted for tbl
-操作を行おうとした対象にpg_reorg が処理のために作成するトリガより後に実行されるトリガが存在しています。
+pg_repack : trigger conflicted for tbl
+操作を行おうとした対象にpg_repack が処理のために作成するトリガより後に実行されるトリガが存在しています。
トリガの改名か削除を行ってください。
使用上の注意と制約
-pg_reorg を使用する際には、以下の制約があります。以下の制約に関する操作を行った場合の動作は保証されません。注意してください。
+pg_repack を使用する際には、以下の制約があります。以下の制約に関する操作を行った場合の動作は保証されません。注意してください。
一時テーブルへの操作
-pg_reorg では、一時テーブルは操作の対象外です。
+pg_repack では、一時テーブルは操作の対象外です。
GiSTインデックスの使用
インデックス種別がGiSTとなっているインデックスがクラスタインデックスとなっている
-テーブルはpg_reorg コマンドを使用して操作を行うことはできません。
+テーブルはpg_repack コマンドを使用して操作を行うことはできません。
これは、GiSTインデックスのソート順序は一意ではないため、ORDER BYによる
ソートが行えないためです。
DDLコマンドの発行
-pg_reorg の実行中には、VACUUM と ANALYZE 以外 のDDL操作は行わないでください。
-多くの場合、pg_reorg は失敗しロールバックされます。
+pg_repack の実行中には、VACUUM と ANALYZE 以外 のDDL操作は行わないでください。
+多くの場合、pg_repack は失敗しロールバックされます。
しかし、以下の操作ではデータが破損するため、非常に危険です。
TRUNCATE
-削除した行が pg_reorg 実行後には復元しています。操作結果が消失します。
+削除した行が pg_repack 実行後には復元しています。操作結果が消失します。
CREATE INDEX
スワップされない索引が残る可能性があります。データの不整合が生じます。
@@ -282,11 +282,11 @@ pg_reorg の実行中には、VACUUM と ANALYZE 以外 のDDL
実行するとスキーマで定義された型と実際の格納状態に齟齬をきたします。データの不整合が生じます。
ALTER TABLE ... SET TABLESPACE
-pg_reorg 実行後にrelfilenodeとの不整合が起こるため、対象のテーブルに対する参照/更新操作時にエラーが発生します。
+pg_repack 実行後にrelfilenodeとの不整合が起こるため、対象のテーブルに対する参照/更新操作時にエラーが発生します。
詳細
-pg_reorg は reorg スキーマに作業用テーブルを作成し、そこでデータの並び替えを行います。
+
pg_repack は repack スキーマに作業用テーブルを作成し、そこでデータの並び替えを行います。
最後にシステムカタログを直接書き換えることで、元のテーブルと名前を交換しています。
インストール方法
@@ -294,7 +294,7 @@ pg_reorg の実行中には、VACUUM と ANALYZE 以外 のDDL
UNIX や Linux では、make を実行すると自動的に pgxs を使ってビルドできます。
前もって PostgreSQL 開発用パッケージ (postgresql-devel 等) をインストールし、pg_config にパスを通してください。
-$ cd pg_reorg
+$ cd pg_repack
$ make
$ su
$ make install
@@ -305,7 +305,7 @@ msvc フォルダ内にプロジェクトファイルがあります。
その後、データベースに関数を登録します。
$ pg_ctl start
-$ psql -f $PGSHARE/contrib/pg_reorg.sql -d your_database
+$ psql -f $PGSHARE/contrib/pg_repack.sql -d your_database
(注意: CREATE EXTENSION
はまだサポートしていません。)
@@ -334,7 +334,7 @@ $ psql -f $PGSHARE/contrib/pg_reorg.sql -d your_database
-pg_reorg
-
+pg_repack
+
-pg_reorg 1.1.7
+pg_repack 1.1.7
@@ -33,11 +33,11 @@
Name
-pg_reorg -- Reorganize tables in PostgreSQL databases without any locks.
+pg_repack -- Reorganize tables in PostgreSQL databases without any locks.
Synopsis
-pg_reorg [OPTIONS]
+pg_repack [OPTIONS]
The following options can be specified in OPTIONS.
@@ -68,7 +68,7 @@ See also "Options " for details.
Description
-pg_reorg is an utility program to reorganize tables in PostgreSQL databases.
+
pg_repack is an utility program to reorganize tables in PostgreSQL databases.
Unlike clusterdb , it doesn't block any selections and updates during reorganization.
You can choose one of the following methods to reorganize.
$ pg_reorg test
+$ pg_repack test
Execute the following command to perform an online VACUUM FULL to foo table in test database.
-$ pg_reorg --no-order --table foo -d test
+
$ pg_repack --no-order --table foo -d test
Options
-pg_reorg has the following command line options:
+pg_repack has the following command line options:
Reorg Options
Options to order rows.
-If not specified, pg_reorg performs an online CLUSTER using cluster indexes.
+If not specified, pg_repack performs an online CLUSTER using cluster indexes.
Only one option can be specified.
You may also specify target tables or databases.
@@ -119,10 +119,10 @@ You may also specify target tables or databases.
--wait-timeout=seconds
-pg_reorg needs to take an exclusive lock at the end of the reorganization.
+pg_repack needs to take an exclusive lock at the end of the reorganization.
This setting controls how long it wait for acquiring the lock in seconds.
-If the lock cannot be taken even after the duration, pg_reorg forces to cancel conflicted queries.
-Also, if the server version is 8.4 or newer, pg_reorg forces to disconnect conflicted backends after twice time passed.
+If the lock cannot be taken even after the duration, pg_repack forces to cancel conflicted queries.
+Also, if the server version is 8.4 or newer, pg_repack forces to disconnect conflicted backends after twice time passed.
The default is 60 seconds.
@@ -171,7 +171,7 @@ This option can be useful in batch jobs and scripts where no user is present to
-W
--password
Force the program to prompt for a password before connecting to a database.
-This option is never essential, since the program will automatically prompt for a password if the server demands password authentication. However, pg_reorg will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt.
+This option is never essential, since the program will automatically prompt for a password if the server demands password authentication. However, pg_repack will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt.
Generic Options
@@ -200,19 +200,19 @@ The default is INFO.
This utility, like most other PostgreSQL utilities, also uses the environment variables supported by libpq (see Environment Variables ).
Diagnostics
-Error messages are reported when pg_reorg fails.
+
Error messages are reported when pg_repack fails.
The following list shows the cause of errors.
You need to cleanup by hand after fatal errors.
-To cleanup, execute $PGHOME/share/contrib/uninstall_pg_reorg.sql to the database where the error occured and then execute $PGHOME/share/contrib/pg_reorg.sql. (Do uninstall and reinstall.)
+To cleanup, execute $PGHOME/share/contrib/uninstall_pg_repack.sql to the database where the error occured and then execute $PGHOME/share/contrib/pg_repack.sql. (Do uninstall and reinstall.)
-pg_reorg : reorg database "template1" ... skipped
-pg_reorg is not installed in the database when --all option is specified.
-Do register pg_reorg to the database.
+pg_repack : repack database "template1" ... skipped
+pg_repack is not installed in the database when --all option is specified.
+Do register pg_repack to the database.
-ERROR: pg_reorg is not installed
-pg_reorg is not installed in the database specified by --dbname.
-Do register pg_reorg to the database.
+ERROR: pg_repack is not installed
+pg_repack is not installed in the database specified by --dbname.
+Do register pg_repack to the database.
ERROR: relation "table" has no primary key
The target table doesn't have PRIMARY KEY.
@@ -222,40 +222,40 @@ To cleanup, execute $PGHOME/share/contrib/uninstall_pg_reorg.sql to the database
The target table doesn't have CLUSTER KEY.
Define CLUSTER KEY to the table. (ALTER TABLE CLUSTER)
-pg_reorg : query failed: ERROR: column "col" does not exist
+pg_repack : query failed: ERROR: column "col" does not exist
The target table doesn't have columns specified by --order-by option.
Specify existing columns.
-ERROR: permission denied for schema reorg
+ERROR: permission denied for schema repack
Permission error.
-pg_reorg must be executed by superusers.
+pg_repack must be executed by superusers.
-pg_reorg : query failed: ERROR: trigger "z_reorg_trigger" for relation "tbl" already exists
-The target table already has a trigger named "z_reorg_trigger".
+pg_repack : query failed: ERROR: trigger "z_repack_trigger" for relation "tbl" already exists
+The target table already has a trigger named "z_repack_trigger".
Delete or rename the trigger.
-pg_reorg : trigger conflicted for tbl
-The target table already has a trigger which follows by "z_reorg_trigger" in alphabetical order.
+pg_repack : trigger conflicted for tbl
+The target table already has a trigger which follows by "z_repack_trigger" in alphabetical order.
Delete or rename the trigger.
Restrictions
-pg_reorg has the following restrictions.
+
pg_repack has the following restrictions.
Be careful to avoid data corruptions.
Temp tables
-pg_reorg cannot reorganize temp tables.
+pg_repack cannot reorganize temp tables.
GiST indexes
-pg_reorg cannot reorganize tables using GiST indexes.
+pg_repack cannot reorganize tables using GiST indexes.
DDL commands
-You cannot do DDL commands except VACUUM and ANALYZE during pg_reorg.
-In many cases pg_reorg will fail and rollback collectly, but there are some cases which may result in data-corruption .
+You cannot do DDL commands except VACUUM and ANALYZE during pg_repack.
+In many cases pg_repack will fail and rollback collectly, but there are some cases which may result in data-corruption .
TRUNCATE
-TRUNCATE is lost. Deleted rows still exist after pg_reorg.
+TRUNCATE is lost. Deleted rows still exist after pg_repack.
CREATE INDEX
It causes index corruptions.
@@ -271,17 +271,17 @@ In many cases pg_reorg will fail and rollback collectly, but there are some case
Details
-pg_reorg creates a work table in the reorg schema and sorts the rows in this table.
+
pg_repack creates a work table in the repack schema and sorts the rows in this table.
Then, it updates the system catalogs directly to swap the work table and the original one.
Installations
-pg_reorg can be built with "make" on UNIX or Linux.
+pg_repack can be built with "make" on UNIX or Linux.
pgxs build framework is used automatically.
Before building, you might need to install postgres packages for developer (postgresql-devel, etc.)
and add pg_config
to your $PATH.
-$ cd pg_reorg
+$ cd pg_repack
$ make
$ su
$ make install
@@ -292,7 +292,7 @@ There are project files in the msvc folder.
Start PostgreSQL and execute the script to register functions to your database.
$ pg_ctl start
-$ psql -f $PGSHARE/contrib/pg_reorg.sql -d your_database
+$ psql -f $PGSHARE/contrib/pg_repack.sql -d your_database
(NOTE: CREATE EXTENSION
is not supported yet.)
@@ -322,7 +322,7 @@ required.
diff --git a/lib/.gitignore b/lib/.gitignore
index 255dcb7..1c46949 100644
--- a/lib/.gitignore
+++ b/lib/.gitignore
@@ -1,3 +1,3 @@
/.deps/
-/pg_reorg.sql
-/pg_reorg--[0-9.]*.sql
+/pg_repack.sql
+/pg_repack--[0-9.]*.sql
diff --git a/lib/Makefile b/lib/Makefile
index 0e18238..705ccee 100755
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -1,13 +1,13 @@
#
-# pg_reorg: lib/Makefile
+# pg_repack: lib/Makefile
#
# Portions Copyright (c) 2008-2012, NIPPON TELEGRAPH AND TELEPHONE CORPORATION
# Portions Copyright (c) 2011, Itagaki Takahiro
#
-MODULE_big = pg_reorg
-OBJS = reorg.o pgut/pgut-be.o pgut/pgut-spi.o
+MODULE_big = pg_repack
+OBJS = repack.o pgut/pgut-be.o pgut/pgut-spi.o
-EXTENSION = pg_reorg
+EXTENSION = pg_repack
# The version of the extension, read from the .control file.
# Note that it doesn't need to be the same of the library version: it should
@@ -16,8 +16,8 @@ EXTVER = $(shell grep -e '^default_version' $(EXTENSION).control \
| sed -e "s/[^']*'\([^']*\)'.*/\1/")
#supports both EXTENSION (for >=9.1) and without_EXTENSION (for
$@; \
- echo "CREATE SCHEMA reorg;\n" >> $@; \
+ echo "CREATE SCHEMA repack;\n" >> $@; \
sed 's,MODULE_PATHNAME,$$libdir/$(MODULE_big),g' $< >> $@; \
echo "\nCOMMIT;" >> $@;
-pg_reorg--$(EXTVER).sql: pg_reorg.sql.in
- echo '\echo Use "CREATE EXTENSION pg_reorg" to load this file. \quit' > $@; \
+pg_repack--$(EXTVER).sql: pg_repack.sql.in
+ echo '\echo Use "CREATE EXTENSION pg_repack" to load this file. \quit' > $@; \
cat $< >> $@;
diff --git a/lib/pg_reorg--1.1.7--1.1.8.sql b/lib/pg_reorg--1.1.7--1.1.8.sql
deleted file mode 100644
index 412cca2..0000000
--- a/lib/pg_reorg--1.1.7--1.1.8.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Create the pg_reorg extension from a loose set of objects */
-
--- complain if script is sourced in psql, rather than via CREATE EXTENSION
-\echo Use "CREATE EXTENSION pg_reorg FROM 1.1.7" to load this file. \quit
-
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.version();
-ALTER EXTENSION pg_reorg ADD AGGREGATE reorg.array_accum(anyelement);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.oid2text(oid);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.get_index_columns(oid, text);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.get_index_keys(oid, oid);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.get_create_index_type(oid, name);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.get_create_trigger(relid oid, pkid oid);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.get_assign(oid, text);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.get_compare_pkey(oid, text);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.get_columns_for_create_as(oid);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.get_drop_columns(oid, text);
-ALTER EXTENSION pg_reorg ADD VIEW reorg.primary_keys;
-ALTER EXTENSION pg_reorg ADD VIEW reorg.tables;
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.reorg_indexdef(oid, oid);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.reorg_trigger();
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.conflicted_triggers(oid);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.disable_autovacuum(regclass);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.reorg_apply(cstring,cstring,cstring,cstring,cstring,integer);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.reorg_swap(oid);
-ALTER EXTENSION pg_reorg ADD FUNCTION reorg.reorg_drop(oid);
diff --git a/lib/pg_repack--1.1.7--1.1.8.sql b/lib/pg_repack--1.1.7--1.1.8.sql
new file mode 100644
index 0000000..75c43a2
--- /dev/null
+++ b/lib/pg_repack--1.1.7--1.1.8.sql
@@ -0,0 +1,25 @@
+/* Create the pg_repack extension from a loose set of objects */
+
+-- complain if script is sourced in psql, rather than via CREATE EXTENSION
+\echo Use "CREATE EXTENSION pg_repack FROM 1.1.7" to load this file. \quit
+
+ALTER EXTENSION pg_repack ADD FUNCTION repack.version();
+ALTER EXTENSION pg_repack ADD AGGREGATE repack.array_accum(anyelement);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.oid2text(oid);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.get_index_columns(oid, text);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.get_index_keys(oid, oid);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.get_create_index_type(oid, name);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.get_create_trigger(relid oid, pkid oid);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.get_assign(oid, text);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.get_compare_pkey(oid, text);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.get_columns_for_create_as(oid);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.get_drop_columns(oid, text);
+ALTER EXTENSION pg_repack ADD VIEW repack.primary_keys;
+ALTER EXTENSION pg_repack ADD VIEW repack.tables;
+ALTER EXTENSION pg_repack ADD FUNCTION repack.repack_indexdef(oid, oid);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.repack_trigger();
+ALTER EXTENSION pg_repack ADD FUNCTION repack.conflicted_triggers(oid);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.disable_autovacuum(regclass);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.repack_apply(cstring,cstring,cstring,cstring,cstring,integer);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.repack_swap(oid);
+ALTER EXTENSION pg_repack ADD FUNCTION repack.repack_drop(oid);
diff --git a/lib/pg_reorg.control b/lib/pg_repack.control
similarity index 55%
rename from lib/pg_reorg.control
rename to lib/pg_repack.control
index 44420e9..805a182 100644
--- a/lib/pg_reorg.control
+++ b/lib/pg_repack.control
@@ -1,6 +1,6 @@
-# pg_reorg extension
+# pg_repack extension
comment = 're-organizes a PostgreSQL database'
default_version = '1.2dev0'
-module_pathname = '$libdir/pg_reorg'
+module_pathname = '$libdir/pg_repack'
relocatable = false
-schema = reorg
+schema = repack
diff --git a/lib/pg_reorg.sql.in b/lib/pg_repack.sql.in
similarity index 50%
rename from lib/pg_reorg.sql.in
rename to lib/pg_repack.sql.in
index ed4bc72..0ecc441 100755
--- a/lib/pg_reorg.sql.in
+++ b/lib/pg_repack.sql.in
@@ -1,30 +1,30 @@
/*
- * pg_reorg: lib/pg_reorg.sql.in
+ * pg_repack: lib/pg_repack.sql.in
*
* Portions Copyright (c) 2008-2011, NIPPON TELEGRAPH AND TELEPHONE CORPORATION
* Portions Copyright (c) 2011, Itagaki Takahiro
*/
-CREATE FUNCTION reorg.version() RETURNS text AS
-'MODULE_PATHNAME', 'reorg_version'
+CREATE FUNCTION repack.version() RETURNS text AS
+'MODULE_PATHNAME', 'repack_version'
LANGUAGE C IMMUTABLE STRICT;
-CREATE AGGREGATE reorg.array_accum (
+CREATE AGGREGATE repack.array_accum (
sfunc = array_append,
basetype = anyelement,
stype = anyarray,
initcond = '{}'
);
-CREATE FUNCTION reorg.oid2text(oid) RETURNS text AS
+CREATE FUNCTION repack.oid2text(oid) RETURNS text AS
$$
SELECT textin(regclassout($1));
$$
LANGUAGE sql STABLE STRICT;
-CREATE FUNCTION reorg.get_index_columns(oid, text) RETURNS text AS
+CREATE FUNCTION repack.get_index_columns(oid, text) RETURNS text AS
$$
- SELECT array_to_string(reorg.array_accum(quote_ident(attname)), $2)
+ SELECT array_to_string(repack.array_accum(quote_ident(attname)), $2)
FROM pg_attribute,
(SELECT indrelid,
indkey,
@@ -37,14 +37,14 @@ $$
$$
LANGUAGE sql STABLE STRICT;
-CREATE FUNCTION reorg.get_index_keys(oid, oid) RETURNS text AS
-'MODULE_PATHNAME', 'reorg_get_index_keys'
+CREATE FUNCTION repack.get_index_keys(oid, oid) RETURNS text AS
+'MODULE_PATHNAME', 'repack_get_index_keys'
LANGUAGE C STABLE STRICT;
-CREATE FUNCTION reorg.get_create_index_type(oid, name) RETURNS text AS
+CREATE FUNCTION repack.get_create_index_type(oid, name) RETURNS text AS
$$
SELECT 'CREATE TYPE ' || $2 || ' AS (' ||
- array_to_string(reorg.array_accum(quote_ident(attname) || ' ' ||
+ array_to_string(repack.array_accum(quote_ident(attname) || ' ' ||
pg_catalog.format_type(atttypid, atttypmod)), ', ') || ')'
FROM pg_attribute,
(SELECT indrelid,
@@ -58,44 +58,44 @@ $$
$$
LANGUAGE sql STABLE STRICT;
-CREATE FUNCTION reorg.get_create_trigger(relid oid, pkid oid)
+CREATE FUNCTION repack.get_create_trigger(relid oid, pkid oid)
RETURNS text AS
$$
- SELECT 'CREATE TRIGGER z_reorg_trigger' ||
- ' BEFORE INSERT OR DELETE OR UPDATE ON ' || reorg.oid2text($1) ||
- ' FOR EACH ROW EXECUTE PROCEDURE reorg.reorg_trigger(' ||
- '''INSERT INTO reorg.log_' || $1 || '(pk, row) VALUES(' ||
+ SELECT 'CREATE TRIGGER z_repack_trigger' ||
+ ' BEFORE INSERT OR DELETE OR UPDATE ON ' || repack.oid2text($1) ||
+ ' FOR EACH ROW EXECUTE PROCEDURE repack.repack_trigger(' ||
+ '''INSERT INTO repack.log_' || $1 || '(pk, row) VALUES(' ||
' CASE WHEN $1 IS NULL THEN NULL ELSE (ROW($1.' ||
- reorg.get_index_columns($2, ', $1.') || ')::reorg.pk_' ||
+ repack.get_index_columns($2, ', $1.') || ')::repack.pk_' ||
$1 || ') END, $2)'')';
$$
LANGUAGE sql STABLE STRICT;
-CREATE FUNCTION reorg.get_alter_table(relid oid)
+CREATE FUNCTION repack.get_alter_table(relid oid)
RETURNS text AS
$$
- SELECT 'ALTER TABLE ' || reorg.oid2text($1) ||
- ' ENABLE ALWAYS TRIGGER z_reorg_trigger';
+ SELECT 'ALTER TABLE ' || repack.oid2text($1) ||
+ ' ENABLE ALWAYS TRIGGER z_repack_trigger';
$$
LANGUAGE sql STABLE STRICT;
-CREATE FUNCTION reorg.get_assign(oid, text) RETURNS text AS
+CREATE FUNCTION repack.get_assign(oid, text) RETURNS text AS
$$
- SELECT '(' || array_to_string(reorg.array_accum(quote_ident(attname)), ', ') ||
+ SELECT '(' || array_to_string(repack.array_accum(quote_ident(attname)), ', ') ||
') = (' || $2 || '.' ||
- array_to_string(reorg.array_accum(quote_ident(attname)), ', ' || $2 || '.') || ')'
+ array_to_string(repack.array_accum(quote_ident(attname)), ', ' || $2 || '.') || ')'
FROM (SELECT attname FROM pg_attribute
WHERE attrelid = $1 AND attnum > 0 AND NOT attisdropped
ORDER BY attnum) tmp;
$$
LANGUAGE sql STABLE STRICT;
-CREATE FUNCTION reorg.get_compare_pkey(oid, text)
+CREATE FUNCTION repack.get_compare_pkey(oid, text)
RETURNS text AS
$$
- SELECT '(' || array_to_string(reorg.array_accum(quote_ident(attname)), ', ') ||
+ SELECT '(' || array_to_string(repack.array_accum(quote_ident(attname)), ', ') ||
') = (' || $2 || '.' ||
- array_to_string(reorg.array_accum(quote_ident(attname)), ', ' || $2 || '.') || ')'
+ array_to_string(repack.array_accum(quote_ident(attname)), ', ' || $2 || '.') || ')'
FROM pg_attribute,
(SELECT indrelid,
indkey,
@@ -110,10 +110,10 @@ LANGUAGE sql STABLE STRICT;
-- Get a column list for SELECT all columns including dropped ones.
-- We use NULLs of integer types for dropped columns (types are not important).
-CREATE FUNCTION reorg.get_columns_for_create_as(oid)
+CREATE FUNCTION repack.get_columns_for_create_as(oid)
RETURNS text AS
$$
-SELECT array_to_string(reorg.array_accum(c), ',') FROM (SELECT
+SELECT array_to_string(repack.array_accum(c), ',') FROM (SELECT
CASE WHEN attisdropped
THEN 'NULL::integer AS ' || quote_ident(attname)
ELSE quote_ident(attname)
@@ -126,14 +126,14 @@ LANGUAGE sql STABLE STRICT;
-- Get a SQL text to DROP dropped columns for the table,
-- or NULL if it has no dropped columns.
-CREATE FUNCTION reorg.get_drop_columns(oid, text)
+CREATE FUNCTION repack.get_drop_columns(oid, text)
RETURNS text AS
$$
SELECT
'ALTER TABLE ' || $2 || ' ' || array_to_string(dropped_columns, ', ')
FROM (
SELECT
- reorg.array_accum('DROP COLUMN ' || quote_ident(attname)) AS dropped_columns
+ repack.array_accum('DROP COLUMN ' || quote_ident(attname)) AS dropped_columns
FROM (
SELECT * FROM pg_attribute
WHERE attrelid = $1 AND attnum > 0 AND attisdropped
@@ -146,8 +146,8 @@ $$
LANGUAGE sql STABLE STRICT;
-- includes not only PRIMARY KEYS but also UNIQUE NOT NULL keys
-CREATE VIEW reorg.primary_keys AS
- SELECT indrelid, (reorg.array_accum(indexrelid))[1] AS indexrelid
+CREATE VIEW repack.primary_keys AS
+ SELECT indrelid, (repack.array_accum(indexrelid))[1] AS indexrelid
FROM (SELECT indrelid, indexrelid FROM pg_index
WHERE indisunique
AND indisvalid
@@ -160,30 +160,30 @@ CREATE VIEW reorg.primary_keys AS
ORDER BY indrelid, indisprimary DESC, indnatts, indkey) tmp
GROUP BY indrelid;
-CREATE VIEW reorg.tables AS
+CREATE VIEW repack.tables AS
SELECT R.oid::regclass AS relname,
R.oid AS relid,
R.reltoastrelid AS reltoastrelid,
CASE WHEN R.reltoastrelid = 0 THEN 0 ELSE (SELECT reltoastidxid FROM pg_class WHERE oid = R.reltoastrelid) END AS reltoastidxid,
PK.indexrelid AS pkid,
CK.indexrelid AS ckid,
- reorg.get_create_index_type(PK.indexrelid, 'reorg.pk_' || R.oid) AS create_pktype,
- 'CREATE TABLE reorg.log_' || R.oid || ' (id bigserial PRIMARY KEY, pk reorg.pk_' || R.oid || ', row ' || reorg.oid2text(R.oid) || ')' AS create_log,
- reorg.get_create_trigger(R.oid, PK.indexrelid) AS create_trigger,
- reorg.get_alter_table(R.oid) as alter_table,
- 'CREATE TABLE reorg.table_' || R.oid || ' WITH (' || array_to_string(array_append(R.reloptions, 'oids=' || CASE WHEN R.relhasoids THEN 'true' ELSE 'false' END), ',') || ') TABLESPACE ' || coalesce(quote_ident(S.spcname), 'pg_default') || ' AS SELECT ' || reorg.get_columns_for_create_as(R.oid) || ' FROM ONLY ' || reorg.oid2text(R.oid) AS create_table,
- reorg.get_drop_columns(R.oid, 'reorg.table_' || R.oid) AS drop_columns,
- 'DELETE FROM reorg.log_' || R.oid AS delete_log,
- 'LOCK TABLE ' || reorg.oid2text(R.oid) || ' IN ACCESS EXCLUSIVE MODE' AS lock_table,
- reorg.get_index_keys(CK.indexrelid, R.oid) AS ckey,
- 'SELECT * FROM reorg.log_' || R.oid || ' ORDER BY id LIMIT $1' AS sql_peek,
- 'INSERT INTO reorg.table_' || R.oid || ' VALUES ($1.*)' AS sql_insert,
- 'DELETE FROM reorg.table_' || R.oid || ' WHERE ' || reorg.get_compare_pkey(PK.indexrelid, '$1') AS sql_delete,
- 'UPDATE reorg.table_' || R.oid || ' SET ' || reorg.get_assign(R.oid, '$2') || ' WHERE ' || reorg.get_compare_pkey(PK.indexrelid, '$1') AS sql_update,
- 'DELETE FROM reorg.log_' || R.oid || ' WHERE id <= $1' AS sql_pop
+ repack.get_create_index_type(PK.indexrelid, 'repack.pk_' || R.oid) AS create_pktype,
+ 'CREATE TABLE repack.log_' || R.oid || ' (id bigserial PRIMARY KEY, pk repack.pk_' || R.oid || ', row ' || repack.oid2text(R.oid) || ')' AS create_log,
+ repack.get_create_trigger(R.oid, PK.indexrelid) AS create_trigger,
+ repack.get_alter_table(R.oid) as alter_table,
+ 'CREATE TABLE repack.table_' || R.oid || ' WITH (' || array_to_string(array_append(R.reloptions, 'oids=' || CASE WHEN R.relhasoids THEN 'true' ELSE 'false' END), ',') || ') TABLESPACE ' || coalesce(quote_ident(S.spcname), 'pg_default') || ' AS SELECT ' || repack.get_columns_for_create_as(R.oid) || ' FROM ONLY ' || repack.oid2text(R.oid) AS create_table,
+ repack.get_drop_columns(R.oid, 'repack.table_' || R.oid) AS drop_columns,
+ 'DELETE FROM repack.log_' || R.oid AS delete_log,
+ 'LOCK TABLE ' || repack.oid2text(R.oid) || ' IN ACCESS EXCLUSIVE MODE' AS lock_table,
+ repack.get_index_keys(CK.indexrelid, R.oid) AS ckey,
+ 'SELECT * FROM repack.log_' || R.oid || ' ORDER BY id LIMIT $1' AS sql_peek,
+ 'INSERT INTO repack.table_' || R.oid || ' VALUES ($1.*)' AS sql_insert,
+ 'DELETE FROM repack.table_' || R.oid || ' WHERE ' || repack.get_compare_pkey(PK.indexrelid, '$1') AS sql_delete,
+ 'UPDATE repack.table_' || R.oid || ' SET ' || repack.get_assign(R.oid, '$2') || ' WHERE ' || repack.get_compare_pkey(PK.indexrelid, '$1') AS sql_update,
+ 'DELETE FROM repack.log_' || R.oid || ' WHERE id <= $1' AS sql_pop
FROM pg_class R
LEFT JOIN pg_class T ON R.reltoastrelid = T.oid
- LEFT JOIN reorg.primary_keys PK
+ LEFT JOIN repack.primary_keys PK
ON R.oid = PK.indrelid
LEFT JOIN (SELECT CKI.* FROM pg_index CKI, pg_class CKT
WHERE CKI.indisvalid
@@ -197,26 +197,26 @@ CREATE VIEW reorg.tables AS
AND N.nspname NOT IN ('pg_catalog', 'information_schema')
AND N.nspname NOT LIKE E'pg\\_temp\\_%';
-CREATE FUNCTION reorg.reorg_indexdef(oid, oid) RETURNS text AS
-'MODULE_PATHNAME', 'reorg_indexdef'
+CREATE FUNCTION repack.repack_indexdef(oid, oid) RETURNS text AS
+'MODULE_PATHNAME', 'repack_indexdef'
LANGUAGE C STABLE STRICT;
-CREATE FUNCTION reorg.reorg_trigger() RETURNS trigger AS
-'MODULE_PATHNAME', 'reorg_trigger'
+CREATE FUNCTION repack.repack_trigger() RETURNS trigger AS
+'MODULE_PATHNAME', 'repack_trigger'
LANGUAGE C VOLATILE STRICT SECURITY DEFINER;
-CREATE FUNCTION reorg.conflicted_triggers(oid) RETURNS SETOF name AS
+CREATE FUNCTION repack.conflicted_triggers(oid) RETURNS SETOF name AS
$$
SELECT tgname FROM pg_trigger
- WHERE tgrelid = $1 AND tgname >= 'z_reorg_trigger'
+ WHERE tgrelid = $1 AND tgname >= 'z_repack_trigger'
$$
LANGUAGE sql STABLE STRICT;
-CREATE FUNCTION reorg.disable_autovacuum(regclass) RETURNS void AS
-'MODULE_PATHNAME', 'reorg_disable_autovacuum'
+CREATE FUNCTION repack.disable_autovacuum(regclass) RETURNS void AS
+'MODULE_PATHNAME', 'repack_disable_autovacuum'
LANGUAGE C VOLATILE STRICT;
-CREATE FUNCTION reorg.reorg_apply(
+CREATE FUNCTION repack.repack_apply(
sql_peek cstring,
sql_insert cstring,
sql_delete cstring,
@@ -224,13 +224,13 @@ CREATE FUNCTION reorg.reorg_apply(
sql_pop cstring,
count integer)
RETURNS integer AS
-'MODULE_PATHNAME', 'reorg_apply'
+'MODULE_PATHNAME', 'repack_apply'
LANGUAGE C VOLATILE;
-CREATE FUNCTION reorg.reorg_swap(oid) RETURNS void AS
-'MODULE_PATHNAME', 'reorg_swap'
+CREATE FUNCTION repack.repack_swap(oid) RETURNS void AS
+'MODULE_PATHNAME', 'repack_swap'
LANGUAGE C VOLATILE STRICT;
-CREATE FUNCTION reorg.reorg_drop(oid) RETURNS void AS
-'MODULE_PATHNAME', 'reorg_drop'
+CREATE FUNCTION repack.repack_drop(oid) RETURNS void AS
+'MODULE_PATHNAME', 'repack_drop'
LANGUAGE C VOLATILE STRICT;
diff --git a/lib/reorg.c b/lib/repack.c
similarity index 87%
rename from lib/reorg.c
rename to lib/repack.c
index c47228f..ac1ca8b 100755
--- a/lib/reorg.c
+++ b/lib/repack.c
@@ -1,5 +1,5 @@
/*
- * pg_reorg: lib/reorg.c
+ * pg_repack: lib/repack.c
*
* Portions Copyright (c) 2008-2011, NIPPON TELEGRAPH AND TELEPHONE CORPORATION
* Portions Copyright (c) 2011, Itagaki Takahiro
@@ -37,26 +37,26 @@
PG_MODULE_MAGIC;
-extern Datum PGUT_EXPORT reorg_version(PG_FUNCTION_ARGS);
-extern Datum PGUT_EXPORT reorg_trigger(PG_FUNCTION_ARGS);
-extern Datum PGUT_EXPORT reorg_apply(PG_FUNCTION_ARGS);
-extern Datum PGUT_EXPORT reorg_get_index_keys(PG_FUNCTION_ARGS);
-extern Datum PGUT_EXPORT reorg_indexdef(PG_FUNCTION_ARGS);
-extern Datum PGUT_EXPORT reorg_swap(PG_FUNCTION_ARGS);
-extern Datum PGUT_EXPORT reorg_drop(PG_FUNCTION_ARGS);
-extern Datum PGUT_EXPORT reorg_disable_autovacuum(PG_FUNCTION_ARGS);
+extern Datum PGUT_EXPORT repack_version(PG_FUNCTION_ARGS);
+extern Datum PGUT_EXPORT repack_trigger(PG_FUNCTION_ARGS);
+extern Datum PGUT_EXPORT repack_apply(PG_FUNCTION_ARGS);
+extern Datum PGUT_EXPORT repack_get_index_keys(PG_FUNCTION_ARGS);
+extern Datum PGUT_EXPORT repack_indexdef(PG_FUNCTION_ARGS);
+extern Datum PGUT_EXPORT repack_swap(PG_FUNCTION_ARGS);
+extern Datum PGUT_EXPORT repack_drop(PG_FUNCTION_ARGS);
+extern Datum PGUT_EXPORT repack_disable_autovacuum(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(reorg_version);
-PG_FUNCTION_INFO_V1(reorg_trigger);
-PG_FUNCTION_INFO_V1(reorg_apply);
-PG_FUNCTION_INFO_V1(reorg_get_index_keys);
-PG_FUNCTION_INFO_V1(reorg_indexdef);
-PG_FUNCTION_INFO_V1(reorg_swap);
-PG_FUNCTION_INFO_V1(reorg_drop);
-PG_FUNCTION_INFO_V1(reorg_disable_autovacuum);
+PG_FUNCTION_INFO_V1(repack_version);
+PG_FUNCTION_INFO_V1(repack_trigger);
+PG_FUNCTION_INFO_V1(repack_apply);
+PG_FUNCTION_INFO_V1(repack_get_index_keys);
+PG_FUNCTION_INFO_V1(repack_indexdef);
+PG_FUNCTION_INFO_V1(repack_swap);
+PG_FUNCTION_INFO_V1(repack_drop);
+PG_FUNCTION_INFO_V1(repack_disable_autovacuum);
-static void reorg_init(void);
-static SPIPlanPtr reorg_prepare(const char *src, int nargs, Oid *argtypes);
+static void repack_init(void);
+static SPIPlanPtr repack_prepare(const char *src, int nargs, Oid *argtypes);
static const char *get_quoted_relname(Oid oid);
static const char *get_quoted_nspname(Oid oid);
static void swap_heap_or_index_files(Oid r1, Oid r2);
@@ -95,21 +95,21 @@ static void RenameRelationInternal(Oid myrelid, const char *newrelname, Oid name
Datum
-reorg_version(PG_FUNCTION_ARGS)
+repack_version(PG_FUNCTION_ARGS)
{
- return CStringGetTextDatum("pg_reorg 1.1.6");
+ return CStringGetTextDatum("pg_repack 1.1.6");
}
/**
- * @fn Datum reorg_trigger(PG_FUNCTION_ARGS)
+ * @fn Datum repack_trigger(PG_FUNCTION_ARGS)
* @brief Insert a operation log into log-table.
*
- * reorg_trigger(sql)
+ * repack_trigger(sql)
*
* @param sql SQL to insert a operation log into log-table.
*/
Datum
-reorg_trigger(PG_FUNCTION_ARGS)
+repack_trigger(PG_FUNCTION_ARGS)
{
TriggerData *trigdata = (TriggerData *) fcinfo->context;
TupleDesc desc;
@@ -120,14 +120,14 @@ reorg_trigger(PG_FUNCTION_ARGS)
const char *sql;
/* authority check */
- must_be_superuser("reorg_trigger");
+ must_be_superuser("repack_trigger");
/* make sure it's called as a trigger at all */
if (!CALLED_AS_TRIGGER(fcinfo) ||
!TRIGGER_FIRED_BEFORE(trigdata->tg_event) ||
!TRIGGER_FIRED_FOR_ROW(trigdata->tg_event) ||
trigdata->tg_trigger->tgnargs != 1)
- elog(ERROR, "reorg_trigger: invalid trigger call");
+ elog(ERROR, "repack_trigger: invalid trigger call");
/* retrieve parameters */
sql = trigdata->tg_trigger->tgargs[0];
@@ -135,7 +135,7 @@ reorg_trigger(PG_FUNCTION_ARGS)
argtypes[0] = argtypes[1] = trigdata->tg_relation->rd_rel->reltype;
/* connect to SPI manager */
- reorg_init();
+ repack_init();
if (TRIGGER_FIRED_BY_INSERT(trigdata->tg_event))
{
@@ -159,7 +159,7 @@ reorg_trigger(PG_FUNCTION_ARGS)
values[1] = copy_tuple(tuple, desc);
}
- /* INSERT INTO reorg.log VALUES ($1, $2) */
+ /* INSERT INTO repack.log VALUES ($1, $2) */
execute_with_args(SPI_OK_INSERT, sql, 2, argtypes, values, nulls);
SPI_finish();
@@ -168,10 +168,10 @@ reorg_trigger(PG_FUNCTION_ARGS)
}
/**
- * @fn Datum reorg_apply(PG_FUNCTION_ARGS)
+ * @fn Datum repack_apply(PG_FUNCTION_ARGS)
* @brief Apply operations in log table into temp table.
*
- * reorg_apply(sql_peek, sql_insert, sql_delete, sql_update, sql_pop, count)
+ * repack_apply(sql_peek, sql_insert, sql_delete, sql_update, sql_pop, count)
*
* @param sql_peek SQL to pop tuple from log table.
* @param sql_insert SQL to insert into temp table.
@@ -182,7 +182,7 @@ reorg_trigger(PG_FUNCTION_ARGS)
* @retval Number of performed operations.
*/
Datum
-reorg_apply(PG_FUNCTION_ARGS)
+repack_apply(PG_FUNCTION_ARGS)
{
#define DEFAULT_PEEK_COUNT 1000
@@ -204,13 +204,13 @@ reorg_apply(PG_FUNCTION_ARGS)
bool nulls_peek[1] = { 0 };
/* authority check */
- must_be_superuser("reorg_apply");
+ must_be_superuser("repack_apply");
/* connect to SPI manager */
- reorg_init();
+ repack_init();
/* peek tuple in log */
- plan_peek = reorg_prepare(sql_peek, 1, argtypes_peek);
+ plan_peek = repack_prepare(sql_peek, 1, argtypes_peek);
for (n = 0;;)
{
@@ -252,28 +252,28 @@ reorg_apply(PG_FUNCTION_ARGS)
{
/* INSERT */
if (plan_insert == NULL)
- plan_insert = reorg_prepare(sql_insert, 1, &argtypes[2]);
+ plan_insert = repack_prepare(sql_insert, 1, &argtypes[2]);
execute_plan(SPI_OK_INSERT, plan_insert, &values[2], &nulls[2]);
}
else if (nulls[2])
{
/* DELETE */
if (plan_delete == NULL)
- plan_delete = reorg_prepare(sql_delete, 1, &argtypes[1]);
+ plan_delete = repack_prepare(sql_delete, 1, &argtypes[1]);
execute_plan(SPI_OK_DELETE, plan_delete, &values[1], &nulls[1]);
}
else
{
/* UPDATE */
if (plan_update == NULL)
- plan_update = reorg_prepare(sql_update, 2, &argtypes[1]);
+ plan_update = repack_prepare(sql_update, 2, &argtypes[1]);
execute_plan(SPI_OK_UPDATE, plan_update, &values[1], &nulls[1]);
}
}
/* delete tuple in log */
if (plan_pop == NULL)
- plan_pop = reorg_prepare(sql_pop, 1, argtypes);
+ plan_pop = repack_prepare(sql_pop, 1, argtypes);
execute_plan(SPI_OK_DELETE, plan_pop, values, nulls);
SPI_freetuptable(tuptable);
@@ -464,10 +464,10 @@ parse_indexdef(IndexDef *stmt, Oid index, Oid table)
}
/**
- * @fn Datum reorg_get_index_keys(PG_FUNCTION_ARGS)
+ * @fn Datum repack_get_index_keys(PG_FUNCTION_ARGS)
* @brief Get key definition of the index.
*
- * reorg_get_index_keys(index, table)
+ * repack_get_index_keys(index, table)
*
* @param index Oid of target index.
* @param table Oid of table of the index.
@@ -477,7 +477,7 @@ parse_indexdef(IndexDef *stmt, Oid index, Oid table)
* an expression for ORDER BY clause. get_order_by() might be a better name.
*/
Datum
-reorg_get_index_keys(PG_FUNCTION_ARGS)
+repack_get_index_keys(PG_FUNCTION_ARGS)
{
Oid index = PG_GETARG_OID(0);
Oid table = PG_GETARG_OID(1);
@@ -564,17 +564,17 @@ reorg_get_index_keys(PG_FUNCTION_ARGS)
}
/**
- * @fn Datum reorg_indexdef(PG_FUNCTION_ARGS)
+ * @fn Datum repack_indexdef(PG_FUNCTION_ARGS)
* @brief Reproduce DDL that create index at the temp table.
*
- * reorg_indexdef(index, table)
+ * repack_indexdef(index, table)
*
* @param index Oid of target index.
* @param table Oid of table of the index.
* @retval Create index DDL for temp table.
*/
Datum
-reorg_indexdef(PG_FUNCTION_ARGS)
+repack_indexdef(PG_FUNCTION_ARGS)
{
Oid index = PG_GETARG_OID(0);
Oid table = PG_GETARG_OID(1);
@@ -583,7 +583,7 @@ reorg_indexdef(PG_FUNCTION_ARGS)
parse_indexdef(&stmt, index, table);
initStringInfo(&str);
- appendStringInfo(&str, "%s index_%u ON reorg.table_%u USING %s (%s)%s",
+ appendStringInfo(&str, "%s index_%u ON repack.table_%u USING %s (%s)%s",
stmt.create, index, table, stmt.type, stmt.columns, stmt.options);
PG_RETURN_TEXT_P(cstring_to_text(str.data));
@@ -598,11 +598,11 @@ getoid(HeapTuple tuple, TupleDesc desc, int column)
}
/**
- * @fn Datum reorg_swap(PG_FUNCTION_ARGS)
+ * @fn Datum repack_swap(PG_FUNCTION_ARGS)
* @brief Swapping relfilenode of tables and relation ids of toast tables
* and toast indexes.
*
- * reorg_swap(oid, relname)
+ * repack_swap(oid, relname)
*
* TODO: remove useless CommandCounterIncrement().
*
@@ -610,7 +610,7 @@ getoid(HeapTuple tuple, TupleDesc desc, int column)
* @retval None.
*/
Datum
-reorg_swap(PG_FUNCTION_ARGS)
+repack_swap(PG_FUNCTION_ARGS)
{
Oid oid = PG_GETARG_OID(0);
const char *relname = get_quoted_relname(oid);
@@ -633,10 +633,10 @@ reorg_swap(PG_FUNCTION_ARGS)
Oid owner2;
/* authority check */
- must_be_superuser("reorg_swap");
+ must_be_superuser("repack_swap");
/* connect to SPI manager */
- reorg_init();
+ repack_init();
/* swap relfilenode and dependencies for tables. */
values[0] = ObjectIdGetDatum(oid);
@@ -648,7 +648,7 @@ reorg_swap(PG_FUNCTION_ARGS)
" pg_catalog.pg_class Y LEFT JOIN pg_catalog.pg_class TY"
" ON Y.reltoastrelid = TY.oid"
" WHERE X.oid = $1"
- " AND Y.oid = ('reorg.table_' || X.oid)::regclass",
+ " AND Y.oid = ('repack.table_' || X.oid)::regclass",
1, argtypes, values, nulls);
tuptable = SPI_tuptable;
@@ -656,7 +656,7 @@ reorg_swap(PG_FUNCTION_ARGS)
records = SPI_processed;
if (records == 0)
- elog(ERROR, "reorg_swap : no swap target");
+ elog(ERROR, "repack_swap : no swap target");
tuple = tuptable->vals[0];
@@ -689,7 +689,7 @@ reorg_swap(PG_FUNCTION_ARGS)
" WHERE I.indrelid = $1"
" AND I.indexrelid = X.oid"
" AND I.indisvalid"
- " AND Y.oid = ('reorg.index_' || X.oid)::regclass",
+ " AND Y.oid = ('repack.index_' || X.oid)::regclass",
1, argtypes, values, nulls);
tuptable = SPI_tuptable;
@@ -714,7 +714,7 @@ reorg_swap(PG_FUNCTION_ARGS)
if (reltoastidxid1 != InvalidOid ||
reltoastrelid2 != InvalidOid ||
reltoastidxid2 != InvalidOid)
- elog(ERROR, "reorg_swap : unexpected toast relations (T1=%u, I1=%u, T2=%u, I2=%u",
+ elog(ERROR, "repack_swap : unexpected toast relations (T1=%u, I1=%u, T2=%u, I2=%u",
reltoastrelid1, reltoastidxid1, reltoastrelid2, reltoastidxid2);
/* do nothing */
}
@@ -724,7 +724,7 @@ reorg_swap(PG_FUNCTION_ARGS)
if (reltoastidxid1 == InvalidOid ||
reltoastidxid2 != InvalidOid)
- elog(ERROR, "reorg_swap : unexpected toast relations (T1=%u, I1=%u, T2=%u, I2=%u",
+ elog(ERROR, "repack_swap : unexpected toast relations (T1=%u, I1=%u, T2=%u, I2=%u",
reltoastrelid1, reltoastidxid1, reltoastrelid2, reltoastidxid2);
/* rename X to Y */
@@ -761,10 +761,10 @@ reorg_swap(PG_FUNCTION_ARGS)
CommandCounterIncrement();
}
- /* drop reorg trigger */
+ /* drop repack trigger */
execute_with_format(
SPI_OK_UTILITY,
- "DROP TRIGGER IF EXISTS z_reorg_trigger ON %s.%s CASCADE",
+ "DROP TRIGGER IF EXISTS z_repack_trigger ON %s.%s CASCADE",
nspname, relname);
SPI_finish();
@@ -773,34 +773,34 @@ reorg_swap(PG_FUNCTION_ARGS)
}
/**
- * @fn Datum reorg_drop(PG_FUNCTION_ARGS)
+ * @fn Datum repack_drop(PG_FUNCTION_ARGS)
* @brief Delete temporarily objects.
*
- * reorg_drop(oid, relname)
+ * repack_drop(oid, relname)
*
* @param oid Oid of target table.
* @retval None.
*/
Datum
-reorg_drop(PG_FUNCTION_ARGS)
+repack_drop(PG_FUNCTION_ARGS)
{
Oid oid = PG_GETARG_OID(0);
const char *relname = get_quoted_relname(oid);
const char *nspname = get_quoted_nspname(oid);
/* authority check */
- must_be_superuser("reorg_drop");
+ must_be_superuser("repack_drop");
/* connect to SPI manager */
- reorg_init();
+ repack_init();
/*
- * drop reorg trigger: We have already dropped the trigger in normal
+ * drop repack trigger: We have already dropped the trigger in normal
* cases, but it can be left on error.
*/
execute_with_format(
SPI_OK_UTILITY,
- "DROP TRIGGER IF EXISTS z_reorg_trigger ON %s.%s CASCADE",
+ "DROP TRIGGER IF EXISTS z_repack_trigger ON %s.%s CASCADE",
nspname, relname);
#if PG_VERSION_NUM < 80400
@@ -810,7 +810,7 @@ reorg_drop(PG_FUNCTION_ARGS)
"DELETE FROM pg_catalog.pg_autovacuum v"
" USING pg_class c, pg_namespace n"
" WHERE relname IN ('log_%u', 'table_%u')"
- " AND n.nspname = 'reorg'"
+ " AND n.nspname = 'repack'"
" AND c.relnamespace = n.oid"
" AND v.vacrelid = c.oid",
oid, oid);
@@ -819,19 +819,19 @@ reorg_drop(PG_FUNCTION_ARGS)
/* drop log table */
execute_with_format(
SPI_OK_UTILITY,
- "DROP TABLE IF EXISTS reorg.log_%u CASCADE",
+ "DROP TABLE IF EXISTS repack.log_%u CASCADE",
oid);
/* drop temp table */
execute_with_format(
SPI_OK_UTILITY,
- "DROP TABLE IF EXISTS reorg.table_%u CASCADE",
+ "DROP TABLE IF EXISTS repack.table_%u CASCADE",
oid);
/* drop type for log table */
execute_with_format(
SPI_OK_UTILITY,
- "DROP TYPE IF EXISTS reorg.pk_%u CASCADE",
+ "DROP TYPE IF EXISTS repack.pk_%u CASCADE",
oid);
SPI_finish();
@@ -840,12 +840,12 @@ reorg_drop(PG_FUNCTION_ARGS)
}
Datum
-reorg_disable_autovacuum(PG_FUNCTION_ARGS)
+repack_disable_autovacuum(PG_FUNCTION_ARGS)
{
Oid oid = PG_GETARG_OID(0);
/* connect to SPI manager */
- reorg_init();
+ repack_init();
#if PG_VERSION_NUM >= 80400
execute_with_format(
@@ -866,20 +866,20 @@ reorg_disable_autovacuum(PG_FUNCTION_ARGS)
/* init SPI */
static void
-reorg_init(void)
+repack_init(void)
{
int ret = SPI_connect();
if (ret != SPI_OK_CONNECT)
- elog(ERROR, "pg_reorg: SPI_connect returned %d", ret);
+ elog(ERROR, "pg_repack: SPI_connect returned %d", ret);
}
/* prepare plan */
static SPIPlanPtr
-reorg_prepare(const char *src, int nargs, Oid *argtypes)
+repack_prepare(const char *src, int nargs, Oid *argtypes)
{
SPIPlanPtr plan = SPI_prepare(src, nargs, argtypes);
if (plan == NULL)
- elog(ERROR, "pg_reorg: reorg_prepare failed (code=%d, query=%s)", SPI_result, src);
+ elog(ERROR, "pg_repack: repack_prepare failed (code=%d, query=%s)", SPI_result, src);
return plan;
}
diff --git a/lib/uninstall_pg_reorg.sql b/lib/uninstall_pg_repack.sql
similarity index 64%
rename from lib/uninstall_pg_reorg.sql
rename to lib/uninstall_pg_repack.sql
index cf93363..e681787 100755
--- a/lib/uninstall_pg_reorg.sql
+++ b/lib/uninstall_pg_repack.sql
@@ -1,8 +1,8 @@
/*
- * pg_reorg: lib/uninstall_reorg.sql
+ * pg_repack: lib/uninstall_repack.sql
*
* Portions Copyright (c) 2008-2011, NIPPON TELEGRAPH AND TELEPHONE CORPORATION
* Portions Copyright (c) 2011, Itagaki Takahiro
*/
-DROP SCHEMA IF EXISTS reorg CASCADE;
+DROP SCHEMA IF EXISTS repack CASCADE;
diff --git a/msvc/bin.2010.vcxproj b/msvc/bin.2010.vcxproj
index 206c6d6..5ba14d1 100644
--- a/msvc/bin.2010.vcxproj
+++ b/msvc/bin.2010.vcxproj
@@ -122,12 +122,12 @@
C:\Program Files %28x86%29\PostgreSQL\8.4\lib;$(LibraryPath)
C:\Program Files %28x86%29\PostgreSQL\8.3\lib;$(LibraryPath)
C:\Program Files %28x86%29\PostgreSQL\8.4\lib;$(LibraryPath)
- pg_reorg
- pg_reorg
- pg_reorg
- pg_reorg
- pg_reorg
- pg_reorg
+ pg_repack
+ pg_repack
+ pg_repack
+ pg_repack
+ pg_repack
+ pg_repack
@@ -308,15 +308,15 @@
-
+
-
+
-
-
+
+
@@ -324,7 +324,7 @@
-
+
diff --git a/msvc/bin.2010.vcxproj.filters b/msvc/bin.2010.vcxproj.filters
index 85ceac6..c3ff217 100644
--- a/msvc/bin.2010.vcxproj.filters
+++ b/msvc/bin.2010.vcxproj.filters
@@ -32,10 +32,10 @@
doc
-
+
doc
-
+
doc
@@ -45,13 +45,13 @@
regress\expected
-
+
regress\expected
regress\sql
-
+
regress\sql
@@ -60,7 +60,7 @@
-
+
src
diff --git a/msvc/bin.vcproj b/msvc/bin.vcproj
index e6ee24d..0dcc32c 100755
--- a/msvc/bin.vcproj
+++ b/msvc/bin.vcproj
@@ -107,7 +107,7 @@
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
diff --git a/msvc/lib.2010.vcxproj b/msvc/lib.2010.vcxproj
index dde2fc4..f22b488 100644
--- a/msvc/lib.2010.vcxproj
+++ b/msvc/lib.2010.vcxproj
@@ -28,13 +28,13 @@
-
-
+
+
-
+
@@ -136,12 +136,12 @@
C:\Program Files %28x86%29\PostgreSQL\8.4\lib;$(LibraryPath)
C:\Program Files %28x86%29\PostgreSQL\8.3\lib;$(LibraryPath)
C:\Program Files %28x86%29\PostgreSQL\8.3\lib;$(LibraryPath)
- pg_reorg
- pg_reorg
- pg_reorg
- pg_reorg
- pg_reorg
- pg_reorg
+ pg_repack
+ pg_repack
+ pg_repack
+ pg_repack
+ pg_repack
+ pg_repack
diff --git a/msvc/lib.2010.vcxproj.filters b/msvc/lib.2010.vcxproj.filters
index 5a16905..46589da 100644
--- a/msvc/lib.2010.vcxproj.filters
+++ b/msvc/lib.2010.vcxproj.filters
@@ -12,11 +12,11 @@
-
-
+
+
-
+
src
diff --git a/msvc/lib.vcproj b/msvc/lib.vcproj
index c24bfc4..fc9826c 100755
--- a/msvc/lib.vcproj
+++ b/msvc/lib.vcproj
@@ -115,7 +115,7 @@
>
@@ -138,11 +138,11 @@
>
diff --git a/msvc/pg_reorg.2010.sln b/msvc/pg_repack.2010.sln
similarity index 100%
rename from msvc/pg_reorg.2010.sln
rename to msvc/pg_repack.2010.sln
diff --git a/msvc/pg_reorg.sln b/msvc/pg_repack.sln
similarity index 100%
rename from msvc/pg_reorg.sln
rename to msvc/pg_repack.sln