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,39 @@
|
|
|
1
|
+
This directory contains files for simple regression tests.
|
|
2
|
+
To execute regress.sh you need to install:
|
|
3
|
+
|
|
4
|
+
- pgpool_setup
|
|
5
|
+
- PostgreSQL 8.3 or later (requires EXTENSION)
|
|
6
|
+
- pgbench
|
|
7
|
+
- perl PostgreSQL interface
|
|
8
|
+
- other tools or libraries required in each test cases
|
|
9
|
+
|
|
10
|
+
regress.sh: the regression test driver. To execute the test, type "sh regress.sh".
|
|
11
|
+
To get the lists of arguments accepted by regress.sh type "sh regress.sh -?"
|
|
12
|
+
|
|
13
|
+
clean.sh: remove files including PostgreSQL DB clusters created by regress.sh.
|
|
14
|
+
|
|
15
|
+
tests: test scripts live here. Each test case has its own
|
|
16
|
+
subdirectory. In the directory the test script resides and the
|
|
17
|
+
script name must be "test.sh". The script should return exit
|
|
18
|
+
code 0 upon successfull completion of the test. Otherwise it
|
|
19
|
+
should return non 0 value. To add a new test case, simply
|
|
20
|
+
create a shell script under this.
|
|
21
|
+
|
|
22
|
+
The test name "001.*" to "050.*" is for regular regression
|
|
23
|
+
tests, while after "051.*" are for bugs.
|
|
24
|
+
|
|
25
|
+
regress.sh exports following environment variables which can be
|
|
26
|
+
used by test scripts.
|
|
27
|
+
|
|
28
|
+
PGPOOL_SETUP file path of pgpool_setup file
|
|
29
|
+
PGPOOL_INSTALL_DIR pgpool-II installed directory
|
|
30
|
+
PGBIN directory path containing PostgreSQL binaries
|
|
31
|
+
JDBC_DRIVER file path of JDBC driver
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
log: any output of the test files above is created under the
|
|
35
|
+
directory. The log file name is same as the test name.
|
|
36
|
+
|
|
37
|
+
libs.sh: contains some useful bash functions. The file name is
|
|
38
|
+
exported as "$TESTLIBS",
|
|
39
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#! /bin/sh
|
|
2
|
+
# clean up test results
|
|
3
|
+
dir=`pwd`
|
|
4
|
+
export TESTLIBS=$dir/libs.sh
|
|
5
|
+
export PGPOOL_SETUP=$HOME/bin/pgpool_setup
|
|
6
|
+
log=$dir/log
|
|
7
|
+
|
|
8
|
+
rm -fr $log
|
|
9
|
+
rm -fr $dir/temp
|
|
10
|
+
|
|
11
|
+
cd tests
|
|
12
|
+
dirs=`ls`
|
|
13
|
+
for i in $dirs
|
|
14
|
+
do
|
|
15
|
+
cd $i
|
|
16
|
+
rm -fr testdir *~
|
|
17
|
+
cd ..
|
|
18
|
+
done
|
|
19
|
+
|
|
20
|
+
rm -fr $dir/tests/004.watchdog/master
|
|
21
|
+
rm -fr $dir/tests/004.watchdog/standby
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#-------------------------------------------
|
|
2
|
+
# wait for pgpool comes up
|
|
3
|
+
#-------------------------------------------
|
|
4
|
+
function wait_for_pgpool_startup {
|
|
5
|
+
timeout=20
|
|
6
|
+
|
|
7
|
+
while [ $timeout -gt 0 ]
|
|
8
|
+
do
|
|
9
|
+
$PSQL -p $PGPOOL_PORT -c "show pool_nodes" test >/dev/null 2>&1
|
|
10
|
+
if [ $? = 0 ];then
|
|
11
|
+
break;
|
|
12
|
+
fi
|
|
13
|
+
timeout=`expr $timeout - 1`
|
|
14
|
+
sleep 1
|
|
15
|
+
done
|
|
16
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
#
|
|
2
|
+
# pgpool-II regression test driver.
|
|
3
|
+
#
|
|
4
|
+
# usage: regress.sh [test_name]
|
|
5
|
+
# -i install directory of pgpool
|
|
6
|
+
# -b pgbench path
|
|
7
|
+
# -p installation path of Postgres
|
|
8
|
+
# -m install (install pgpool-II and use that for tests) / noinstall : Default install
|
|
9
|
+
|
|
10
|
+
dir=`pwd`
|
|
11
|
+
MODE=install
|
|
12
|
+
PG_INSTALL_DIR=/usr/local/pgsql/bin
|
|
13
|
+
PGPOOL_PATH=/usr/local
|
|
14
|
+
JDBC_DRIVER=/usr/local/pgsql/share/postgresql-9.2-1003.jdbc4.jar
|
|
15
|
+
log=$dir/log
|
|
16
|
+
fail=0
|
|
17
|
+
ok=0
|
|
18
|
+
|
|
19
|
+
CRED=$(tput setaf 1)
|
|
20
|
+
CGREEN=$(tput setaf 2)
|
|
21
|
+
CBLUE=$(tput setaf 4)
|
|
22
|
+
CNORM=$(tput sgr0)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
function install_pgpool
|
|
26
|
+
{
|
|
27
|
+
echo "creating pgpool-II temporary installation ..."
|
|
28
|
+
PGPOOL_PATH=$dir/temp/installed
|
|
29
|
+
|
|
30
|
+
make install -C $dir/../../ -e prefix=${PGPOOL_PATH}
|
|
31
|
+
|
|
32
|
+
echo "moving pgpool_setup to temporary installation path ..."
|
|
33
|
+
cp $dir/../pgpool_setup ${PGPOOL_PATH}/pgpool_setup
|
|
34
|
+
export PGPOOL_SETUP=$PGPOOL_PATH/pgpool_setup
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function verify_pginstallation
|
|
38
|
+
{
|
|
39
|
+
# PostgreSQL bin directory
|
|
40
|
+
PGBIN=`$PG_INSTALL_DIR/pg_config --bindir`
|
|
41
|
+
if [ -z $PGBIN ]; then
|
|
42
|
+
echo "$0: cannot locate pg_config"
|
|
43
|
+
exit 1
|
|
44
|
+
fi
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function export_env_vars
|
|
48
|
+
{
|
|
49
|
+
if [[ -z "$PGPOOL_PATH" ]]; then
|
|
50
|
+
# check if pgpool is in the path
|
|
51
|
+
PGPOOL_PATH=/usr/local
|
|
52
|
+
export PGPOOL_SETUP=$HOME/bin/pgpool_setup
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
if [[ -z "$PGBENCH_PATH" ]]; then
|
|
56
|
+
if [ -x $PGBIN/pgbench ]; then
|
|
57
|
+
PGBENCH_PATH=$PGBIN/pgbench
|
|
58
|
+
else
|
|
59
|
+
PGBENCH_PATH=`which pgbench`
|
|
60
|
+
fi
|
|
61
|
+
fi
|
|
62
|
+
|
|
63
|
+
if [ ! -x $PGBENCH_PATH ]; then
|
|
64
|
+
echo "$0] cannot locate pgbench"; exit 1
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
echo "using pgpool-II at "$PGPOOL_PATH
|
|
68
|
+
export PGPOOL_INSTALL_DIR=$PGPOOL_PATH
|
|
69
|
+
|
|
70
|
+
export TESTLIBS=$dir/libs.sh
|
|
71
|
+
export PGBIN=$PGBIN
|
|
72
|
+
export JDBC_DRIVER=$JDBC_DRIVER
|
|
73
|
+
export PGBENCH_PATH=$PGBENCH_PATH
|
|
74
|
+
}
|
|
75
|
+
function print_info
|
|
76
|
+
{
|
|
77
|
+
echo ${CBLUE}"*************************"${CNORM}
|
|
78
|
+
|
|
79
|
+
echo "REGRESSION MODE : "${CBLUE}$MODE${CNORM}
|
|
80
|
+
echo "PGPOOL-II : "${CBLUE}$PGPOOL_PATH${CNORM}
|
|
81
|
+
echo "PostgreSQL bin : "${CBLUE}$PGBIN${CNORM}
|
|
82
|
+
echo "pgbench : "${CBLUE}$PGBENCH_PATH${CNORM}
|
|
83
|
+
echo "PostgreSQL jdbc : "${CBLUE}$JDBC_DRIVER${CNORM}
|
|
84
|
+
echo ${CBLUE}"*************************"${CNORM}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function print_usage
|
|
88
|
+
{
|
|
89
|
+
printf "Usage:\n"
|
|
90
|
+
printf " %s: [Options]... [test_name]\n" $(basename $0) >&2
|
|
91
|
+
printf "\nOptions:\n"
|
|
92
|
+
printf " -p DIRECTORY Postgres installed directory\n" >&2
|
|
93
|
+
printf " -b PATH pgbench installed path, if different from Postgres installed directory\n" >&2
|
|
94
|
+
printf " -i DIRECTORY pgpool installed directory, if already installed pgpool is to be used for tests\n" >&2
|
|
95
|
+
printf " -m install/noinstall make install pgpool to temp directory for executing regression tests [Default: install]\n" >&2
|
|
96
|
+
printf " -j FILE Postgres jdbc jar file path\n" >&2
|
|
97
|
+
printf " -? print this help and then exit\n\n" >&2
|
|
98
|
+
printf "Please read the README for details on adding new tests\n" >&2
|
|
99
|
+
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
trap "echo ; exit 0" SIGINT SIGQUIT
|
|
103
|
+
|
|
104
|
+
while getopts "p:m:i:j:b:?" OPTION
|
|
105
|
+
do
|
|
106
|
+
case $OPTION in
|
|
107
|
+
p) PG_INSTALL_DIR="$OPTARG";;
|
|
108
|
+
m) MODE="$OPTARG";;
|
|
109
|
+
i) PGPOOL_INSTALL_DIR="$OPTARG";;
|
|
110
|
+
j) JDBC_DRIVER="$OPTARG";;
|
|
111
|
+
b) PGBENCH_PATH="$OPTARG";;
|
|
112
|
+
?) print_usage
|
|
113
|
+
exit 2;;
|
|
114
|
+
esac
|
|
115
|
+
done
|
|
116
|
+
|
|
117
|
+
shift $(($OPTIND - 1))
|
|
118
|
+
if [ "$MODE" = "install" ]; then
|
|
119
|
+
install_pgpool
|
|
120
|
+
|
|
121
|
+
elif [ "$MODE" = "noinstall" ]; then
|
|
122
|
+
echo not installing pgpool for the tests ...
|
|
123
|
+
if [[ -n "$PGPOOL_INSTALL_PATH" ]]; then
|
|
124
|
+
PGPOOL_PATH=$PGPOOL_INSTALL_PATH
|
|
125
|
+
fi
|
|
126
|
+
else
|
|
127
|
+
echo $MODE : Invalid mode
|
|
128
|
+
exit -1
|
|
129
|
+
fi
|
|
130
|
+
|
|
131
|
+
verify_pginstallation
|
|
132
|
+
export_env_vars
|
|
133
|
+
print_info
|
|
134
|
+
|
|
135
|
+
#Start executing tests
|
|
136
|
+
rm -fr $log
|
|
137
|
+
mkdir $log
|
|
138
|
+
|
|
139
|
+
cd tests
|
|
140
|
+
|
|
141
|
+
if [ $# -eq 1 ];then
|
|
142
|
+
dirs=`ls|grep $1`
|
|
143
|
+
else
|
|
144
|
+
dirs=`ls`
|
|
145
|
+
fi
|
|
146
|
+
|
|
147
|
+
for i in $dirs
|
|
148
|
+
do
|
|
149
|
+
cd $i
|
|
150
|
+
echo -n "testing $i..."
|
|
151
|
+
./test.sh > $log/$i 2>&1
|
|
152
|
+
if [ $? = 0 ];then
|
|
153
|
+
echo ${CGREEN}"ok."${CNORM}
|
|
154
|
+
ok=`expr $ok + 1`
|
|
155
|
+
else
|
|
156
|
+
echo ${CRED}"failed."${CNORM}
|
|
157
|
+
fail=`expr $fail + 1`
|
|
158
|
+
fi
|
|
159
|
+
|
|
160
|
+
cd ..
|
|
161
|
+
|
|
162
|
+
done
|
|
163
|
+
|
|
164
|
+
total=`expr $ok + $fail`
|
|
165
|
+
|
|
166
|
+
echo "out of $total ok:$ok failed:$fail"
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
#! /bin/sh -x
|
|
2
|
+
#-------------------------------------------------------------------
|
|
3
|
+
# test script for load balancing.
|
|
4
|
+
#
|
|
5
|
+
source $TESTLIBS
|
|
6
|
+
TESTDIR=testdir
|
|
7
|
+
PSQL=$PGBIN/psql
|
|
8
|
+
|
|
9
|
+
for mode in s r
|
|
10
|
+
do
|
|
11
|
+
rm -fr $TESTDIR
|
|
12
|
+
mkdir $TESTDIR
|
|
13
|
+
cd $TESTDIR
|
|
14
|
+
|
|
15
|
+
# create test environment
|
|
16
|
+
echo -n "creating test environment..."
|
|
17
|
+
sh $PGPOOL_SETUP -m $mode -n 2 || exit 1
|
|
18
|
+
echo "done."
|
|
19
|
+
|
|
20
|
+
source ./bashrc.ports
|
|
21
|
+
|
|
22
|
+
echo "backend_weight0 = 0" >> etc/pgpool.conf
|
|
23
|
+
echo "backend_weight1 = 1" >> etc/pgpool.conf
|
|
24
|
+
echo "black_function_list = 'f1'" >> etc/pgpool.conf
|
|
25
|
+
|
|
26
|
+
./startall
|
|
27
|
+
|
|
28
|
+
export PGPORT=$PGPOOL_PORT
|
|
29
|
+
|
|
30
|
+
wait_for_pgpool_startup
|
|
31
|
+
|
|
32
|
+
$PSQL test <<EOF
|
|
33
|
+
CREATE TABLE t1(i INTEGER);
|
|
34
|
+
CREATE FUNCTION f1(INTEGER) returns INTEGER AS 'SELECT \$1' LANGUAGE SQL;
|
|
35
|
+
SELECT * FROM t1; -- this load balances
|
|
36
|
+
SELECT f1(1); -- this does not load balance
|
|
37
|
+
EOF
|
|
38
|
+
|
|
39
|
+
# check if simle load balance worked
|
|
40
|
+
fgrep "SELECT * FROM t1;" log/pgpool.log |grep "DB node id: 1">/dev/null 2>&1
|
|
41
|
+
if [ $? != 0 ];then
|
|
42
|
+
# expected result not found
|
|
43
|
+
./shutdownall
|
|
44
|
+
exit 1
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
# check if black function list worked
|
|
48
|
+
fgrep "SELECT f1(1);" log/pgpool.log |grep "DB node id: 0">/dev/null 2>&1
|
|
49
|
+
if [ $? != 0 ];then
|
|
50
|
+
# expected result not found
|
|
51
|
+
./shutdownall
|
|
52
|
+
exit 1
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
echo "white_function_list = 'f1'" >> etc/pgpool.conf
|
|
56
|
+
echo "black_function_list = ''" >> etc/pgpool.conf
|
|
57
|
+
|
|
58
|
+
./pgpool_reload
|
|
59
|
+
|
|
60
|
+
$PSQL test <<EOF
|
|
61
|
+
SELECT f1(1); -- this does load balance
|
|
62
|
+
EOF
|
|
63
|
+
|
|
64
|
+
# check if white function list worked
|
|
65
|
+
fgrep "SELECT f1(1);" log/pgpool.log |grep "DB node id: 1">/dev/null 2>&1
|
|
66
|
+
if [ $? != 0 ];then
|
|
67
|
+
# expected result not found
|
|
68
|
+
./shutdownall
|
|
69
|
+
exit 1
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
# in replication mode if load_balance_mode = off, SELECT query inside
|
|
73
|
+
# an explicit transaction should be sent to master only.
|
|
74
|
+
if [ $mode = "r" ];then
|
|
75
|
+
./shutdownall
|
|
76
|
+
echo "load_balance_mode = off" >> etc/pgpool.conf
|
|
77
|
+
./startall
|
|
78
|
+
wait_for_pgpool_startup
|
|
79
|
+
|
|
80
|
+
$PSQL test <<EOF
|
|
81
|
+
BEGIN;
|
|
82
|
+
SELECT 1;
|
|
83
|
+
END;
|
|
84
|
+
EOF
|
|
85
|
+
|
|
86
|
+
ok=0
|
|
87
|
+
fgrep "SELECT 1;" log/pgpool.log |grep "DB node id: 0">/dev/null 2>&1
|
|
88
|
+
if [ $? = 0 ];then
|
|
89
|
+
fgrep "SELECT 1;" log/pgpool.log |grep "DB node id: 1">/dev/null 2>&1
|
|
90
|
+
if [ $? != 0 ];then
|
|
91
|
+
# the SELECT should not be executed on node 1
|
|
92
|
+
ok=1
|
|
93
|
+
fi
|
|
94
|
+
# the SELECT should be executed on node 0
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
# in replication mode if load_balance_mode = off, SELECT query
|
|
98
|
+
# including writing function should be sent to all the nodes.
|
|
99
|
+
# per [pgpool-general: 2221].
|
|
100
|
+
echo "black_function_list = 'f1'" >> etc/pgpool.conf
|
|
101
|
+
echo "white_function_list = ''" >> etc/pgpool.conf
|
|
102
|
+
./pgpool_reload
|
|
103
|
+
$PSQL test <<EOF
|
|
104
|
+
SELECT f1(2); -- this should be sent to all the nodes
|
|
105
|
+
EOF
|
|
106
|
+
fgrep "SELECT f1(2);" log/pgpool.log |grep "DB node id: 0">/dev/null 2>&1
|
|
107
|
+
if [ $? = 0 ];then
|
|
108
|
+
fgrep "SELECT f1(2);" log/pgpool.log |grep "DB node id: 1">/dev/null 2>&1
|
|
109
|
+
if [ $? = 0 ];then
|
|
110
|
+
# the SELECT should be executed on node 0 & 1
|
|
111
|
+
ok=`expr $ok + 1`
|
|
112
|
+
fi
|
|
113
|
+
# the SELECT should be executed on node 0
|
|
114
|
+
fi
|
|
115
|
+
|
|
116
|
+
fi
|
|
117
|
+
|
|
118
|
+
./shutdownall
|
|
119
|
+
|
|
120
|
+
if [ $ok != 2 ];then
|
|
121
|
+
exit 1;
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
cd ..
|
|
125
|
+
|
|
126
|
+
done
|
|
127
|
+
|
|
128
|
+
exit 0
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import java.sql.Connection;
|
|
2
|
+
import java.sql.DriverManager;
|
|
3
|
+
import java.sql.PreparedStatement;
|
|
4
|
+
import java.sql.SQLException;
|
|
5
|
+
|
|
6
|
+
public class PgTester {
|
|
7
|
+
|
|
8
|
+
public static void main(String[] args) {
|
|
9
|
+
Integer startValue = 0;
|
|
10
|
+
try{
|
|
11
|
+
startValue = Integer.parseInt(args[0]);
|
|
12
|
+
} catch (Exception e){
|
|
13
|
+
System.out.println("Please provide a valid number as the first argument to the program");
|
|
14
|
+
System.exit(-1);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Connection conn=null;
|
|
19
|
+
try {
|
|
20
|
+
Class.forName ("org.postgresql.Driver");
|
|
21
|
+
|
|
22
|
+
conn =
|
|
23
|
+
DriverManager.getConnection("jdbc:postgresql://localhost:11002/test");
|
|
24
|
+
} catch (ClassNotFoundException e) {
|
|
25
|
+
e.printStackTrace();
|
|
26
|
+
} catch (SQLException e) {
|
|
27
|
+
e.printStackTrace();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
try {
|
|
31
|
+
//conn.setAutoCommit(false);
|
|
32
|
+
PreparedStatement query = conn.prepareStatement("INSERT INTO public.sequencetester (recordno) VALUES (?)");
|
|
33
|
+
int max = startValue + 10;
|
|
34
|
+
for(int cv = startValue; cv <= max; cv++){
|
|
35
|
+
query.setInt(1, cv);
|
|
36
|
+
query.execute();
|
|
37
|
+
//System.out.println("interted "+cv);
|
|
38
|
+
}
|
|
39
|
+
query.close();
|
|
40
|
+
//conn.commit();
|
|
41
|
+
conn.close();
|
|
42
|
+
System.out.println("Done");
|
|
43
|
+
} catch (SQLException e) {
|
|
44
|
+
e.printStackTrace();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#! /bin/sh -x
|
|
2
|
+
#-------------------------------------------------------------------
|
|
3
|
+
# test script for native replication mode.
|
|
4
|
+
#
|
|
5
|
+
source $TESTLIBS
|
|
6
|
+
TESTDIR=testdir
|
|
7
|
+
PSQL=$PGBIN/psql
|
|
8
|
+
PGBENCH=$PGBENCH_PATH
|
|
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 r -n 2 || exit 1
|
|
17
|
+
echo "done."
|
|
18
|
+
|
|
19
|
+
source ./bashrc.ports
|
|
20
|
+
|
|
21
|
+
./startall
|
|
22
|
+
|
|
23
|
+
export PGPORT=$PGPOOL_PORT
|
|
24
|
+
|
|
25
|
+
wait_for_pgpool_startup
|
|
26
|
+
|
|
27
|
+
$PSQL test <<EOF
|
|
28
|
+
CREATE TABLE t1(i SERIAL, j TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP);
|
|
29
|
+
EOF
|
|
30
|
+
|
|
31
|
+
cat > pgbench.sql <<EOF
|
|
32
|
+
INSERT INTO t1 VALUES (DEFAULT);
|
|
33
|
+
EOF
|
|
34
|
+
|
|
35
|
+
$PGBENCH -i test
|
|
36
|
+
$PGBENCH -f pgbench.sql -c 10 -t 10 test
|
|
37
|
+
|
|
38
|
+
# test with extended protocol (autocommit on)
|
|
39
|
+
# per [pgpool-general: 2144].
|
|
40
|
+
cp ../PgTester.java .
|
|
41
|
+
javac PgTester.java
|
|
42
|
+
export CLASSPATH=.:$JDBC_DRIVER
|
|
43
|
+
psql -f ../create.sql test
|
|
44
|
+
env
|
|
45
|
+
psql -f $PGPOOL_INSTALL_DIR/share/pgpool-II/insert_lock.sql test
|
|
46
|
+
|
|
47
|
+
java PgTester 0 &
|
|
48
|
+
java PgTester 10 &
|
|
49
|
+
java PgTester 100 &
|
|
50
|
+
java PgTester 1000 &
|
|
51
|
+
wait
|
|
52
|
+
|
|
53
|
+
$PSQL -p 11000 test <<EOF
|
|
54
|
+
\copy (SELECT * FROM t1 ORDER BY i) to 'dump0.txt'
|
|
55
|
+
EOF
|
|
56
|
+
|
|
57
|
+
$PSQL -p 11001 test <<EOF
|
|
58
|
+
\copy (SELECT * FROM t1 ORDER BY i) to 'dump1.txt'
|
|
59
|
+
EOF
|
|
60
|
+
|
|
61
|
+
# check if database contents are identical
|
|
62
|
+
diff dump0.txt dump1.txt
|
|
63
|
+
if [ $? != 0 ];then
|
|
64
|
+
# contents are not identical
|
|
65
|
+
./shutdownall
|
|
66
|
+
exit 1
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
./shutdownall
|
|
70
|
+
|
|
71
|
+
exit 0
|