prestogres 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +20 -0
- data/LICENSE +202 -0
- data/NOTICE +22 -0
- data/README.md +217 -0
- data/Rakefile +13 -0
- data/VERSION +1 -0
- data/bin/prestogres +254 -0
- data/config/pcp.conf.sample +28 -0
- data/config/pgpool.conf +678 -0
- data/config/pool_hba.conf +84 -0
- data/config/pool_passwd +0 -0
- data/config/postgresql.conf +2 -0
- data/ext/.gitignore +6 -0
- data/ext/depend +26 -0
- data/ext/extconf.rb +4 -0
- data/ext/prestogres_config.c +12 -0
- data/pgpool2/.gitignore +36 -0
- data/pgpool2/AUTHORS +4 -0
- data/pgpool2/COPYING +12 -0
- data/pgpool2/ChangeLog +1 -0
- data/pgpool2/INSTALL +1 -0
- data/pgpool2/Makefile.am +159 -0
- data/pgpool2/Makefile.in +1187 -0
- data/pgpool2/NEWS +4960 -0
- data/pgpool2/README +1 -0
- data/pgpool2/README.euc_jp +1 -0
- data/pgpool2/README.online-recovery +62 -0
- data/pgpool2/TODO +103 -0
- data/pgpool2/ac_func_accept_argtypes.m4 +85 -0
- data/pgpool2/aclocal.m4 +1088 -0
- data/pgpool2/c-compiler.m4 +134 -0
- data/pgpool2/c-library.m4 +325 -0
- data/pgpool2/child.c +2097 -0
- data/pgpool2/config.guess +1532 -0
- data/pgpool2/config.h.in +332 -0
- data/pgpool2/config.sub +1640 -0
- data/pgpool2/configure +15752 -0
- data/pgpool2/configure.in +392 -0
- data/pgpool2/depcomp +522 -0
- data/pgpool2/doc/basebackup.sh +17 -0
- data/pgpool2/doc/pgpool-de.html +4220 -0
- data/pgpool2/doc/pgpool-en.html +5738 -0
- data/pgpool2/doc/pgpool-fr.html +4118 -0
- data/pgpool2/doc/pgpool-ja.css +198 -0
- data/pgpool2/doc/pgpool-ja.html +11279 -0
- data/pgpool2/doc/pgpool-zh_cn.html +4445 -0
- data/pgpool2/doc/pgpool.css +280 -0
- data/pgpool2/doc/pgpool_remote_start +13 -0
- data/pgpool2/doc/recovery.conf.sample +117 -0
- data/pgpool2/doc/tutorial-en.html +707 -0
- data/pgpool2/doc/tutorial-ja.html +422 -0
- data/pgpool2/doc/tutorial-memqcache-en.html +325 -0
- data/pgpool2/doc/tutorial-memqcache-ja.html +370 -0
- data/pgpool2/doc/tutorial-memqcache-zh_cn.html +322 -0
- data/pgpool2/doc/tutorial-watchdog-en.html +306 -0
- data/pgpool2/doc/tutorial-watchdog-ja.html +343 -0
- data/pgpool2/doc/tutorial-watchdog-zh_cn.html +301 -0
- data/pgpool2/doc/tutorial-zh_cn.html +537 -0
- data/pgpool2/doc/watchdog.png +0 -0
- data/pgpool2/doc/wd-en.html +236 -0
- data/pgpool2/doc/wd-en.jpg +0 -0
- data/pgpool2/doc/wd-ja.html +219 -0
- data/pgpool2/doc/wd-ja.jpg +0 -0
- data/pgpool2/doc/wd-zh_cn.html +201 -0
- data/pgpool2/doc/where_to_send_queries.odg +0 -0
- data/pgpool2/doc/where_to_send_queries.pdf +0 -0
- data/pgpool2/general.m4 +166 -0
- data/pgpool2/getopt_long.c +200 -0
- data/pgpool2/getopt_long.h +44 -0
- data/pgpool2/install-sh +251 -0
- data/pgpool2/ltmain.sh +8406 -0
- data/pgpool2/m4/libtool.m4 +7360 -0
- data/pgpool2/m4/ltoptions.m4 +368 -0
- data/pgpool2/m4/ltsugar.m4 +123 -0
- data/pgpool2/m4/ltversion.m4 +23 -0
- data/pgpool2/m4/lt~obsolete.m4 +92 -0
- data/pgpool2/main.c +2971 -0
- data/pgpool2/md5.c +444 -0
- data/pgpool2/md5.h +28 -0
- data/pgpool2/missing +360 -0
- data/pgpool2/mkinstalldirs +40 -0
- data/pgpool2/parser/Makefile.am +50 -0
- data/pgpool2/parser/Makefile.in +559 -0
- data/pgpool2/parser/copyfuncs.c +3310 -0
- data/pgpool2/parser/gram.c +39100 -0
- data/pgpool2/parser/gram.h +940 -0
- data/pgpool2/parser/gram.y +13408 -0
- data/pgpool2/parser/gramparse.h +74 -0
- data/pgpool2/parser/keywords.c +32 -0
- data/pgpool2/parser/keywords.h +39 -0
- data/pgpool2/parser/kwlist.h +425 -0
- data/pgpool2/parser/kwlookup.c +88 -0
- data/pgpool2/parser/list.c +1156 -0
- data/pgpool2/parser/makefuncs.c +518 -0
- data/pgpool2/parser/makefuncs.h +83 -0
- data/pgpool2/parser/memnodes.h +79 -0
- data/pgpool2/parser/nodes.c +29 -0
- data/pgpool2/parser/nodes.h +609 -0
- data/pgpool2/parser/outfuncs.c +5790 -0
- data/pgpool2/parser/parsenodes.h +2615 -0
- data/pgpool2/parser/parser.c +262 -0
- data/pgpool2/parser/parser.h +46 -0
- data/pgpool2/parser/pg_class.h +158 -0
- data/pgpool2/parser/pg_config_manual.h +273 -0
- data/pgpool2/parser/pg_list.h +352 -0
- data/pgpool2/parser/pg_trigger.h +147 -0
- data/pgpool2/parser/pg_wchar.h +492 -0
- data/pgpool2/parser/pool_memory.c +342 -0
- data/pgpool2/parser/pool_memory.h +77 -0
- data/pgpool2/parser/pool_parser.h +222 -0
- data/pgpool2/parser/pool_string.c +121 -0
- data/pgpool2/parser/pool_string.h +37 -0
- data/pgpool2/parser/primnodes.h +1280 -0
- data/pgpool2/parser/scan.c +4094 -0
- data/pgpool2/parser/scan.l +1451 -0
- data/pgpool2/parser/scanner.h +120 -0
- data/pgpool2/parser/scansup.c +221 -0
- data/pgpool2/parser/scansup.h +28 -0
- data/pgpool2/parser/snprintf.c +1102 -0
- data/pgpool2/parser/stringinfo.c +294 -0
- data/pgpool2/parser/stringinfo.h +178 -0
- data/pgpool2/parser/value.c +78 -0
- data/pgpool2/parser/value.h +62 -0
- data/pgpool2/parser/wchar.c +2048 -0
- data/pgpool2/pcp.conf.sample +28 -0
- data/pgpool2/pcp/Makefile.am +40 -0
- data/pgpool2/pcp/Makefile.in +771 -0
- data/pgpool2/pcp/libpcp_ext.h +250 -0
- data/pgpool2/pcp/md5.c +444 -0
- data/pgpool2/pcp/md5.h +28 -0
- data/pgpool2/pcp/pcp.c +1652 -0
- data/pgpool2/pcp/pcp.h +61 -0
- data/pgpool2/pcp/pcp_attach_node.c +172 -0
- data/pgpool2/pcp/pcp_detach_node.c +185 -0
- data/pgpool2/pcp/pcp_error.c +87 -0
- data/pgpool2/pcp/pcp_node_count.c +160 -0
- data/pgpool2/pcp/pcp_node_info.c +198 -0
- data/pgpool2/pcp/pcp_pool_status.c +166 -0
- data/pgpool2/pcp/pcp_proc_count.c +166 -0
- data/pgpool2/pcp/pcp_proc_info.c +261 -0
- data/pgpool2/pcp/pcp_promote_node.c +185 -0
- data/pgpool2/pcp/pcp_recovery_node.c +172 -0
- data/pgpool2/pcp/pcp_stop_pgpool.c +179 -0
- data/pgpool2/pcp/pcp_stream.c +385 -0
- data/pgpool2/pcp/pcp_stream.h +52 -0
- data/pgpool2/pcp/pcp_systemdb_info.c +194 -0
- data/pgpool2/pcp/pcp_watchdog_info.c +211 -0
- data/pgpool2/pcp_child.c +1493 -0
- data/pgpool2/pg_md5.c +305 -0
- data/pgpool2/pgpool.8.in +121 -0
- data/pgpool2/pgpool.conf +553 -0
- data/pgpool2/pgpool.conf.sample +666 -0
- data/pgpool2/pgpool.conf.sample-master-slave +665 -0
- data/pgpool2/pgpool.conf.sample-replication +664 -0
- data/pgpool2/pgpool.conf.sample-stream +664 -0
- data/pgpool2/pgpool.spec +264 -0
- data/pgpool2/pgpool_adm/TODO +7 -0
- data/pgpool2/pgpool_adm/pgpool_adm--1.0.sql +85 -0
- data/pgpool2/pgpool_adm/pgpool_adm.c +558 -0
- data/pgpool2/pgpool_adm/pgpool_adm.control +5 -0
- data/pgpool2/pgpool_adm/pgpool_adm.h +46 -0
- data/pgpool2/pgpool_adm/pgpool_adm.sql.in +85 -0
- data/pgpool2/pool.h +655 -0
- data/pgpool2/pool_auth.c +1390 -0
- data/pgpool2/pool_config.c +5007 -0
- data/pgpool2/pool_config.h +284 -0
- data/pgpool2/pool_config.l +3281 -0
- data/pgpool2/pool_config_md5.c +29 -0
- data/pgpool2/pool_connection_pool.c +812 -0
- data/pgpool2/pool_error.c +242 -0
- data/pgpool2/pool_globals.c +27 -0
- data/pgpool2/pool_hba.c +1723 -0
- data/pgpool2/pool_hba.conf.sample +67 -0
- data/pgpool2/pool_ip.c +567 -0
- data/pgpool2/pool_ip.h +65 -0
- data/pgpool2/pool_ipc.h +38 -0
- data/pgpool2/pool_lobj.c +242 -0
- data/pgpool2/pool_lobj.h +32 -0
- data/pgpool2/pool_memqcache.c +3818 -0
- data/pgpool2/pool_memqcache.h +268 -0
- data/pgpool2/pool_params.c +163 -0
- data/pgpool2/pool_passwd.c +249 -0
- data/pgpool2/pool_passwd.h +41 -0
- data/pgpool2/pool_path.c +193 -0
- data/pgpool2/pool_path.h +81 -0
- data/pgpool2/pool_process_context.c +247 -0
- data/pgpool2/pool_process_context.h +62 -0
- data/pgpool2/pool_process_query.c +5001 -0
- data/pgpool2/pool_process_reporting.c +1671 -0
- data/pgpool2/pool_process_reporting.h +44 -0
- data/pgpool2/pool_proto2.c +671 -0
- data/pgpool2/pool_proto_modules.c +3524 -0
- data/pgpool2/pool_proto_modules.h +185 -0
- data/pgpool2/pool_query_cache.c +1020 -0
- data/pgpool2/pool_query_context.c +1871 -0
- data/pgpool2/pool_query_context.h +105 -0
- data/pgpool2/pool_relcache.c +284 -0
- data/pgpool2/pool_relcache.h +78 -0
- data/pgpool2/pool_rewrite_outfuncs.c +9060 -0
- data/pgpool2/pool_rewrite_query.c +715 -0
- data/pgpool2/pool_rewrite_query.h +192 -0
- data/pgpool2/pool_select_walker.c +1150 -0
- data/pgpool2/pool_select_walker.h +68 -0
- data/pgpool2/pool_sema.c +161 -0
- data/pgpool2/pool_session_context.c +952 -0
- data/pgpool2/pool_session_context.h +203 -0
- data/pgpool2/pool_shmem.c +185 -0
- data/pgpool2/pool_signal.c +158 -0
- data/pgpool2/pool_signal.h +61 -0
- data/pgpool2/pool_ssl.c +339 -0
- data/pgpool2/pool_stream.c +962 -0
- data/pgpool2/pool_stream.h +61 -0
- data/pgpool2/pool_system.c +659 -0
- data/pgpool2/pool_timestamp.c +1215 -0
- data/pgpool2/pool_timestamp.h +38 -0
- data/pgpool2/pool_type.h +171 -0
- data/pgpool2/pool_worker_child.c +384 -0
- data/pgpool2/ps_status.c +404 -0
- data/pgpool2/recovery.c +435 -0
- data/pgpool2/redhat/pgpool.conf.sample.patch +52 -0
- data/pgpool2/redhat/pgpool.init +201 -0
- data/pgpool2/redhat/pgpool.sysconfig +7 -0
- data/pgpool2/redhat/rpm_installer/basebackup-replication.sh +53 -0
- data/pgpool2/redhat/rpm_installer/basebackup-stream.sh +55 -0
- data/pgpool2/redhat/rpm_installer/config_for_script +17 -0
- data/pgpool2/redhat/rpm_installer/failover.sh +64 -0
- data/pgpool2/redhat/rpm_installer/getsources.sh +141 -0
- data/pgpool2/redhat/rpm_installer/install.sh +1363 -0
- data/pgpool2/redhat/rpm_installer/pgpool_recovery_pitr +47 -0
- data/pgpool2/redhat/rpm_installer/pgpool_remote_start +15 -0
- data/pgpool2/redhat/rpm_installer/recovery.conf +4 -0
- data/pgpool2/redhat/rpm_installer/uninstall.sh +57 -0
- data/pgpool2/sample/dist_def_pgbench.sql +73 -0
- data/pgpool2/sample/pgpool.pam +3 -0
- data/pgpool2/sample/pgpool_recovery +20 -0
- data/pgpool2/sample/pgpool_recovery_pitr +19 -0
- data/pgpool2/sample/pgpool_remote_start +13 -0
- data/pgpool2/sample/replicate_def_pgbench.sql +18 -0
- data/pgpool2/sql/insert_lock.sql +15 -0
- data/pgpool2/sql/pgpool-recovery/pgpool-recovery.c +280 -0
- data/pgpool2/sql/pgpool-recovery/pgpool-recovery.sql.in +19 -0
- data/pgpool2/sql/pgpool-recovery/pgpool_recovery--1.0.sql +24 -0
- data/pgpool2/sql/pgpool-recovery/pgpool_recovery.control +5 -0
- data/pgpool2/sql/pgpool-recovery/uninstall_pgpool-recovery.sql +3 -0
- data/pgpool2/sql/pgpool-regclass/pgpool-regclass.c +206 -0
- data/pgpool2/sql/pgpool-regclass/pgpool-regclass.sql.in +4 -0
- data/pgpool2/sql/pgpool-regclass/pgpool_regclass--1.0.sql +7 -0
- data/pgpool2/sql/pgpool-regclass/pgpool_regclass.control +5 -0
- data/pgpool2/sql/pgpool-regclass/uninstall_pgpool-regclass.sql +1 -0
- data/pgpool2/sql/system_db.sql +38 -0
- data/pgpool2/strlcpy.c +85 -0
- data/pgpool2/test/C/test_extended.c +98 -0
- data/pgpool2/test/jdbc/.cvsignore +2 -0
- data/pgpool2/test/jdbc/AutoCommitTest.java +45 -0
- data/pgpool2/test/jdbc/BatchTest.java +55 -0
- data/pgpool2/test/jdbc/ColumnTest.java +60 -0
- data/pgpool2/test/jdbc/CreateTempTableTest.java +48 -0
- data/pgpool2/test/jdbc/InsertTest.java +34 -0
- data/pgpool2/test/jdbc/LockTest.java +36 -0
- data/pgpool2/test/jdbc/PgpoolTest.java +75 -0
- data/pgpool2/test/jdbc/README.euc_jp +73 -0
- data/pgpool2/test/jdbc/RunTest.java +83 -0
- data/pgpool2/test/jdbc/SelectTest.java +37 -0
- data/pgpool2/test/jdbc/UpdateTest.java +32 -0
- data/pgpool2/test/jdbc/expected/CreateTempTable +1 -0
- data/pgpool2/test/jdbc/expected/autocommit +10 -0
- data/pgpool2/test/jdbc/expected/batch +1 -0
- data/pgpool2/test/jdbc/expected/column +100 -0
- data/pgpool2/test/jdbc/expected/insert +1 -0
- data/pgpool2/test/jdbc/expected/lock +100 -0
- data/pgpool2/test/jdbc/expected/select +2 -0
- data/pgpool2/test/jdbc/expected/update +1 -0
- data/pgpool2/test/jdbc/pgpool.properties +7 -0
- data/pgpool2/test/jdbc/prepare.sql +54 -0
- data/pgpool2/test/jdbc/run.sh +6 -0
- data/pgpool2/test/parser/.cvsignore +6 -0
- data/pgpool2/test/parser/README +32 -0
- data/pgpool2/test/parser/expected/copy.out +17 -0
- data/pgpool2/test/parser/expected/create.out +64 -0
- data/pgpool2/test/parser/expected/cursor.out +37 -0
- data/pgpool2/test/parser/expected/delete.out +10 -0
- data/pgpool2/test/parser/expected/drop.out +12 -0
- data/pgpool2/test/parser/expected/insert.out +13 -0
- data/pgpool2/test/parser/expected/misc.out +28 -0
- data/pgpool2/test/parser/expected/prepare.out +4 -0
- data/pgpool2/test/parser/expected/privileges.out +31 -0
- data/pgpool2/test/parser/expected/scanner.out +30 -0
- data/pgpool2/test/parser/expected/select.out +89 -0
- data/pgpool2/test/parser/expected/transaction.out +38 -0
- data/pgpool2/test/parser/expected/update.out +11 -0
- data/pgpool2/test/parser/expected/v84.out +37 -0
- data/pgpool2/test/parser/expected/v90.out +25 -0
- data/pgpool2/test/parser/expected/var.out +22 -0
- data/pgpool2/test/parser/input/alter.sql +2 -0
- data/pgpool2/test/parser/input/copy.sql +17 -0
- data/pgpool2/test/parser/input/create.sql +64 -0
- data/pgpool2/test/parser/input/cursor.sql +37 -0
- data/pgpool2/test/parser/input/delete.sql +10 -0
- data/pgpool2/test/parser/input/drop.sql +12 -0
- data/pgpool2/test/parser/input/insert.sql +13 -0
- data/pgpool2/test/parser/input/misc.sql +28 -0
- data/pgpool2/test/parser/input/prepare.sql +4 -0
- data/pgpool2/test/parser/input/privileges.sql +31 -0
- data/pgpool2/test/parser/input/scanner.sql +34 -0
- data/pgpool2/test/parser/input/select.sql +89 -0
- data/pgpool2/test/parser/input/transaction.sql +38 -0
- data/pgpool2/test/parser/input/update.sql +11 -0
- data/pgpool2/test/parser/input/v84.sql +37 -0
- data/pgpool2/test/parser/input/v90.sql +38 -0
- data/pgpool2/test/parser/input/var.sql +22 -0
- data/pgpool2/test/parser/main.c +96 -0
- data/pgpool2/test/parser/parse_schedule +16 -0
- data/pgpool2/test/parser/pool.h +13 -0
- data/pgpool2/test/parser/run-test +62 -0
- data/pgpool2/test/pdo-test/README.euc_jp +58 -0
- data/pgpool2/test/pdo-test/SQLlist/test1.sql +3 -0
- data/pgpool2/test/pdo-test/SQLlist/test2.sql +3 -0
- data/pgpool2/test/pdo-test/collections.inc +11 -0
- data/pgpool2/test/pdo-test/def.inc +7 -0
- data/pgpool2/test/pdo-test/log.txt +0 -0
- data/pgpool2/test/pdo-test/mod/database.inc +36 -0
- data/pgpool2/test/pdo-test/mod/def.inc +0 -0
- data/pgpool2/test/pdo-test/mod/errorhandler.inc +27 -0
- data/pgpool2/test/pdo-test/pdotest.php +11 -0
- data/pgpool2/test/pdo-test/regsql.inc +56 -0
- data/pgpool2/test/pgpool_setup +898 -0
- data/pgpool2/test/regression/README +39 -0
- data/pgpool2/test/regression/clean.sh +21 -0
- data/pgpool2/test/regression/libs.sh +16 -0
- data/pgpool2/test/regression/regress.sh +166 -0
- data/pgpool2/test/regression/tests/001.load_balance/test.sh +128 -0
- data/pgpool2/test/regression/tests/002.native_replication/PgTester.java +47 -0
- data/pgpool2/test/regression/tests/002.native_replication/create.sql +6 -0
- data/pgpool2/test/regression/tests/002.native_replication/test.sh +71 -0
- data/pgpool2/test/regression/tests/003.failover/expected.r +6 -0
- data/pgpool2/test/regression/tests/003.failover/expected.s +6 -0
- data/pgpool2/test/regression/tests/003.failover/test.sh +45 -0
- data/pgpool2/test/regression/tests/004.watchdog/master.conf +12 -0
- data/pgpool2/test/regression/tests/004.watchdog/standby.conf +19 -0
- data/pgpool2/test/regression/tests/004.watchdog/test.sh +52 -0
- data/pgpool2/test/regression/tests/050.bug58/test.sh +50 -0
- data/pgpool2/test/regression/tests/051.bug60/bug.sql +12 -0
- data/pgpool2/test/regression/tests/051.bug60/database-clean.sql +6 -0
- data/pgpool2/test/regression/tests/051.bug60/database-setup.sql +28 -0
- data/pgpool2/test/regression/tests/051.bug60/test.sh +79 -0
- data/pgpool2/test/regression/tests/052.do_query/test.sh +44 -0
- data/pgpool2/test/regression/tests/053.insert_lock_hangs/test.sh +81 -0
- data/pgpool2/test/regression/tests/054.postgres_fdw/test.sh +67 -0
- data/pgpool2/test/regression/tests/055.backend_all_down/test.sh +52 -0
- data/pgpool2/test/regression/tests/056.bug63/jdbctest2.java +66 -0
- data/pgpool2/test/regression/tests/056.bug63/test.sh +47 -0
- data/pgpool2/test/regression/tests/057.bug61/test.sh +40 -0
- data/pgpool2/test/regression/tests/058.bug68/jdbctest3.java +45 -0
- data/pgpool2/test/regression/tests/058.bug68/test.sh +47 -0
- data/pgpool2/test/timestamp/expected/insert.out +16 -0
- data/pgpool2/test/timestamp/expected/misc.out +3 -0
- data/pgpool2/test/timestamp/expected/update.out +6 -0
- data/pgpool2/test/timestamp/input/insert.sql +16 -0
- data/pgpool2/test/timestamp/input/misc.sql +3 -0
- data/pgpool2/test/timestamp/input/update.sql +6 -0
- data/pgpool2/test/timestamp/main.c +129 -0
- data/pgpool2/test/timestamp/parse_schedule +3 -0
- data/pgpool2/test/timestamp/run-test +69 -0
- data/pgpool2/version.h +1 -0
- data/pgpool2/watchdog/Makefile.am +17 -0
- data/pgpool2/watchdog/Makefile.in +505 -0
- data/pgpool2/watchdog/test/stab.c +266 -0
- data/pgpool2/watchdog/test/test.c +85 -0
- data/pgpool2/watchdog/test/wd_child_t.c +87 -0
- data/pgpool2/watchdog/test/wd_lifecheck_t.c +87 -0
- data/pgpool2/watchdog/test/wd_packet_t.c +87 -0
- data/pgpool2/watchdog/test/wd_ping_t.c +20 -0
- data/pgpool2/watchdog/watchdog.c +408 -0
- data/pgpool2/watchdog/watchdog.h +209 -0
- data/pgpool2/watchdog/wd_child.c +444 -0
- data/pgpool2/watchdog/wd_ext.h +123 -0
- data/pgpool2/watchdog/wd_heartbeat.c +577 -0
- data/pgpool2/watchdog/wd_if.c +216 -0
- data/pgpool2/watchdog/wd_init.c +126 -0
- data/pgpool2/watchdog/wd_interlock.c +347 -0
- data/pgpool2/watchdog/wd_lifecheck.c +512 -0
- data/pgpool2/watchdog/wd_list.c +429 -0
- data/pgpool2/watchdog/wd_packet.c +1159 -0
- data/pgpool2/watchdog/wd_ping.c +330 -0
- data/pgpool2/ylwrap +223 -0
- data/pgsql/presto_client.py +346 -0
- data/pgsql/prestogres.py +156 -0
- data/pgsql/setup_functions.sql +21 -0
- data/pgsql/setup_language.sql +3 -0
- data/prestogres.gemspec +23 -0
- metadata +496 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#! /bin/sh
|
|
2
|
+
#-------------------------------------------------------------------
|
|
3
|
+
# test script for failover
|
|
4
|
+
#
|
|
5
|
+
source $TESTLIBS
|
|
6
|
+
TESTDIR=testdir
|
|
7
|
+
PG_CTL=$PGBIN/pg_ctl
|
|
8
|
+
PSQL=$PGBIN/psql
|
|
9
|
+
|
|
10
|
+
for mode in s r
|
|
11
|
+
do
|
|
12
|
+
rm -fr $TESTDIR
|
|
13
|
+
mkdir $TESTDIR
|
|
14
|
+
cd $TESTDIR
|
|
15
|
+
|
|
16
|
+
# create test environment
|
|
17
|
+
echo -n "creating test environment..."
|
|
18
|
+
sh $PGPOOL_SETUP -m $mode -n 2 --no-stop|| exit 1
|
|
19
|
+
echo "done."
|
|
20
|
+
|
|
21
|
+
source ./bashrc.ports
|
|
22
|
+
|
|
23
|
+
export PGPORT=$PGPOOL_PORT
|
|
24
|
+
|
|
25
|
+
$PSQL -c "show pool_nodes" test
|
|
26
|
+
|
|
27
|
+
# trrigger failover
|
|
28
|
+
$PG_CTL -D data1 -m f stop
|
|
29
|
+
wait_for_pgpool_startup
|
|
30
|
+
$PSQL -c "show pool_nodes" test > result
|
|
31
|
+
|
|
32
|
+
# check the output of "show pool_nodes".
|
|
33
|
+
cmp result ../expected.$mode > /dev/null 2>&1
|
|
34
|
+
if [ $? != 0 ];then
|
|
35
|
+
./shutdownall
|
|
36
|
+
exit 1
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
./shutdownall
|
|
40
|
+
|
|
41
|
+
cd ..
|
|
42
|
+
|
|
43
|
+
done
|
|
44
|
+
|
|
45
|
+
exit 0
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# master watchdog
|
|
2
|
+
use_watchdog = on
|
|
3
|
+
wd_hostname = 'localhost'
|
|
4
|
+
wd_port = 11004
|
|
5
|
+
wd_heartbeat_port = 11005
|
|
6
|
+
heartbeat_destination0 = 'localhost'
|
|
7
|
+
heartbeat_destination_port0 = 11005
|
|
8
|
+
heartbeat_destination1 = 'localhost'
|
|
9
|
+
heartbeat_destination_port1 = 11105
|
|
10
|
+
other_pgpool_hostname1 = 'localhost'
|
|
11
|
+
other_pgpool_port1 = 11102
|
|
12
|
+
other_wd_port1 = 11104
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# standby watchdog
|
|
2
|
+
use_watchdog = on
|
|
3
|
+
wd_hostname = 'localhost'
|
|
4
|
+
wd_port = 11104
|
|
5
|
+
wd_heartbeat_port = 11105
|
|
6
|
+
heartbeat_destination0 = 'localhost'
|
|
7
|
+
heartbeat_destination_port0 = 11105
|
|
8
|
+
heartbeat_destination1 = 'localhost'
|
|
9
|
+
heartbeat_destination_port1 = 11005
|
|
10
|
+
other_pgpool_hostname1 = 'localhost'
|
|
11
|
+
other_pgpool_port1 = 11002
|
|
12
|
+
other_wd_port1 = 11004
|
|
13
|
+
|
|
14
|
+
backend_hostname0 = ''
|
|
15
|
+
backend_port0 = 11000
|
|
16
|
+
backend_weight0 = 1
|
|
17
|
+
backend_hostname1 = ''
|
|
18
|
+
backend_port1 = 11001
|
|
19
|
+
backend_weight1 = 1
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#! /bin/sh
|
|
2
|
+
#-------------------------------------------------------------------
|
|
3
|
+
# test script for watchdog
|
|
4
|
+
source $TESTLIBS
|
|
5
|
+
TESTDIR=master
|
|
6
|
+
|
|
7
|
+
rm -fr $TESTDIR
|
|
8
|
+
mkdir $TESTDIR
|
|
9
|
+
cd $TESTDIR
|
|
10
|
+
|
|
11
|
+
# create master environment
|
|
12
|
+
echo -n "creating master pgpool..."
|
|
13
|
+
sh $PGPOOL_SETUP -m s -n 2 -p 11000|| exit 1
|
|
14
|
+
echo "done."
|
|
15
|
+
cat ../master.conf >> etc/pgpool.conf
|
|
16
|
+
|
|
17
|
+
./startall
|
|
18
|
+
wait_for_pgpool_startup
|
|
19
|
+
|
|
20
|
+
cd ..
|
|
21
|
+
|
|
22
|
+
# create standby environment
|
|
23
|
+
sdir=standby
|
|
24
|
+
rm -fr $sdir
|
|
25
|
+
mkdir $sdir
|
|
26
|
+
cd $sdir
|
|
27
|
+
echo -n "creating standby pgpool..."
|
|
28
|
+
sh $PGPOOL_SETUP -m s -n 2 -p 11100|| exit 1
|
|
29
|
+
echo "done."
|
|
30
|
+
cat ../standby.conf >> etc/pgpool.conf
|
|
31
|
+
egrep 'backend_data_directory0|backend_data_directory1|failover_command|follow_master_command' ../$TESTDIR/etc/pgpool.conf >> etc/pgpool.conf
|
|
32
|
+
./startall
|
|
33
|
+
wait_for_pgpool_startup
|
|
34
|
+
cd ..
|
|
35
|
+
|
|
36
|
+
# stop master pgpool and see if standby take over
|
|
37
|
+
$PGPOOL_INSTALL_DIR/bin/pgpool -f master/etc/pgpool.conf -m f stop
|
|
38
|
+
|
|
39
|
+
sleep 1
|
|
40
|
+
|
|
41
|
+
RESULT=`grep "wd_escalation: escalated to master pgpool successfully" standby/log/pgpool.log`
|
|
42
|
+
|
|
43
|
+
cd master
|
|
44
|
+
./shutdownall
|
|
45
|
+
cd ../standby
|
|
46
|
+
./shutdownall
|
|
47
|
+
|
|
48
|
+
if [ -z "$RESULT" ]; then
|
|
49
|
+
exit 1
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
exit 0
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#! /bin/sh
|
|
2
|
+
#-------------------------------------------------------------------
|
|
3
|
+
# test script for bug#58
|
|
4
|
+
# 0000058: query cache invalidation does not fire for multiple DML in transaction
|
|
5
|
+
WHOAMI=`whoami`
|
|
6
|
+
source $TESTLIBS
|
|
7
|
+
TESTDIR=testdir
|
|
8
|
+
PSQL=$PGBIN/psql
|
|
9
|
+
|
|
10
|
+
rm -fr $TESTDIR
|
|
11
|
+
mkdir $TESTDIR
|
|
12
|
+
cd $TESTDIR
|
|
13
|
+
|
|
14
|
+
# create test environment
|
|
15
|
+
echo -n "creating test environment..."
|
|
16
|
+
sh $PGPOOL_SETUP -m s -n 1 --no-stop|| exit 1
|
|
17
|
+
echo "done."
|
|
18
|
+
|
|
19
|
+
source ./bashrc.ports
|
|
20
|
+
|
|
21
|
+
echo "memory_cache_enabled = on" >> etc/pgpool.conf
|
|
22
|
+
|
|
23
|
+
#./startall
|
|
24
|
+
|
|
25
|
+
export PGPORT=$PGPOOL_PORT
|
|
26
|
+
|
|
27
|
+
wait_for_pgpool_startup
|
|
28
|
+
|
|
29
|
+
$PSQL test <<EOF
|
|
30
|
+
CREATE TABLE t1(i INTEGER);
|
|
31
|
+
CREATE TABLE t2(i INTEGER);
|
|
32
|
+
SELECT * FROM t1; -- this creates a cache entry
|
|
33
|
+
BEGIN;
|
|
34
|
+
DELETE FROM t2 WHERE i = 0; -- this tries to invalidate cache entry for t2 but fails. Fine.
|
|
35
|
+
INSERT INTO t1(i) VALUES(1); -- because of the bug, this does not invalidate the cache entry for t1
|
|
36
|
+
COMMIT;
|
|
37
|
+
|
|
38
|
+
SELECT * FROM t1; -- because the cache entry for t1 remains, this returns outdated result
|
|
39
|
+
EOF
|
|
40
|
+
|
|
41
|
+
./shutdownall
|
|
42
|
+
|
|
43
|
+
#
|
|
44
|
+
# check if pgpool fetches outdated cache entry
|
|
45
|
+
grep "query result fetched from cache" log/pgpool.log >/dev/null 2>&1
|
|
46
|
+
if [ $? = 0 ];then
|
|
47
|
+
# cache found! The bug reveals.
|
|
48
|
+
exit 1
|
|
49
|
+
fi
|
|
50
|
+
exit 0
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-- This script shows the problem. When run in a psql connected to
|
|
2
|
+
-- pgpool with one master and one read-only replica, this will cause
|
|
3
|
+
-- the pgpool process to exit because the exception found in the
|
|
4
|
+
-- commit (in the master node) does not match the success code for the
|
|
5
|
+
-- commit in the read-only replica.
|
|
6
|
+
|
|
7
|
+
-- The expected behavior would be to continue execution normally
|
|
8
|
+
-- without dropping the connection.
|
|
9
|
+
|
|
10
|
+
begin;
|
|
11
|
+
insert into my_table ( col1 ) values ( 'ouch' );
|
|
12
|
+
commit;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-- This is a simple -*- sql -*- file that sets up a simple table to
|
|
2
|
+
-- which inserts cannot happen. This is enforced by a deferred
|
|
3
|
+
-- trigger, which allows for the easy reproduction of an issue
|
|
4
|
+
-- observed with commit raises an exception.
|
|
5
|
+
|
|
6
|
+
create table my_table (
|
|
7
|
+
col1 text not null primary key
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
-- The p1() function simply takes the place of a trigger that would
|
|
11
|
+
-- perform semantic or integrity validations that must occur at the
|
|
12
|
+
-- end of the transaction. In our case, it simply raises an exception
|
|
13
|
+
-- (ie, always fails).
|
|
14
|
+
|
|
15
|
+
create function p1() returns trigger as
|
|
16
|
+
$$
|
|
17
|
+
begin
|
|
18
|
+
raise exception 'some integrity violation';
|
|
19
|
+
end;
|
|
20
|
+
$$
|
|
21
|
+
language plpgsql;
|
|
22
|
+
|
|
23
|
+
-- A simple delayed constraint that insures that the p1() function is
|
|
24
|
+
-- invoked at the commit stage.
|
|
25
|
+
|
|
26
|
+
create constraint trigger t1 after insert on my_table
|
|
27
|
+
deferrable initially deferred
|
|
28
|
+
for each row execute procedure p1();
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#! /bin/sh
|
|
2
|
+
#-------------------------------------------------------------------
|
|
3
|
+
# test script for bug reported in bug track #60
|
|
4
|
+
# The bug occurs when all of conditions below are met:
|
|
5
|
+
#
|
|
6
|
+
# - streaming replication mode
|
|
7
|
+
# - run in an explicit transaction
|
|
8
|
+
# - primary fails on commit
|
|
9
|
+
#
|
|
10
|
+
# Note that pgpool disconnects the session as expected but the
|
|
11
|
+
# reporter thinks pgpool should not disconnects the session, just
|
|
12
|
+
# report an error. If the script is executed under native replication
|
|
13
|
+
# mode, session is not disconnect. So I think the complain is fair
|
|
14
|
+
# enough.
|
|
15
|
+
#
|
|
16
|
+
# Fixed in: http://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=e7e350465a6f33562322304b56f02cdbb1492641
|
|
17
|
+
#
|
|
18
|
+
WHOAMI=`whoami`
|
|
19
|
+
source $TESTLIBS
|
|
20
|
+
TESTDIR=testdir
|
|
21
|
+
PSQL=$PGBIN/psql
|
|
22
|
+
|
|
23
|
+
rm -fr $TESTDIR
|
|
24
|
+
mkdir $TESTDIR
|
|
25
|
+
cd $TESTDIR
|
|
26
|
+
|
|
27
|
+
# create test environment
|
|
28
|
+
echo -n "creating test environment..."
|
|
29
|
+
sh $PGPOOL_SETUP -m s -n 2 --no-stop || exit 1
|
|
30
|
+
echo "done."
|
|
31
|
+
|
|
32
|
+
source ./bashrc.ports
|
|
33
|
+
|
|
34
|
+
#./startall
|
|
35
|
+
wait_for_pgpool_startup
|
|
36
|
+
|
|
37
|
+
export PGPORT=$PGPOOL_PORT
|
|
38
|
+
|
|
39
|
+
# set up trigger
|
|
40
|
+
$PSQL -f ../database-setup.sql test
|
|
41
|
+
|
|
42
|
+
# trigger the bug
|
|
43
|
+
$PSQL -f ../bug.sql test
|
|
44
|
+
|
|
45
|
+
# trigger the bug in extended protocol mode
|
|
46
|
+
perl <<EOF
|
|
47
|
+
use strict;
|
|
48
|
+
use DBI;
|
|
49
|
+
my \$dbh;
|
|
50
|
+
my \$sth;
|
|
51
|
+
\$dbh = DBI->connect("DBI:Pg:dbname=test;host=localhost;port=$PGPOOL_PORT","$WHOAMI",'');
|
|
52
|
+
if (\$dbh)
|
|
53
|
+
{
|
|
54
|
+
\$dbh->{AutoCommit} = 0;
|
|
55
|
+
\$sth = \$dbh->prepare("insert into my_table ( col1 ) values (?)");
|
|
56
|
+
\$sth->execute('ouch');
|
|
57
|
+
# \$sth = \$dbh->prepare("insert into t1 ( i ) values (?)");
|
|
58
|
+
# \$sth->execute(1);
|
|
59
|
+
|
|
60
|
+
\$sth->finish;
|
|
61
|
+
\$dbh->commit;
|
|
62
|
+
}
|
|
63
|
+
\$dbh->disconnect();
|
|
64
|
+
EOF
|
|
65
|
+
|
|
66
|
+
# clean up
|
|
67
|
+
#psql -f ../database-clean.sql test
|
|
68
|
+
|
|
69
|
+
./shutdownall
|
|
70
|
+
|
|
71
|
+
#
|
|
72
|
+
# check if kind mismatch error occurs
|
|
73
|
+
#
|
|
74
|
+
grep "kind mismatch among backends." log/pgpool.log >/dev/null 2>&1
|
|
75
|
+
if [ $? = 0 ];then
|
|
76
|
+
# cache found! The bug reveals.
|
|
77
|
+
exit 1
|
|
78
|
+
fi
|
|
79
|
+
exit 0
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#! /bin/sh
|
|
2
|
+
#-------------------------------------------------------------------
|
|
3
|
+
# test script for do_query.
|
|
4
|
+
#
|
|
5
|
+
# If do_query failed while executing in extended query mode, pgpool hangs.
|
|
6
|
+
# precondition to trigger the error: remove pgpool_regclass.so or some such.
|
|
7
|
+
#
|
|
8
|
+
BUG="do_query"
|
|
9
|
+
WHOAMI=`whoami`
|
|
10
|
+
source $TESTLIBS
|
|
11
|
+
TESTDIR=testdir
|
|
12
|
+
PGBENCH=$PGBENCH_PATH
|
|
13
|
+
|
|
14
|
+
rm -fr $TESTDIR
|
|
15
|
+
mkdir $TESTDIR
|
|
16
|
+
cd $TESTDIR
|
|
17
|
+
|
|
18
|
+
# create test environment
|
|
19
|
+
echo -n "creating test environment..."
|
|
20
|
+
sh $PGPOOL_SETUP -m s -n 1 --no-stop|| exit 1
|
|
21
|
+
echo "done."
|
|
22
|
+
|
|
23
|
+
source ./bashrc.ports
|
|
24
|
+
|
|
25
|
+
#./startall
|
|
26
|
+
|
|
27
|
+
export PGPORT=$PGPOOL_PORT
|
|
28
|
+
|
|
29
|
+
wait_for_pgpool_startup
|
|
30
|
+
|
|
31
|
+
echo "SELECT 1" > select.pgbench
|
|
32
|
+
$PGBENCH -i test
|
|
33
|
+
|
|
34
|
+
# run test. This will hung if the bug is remained.
|
|
35
|
+
($PGBENCH -c 10 -t 10 -M extended -f select.pgbench test)&
|
|
36
|
+
sleep 5
|
|
37
|
+
kill $!
|
|
38
|
+
|
|
39
|
+
if [ $? = 0 ];then
|
|
40
|
+
./shutdownall
|
|
41
|
+
exit 1
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
./shutdownall
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
#! /bin/sh
|
|
2
|
+
#-------------------------------------------------------------------
|
|
3
|
+
# test script for bug reported in [pgpool-general: 1684].
|
|
4
|
+
# The bug occurs when all of conditions below are met:
|
|
5
|
+
# - replication mode
|
|
6
|
+
# - pgpool_catalog.insert_lock is created
|
|
7
|
+
# - extended protocol is used
|
|
8
|
+
# - number of DB nodes does not matter
|
|
9
|
+
#
|
|
10
|
+
# Fixed in: http://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=9dd90f45ef4194473c04099e6332af0a8c0d8411
|
|
11
|
+
# Note: to run the test DBD:Pg is required.
|
|
12
|
+
WHOAMI=`whoami`
|
|
13
|
+
source $TESTLIBS
|
|
14
|
+
TESTDIR=testdir
|
|
15
|
+
PSQL=$PGBIN/psql
|
|
16
|
+
|
|
17
|
+
rm -fr $TESTDIR
|
|
18
|
+
mkdir $TESTDIR
|
|
19
|
+
cd $TESTDIR
|
|
20
|
+
|
|
21
|
+
# create test environment
|
|
22
|
+
echo -n "creating test environment..."
|
|
23
|
+
sh $PGPOOL_SETUP -m r -n 1 --no-stop|| exit 1
|
|
24
|
+
echo "done."
|
|
25
|
+
|
|
26
|
+
source ./bashrc.ports
|
|
27
|
+
|
|
28
|
+
#./startall
|
|
29
|
+
wait_for_pgpool_startup
|
|
30
|
+
|
|
31
|
+
export PGPORT=$PGPOOL_PORT
|
|
32
|
+
|
|
33
|
+
# create insert_lock table
|
|
34
|
+
|
|
35
|
+
$PSQL test <<EOF
|
|
36
|
+
DROP TABLE IF EXISTS pgpool_catalog.insert_lock;
|
|
37
|
+
CREATE SCHEMA pgpool_catalog;
|
|
38
|
+
CREATE TABLE pgpool_catalog.insert_lock(reloid OID PRIMARY KEY);
|
|
39
|
+
|
|
40
|
+
-- this row is used as the row lock target when pgpool inserts new oid
|
|
41
|
+
INSERT INTO pgpool_catalog.insert_lock VALUES (0);
|
|
42
|
+
|
|
43
|
+
-- allow "SELECT ... FOR UPDATE" and "INSERT ..." to all roles
|
|
44
|
+
GRANT SELECT ON pgpool_catalog.insert_lock TO PUBLIC;
|
|
45
|
+
GRANT UPDATE ON pgpool_catalog.insert_lock TO PUBLIC;
|
|
46
|
+
GRANT INSERT ON pgpool_catalog.insert_lock TO PUBLIC;
|
|
47
|
+
EOF
|
|
48
|
+
|
|
49
|
+
# create test table
|
|
50
|
+
|
|
51
|
+
$PSQL test <<EOF
|
|
52
|
+
DROP TABLE IF EXISTS kd_test_serial_pgpool;
|
|
53
|
+
CREATE TABLE kd_test_serial_pgpool(id SERIAL, content TEXT);
|
|
54
|
+
EOF
|
|
55
|
+
|
|
56
|
+
cat > test.perl <<EOF
|
|
57
|
+
use strict;
|
|
58
|
+
use DBI;
|
|
59
|
+
my \$dbh;
|
|
60
|
+
my \$sth;
|
|
61
|
+
\$dbh = DBI->connect("DBI:Pg:dbname=test;host=localhost;port=$PGPOOL_PORT","$WHOAMI",'');
|
|
62
|
+
if (\$dbh)
|
|
63
|
+
{
|
|
64
|
+
\$sth = \$dbh->prepare("insert into kd_test_serial_pgpool(content)values (?)"); # hangs
|
|
65
|
+
\$sth->execute('perl lkhzfjktfjktf');
|
|
66
|
+
\$sth->finish;
|
|
67
|
+
}
|
|
68
|
+
\$dbh->disconnect();
|
|
69
|
+
EOF
|
|
70
|
+
|
|
71
|
+
# run test. This will hung if the bug is remained.
|
|
72
|
+
(perl test.perl)&
|
|
73
|
+
sleep 5
|
|
74
|
+
kill $!
|
|
75
|
+
|
|
76
|
+
if [ $? = 0 ];then
|
|
77
|
+
./shutdownall
|
|
78
|
+
exit 1
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
./shutdownall
|