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,160 @@
1
+ /*
2
+ * $Header$
3
+ *
4
+ * pgpool: a language independent connection pool server for PostgreSQL
5
+ * written by Tatsuo Ishii
6
+ *
7
+ * Copyright (c) 2003-2008 PgPool Global Development Group
8
+ *
9
+ * Permission to use, copy, modify, and distribute this software and
10
+ * its documentation for any purpose and without fee is hereby
11
+ * granted, provided that the above copyright notice appear in all
12
+ * copies and that both that copyright notice and this permission
13
+ * notice appear in supporting documentation, and that the name of the
14
+ * author not be used in advertising or publicity pertaining to
15
+ * distribution of the software without specific, written prior
16
+ * permission. The author makes no representations about the
17
+ * suitability of this software for any purpose. It is provided "as
18
+ * is" without express or implied warranty.
19
+ *
20
+ * Client program to send "node count" command.
21
+ */
22
+
23
+ #include <stdio.h>
24
+ #include <stdlib.h>
25
+ #include <string.h>
26
+ #include <unistd.h>
27
+ #ifdef HAVE_GETOPT_H
28
+ #include <getopt.h>
29
+ #else
30
+ #include "getopt_long.h"
31
+ #endif
32
+
33
+ #include "pcp.h"
34
+
35
+ static void usage(void);
36
+ static void myexit(ErrorCode e);
37
+
38
+ int
39
+ main(int argc, char **argv)
40
+ {
41
+ long timeout;
42
+ char host[MAX_DB_HOST_NAMELEN];
43
+ int port;
44
+ char user[MAX_USER_PASSWD_LEN];
45
+ char pass[MAX_USER_PASSWD_LEN];
46
+ int node_count;
47
+ int ch;
48
+ int optindex;
49
+
50
+ static struct option long_options[] = {
51
+ {"debug", no_argument, NULL, 'd'},
52
+ {"help", no_argument, NULL, 'h'},
53
+ {NULL, 0, NULL, 0}
54
+ };
55
+
56
+ while ((ch = getopt_long(argc, argv, "hd", long_options, &optindex)) != -1) {
57
+ switch (ch) {
58
+ case 'd':
59
+ pcp_enable_debug();
60
+ break;
61
+
62
+ case 'h':
63
+ case '?':
64
+ default:
65
+ usage();
66
+ exit(0);
67
+ }
68
+ }
69
+ argc -= optind;
70
+ argv += optind;
71
+
72
+ if (argc != 5) {
73
+ errorcode = INVALERR;
74
+ pcp_errorstr(errorcode);
75
+ myexit(errorcode);
76
+ }
77
+
78
+ timeout = atol(argv[0]);
79
+ if (timeout < 0) {
80
+ errorcode = INVALERR;
81
+ pcp_errorstr(errorcode);
82
+ myexit(errorcode);
83
+ }
84
+
85
+ if (strlen(argv[1]) >= MAX_DB_HOST_NAMELEN) {
86
+ errorcode = INVALERR;
87
+ pcp_errorstr(errorcode);
88
+ myexit(errorcode);
89
+ }
90
+ strcpy(host, argv[1]);
91
+
92
+ port = atoi(argv[2]);
93
+ if (port <= 1024 || port > 65535) {
94
+ errorcode = INVALERR;
95
+ pcp_errorstr(errorcode);
96
+ myexit(errorcode);
97
+ }
98
+
99
+ if (strlen(argv[3]) >= MAX_USER_PASSWD_LEN) {
100
+ errorcode = INVALERR;
101
+ pcp_errorstr(errorcode);
102
+ myexit(errorcode);
103
+ }
104
+ strcpy(user, argv[3]);
105
+
106
+ if (strlen(argv[4]) >= MAX_USER_PASSWD_LEN) {
107
+ errorcode = INVALERR;
108
+ pcp_errorstr(errorcode);
109
+ myexit(errorcode);
110
+ }
111
+ strcpy(pass, argv[4]);
112
+
113
+ pcp_set_timeout(timeout);
114
+
115
+ if (pcp_connect(host, port, user, pass))
116
+ {
117
+ pcp_errorstr(errorcode);
118
+ myexit(errorcode);
119
+ }
120
+
121
+ if ((node_count = pcp_node_count()) < 0)
122
+ {
123
+ pcp_errorstr(errorcode);
124
+ pcp_disconnect();
125
+ myexit(errorcode);
126
+ } else {
127
+ printf("%d\n", node_count);
128
+ }
129
+
130
+ pcp_disconnect();
131
+
132
+ return 0;
133
+ }
134
+
135
+ static void
136
+ usage(void)
137
+ {
138
+ fprintf(stderr, "pcp_node_count - display the total number of nodes under pgpool-II's control\n\n");
139
+ fprintf(stderr, "Usage: pcp_node_count [-d] timeout hostname port# username password\n");
140
+ fprintf(stderr, "Usage: pcp_node_count -h\n\n");
141
+ fprintf(stderr, " -d, --debug : enable debug message (optional)\n");
142
+ fprintf(stderr, " timeout : connection timeout value in seconds. command exits on timeout\n");
143
+ fprintf(stderr, " hostname : pgpool-II hostname\n");
144
+ fprintf(stderr, " port# : PCP port number\n");
145
+ fprintf(stderr, " username : username for PCP authentication\n");
146
+ fprintf(stderr, " password : password for PCP authentication\n");
147
+ fprintf(stderr, " -h, --help : print this help\n");
148
+ }
149
+
150
+ static void
151
+ myexit(ErrorCode e)
152
+ {
153
+ if (e == INVALERR)
154
+ {
155
+ usage();
156
+ exit(e);
157
+ }
158
+
159
+ exit(e);
160
+ }
@@ -0,0 +1,198 @@
1
+ /*
2
+ * $Header$
3
+ *
4
+ * pgpool: a language independent connection pool server for PostgreSQL
5
+ * written by Tatsuo Ishii
6
+ *
7
+ * Copyright (c) 2003-2008 PgPool Global Development Group
8
+ *
9
+ * Permission to use, copy, modify, and distribute this software and
10
+ * its documentation for any purpose and without fee is hereby
11
+ * granted, provided that the above copyright notice appear in all
12
+ * copies and that both that copyright notice and this permission
13
+ * notice appear in supporting documentation, and that the name of the
14
+ * author not be used in advertising or publicity pertaining to
15
+ * distribution of the software without specific, written prior
16
+ * permission. The author makes no representations about the
17
+ * suitability of this software for any purpose. It is provided "as
18
+ * is" without express or implied warranty.
19
+ *
20
+ * Client program to send "node info" command.
21
+ */
22
+
23
+ #include <stdio.h>
24
+ #include <stdlib.h>
25
+ #include <string.h>
26
+ #include <unistd.h>
27
+ #ifdef HAVE_GETOPT_H
28
+ #include <getopt.h>
29
+ #else
30
+ #include "getopt_long.h"
31
+ #endif
32
+
33
+ #include "pcp.h"
34
+
35
+ static void usage(void);
36
+ static void myexit(ErrorCode e);
37
+
38
+ int
39
+ main(int argc, char **argv)
40
+ {
41
+ long timeout;
42
+ char host[MAX_DB_HOST_NAMELEN];
43
+ int port;
44
+ char user[MAX_USER_PASSWD_LEN];
45
+ char pass[MAX_USER_PASSWD_LEN];
46
+ int nodeID;
47
+ BackendInfo *backend_info;
48
+ int ch;
49
+ int optindex;
50
+ bool verbose = false;
51
+
52
+ static struct option long_options[] = {
53
+ {"debug", no_argument, NULL, 'd'},
54
+ {"help", no_argument, NULL, 'h'},
55
+ {"verbose", no_argument, NULL, 'v'},
56
+ {NULL, 0, NULL, 0}
57
+ };
58
+
59
+ while ((ch = getopt_long(argc, argv, "hdv", long_options, &optindex)) != -1) {
60
+ switch (ch) {
61
+ case 'd':
62
+ pcp_enable_debug();
63
+ break;
64
+
65
+ case 'v':
66
+ verbose = true;
67
+ break;
68
+
69
+ case 'h':
70
+ case '?':
71
+ default:
72
+ usage();
73
+ exit(0);
74
+ }
75
+ }
76
+ argc -= optind;
77
+ argv += optind;
78
+
79
+ if (argc != 6)
80
+ {
81
+ errorcode = INVALERR;
82
+ pcp_errorstr(errorcode);
83
+ myexit(errorcode);
84
+ }
85
+
86
+ timeout = atol(argv[0]);
87
+ if (timeout < 0) {
88
+ errorcode = INVALERR;
89
+ pcp_errorstr(errorcode);
90
+ myexit(errorcode);
91
+ }
92
+
93
+ if (strlen(argv[1]) >= MAX_DB_HOST_NAMELEN)
94
+ {
95
+ errorcode = INVALERR;
96
+ pcp_errorstr(errorcode);
97
+ myexit(errorcode);
98
+ }
99
+ strcpy(host, argv[1]);
100
+
101
+ port = atoi(argv[2]);
102
+ if (port <= 1024 || port > 65535)
103
+ {
104
+ errorcode = INVALERR;
105
+ pcp_errorstr(errorcode);
106
+ myexit(errorcode);
107
+ }
108
+
109
+ if (strlen(argv[3]) >= MAX_USER_PASSWD_LEN)
110
+ {
111
+ errorcode = INVALERR;
112
+ pcp_errorstr(errorcode);
113
+ myexit(errorcode);
114
+ }
115
+ strcpy(user, argv[3]);
116
+
117
+ if (strlen(argv[4]) >= MAX_USER_PASSWD_LEN)
118
+ {
119
+ errorcode = INVALERR;
120
+ pcp_errorstr(errorcode);
121
+ myexit(errorcode);
122
+ }
123
+ strcpy(pass, argv[4]);
124
+
125
+ nodeID = atoi(argv[5]);
126
+ if (nodeID < 0 || nodeID > MAX_NUM_BACKENDS)
127
+ {
128
+ errorcode = INVALERR;
129
+ pcp_errorstr(errorcode);
130
+ myexit(errorcode);
131
+ }
132
+
133
+ pcp_set_timeout(timeout);
134
+
135
+ if (pcp_connect(host, port, user, pass))
136
+ {
137
+ pcp_errorstr(errorcode);
138
+ myexit(errorcode);
139
+ }
140
+
141
+ if ((backend_info = pcp_node_info(nodeID)) == NULL)
142
+ {
143
+ pcp_errorstr(errorcode);
144
+ pcp_disconnect();
145
+ myexit(errorcode);
146
+ } else {
147
+ if (verbose)
148
+ {
149
+ printf("Hostname: %s\nPort : %d\nStatus : %d\nWeight : %f\n",
150
+ backend_info->backend_hostname,
151
+ backend_info->backend_port,
152
+ backend_info->backend_status,
153
+ backend_info->backend_weight/RAND_MAX);
154
+ } else {
155
+ printf("%s %d %d %f\n",
156
+ backend_info->backend_hostname,
157
+ backend_info->backend_port,
158
+ backend_info->backend_status,
159
+ backend_info->backend_weight/RAND_MAX);
160
+ }
161
+
162
+ free(backend_info);
163
+ }
164
+
165
+ pcp_disconnect();
166
+
167
+ return 0;
168
+ }
169
+
170
+ static void
171
+ usage(void)
172
+ {
173
+ fprintf(stderr, "pcp_node_info - display a pgpool-II node's information\n\n");
174
+ fprintf(stderr, "Usage: pcp_node_info [-d] timeout hostname port# username password nodeID\n");
175
+ fprintf(stderr, " -d, --debug : enable debug message (optional)\n");
176
+ fprintf(stderr, " timeout : connection timeout value in seconds. command exits on timeout\n");
177
+ fprintf(stderr, " hostname : pgpool-II hostname\n");
178
+ fprintf(stderr, " port# : PCP port number\n");
179
+ fprintf(stderr, " username : username for PCP authentication\n");
180
+ fprintf(stderr, " password : password for PCP authentication\n");
181
+ fprintf(stderr, " nodeID : ID of a node to get information for\n\n");
182
+ fprintf(stderr, "Usage: pcp_node_info [options]\n");
183
+ fprintf(stderr, " Options available are:\n");
184
+ fprintf(stderr, " -h, --help : print this help\n");
185
+ fprintf(stderr, " -v, --verbose : display one line per information with a header\n");
186
+ }
187
+
188
+ static void
189
+ myexit(ErrorCode e)
190
+ {
191
+ if (e == INVALERR)
192
+ {
193
+ usage();
194
+ exit(e);
195
+ }
196
+
197
+ exit(e);
198
+ }
@@ -0,0 +1,166 @@
1
+ /*
2
+ * $Header$
3
+ *
4
+ * pgpool: a language independent connection pool server for PostgreSQL
5
+ * written by Tatsuo Ishii
6
+ *
7
+ * Copyright (c) 2003-2011 PgPool Global Development Group
8
+ *
9
+ * Permission to use, copy, modify, and distribute this software and
10
+ * its documentation for any purpose and without fee is hereby
11
+ * granted, provided that the above copyright notice appear in all
12
+ * copies and that both that copyright notice and this permission
13
+ * notice appear in supporting documentation, and that the name of the
14
+ * author not be used in advertising or publicity pertaining to
15
+ * distribution of the software without specific, written prior
16
+ * permission. The author makes no representations about the
17
+ * suitability of this software for any purpose. It is provided "as
18
+ * is" without express or implied warranty.
19
+ *
20
+ * Client program to send "pool status" command.
21
+ */
22
+
23
+ #include <stdio.h>
24
+ #include <stdlib.h>
25
+ #include <string.h>
26
+ #include <unistd.h>
27
+ #ifdef HAVE_GETOPT_H
28
+ #include <getopt.h>
29
+ #else
30
+ #include "getopt_long.h"
31
+ #endif
32
+
33
+ #include "pcp.h"
34
+
35
+ static void usage(void);
36
+ static void myexit(ErrorCode e);
37
+
38
+ int
39
+ main(int argc, char **argv)
40
+ {
41
+ long timeout;
42
+ char host[MAX_DB_HOST_NAMELEN];
43
+ int port;
44
+ char user[MAX_USER_PASSWD_LEN];
45
+ char pass[MAX_USER_PASSWD_LEN];
46
+ POOL_REPORT_CONFIG *status;
47
+ int ch;
48
+ int i;
49
+ int optindex;
50
+ int array_size = 0;
51
+
52
+ static struct option long_options[] = {
53
+ {"debug", no_argument, NULL, 'd'},
54
+ {"help", no_argument, NULL, 'h'},
55
+ {NULL, 0, NULL, 0}
56
+ };
57
+
58
+ while ((ch = getopt_long(argc, argv, "hd", long_options, &optindex)) != -1) {
59
+ switch (ch) {
60
+ case 'd':
61
+ pcp_enable_debug();
62
+ break;
63
+
64
+ case 'h':
65
+ case '?':
66
+ default:
67
+ usage();
68
+ exit(0);
69
+ }
70
+ }
71
+ argc -= optind;
72
+ argv += optind;
73
+
74
+ if (argc != 5) {
75
+ errorcode = INVALERR;
76
+ pcp_errorstr(errorcode);
77
+ myexit(errorcode);
78
+ }
79
+
80
+ timeout = atol(argv[0]);
81
+ if (timeout < 0) {
82
+ errorcode = INVALERR;
83
+ pcp_errorstr(errorcode);
84
+ myexit(errorcode);
85
+ }
86
+
87
+ if (strlen(argv[1]) >= MAX_DB_HOST_NAMELEN) {
88
+ errorcode = INVALERR;
89
+ pcp_errorstr(errorcode);
90
+ myexit(errorcode);
91
+ }
92
+ strcpy(host, argv[1]);
93
+
94
+ port = atoi(argv[2]);
95
+ if (port <= 1024 || port > 65535) {
96
+ errorcode = INVALERR;
97
+ pcp_errorstr(errorcode);
98
+ myexit(errorcode);
99
+ }
100
+
101
+ if (strlen(argv[3]) >= MAX_USER_PASSWD_LEN) {
102
+ errorcode = INVALERR;
103
+ pcp_errorstr(errorcode);
104
+ myexit(errorcode);
105
+ }
106
+ strcpy(user, argv[3]);
107
+
108
+ if (strlen(argv[4]) >= MAX_USER_PASSWD_LEN) {
109
+ errorcode = INVALERR;
110
+ pcp_errorstr(errorcode);
111
+ myexit(errorcode);
112
+ }
113
+ strcpy(pass, argv[4]);
114
+
115
+ pcp_set_timeout(timeout);
116
+
117
+ if (pcp_connect(host, port, user, pass))
118
+ {
119
+ pcp_errorstr(errorcode);
120
+ myexit(errorcode);
121
+ }
122
+
123
+ if ((status = pcp_pool_status(&array_size)) == NULL)
124
+ {
125
+ pcp_errorstr(errorcode);
126
+ pcp_disconnect();
127
+ myexit(errorcode);
128
+ } else {
129
+
130
+ for (i=0; i<array_size; i++) {
131
+ printf("name : %s\nvalue: %s\ndesc : %s\n\n", status[i].name, status[i].value, status[i].desc);
132
+ }
133
+ free(status);
134
+ }
135
+
136
+ pcp_disconnect();
137
+
138
+ return 0;
139
+ }
140
+
141
+ static void
142
+ usage(void)
143
+ {
144
+ fprintf(stderr, "pcp_pool_status - display pgpool configuration and status\n\n");
145
+ fprintf(stderr, "Usage: pcp_pool_status [-d] timeout hostname port# username password\n");
146
+ fprintf(stderr, "Usage: pcp_pool_status -h\n\n");
147
+ fprintf(stderr, " -d, --debug : enable debug message (optional)\n");
148
+ fprintf(stderr, " timeout : connection timeout value in seconds. command exits on timeout\n");
149
+ fprintf(stderr, " hostname : pgpool-II hostname\n");
150
+ fprintf(stderr, " port# : PCP port number\n");
151
+ fprintf(stderr, " username : username for PCP authentication\n");
152
+ fprintf(stderr, " password : password for PCP authentication\n");
153
+ fprintf(stderr, " -h, --help : print this help\n");
154
+ }
155
+
156
+ static void
157
+ myexit(ErrorCode e)
158
+ {
159
+ if (e == INVALERR)
160
+ {
161
+ usage();
162
+ exit(e);
163
+ }
164
+
165
+ exit(e);
166
+ }