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
data/pgpool2/pcp/pcp.h ADDED
@@ -0,0 +1,61 @@
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
+ *
21
+ * pcp.h - master header file.
22
+ */
23
+
24
+ #ifndef PCP_H
25
+ #define PCP_H
26
+
27
+ #include "pool_type.h"
28
+ #include "watchdog/watchdog.h"
29
+
30
+ #define MAX_USER_PASSWD_LEN 128
31
+
32
+ typedef enum {
33
+ UNKNOWNERR = 1, /* shouldn't happen */
34
+ EOFERR, /* EOF read by read() */
35
+ NOMEMERR, /* could not allocate memory */
36
+ READERR, /* read() error */
37
+ WRITEERR, /* flush() error */
38
+ TIMEOUTERR, /* select() timeout */
39
+ INVALERR, /* invalid command-line argument(s) number, length, range, etc. */
40
+ CONNERR, /* thrown by connect() */
41
+ NOCONNERR, /* not connected to server */
42
+ SOCKERR, /* thrown by socket() or setsockopt() */
43
+ HOSTERR, /* thrown by gethostbyname() */
44
+ BACKENDERR, /* server dependent error */
45
+ AUTHERR /* authorization failure */
46
+ } ErrorCode;
47
+
48
+ /* --------------------------------
49
+ * pcp.c
50
+ * --------------------------------
51
+ */
52
+ extern struct timeval pcp_timeout;
53
+
54
+ /* ------------------------------
55
+ * pcp_error.c
56
+ * ------------------------------
57
+ */
58
+ extern ErrorCode errorcode;
59
+ extern void pcp_errorstr(ErrorCode e);
60
+
61
+ #endif /* PCP_H */
@@ -0,0 +1,172 @@
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 "attach node" 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
+ 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 != 6)
73
+ {
74
+ errorcode = INVALERR;
75
+ pcp_errorstr(errorcode);
76
+ myexit(errorcode);
77
+ }
78
+
79
+ timeout = atol(argv[0]);
80
+ if (timeout < 0) {
81
+ errorcode = INVALERR;
82
+ pcp_errorstr(errorcode);
83
+ myexit(errorcode);
84
+ }
85
+
86
+ if (strlen(argv[1]) >= MAX_DB_HOST_NAMELEN)
87
+ {
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
+ {
97
+ errorcode = INVALERR;
98
+ pcp_errorstr(errorcode);
99
+ myexit(errorcode);
100
+ }
101
+
102
+ if (strlen(argv[3]) >= MAX_USER_PASSWD_LEN)
103
+ {
104
+ errorcode = INVALERR;
105
+ pcp_errorstr(errorcode);
106
+ myexit(errorcode);
107
+ }
108
+ strcpy(user, argv[3]);
109
+
110
+ if (strlen(argv[4]) >= MAX_USER_PASSWD_LEN)
111
+ {
112
+ errorcode = INVALERR;
113
+ pcp_errorstr(errorcode);
114
+ myexit(errorcode);
115
+ }
116
+ strcpy(pass, argv[4]);
117
+
118
+ nodeID = atoi(argv[5]);
119
+ if (nodeID < 0 || nodeID > MAX_NUM_BACKENDS)
120
+ {
121
+ errorcode = INVALERR;
122
+ pcp_errorstr(errorcode);
123
+ myexit(errorcode);
124
+ }
125
+
126
+ pcp_set_timeout(timeout);
127
+
128
+ if (pcp_connect(host, port, user, pass))
129
+ {
130
+ pcp_errorstr(errorcode);
131
+ myexit(errorcode);
132
+ }
133
+
134
+ if (pcp_attach_node(nodeID))
135
+ {
136
+ pcp_errorstr(errorcode);
137
+ pcp_disconnect();
138
+ myexit(errorcode);
139
+ }
140
+
141
+ pcp_disconnect();
142
+
143
+ return 0;
144
+ }
145
+
146
+ static void
147
+ usage(void)
148
+ {
149
+ fprintf(stderr, "pcp_attach_node - attach a node from pgpool-II\n\n");
150
+ fprintf(stderr, "Usage: pcp_attach_node [-d] timeout hostname port# username password nodeID\n");
151
+ fprintf(stderr, "Usage: pcp_attach_node -h\n\n");
152
+ fprintf(stderr, " -d, --debug : enable debug message (optional)\n");
153
+ fprintf(stderr, " timeout : connection timeout value in seconds. command exits on timeout\n");
154
+ fprintf(stderr, " hostname : pgpool-II hostname\n");
155
+ fprintf(stderr, " port# : PCP port number\n");
156
+ fprintf(stderr, " username : username for PCP authentication\n");
157
+ fprintf(stderr, " password : password for PCP authentication\n");
158
+ fprintf(stderr, " nodeID : ID of a node to be attached\n");
159
+ fprintf(stderr, " -h, --help : print this help\n");
160
+ }
161
+
162
+ static void
163
+ myexit(ErrorCode e)
164
+ {
165
+ if (e == INVALERR)
166
+ {
167
+ usage();
168
+ exit(e);
169
+ }
170
+
171
+ exit(e);
172
+ }
@@ -0,0 +1,185 @@
1
+ /*
2
+ * $Header$
3
+ *
4
+ * pgpool: a language independent connection pool server for PostgreSQL
5
+ * written by Tatsuo Ishii
6
+ *
7
+ * Copyright (c) 2003-2010 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 "detach node" 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
+ int ch;
48
+ int optindex;
49
+ bool gracefully = false;
50
+ int sts;
51
+
52
+ static struct option long_options[] = {
53
+ {"debug", no_argument, NULL, 'd'},
54
+ {"gracefully", no_argument, NULL, 'g'},
55
+ {"help", no_argument, NULL, 'h'},
56
+ {NULL, 0, NULL, 0}
57
+ };
58
+
59
+ while ((ch = getopt_long(argc, argv, "hdg", long_options, &optindex)) != -1) {
60
+ switch (ch) {
61
+ case 'd':
62
+ pcp_enable_debug();
63
+ break;
64
+
65
+ case 'g':
66
+ gracefully = 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 (gracefully)
142
+ sts = pcp_detach_node_gracefully(nodeID);
143
+ else
144
+ sts = pcp_detach_node(nodeID);
145
+
146
+ if (sts)
147
+ {
148
+ pcp_errorstr(errorcode);
149
+ pcp_disconnect();
150
+ myexit(errorcode);
151
+ }
152
+
153
+ pcp_disconnect();
154
+
155
+ return 0;
156
+ }
157
+
158
+ static void
159
+ usage(void)
160
+ {
161
+ fprintf(stderr, "pcp_detach_node - detach a node from pgpool-II\n\n");
162
+ fprintf(stderr, "Usage: pcp_detach_node [-d][-g] timeout hostname port# username password nodeID\n");
163
+ fprintf(stderr, "Usage: pcp_detach_node -h\n\n");
164
+ fprintf(stderr, " -d, --debug : enable debug message (optional)\n");
165
+ fprintf(stderr, " -g, --gracefully : detach gracefully(optional)\n");
166
+ fprintf(stderr, " timeout : connection timeout value in seconds. command exits on timeout\n");
167
+ fprintf(stderr, " hostname : pgpool-II hostname\n");
168
+ fprintf(stderr, " port# : PCP port number\n");
169
+ fprintf(stderr, " username : username for PCP authentication\n");
170
+ fprintf(stderr, " password : password for PCP authentication\n");
171
+ fprintf(stderr, " nodeID : ID of a node to be detached\n");
172
+ fprintf(stderr, " -h, --help : print this help\n");
173
+ }
174
+
175
+ static void
176
+ myexit(ErrorCode e)
177
+ {
178
+ if (e == INVALERR)
179
+ {
180
+ usage();
181
+ exit(e);
182
+ }
183
+
184
+ exit(e);
185
+ }
@@ -0,0 +1,87 @@
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
+ * Handles errors occured in PCP modules.
21
+ */
22
+
23
+ #include <stdio.h>
24
+
25
+ #include "pcp.h"
26
+
27
+ ErrorCode errorcode;
28
+
29
+ void
30
+ pcp_errorstr(ErrorCode e)
31
+ {
32
+ switch (e)
33
+ {
34
+ case EOFERR:
35
+ fprintf(stdout, "EOFError\n");
36
+ break;
37
+
38
+ case NOMEMERR:
39
+ fprintf(stdout, "NoMemoryError\n");
40
+ break;
41
+
42
+ case READERR:
43
+ fprintf(stdout, "ReadError\n");
44
+ break;
45
+
46
+ case WRITEERR:
47
+ fprintf(stdout, "WriteError\n");
48
+ break;
49
+
50
+ case TIMEOUTERR:
51
+ fprintf(stdout, "TimeoutError\n");
52
+ break;
53
+
54
+ case INVALERR:
55
+ fprintf(stdout, "InvalidArgumentError\n");
56
+ break;
57
+
58
+ case CONNERR:
59
+ fprintf(stdout, "ConnectionError\n");
60
+ break;
61
+
62
+ case NOCONNERR:
63
+ fprintf(stdout, "NoConnectionError\n");
64
+ break;
65
+
66
+ case SOCKERR:
67
+ fprintf(stdout, "SocketError\n");
68
+ break;
69
+
70
+ case HOSTERR:
71
+ fprintf(stdout, "HostError\n");
72
+ break;
73
+
74
+ case BACKENDERR:
75
+ fprintf(stdout, "BackendError\n");
76
+ break;
77
+
78
+ case AUTHERR:
79
+ fprintf(stdout, "AuthorizationError\n");
80
+ break;
81
+
82
+ case UNKNOWNERR:
83
+ default:
84
+ fprintf(stdout, "UnknownError\n");
85
+ break;
86
+ }
87
+ }