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.
Files changed (393) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +20 -0
  4. data/LICENSE +202 -0
  5. data/NOTICE +22 -0
  6. data/README.md +217 -0
  7. data/Rakefile +13 -0
  8. data/VERSION +1 -0
  9. data/bin/prestogres +254 -0
  10. data/config/pcp.conf.sample +28 -0
  11. data/config/pgpool.conf +678 -0
  12. data/config/pool_hba.conf +84 -0
  13. data/config/pool_passwd +0 -0
  14. data/config/postgresql.conf +2 -0
  15. data/ext/.gitignore +6 -0
  16. data/ext/depend +26 -0
  17. data/ext/extconf.rb +4 -0
  18. data/ext/prestogres_config.c +12 -0
  19. data/pgpool2/.gitignore +36 -0
  20. data/pgpool2/AUTHORS +4 -0
  21. data/pgpool2/COPYING +12 -0
  22. data/pgpool2/ChangeLog +1 -0
  23. data/pgpool2/INSTALL +1 -0
  24. data/pgpool2/Makefile.am +159 -0
  25. data/pgpool2/Makefile.in +1187 -0
  26. data/pgpool2/NEWS +4960 -0
  27. data/pgpool2/README +1 -0
  28. data/pgpool2/README.euc_jp +1 -0
  29. data/pgpool2/README.online-recovery +62 -0
  30. data/pgpool2/TODO +103 -0
  31. data/pgpool2/ac_func_accept_argtypes.m4 +85 -0
  32. data/pgpool2/aclocal.m4 +1088 -0
  33. data/pgpool2/c-compiler.m4 +134 -0
  34. data/pgpool2/c-library.m4 +325 -0
  35. data/pgpool2/child.c +2097 -0
  36. data/pgpool2/config.guess +1532 -0
  37. data/pgpool2/config.h.in +332 -0
  38. data/pgpool2/config.sub +1640 -0
  39. data/pgpool2/configure +15752 -0
  40. data/pgpool2/configure.in +392 -0
  41. data/pgpool2/depcomp +522 -0
  42. data/pgpool2/doc/basebackup.sh +17 -0
  43. data/pgpool2/doc/pgpool-de.html +4220 -0
  44. data/pgpool2/doc/pgpool-en.html +5738 -0
  45. data/pgpool2/doc/pgpool-fr.html +4118 -0
  46. data/pgpool2/doc/pgpool-ja.css +198 -0
  47. data/pgpool2/doc/pgpool-ja.html +11279 -0
  48. data/pgpool2/doc/pgpool-zh_cn.html +4445 -0
  49. data/pgpool2/doc/pgpool.css +280 -0
  50. data/pgpool2/doc/pgpool_remote_start +13 -0
  51. data/pgpool2/doc/recovery.conf.sample +117 -0
  52. data/pgpool2/doc/tutorial-en.html +707 -0
  53. data/pgpool2/doc/tutorial-ja.html +422 -0
  54. data/pgpool2/doc/tutorial-memqcache-en.html +325 -0
  55. data/pgpool2/doc/tutorial-memqcache-ja.html +370 -0
  56. data/pgpool2/doc/tutorial-memqcache-zh_cn.html +322 -0
  57. data/pgpool2/doc/tutorial-watchdog-en.html +306 -0
  58. data/pgpool2/doc/tutorial-watchdog-ja.html +343 -0
  59. data/pgpool2/doc/tutorial-watchdog-zh_cn.html +301 -0
  60. data/pgpool2/doc/tutorial-zh_cn.html +537 -0
  61. data/pgpool2/doc/watchdog.png +0 -0
  62. data/pgpool2/doc/wd-en.html +236 -0
  63. data/pgpool2/doc/wd-en.jpg +0 -0
  64. data/pgpool2/doc/wd-ja.html +219 -0
  65. data/pgpool2/doc/wd-ja.jpg +0 -0
  66. data/pgpool2/doc/wd-zh_cn.html +201 -0
  67. data/pgpool2/doc/where_to_send_queries.odg +0 -0
  68. data/pgpool2/doc/where_to_send_queries.pdf +0 -0
  69. data/pgpool2/general.m4 +166 -0
  70. data/pgpool2/getopt_long.c +200 -0
  71. data/pgpool2/getopt_long.h +44 -0
  72. data/pgpool2/install-sh +251 -0
  73. data/pgpool2/ltmain.sh +8406 -0
  74. data/pgpool2/m4/libtool.m4 +7360 -0
  75. data/pgpool2/m4/ltoptions.m4 +368 -0
  76. data/pgpool2/m4/ltsugar.m4 +123 -0
  77. data/pgpool2/m4/ltversion.m4 +23 -0
  78. data/pgpool2/m4/lt~obsolete.m4 +92 -0
  79. data/pgpool2/main.c +2971 -0
  80. data/pgpool2/md5.c +444 -0
  81. data/pgpool2/md5.h +28 -0
  82. data/pgpool2/missing +360 -0
  83. data/pgpool2/mkinstalldirs +40 -0
  84. data/pgpool2/parser/Makefile.am +50 -0
  85. data/pgpool2/parser/Makefile.in +559 -0
  86. data/pgpool2/parser/copyfuncs.c +3310 -0
  87. data/pgpool2/parser/gram.c +39100 -0
  88. data/pgpool2/parser/gram.h +940 -0
  89. data/pgpool2/parser/gram.y +13408 -0
  90. data/pgpool2/parser/gramparse.h +74 -0
  91. data/pgpool2/parser/keywords.c +32 -0
  92. data/pgpool2/parser/keywords.h +39 -0
  93. data/pgpool2/parser/kwlist.h +425 -0
  94. data/pgpool2/parser/kwlookup.c +88 -0
  95. data/pgpool2/parser/list.c +1156 -0
  96. data/pgpool2/parser/makefuncs.c +518 -0
  97. data/pgpool2/parser/makefuncs.h +83 -0
  98. data/pgpool2/parser/memnodes.h +79 -0
  99. data/pgpool2/parser/nodes.c +29 -0
  100. data/pgpool2/parser/nodes.h +609 -0
  101. data/pgpool2/parser/outfuncs.c +5790 -0
  102. data/pgpool2/parser/parsenodes.h +2615 -0
  103. data/pgpool2/parser/parser.c +262 -0
  104. data/pgpool2/parser/parser.h +46 -0
  105. data/pgpool2/parser/pg_class.h +158 -0
  106. data/pgpool2/parser/pg_config_manual.h +273 -0
  107. data/pgpool2/parser/pg_list.h +352 -0
  108. data/pgpool2/parser/pg_trigger.h +147 -0
  109. data/pgpool2/parser/pg_wchar.h +492 -0
  110. data/pgpool2/parser/pool_memory.c +342 -0
  111. data/pgpool2/parser/pool_memory.h +77 -0
  112. data/pgpool2/parser/pool_parser.h +222 -0
  113. data/pgpool2/parser/pool_string.c +121 -0
  114. data/pgpool2/parser/pool_string.h +37 -0
  115. data/pgpool2/parser/primnodes.h +1280 -0
  116. data/pgpool2/parser/scan.c +4094 -0
  117. data/pgpool2/parser/scan.l +1451 -0
  118. data/pgpool2/parser/scanner.h +120 -0
  119. data/pgpool2/parser/scansup.c +221 -0
  120. data/pgpool2/parser/scansup.h +28 -0
  121. data/pgpool2/parser/snprintf.c +1102 -0
  122. data/pgpool2/parser/stringinfo.c +294 -0
  123. data/pgpool2/parser/stringinfo.h +178 -0
  124. data/pgpool2/parser/value.c +78 -0
  125. data/pgpool2/parser/value.h +62 -0
  126. data/pgpool2/parser/wchar.c +2048 -0
  127. data/pgpool2/pcp.conf.sample +28 -0
  128. data/pgpool2/pcp/Makefile.am +40 -0
  129. data/pgpool2/pcp/Makefile.in +771 -0
  130. data/pgpool2/pcp/libpcp_ext.h +250 -0
  131. data/pgpool2/pcp/md5.c +444 -0
  132. data/pgpool2/pcp/md5.h +28 -0
  133. data/pgpool2/pcp/pcp.c +1652 -0
  134. data/pgpool2/pcp/pcp.h +61 -0
  135. data/pgpool2/pcp/pcp_attach_node.c +172 -0
  136. data/pgpool2/pcp/pcp_detach_node.c +185 -0
  137. data/pgpool2/pcp/pcp_error.c +87 -0
  138. data/pgpool2/pcp/pcp_node_count.c +160 -0
  139. data/pgpool2/pcp/pcp_node_info.c +198 -0
  140. data/pgpool2/pcp/pcp_pool_status.c +166 -0
  141. data/pgpool2/pcp/pcp_proc_count.c +166 -0
  142. data/pgpool2/pcp/pcp_proc_info.c +261 -0
  143. data/pgpool2/pcp/pcp_promote_node.c +185 -0
  144. data/pgpool2/pcp/pcp_recovery_node.c +172 -0
  145. data/pgpool2/pcp/pcp_stop_pgpool.c +179 -0
  146. data/pgpool2/pcp/pcp_stream.c +385 -0
  147. data/pgpool2/pcp/pcp_stream.h +52 -0
  148. data/pgpool2/pcp/pcp_systemdb_info.c +194 -0
  149. data/pgpool2/pcp/pcp_watchdog_info.c +211 -0
  150. data/pgpool2/pcp_child.c +1493 -0
  151. data/pgpool2/pg_md5.c +305 -0
  152. data/pgpool2/pgpool.8.in +121 -0
  153. data/pgpool2/pgpool.conf +553 -0
  154. data/pgpool2/pgpool.conf.sample +666 -0
  155. data/pgpool2/pgpool.conf.sample-master-slave +665 -0
  156. data/pgpool2/pgpool.conf.sample-replication +664 -0
  157. data/pgpool2/pgpool.conf.sample-stream +664 -0
  158. data/pgpool2/pgpool.spec +264 -0
  159. data/pgpool2/pgpool_adm/TODO +7 -0
  160. data/pgpool2/pgpool_adm/pgpool_adm--1.0.sql +85 -0
  161. data/pgpool2/pgpool_adm/pgpool_adm.c +558 -0
  162. data/pgpool2/pgpool_adm/pgpool_adm.control +5 -0
  163. data/pgpool2/pgpool_adm/pgpool_adm.h +46 -0
  164. data/pgpool2/pgpool_adm/pgpool_adm.sql.in +85 -0
  165. data/pgpool2/pool.h +655 -0
  166. data/pgpool2/pool_auth.c +1390 -0
  167. data/pgpool2/pool_config.c +5007 -0
  168. data/pgpool2/pool_config.h +284 -0
  169. data/pgpool2/pool_config.l +3281 -0
  170. data/pgpool2/pool_config_md5.c +29 -0
  171. data/pgpool2/pool_connection_pool.c +812 -0
  172. data/pgpool2/pool_error.c +242 -0
  173. data/pgpool2/pool_globals.c +27 -0
  174. data/pgpool2/pool_hba.c +1723 -0
  175. data/pgpool2/pool_hba.conf.sample +67 -0
  176. data/pgpool2/pool_ip.c +567 -0
  177. data/pgpool2/pool_ip.h +65 -0
  178. data/pgpool2/pool_ipc.h +38 -0
  179. data/pgpool2/pool_lobj.c +242 -0
  180. data/pgpool2/pool_lobj.h +32 -0
  181. data/pgpool2/pool_memqcache.c +3818 -0
  182. data/pgpool2/pool_memqcache.h +268 -0
  183. data/pgpool2/pool_params.c +163 -0
  184. data/pgpool2/pool_passwd.c +249 -0
  185. data/pgpool2/pool_passwd.h +41 -0
  186. data/pgpool2/pool_path.c +193 -0
  187. data/pgpool2/pool_path.h +81 -0
  188. data/pgpool2/pool_process_context.c +247 -0
  189. data/pgpool2/pool_process_context.h +62 -0
  190. data/pgpool2/pool_process_query.c +5001 -0
  191. data/pgpool2/pool_process_reporting.c +1671 -0
  192. data/pgpool2/pool_process_reporting.h +44 -0
  193. data/pgpool2/pool_proto2.c +671 -0
  194. data/pgpool2/pool_proto_modules.c +3524 -0
  195. data/pgpool2/pool_proto_modules.h +185 -0
  196. data/pgpool2/pool_query_cache.c +1020 -0
  197. data/pgpool2/pool_query_context.c +1871 -0
  198. data/pgpool2/pool_query_context.h +105 -0
  199. data/pgpool2/pool_relcache.c +284 -0
  200. data/pgpool2/pool_relcache.h +78 -0
  201. data/pgpool2/pool_rewrite_outfuncs.c +9060 -0
  202. data/pgpool2/pool_rewrite_query.c +715 -0
  203. data/pgpool2/pool_rewrite_query.h +192 -0
  204. data/pgpool2/pool_select_walker.c +1150 -0
  205. data/pgpool2/pool_select_walker.h +68 -0
  206. data/pgpool2/pool_sema.c +161 -0
  207. data/pgpool2/pool_session_context.c +952 -0
  208. data/pgpool2/pool_session_context.h +203 -0
  209. data/pgpool2/pool_shmem.c +185 -0
  210. data/pgpool2/pool_signal.c +158 -0
  211. data/pgpool2/pool_signal.h +61 -0
  212. data/pgpool2/pool_ssl.c +339 -0
  213. data/pgpool2/pool_stream.c +962 -0
  214. data/pgpool2/pool_stream.h +61 -0
  215. data/pgpool2/pool_system.c +659 -0
  216. data/pgpool2/pool_timestamp.c +1215 -0
  217. data/pgpool2/pool_timestamp.h +38 -0
  218. data/pgpool2/pool_type.h +171 -0
  219. data/pgpool2/pool_worker_child.c +384 -0
  220. data/pgpool2/ps_status.c +404 -0
  221. data/pgpool2/recovery.c +435 -0
  222. data/pgpool2/redhat/pgpool.conf.sample.patch +52 -0
  223. data/pgpool2/redhat/pgpool.init +201 -0
  224. data/pgpool2/redhat/pgpool.sysconfig +7 -0
  225. data/pgpool2/redhat/rpm_installer/basebackup-replication.sh +53 -0
  226. data/pgpool2/redhat/rpm_installer/basebackup-stream.sh +55 -0
  227. data/pgpool2/redhat/rpm_installer/config_for_script +17 -0
  228. data/pgpool2/redhat/rpm_installer/failover.sh +64 -0
  229. data/pgpool2/redhat/rpm_installer/getsources.sh +141 -0
  230. data/pgpool2/redhat/rpm_installer/install.sh +1363 -0
  231. data/pgpool2/redhat/rpm_installer/pgpool_recovery_pitr +47 -0
  232. data/pgpool2/redhat/rpm_installer/pgpool_remote_start +15 -0
  233. data/pgpool2/redhat/rpm_installer/recovery.conf +4 -0
  234. data/pgpool2/redhat/rpm_installer/uninstall.sh +57 -0
  235. data/pgpool2/sample/dist_def_pgbench.sql +73 -0
  236. data/pgpool2/sample/pgpool.pam +3 -0
  237. data/pgpool2/sample/pgpool_recovery +20 -0
  238. data/pgpool2/sample/pgpool_recovery_pitr +19 -0
  239. data/pgpool2/sample/pgpool_remote_start +13 -0
  240. data/pgpool2/sample/replicate_def_pgbench.sql +18 -0
  241. data/pgpool2/sql/insert_lock.sql +15 -0
  242. data/pgpool2/sql/pgpool-recovery/pgpool-recovery.c +280 -0
  243. data/pgpool2/sql/pgpool-recovery/pgpool-recovery.sql.in +19 -0
  244. data/pgpool2/sql/pgpool-recovery/pgpool_recovery--1.0.sql +24 -0
  245. data/pgpool2/sql/pgpool-recovery/pgpool_recovery.control +5 -0
  246. data/pgpool2/sql/pgpool-recovery/uninstall_pgpool-recovery.sql +3 -0
  247. data/pgpool2/sql/pgpool-regclass/pgpool-regclass.c +206 -0
  248. data/pgpool2/sql/pgpool-regclass/pgpool-regclass.sql.in +4 -0
  249. data/pgpool2/sql/pgpool-regclass/pgpool_regclass--1.0.sql +7 -0
  250. data/pgpool2/sql/pgpool-regclass/pgpool_regclass.control +5 -0
  251. data/pgpool2/sql/pgpool-regclass/uninstall_pgpool-regclass.sql +1 -0
  252. data/pgpool2/sql/system_db.sql +38 -0
  253. data/pgpool2/strlcpy.c +85 -0
  254. data/pgpool2/test/C/test_extended.c +98 -0
  255. data/pgpool2/test/jdbc/.cvsignore +2 -0
  256. data/pgpool2/test/jdbc/AutoCommitTest.java +45 -0
  257. data/pgpool2/test/jdbc/BatchTest.java +55 -0
  258. data/pgpool2/test/jdbc/ColumnTest.java +60 -0
  259. data/pgpool2/test/jdbc/CreateTempTableTest.java +48 -0
  260. data/pgpool2/test/jdbc/InsertTest.java +34 -0
  261. data/pgpool2/test/jdbc/LockTest.java +36 -0
  262. data/pgpool2/test/jdbc/PgpoolTest.java +75 -0
  263. data/pgpool2/test/jdbc/README.euc_jp +73 -0
  264. data/pgpool2/test/jdbc/RunTest.java +83 -0
  265. data/pgpool2/test/jdbc/SelectTest.java +37 -0
  266. data/pgpool2/test/jdbc/UpdateTest.java +32 -0
  267. data/pgpool2/test/jdbc/expected/CreateTempTable +1 -0
  268. data/pgpool2/test/jdbc/expected/autocommit +10 -0
  269. data/pgpool2/test/jdbc/expected/batch +1 -0
  270. data/pgpool2/test/jdbc/expected/column +100 -0
  271. data/pgpool2/test/jdbc/expected/insert +1 -0
  272. data/pgpool2/test/jdbc/expected/lock +100 -0
  273. data/pgpool2/test/jdbc/expected/select +2 -0
  274. data/pgpool2/test/jdbc/expected/update +1 -0
  275. data/pgpool2/test/jdbc/pgpool.properties +7 -0
  276. data/pgpool2/test/jdbc/prepare.sql +54 -0
  277. data/pgpool2/test/jdbc/run.sh +6 -0
  278. data/pgpool2/test/parser/.cvsignore +6 -0
  279. data/pgpool2/test/parser/README +32 -0
  280. data/pgpool2/test/parser/expected/copy.out +17 -0
  281. data/pgpool2/test/parser/expected/create.out +64 -0
  282. data/pgpool2/test/parser/expected/cursor.out +37 -0
  283. data/pgpool2/test/parser/expected/delete.out +10 -0
  284. data/pgpool2/test/parser/expected/drop.out +12 -0
  285. data/pgpool2/test/parser/expected/insert.out +13 -0
  286. data/pgpool2/test/parser/expected/misc.out +28 -0
  287. data/pgpool2/test/parser/expected/prepare.out +4 -0
  288. data/pgpool2/test/parser/expected/privileges.out +31 -0
  289. data/pgpool2/test/parser/expected/scanner.out +30 -0
  290. data/pgpool2/test/parser/expected/select.out +89 -0
  291. data/pgpool2/test/parser/expected/transaction.out +38 -0
  292. data/pgpool2/test/parser/expected/update.out +11 -0
  293. data/pgpool2/test/parser/expected/v84.out +37 -0
  294. data/pgpool2/test/parser/expected/v90.out +25 -0
  295. data/pgpool2/test/parser/expected/var.out +22 -0
  296. data/pgpool2/test/parser/input/alter.sql +2 -0
  297. data/pgpool2/test/parser/input/copy.sql +17 -0
  298. data/pgpool2/test/parser/input/create.sql +64 -0
  299. data/pgpool2/test/parser/input/cursor.sql +37 -0
  300. data/pgpool2/test/parser/input/delete.sql +10 -0
  301. data/pgpool2/test/parser/input/drop.sql +12 -0
  302. data/pgpool2/test/parser/input/insert.sql +13 -0
  303. data/pgpool2/test/parser/input/misc.sql +28 -0
  304. data/pgpool2/test/parser/input/prepare.sql +4 -0
  305. data/pgpool2/test/parser/input/privileges.sql +31 -0
  306. data/pgpool2/test/parser/input/scanner.sql +34 -0
  307. data/pgpool2/test/parser/input/select.sql +89 -0
  308. data/pgpool2/test/parser/input/transaction.sql +38 -0
  309. data/pgpool2/test/parser/input/update.sql +11 -0
  310. data/pgpool2/test/parser/input/v84.sql +37 -0
  311. data/pgpool2/test/parser/input/v90.sql +38 -0
  312. data/pgpool2/test/parser/input/var.sql +22 -0
  313. data/pgpool2/test/parser/main.c +96 -0
  314. data/pgpool2/test/parser/parse_schedule +16 -0
  315. data/pgpool2/test/parser/pool.h +13 -0
  316. data/pgpool2/test/parser/run-test +62 -0
  317. data/pgpool2/test/pdo-test/README.euc_jp +58 -0
  318. data/pgpool2/test/pdo-test/SQLlist/test1.sql +3 -0
  319. data/pgpool2/test/pdo-test/SQLlist/test2.sql +3 -0
  320. data/pgpool2/test/pdo-test/collections.inc +11 -0
  321. data/pgpool2/test/pdo-test/def.inc +7 -0
  322. data/pgpool2/test/pdo-test/log.txt +0 -0
  323. data/pgpool2/test/pdo-test/mod/database.inc +36 -0
  324. data/pgpool2/test/pdo-test/mod/def.inc +0 -0
  325. data/pgpool2/test/pdo-test/mod/errorhandler.inc +27 -0
  326. data/pgpool2/test/pdo-test/pdotest.php +11 -0
  327. data/pgpool2/test/pdo-test/regsql.inc +56 -0
  328. data/pgpool2/test/pgpool_setup +898 -0
  329. data/pgpool2/test/regression/README +39 -0
  330. data/pgpool2/test/regression/clean.sh +21 -0
  331. data/pgpool2/test/regression/libs.sh +16 -0
  332. data/pgpool2/test/regression/regress.sh +166 -0
  333. data/pgpool2/test/regression/tests/001.load_balance/test.sh +128 -0
  334. data/pgpool2/test/regression/tests/002.native_replication/PgTester.java +47 -0
  335. data/pgpool2/test/regression/tests/002.native_replication/create.sql +6 -0
  336. data/pgpool2/test/regression/tests/002.native_replication/test.sh +71 -0
  337. data/pgpool2/test/regression/tests/003.failover/expected.r +6 -0
  338. data/pgpool2/test/regression/tests/003.failover/expected.s +6 -0
  339. data/pgpool2/test/regression/tests/003.failover/test.sh +45 -0
  340. data/pgpool2/test/regression/tests/004.watchdog/master.conf +12 -0
  341. data/pgpool2/test/regression/tests/004.watchdog/standby.conf +19 -0
  342. data/pgpool2/test/regression/tests/004.watchdog/test.sh +52 -0
  343. data/pgpool2/test/regression/tests/050.bug58/test.sh +50 -0
  344. data/pgpool2/test/regression/tests/051.bug60/bug.sql +12 -0
  345. data/pgpool2/test/regression/tests/051.bug60/database-clean.sql +6 -0
  346. data/pgpool2/test/regression/tests/051.bug60/database-setup.sql +28 -0
  347. data/pgpool2/test/regression/tests/051.bug60/test.sh +79 -0
  348. data/pgpool2/test/regression/tests/052.do_query/test.sh +44 -0
  349. data/pgpool2/test/regression/tests/053.insert_lock_hangs/test.sh +81 -0
  350. data/pgpool2/test/regression/tests/054.postgres_fdw/test.sh +67 -0
  351. data/pgpool2/test/regression/tests/055.backend_all_down/test.sh +52 -0
  352. data/pgpool2/test/regression/tests/056.bug63/jdbctest2.java +66 -0
  353. data/pgpool2/test/regression/tests/056.bug63/test.sh +47 -0
  354. data/pgpool2/test/regression/tests/057.bug61/test.sh +40 -0
  355. data/pgpool2/test/regression/tests/058.bug68/jdbctest3.java +45 -0
  356. data/pgpool2/test/regression/tests/058.bug68/test.sh +47 -0
  357. data/pgpool2/test/timestamp/expected/insert.out +16 -0
  358. data/pgpool2/test/timestamp/expected/misc.out +3 -0
  359. data/pgpool2/test/timestamp/expected/update.out +6 -0
  360. data/pgpool2/test/timestamp/input/insert.sql +16 -0
  361. data/pgpool2/test/timestamp/input/misc.sql +3 -0
  362. data/pgpool2/test/timestamp/input/update.sql +6 -0
  363. data/pgpool2/test/timestamp/main.c +129 -0
  364. data/pgpool2/test/timestamp/parse_schedule +3 -0
  365. data/pgpool2/test/timestamp/run-test +69 -0
  366. data/pgpool2/version.h +1 -0
  367. data/pgpool2/watchdog/Makefile.am +17 -0
  368. data/pgpool2/watchdog/Makefile.in +505 -0
  369. data/pgpool2/watchdog/test/stab.c +266 -0
  370. data/pgpool2/watchdog/test/test.c +85 -0
  371. data/pgpool2/watchdog/test/wd_child_t.c +87 -0
  372. data/pgpool2/watchdog/test/wd_lifecheck_t.c +87 -0
  373. data/pgpool2/watchdog/test/wd_packet_t.c +87 -0
  374. data/pgpool2/watchdog/test/wd_ping_t.c +20 -0
  375. data/pgpool2/watchdog/watchdog.c +408 -0
  376. data/pgpool2/watchdog/watchdog.h +209 -0
  377. data/pgpool2/watchdog/wd_child.c +444 -0
  378. data/pgpool2/watchdog/wd_ext.h +123 -0
  379. data/pgpool2/watchdog/wd_heartbeat.c +577 -0
  380. data/pgpool2/watchdog/wd_if.c +216 -0
  381. data/pgpool2/watchdog/wd_init.c +126 -0
  382. data/pgpool2/watchdog/wd_interlock.c +347 -0
  383. data/pgpool2/watchdog/wd_lifecheck.c +512 -0
  384. data/pgpool2/watchdog/wd_list.c +429 -0
  385. data/pgpool2/watchdog/wd_packet.c +1159 -0
  386. data/pgpool2/watchdog/wd_ping.c +330 -0
  387. data/pgpool2/ylwrap +223 -0
  388. data/pgsql/presto_client.py +346 -0
  389. data/pgsql/prestogres.py +156 -0
  390. data/pgsql/setup_functions.sql +21 -0
  391. data/pgsql/setup_language.sql +3 -0
  392. data/prestogres.gemspec +23 -0
  393. 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,6 @@
1
+ CREATE TABLE sequencetester
2
+ (
3
+ id serial NOT NULL,
4
+ recordno integer,
5
+ CONSTRAINT sq_pk PRIMARY KEY (id )
6
+ )
@@ -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