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_reorgpg_batch の2つのツールを頒布しています。

+

このプロジェクトでは pg_repackpg_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 の中のプロジェクトです。

説明

-

pg_reorg は、PostgreSQLデータベース内のテーブルを再編成(行の並び替え)するユーティリティです。 +

pg_repack は、PostgreSQLデータベース内のテーブルを再編成(行の並び替え)するユーティリティです。 clusterdb と異なり、参照/更新処理をブロックしません。 再編成の方式として、以下のいずれか1つを選択できます。

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.