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,6 @@
1
+ node_id | hostname | port | status | lb_weight | role
2
+ ---------+----------+-------+--------+-----------+--------
3
+ 0 | /tmp | 11000 | 2 | 0.500000 | master
4
+ 1 | /tmp | 11001 | 3 | 0.500000 | slave
5
+ (2 rows)
6
+
@@ -0,0 +1,6 @@
1
+ node_id | hostname | port | status | lb_weight | role
2
+ ---------+----------+-------+--------+-----------+---------
3
+ 0 | /tmp | 11000 | 2 | 0.500000 | primary
4
+ 1 | /tmp | 11001 | 3 | 0.500000 | standby
5
+ (2 rows)
6
+
@@ -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,6 @@
1
+ -- This is -*- sql -*- code that removes the test data from the
2
+ -- database, to leave things as clean as we found them.
3
+
4
+ drop trigger t1 on my_table;
5
+ drop function p1();
6
+ drop table my_table;
@@ -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