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,52 @@
1
+ *** pgpool.conf.sample.old 2013-03-04 11:08:30.000000000 +0900
2
+ --- pgpool.conf.sample 2013-03-04 11:09:40.000000000 +0900
3
+ ***************
4
+ *** 51,65 ****
5
+
6
+ # - Backend Connection Settings -
7
+
8
+ ! #backend_hostname0 = 'host1'
9
+ # Host name or IP address to connect to for backend 0
10
+ ! #backend_port0 = 5432
11
+ # Port number for backend 0
12
+ ! #backend_weight0 = 1
13
+ # Weight for backend 0 (only in load balancing mode)
14
+ ! #backend_data_directory0 = '/data'
15
+ # Data directory for backend 0
16
+ ! #backend_flag0 = 'ALLOW_TO_FAILOVER'
17
+ # Controls various backend behavior
18
+ # ALLOW_TO_FAILOVER or DISALLOW_TO_FAILOVER
19
+ #backend_hostname1 = 'host2'
20
+ --- 51,65 ----
21
+
22
+ # - Backend Connection Settings -
23
+
24
+ ! backend_hostname0 = 'localhost'
25
+ # Host name or IP address to connect to for backend 0
26
+ ! backend_port0 = 5432
27
+ # Port number for backend 0
28
+ ! backend_weight0 = 1
29
+ # Weight for backend 0 (only in load balancing mode)
30
+ ! backend_data_directory0 = '/var/lib/pgsql/data'
31
+ # Data directory for backend 0
32
+ ! backend_flag0 = 'ALLOW_TO_FAILOVER'
33
+ # Controls various backend behavior
34
+ # ALLOW_TO_FAILOVER or DISALLOW_TO_FAILOVER
35
+ #backend_hostname1 = 'host2'
36
+ ***************
37
+ *** 183,189 ****
38
+ pid_file_name = '/var/run/pgpool/pgpool.pid'
39
+ # PID file name
40
+ # (change requires restart)
41
+ ! logdir = '/tmp'
42
+ # Directory of pgPool status file
43
+ # (change requires restart)
44
+
45
+ --- 183,189 ----
46
+ pid_file_name = '/var/run/pgpool/pgpool.pid'
47
+ # PID file name
48
+ # (change requires restart)
49
+ ! logdir = '/var/log/pgpool'
50
+ # Directory of pgPool status file
51
+ # (change requires restart)
52
+
@@ -0,0 +1,201 @@
1
+ #!/bin/sh
2
+ # pgpool This is the init script for starting up pgpool-II
3
+ #
4
+ # chkconfig: - 64 36
5
+ # description: Starts and stops the pgpool daemon
6
+ # processname: pgpool
7
+ # pidfile: /var/run/pgpool.pid
8
+ #
9
+ # v1.0.0 Devrim GUNDUZ <devrim@CommandPrompt.com>
10
+ # - Initial version of Red Hat / Fedora init script
11
+ #
12
+ # v2.2 Devrim GUNDUZ <devrim@CommandPrompt.com>
13
+ # - New and improved version which has some fixes.
14
+ #
15
+ # v2.2.5 Devrim GUNDUZ <devrim@CommandPrompt.com>
16
+ # - Fix logging.
17
+
18
+ if [ -r /etc/sysconfig/pgpool ]; then
19
+ . /etc/sysconfig/pgpool
20
+ fi
21
+
22
+ # Source function library.
23
+ INITD=/etc/rc.d/init.d
24
+ . $INITD/functions
25
+
26
+ # Get function listing for cross-distribution logic.
27
+ TYPESET=`typeset -f|grep "declare"`
28
+
29
+ # Get config.
30
+ . /etc/sysconfig/network
31
+
32
+ # Check that networking is up.
33
+ # We need it for pgpool
34
+ [ "${NETWORKING}" = "no" ] && exit 0
35
+
36
+ # Find the name of the script
37
+ NAME=`basename $0`
38
+ if [ ${NAME:0:1} = "S" -o ${NAME:0:1} = "K" ]
39
+ then
40
+ NAME=${NAME:3}
41
+ fi
42
+
43
+ # For SELinux we need to use 'runuser' not 'su'
44
+ if [ -x /sbin/runuser ]
45
+ then
46
+ SU=runuser
47
+ else
48
+ SU=su
49
+ fi
50
+
51
+ # Set defaults for configuration variables
52
+ PGPOOLENGINE=/usr/bin
53
+ PGPOOLDAEMON=$PGPOOLENGINE/pgpool
54
+ PGPOOLCONF=/etc/pgpool-II/pgpool.conf
55
+ PGPOOLPIDDIR=/var/run/pgpool
56
+ PGPOOLLOG=/var/log/pgpool.log
57
+
58
+ test -x $PGPOOLDAEMON || exit 5
59
+
60
+ # Check whether the config file exists or not
61
+ if [ ! -r $PGPOOLCONF ]
62
+ then
63
+ echo "$PGPOOLCONF not found"
64
+ RETVAL=1
65
+ failure
66
+ exit
67
+ fi
68
+
69
+ # Create the log file if it does not exist
70
+ if [ ! -x $PGPOOLLOG ]
71
+ then
72
+ touch $PGPOOLLOG
73
+ chown postgres: $PGPOOLLOG
74
+ fi
75
+
76
+ if [ ! -d $PGPOOLPIDDIR ]
77
+ then
78
+ mkdir $PGPOOLPIDDIR
79
+ chown postgres: $PGPOOLPIDDIR
80
+ fi
81
+
82
+ script_result=0
83
+
84
+ start(){
85
+ pid=`pidof -s "$PGPOOLDAEMON"`
86
+ if [ $pid ]
87
+ then
88
+ echo "pgpool is already running with pid $pid"
89
+ failure "$PGPOOL_START"
90
+ echo
91
+ script_result=1
92
+ exit 1
93
+ fi
94
+
95
+ PGPOOL_START=$"Starting ${NAME} service: "
96
+
97
+ echo -n "$PGPOOL_START"
98
+
99
+ $SU -l postgres -c "$PGPOOLDAEMON -f $PGPOOLCONF $OPTS & " >> "$PGPOOLLOG" 2>&1 < /dev/null
100
+ sleep 2
101
+
102
+ pid=`pidof -s "$PGPOOLDAEMON"`
103
+ if [ $pid ]
104
+ then
105
+ success "$PGPOOL_START"
106
+ touch /var/lock/subsys/${NAME}
107
+ echo
108
+ else
109
+ failure "$PGPOOL_START"
110
+ echo
111
+ script_result=1
112
+ fi
113
+ }
114
+
115
+ stop(){
116
+ echo -n $"Stopping ${NAME} service: "
117
+ if [ $UID -ne 0 ]; then
118
+ RETVAL=1
119
+ failure
120
+ else
121
+ killproc /usr/bin/pgpool
122
+ # $PGPOOLDAEMON stop & >> "$PGPOOLLOG" 2>&1 < /dev/null
123
+ RETVAL=$?
124
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${NAME}
125
+ fi;
126
+ echo
127
+ return $RETVAL
128
+ }
129
+
130
+ switch() {
131
+ echo -n $"Sending switchover request to $NAME "
132
+ $PGPOOLDAEMON -f $PGPOOLCONF switch >> "$PGPOOLLOG" 2>&1 < /dev/null
133
+ RETVAL=$?
134
+ echo
135
+ if [ $RETVAL -eq 0 ]
136
+ then
137
+ echo_success
138
+ else
139
+ echo_failure
140
+ fi
141
+ echo
142
+ }
143
+
144
+ restart(){
145
+ stop
146
+ start
147
+ }
148
+
149
+ reload(){
150
+ echo -n $"Reloading ${NAME}: "
151
+
152
+ if [ -n "`pidfileofproc $PGPOOLDAEMON`" ] ; then
153
+ killproc $PGPOOLDAEMON -HUP
154
+ else
155
+ failure $"Reloading ${NAME}"
156
+ fi
157
+ RETVAL=$?
158
+ echo
159
+ }
160
+
161
+ condrestart(){
162
+ [ -e /var/lock/subsys/${NAME} ] && restart
163
+ }
164
+
165
+ condstop(){
166
+ [ -e /var/lock/subsys/${NAME} ] && stop
167
+ }
168
+
169
+ # See how we were called.
170
+ case "$1" in
171
+ start)
172
+ start
173
+ ;;
174
+ stop)
175
+ stop
176
+ ;;
177
+ switch)
178
+ switch
179
+ ;;
180
+ status)
181
+ status pgpool
182
+ script_result=$?
183
+ ;;
184
+ restart)
185
+ restart
186
+ ;;
187
+ reload|force-reload)
188
+ reload
189
+ ;;
190
+ condrestart)
191
+ condrestart
192
+ ;;
193
+ condstop)
194
+ condstop
195
+ ;;
196
+ *)
197
+ echo $"Usage: $0 {start|stop|switch|status|restart|condrestart|condstop|reload|force-reload}"
198
+ exit 1
199
+ esac
200
+
201
+ exit $script_result
@@ -0,0 +1,7 @@
1
+ # Options for pgpool
2
+
3
+ # -n: don't run in daemon mode. does not detatch control tty
4
+ # -d: debug mode. lots of debug information will be printed
5
+
6
+ #OPTS=" -d -n"
7
+ OPTS=" -n"
@@ -0,0 +1,53 @@
1
+ #! /bin/sh
2
+ # Do base backup by rsync in native replication
3
+
4
+ master_dir=$1
5
+ dest_host=$2
6
+ dest_dir=$3
7
+
8
+ source /etc/pgpool-II/config_for_script
9
+
10
+ log=$PGPOOL_LOG_DIR/recovery.log
11
+
12
+ if [ $dest_host = $NODE0_HOST ]; then
13
+ master_host=$NODE1_HOST
14
+ master_port=$NODE1_PORT
15
+
16
+ elif [ $dest_host = $NODE1_HOST ]; then
17
+ master_host=$NODE0_HOST
18
+ master_port=$NODE0_PORT
19
+
20
+ else
21
+ exit 1
22
+ fi
23
+
24
+ echo "----------------------------------------------------------------------" >> $log
25
+ date >> $log
26
+ echo "----------------------------------------------------------------------" >> $log
27
+ echo "" >> $log
28
+
29
+ # start base backup
30
+ echo "1. pg_start_backup" >> $log
31
+ $psql -p $master_port -U $PGSUPERUSER -c "SELECT pg_start_backup('Native Replication', true)" postgres
32
+
33
+ # rsync
34
+ echo "2. rsync: `whoami`@localhost:$master_dir -> $PGSUPERUSER@$dest_host:$dest_dir" >> $log
35
+ rsync -C -a -c --delete \
36
+ --exclude postmaster.pid --exclude postmaster.opts --exclude pg_log \
37
+ --exclude recovery.conf --exclude recovery.done --exclude pg_xlog/* \
38
+ $master_dir/ $PGSUPERUSER@$dest_host:$dest_dir/
39
+
40
+ # recovery.conf
41
+ echo "3. create recovery.conf" >> $log
42
+ cat > recovery.conf <<EOF
43
+ restore_command = 'scp $PGSUPERUSER@$master_host:$ARCHIVE_DIR/%f %p'
44
+ EOF
45
+ scp recovery.conf $PGSUPERUSER@$dest_host:$dest_dir/
46
+ rm -f recovery.conf
47
+
48
+ # stop base backup
49
+ echo "4. pg_stop_backup" >> $log
50
+ $psql -p $master_port -U $PGSUPERUSER -c "SELECT pg_stop_backup()" postgres
51
+
52
+ echo "" >> $log
53
+ exit 0
@@ -0,0 +1,55 @@
1
+ #!/bin/sh
2
+ # Do base backup by rsync in streaming replication
3
+
4
+ master_dir=$1
5
+ dest_host=$2
6
+ dest_dir=$3
7
+
8
+ source /etc/pgpool-II/config_for_script
9
+
10
+ log=$PGPOOL_LOG_DIR/recovery.log
11
+
12
+ if [ $dest_host = $NODE0_HOST ]; then
13
+ master_host=$NODE1_HOST
14
+ master_port=$NODE1_PORT
15
+
16
+ elif [ $dest_host = $NODE1_HOST ]; then
17
+ master_host=$NODE0_HOST
18
+ master_port=$NODE0_PORT
19
+
20
+ else
21
+ exit 1
22
+ fi
23
+
24
+ echo "----------------------------------------------------------------------" >> $log
25
+ date >> $log
26
+ echo "----------------------------------------------------------------------" >> $log
27
+ echo "" >> $log
28
+
29
+ # start base backup
30
+ echo "1. pg_start_backup" >> $log
31
+ $psql -p $master_port -U $PGSUPERUSER -c "SELECT pg_start_backup('Streaming Replication', true)" postgres
32
+
33
+ # rsync db cluster
34
+ echo "2. rsync: `whoami`@localhost:$master_dir -> $PGSUPERUSER@$dest_host:$dest_dir" >> $log
35
+ rsync -C -a -c --delete \
36
+ --exclude postmaster.pid --exclude postmaster.opts --exclude pg_log \
37
+ --exclude recovery.conf --exclude recovery.done --exclude pg_xlog/* \
38
+ $master_dir/ $PGSUPERUSER@$dest_host:$dest_dir/
39
+
40
+ # recovery.conf
41
+ echo "3. create recovery.conf" >> $log
42
+ cat > recovery.conf <<EOF
43
+ standby_mode = 'on'
44
+ primary_conninfo = 'host=$master_host port=$master_port user=$PGSUPERUSER'
45
+ recovery_target_timeline = 'latest'
46
+ EOF
47
+ scp recovery.conf $PGSUPERUSER@$dest_host:$dest_dir/
48
+ rm -f recovery.conf
49
+
50
+ # stop base backup
51
+ echo "4. pg_stop_backup" >> $log
52
+ $psql -p $master_port -U $PGSUPERUSER -c "SELECT pg_stop_backup()" postgres
53
+
54
+ echo "" >> $log
55
+ exit 0
@@ -0,0 +1,17 @@
1
+ PGHOME=__PGHOME__
2
+ psql=$PGHOME/bin/psql
3
+ pg_ctl=$PGHOME/bin/pg_ctl
4
+
5
+ NODE0_HOST=__NODE0_HOST__
6
+ NODE1_HOST=__NODE1_HOST__
7
+
8
+ NODE0_PORT=__NODE0_PORT__
9
+ NODE1_PORT=__NODE1_PORT__
10
+
11
+ NODE0_DIR=__NODE0_DIR__
12
+ NODE1_DIR=__NODE1_DIR__
13
+
14
+ PGSUPERUSER=__PGSUPERUSER__
15
+ ARCHIVE_DIR=__ARCHIVE_DIR__
16
+
17
+ PGPOOL_LOG_DIR=__PGPOOL_LOG_DIR__
@@ -0,0 +1,64 @@
1
+ #! /bin/sh
2
+ # Execute command by failover.
3
+ # special values: %d = node id
4
+ # %h = host name
5
+ # %p = port number
6
+ # %D = database cluster path
7
+ # %m = new master node id
8
+ # %M = old master node id
9
+ # %H = new master node host name
10
+ # %P = old primary node id
11
+ # %% = '%' character
12
+ # %R = new master database cluster path
13
+ # %% = '%' character
14
+
15
+ source /etc/pgpool-II/config_for_script
16
+
17
+ log=$PGPOOL_LOG_DIR/failover.log
18
+
19
+ failed_node_id=$1
20
+ failed_host=$2
21
+ failed_port=$3
22
+ failed_dir=$4
23
+ new_master_id=$5
24
+ old_master_id=$6
25
+ new_master_host=$7
26
+ old_primary_node_id=$8
27
+ new_master_port=$9
28
+ new_master_dir=${10}
29
+
30
+ echo "----------------------------------------------------------------------" >> $log
31
+ date >> $log
32
+ echo "----------------------------------------------------------------------" >> $log
33
+ echo "" >> $log
34
+
35
+ echo "
36
+ [ node which failed ]
37
+ failed_node_id $failed_node_id
38
+ failed_host $failed_host
39
+ failed_port $failed_port
40
+ failed_dir $failed_dir
41
+
42
+ [ before failover ]
43
+ old_primary_node_id $old_primary_node_id
44
+ old_master_id $old_master_id
45
+
46
+ [ after faiover ]
47
+ new_master_id $new_master_id
48
+ new_master_host $new_master_host
49
+ new_master_port $new_master_port
50
+ new_master_dir $new_master_dir
51
+ " >> $log
52
+
53
+ # Do promote only when the primary node failes
54
+ if [ $failed_node_id = $old_primary_node_id ]; then
55
+ echo "The primary node (node $old_primary_node_id) dies." >> $log
56
+ echo "Node $new_master_id takes over the primary." >> $log
57
+
58
+ ssh $PGSUPERUSER@$new_master_host -T "$pg_ctl -D $new_master_dir promote" >> $log
59
+
60
+ else
61
+ echo "Node $failed_node_id which is not the primary dies. This script doesnt't anything."
62
+ fi
63
+
64
+ echo "" >> $log