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,19 @@
1
+ CREATE OR REPLACE FUNCTION pgpool_recovery(text, text, text)
2
+ RETURNS bool
3
+ AS 'MODULE_PATHNAME', 'pgpool_recovery'
4
+ LANGUAGE C STRICT;
5
+
6
+ CREATE OR REPLACE FUNCTION pgpool_remote_start(text, text)
7
+ RETURNS bool
8
+ AS 'MODULE_PATHNAME', 'pgpool_remote_start'
9
+ LANGUAGE C STRICT;
10
+
11
+ CREATE OR REPLACE FUNCTION pgpool_pgctl(text, text)
12
+ RETURNS bool
13
+ AS '$libdir/pgpool-recovery', 'pgpool_pgctl'
14
+ LANGUAGE C STRICT;
15
+
16
+ CREATE OR REPLACE FUNCTION pgpool_switch_xlog(text)
17
+ RETURNS text
18
+ AS 'MODULE_PATHNAME', 'pgpool_switch_xlog'
19
+ LANGUAGE C STRICT;
@@ -0,0 +1,24 @@
1
+ -- complain if script is sourced in psql, rather than via CREATE EXTENSION
2
+ \echo Use "CREATE EXTENSION pgpool_recovery" to load this file. \quit
3
+
4
+ CREATE FUNCTION pgpool_recovery(IN script_name text,
5
+ IN remote_host text,
6
+ IN remote_data_directory text)
7
+ RETURNS bool
8
+ AS 'MODULE_PATHNAME', 'pgpool_recovery'
9
+ LANGUAGE C STRICT;
10
+
11
+ CREATE FUNCTION pgpool_remote_start(IN remote_host text, IN remote_data_directory text)
12
+ RETURNS bool
13
+ AS 'MODULE_PATHNAME', 'pgpool_remote_start'
14
+ LANGUAGE C STRICT;
15
+
16
+ CREATE OR REPLACE FUNCTION pgpool_pgctl(IN action text, IN stop_mode text)
17
+ RETURNS bool
18
+ AS '$libdir/pgpool-recovery', 'pgpool_pgctl'
19
+ LANGUAGE C STRICT;
20
+
21
+ CREATE OR REPLACE FUNCTION pgpool_switch_xlog(IN arcive_dir text)
22
+ RETURNS text
23
+ AS 'MODULE_PATHNAME', 'pgpool_switch_xlog'
24
+ LANGUAGE C STRICT;
@@ -0,0 +1,5 @@
1
+ # pgpool-recovery extension
2
+ comment = 'recovery functions for pgpool-II'
3
+ default_version = '1.0'
4
+ module_pathname = '$libdir/pgpool-recovery'
5
+ relocatable = true
@@ -0,0 +1,3 @@
1
+ DROP FUNCTION pgpool_switch_xlog(text);
2
+ DROP FUNCTION pgpool_remote_start(text, text);
3
+ DROP FUNCTION pgpool_recovery(text, text, text);
@@ -0,0 +1,206 @@
1
+ /* -*-pgsql-c-*- */
2
+ /*
3
+ * $Header$
4
+ *
5
+ * Copyright (c) 2003-2012 PgPool Global Development Group
6
+ *
7
+ * Permission to use, copy, modify, and distribute this software and
8
+ * its documentation for any purpose and without fee is hereby
9
+ * granted, provided that the above copyright notice appear in all
10
+ * copies and that both that copyright notice and this permission
11
+ * notice appear in supporting documentation, and that the name of the
12
+ * author not be used in advertising or publicity pertaining to
13
+ * distribution of the software without specific, written prior
14
+ * permission. The author makes no representations about the
15
+ * suitability of this software for any purpose. It is provided "as
16
+ * is" without express or implied warranty.
17
+ *
18
+ * pgpool-regclass.c is similar to PostgreSQL builtin function
19
+ * reglcass but does not throw exceptions.
20
+ * If something goes wrong, it returns InvalidOid.
21
+ */
22
+
23
+ #include <sys/types.h>
24
+ #include <sys/stat.h>
25
+ #include <unistd.h>
26
+ #include "postgres.h"
27
+ #include "utils/builtins.h"
28
+ #include "utils/syscache.h"
29
+ #include "utils/elog.h"
30
+ #include "catalog/namespace.h"
31
+ #include "nodes/makefuncs.h"
32
+ #include "commands/dbcommands.h"
33
+ #include "fmgr.h"
34
+ #include "funcapi.h"
35
+
36
+ #include <stdlib.h>
37
+
38
+ #ifdef PG_MODULE_MAGIC
39
+ PG_MODULE_MAGIC;
40
+ #endif
41
+
42
+ PG_FUNCTION_INFO_V1(pgpool_regclass);
43
+
44
+ extern Datum pgpool_regclass(PG_FUNCTION_ARGS);
45
+
46
+ static List *
47
+ MystringToQualifiedNameList(const char *string);
48
+
49
+ static RangeVar *
50
+ MymakeRangeVarFromNameList(List *names);
51
+
52
+ extern Oid MyDatabaseId;
53
+
54
+ #if !defined(PG_VERSION_NUM) || (PG_VERSION_NUM < 90100)
55
+ static Oid
56
+ get_namespace_oid(const char *nspname, bool missing_ok);
57
+ #endif
58
+
59
+ Datum
60
+ pgpool_regclass(PG_FUNCTION_ARGS)
61
+ {
62
+ char *pro_name_or_oid = PG_GETARG_CSTRING(0);
63
+ Oid result;
64
+ List *names;
65
+ RangeVar *rel;
66
+
67
+ names = MystringToQualifiedNameList(pro_name_or_oid);
68
+ if (names == NIL)
69
+ PG_RETURN_OID(InvalidOid);
70
+
71
+ rel = MymakeRangeVarFromNameList(names);
72
+ if (rel == NULL)
73
+ PG_RETURN_OID(InvalidOid);
74
+
75
+ /*
76
+ * Check to see if cross-database reference is used.
77
+ * This is to be done in RangeVarGetRelid(). The reason
78
+ * we do this here is, to avoid raising an error
79
+ * in RangeVarGetRelid().
80
+ */
81
+ if (rel->catalogname)
82
+ {
83
+ if (strcmp(rel->catalogname, get_database_name(MyDatabaseId)) != 0)
84
+ PG_RETURN_OID(InvalidOid);
85
+ }
86
+
87
+ /*
88
+ * Check to see if schema exists.
89
+ * This is to be done in RangeVarGetRelid(). The reason
90
+ * we do this here is, to avoid raising an error
91
+ * in RangeVarGetRelid().
92
+ */
93
+ if (rel->schemaname)
94
+ {
95
+ if (get_namespace_oid(rel->schemaname, true) == InvalidOid)
96
+ PG_RETURN_OID(InvalidOid);
97
+ }
98
+ #if !defined(PG_VERSION_NUM) || (PG_VERSION_NUM < 90200)
99
+ result = RangeVarGetRelid(rel, true);
100
+ #else
101
+ /* RangeVarGetRelid() of PostgreSQL 9.2 or later, has third
102
+ * argument "missing_ok" which suppresses ERROR exception, but
103
+ * returns invlaid_oid. See include/catalog/namespace.h */
104
+ result = RangeVarGetRelid(rel, true, true);
105
+ #endif
106
+ PG_RETURN_OID(result);
107
+ }
108
+
109
+ /*
110
+ * Given a C string, parse it into a qualified-name list.
111
+ * Stolen from PostgreSQL, removing elog calls.
112
+ */
113
+ static List *
114
+ MystringToQualifiedNameList(const char *string)
115
+ {
116
+ char *rawname;
117
+ List *result = NIL;
118
+ List *namelist;
119
+ ListCell *l;
120
+
121
+ /* We need a modifiable copy of the input string. */
122
+ rawname = pstrdup(string);
123
+
124
+ if (!SplitIdentifierString(rawname, '.', &namelist))
125
+ return NIL;
126
+
127
+ if (namelist == NIL)
128
+ return NIL;
129
+
130
+ foreach(l, namelist)
131
+ {
132
+ char *curname = (char *) lfirst(l);
133
+
134
+ result = lappend(result, makeString(pstrdup(curname)));
135
+ }
136
+
137
+ pfree(rawname);
138
+ list_free(namelist);
139
+
140
+ return result;
141
+ }
142
+
143
+ /*
144
+ * makeRangeVarFromNameList
145
+ * Utility routine to convert a qualified-name list into RangeVar form.
146
+ * Stolen from PostgreSQL, removing ereport calls.
147
+ */
148
+ static RangeVar *
149
+ MymakeRangeVarFromNameList(List *names)
150
+ {
151
+ /*
152
+ * Number of arguments of makeRangeVar() has been increased in 8.4 or
153
+ * later.
154
+ */
155
+ #if PG_VERSION_NUM >= 80400
156
+ RangeVar *rel = makeRangeVar(NULL, NULL, -1);
157
+ #else
158
+ RangeVar *rel = makeRangeVar(NULL, NULL);
159
+ #endif
160
+
161
+ switch (list_length(names))
162
+ {
163
+ case 1:
164
+ rel->relname = strVal(linitial(names));
165
+ break;
166
+ case 2:
167
+ rel->schemaname = strVal(linitial(names));
168
+ rel->relname = strVal(lsecond(names));
169
+ break;
170
+ case 3:
171
+ rel->catalogname = strVal(linitial(names));
172
+ rel->schemaname = strVal(lsecond(names));
173
+ rel->relname = strVal(lthird(names));
174
+ break;
175
+ default:
176
+ rel = NULL;
177
+ break;
178
+ }
179
+
180
+ return rel;
181
+ }
182
+
183
+ #if !defined(PG_VERSION_NUM) || (PG_VERSION_NUM < 90100)
184
+ /*
185
+ * get_namespace_oid - given a namespace name, look up the OID
186
+ *
187
+ * If missing_ok is false, throw an error if namespace name not found. If
188
+ * true, just return InvalidOid.
189
+ *
190
+ * This function was stolen from PostgreSQL 9.0 and modified to not
191
+ * use GetSysCacheOid1. Since it is new in 9.0.
192
+ */
193
+ static Oid
194
+ get_namespace_oid(const char *nspname, bool missing_ok)
195
+ {
196
+ Oid oid;
197
+
198
+ oid = GetSysCacheOid(NAMESPACENAME, CStringGetDatum(nspname), 0, 0, 0);
199
+ if (!OidIsValid(oid) && !missing_ok)
200
+ ereport(ERROR,
201
+ (errcode(ERRCODE_UNDEFINED_SCHEMA),
202
+ errmsg("schema \"%s\" does not exist", nspname)));
203
+
204
+ return oid;
205
+ }
206
+ #endif
@@ -0,0 +1,4 @@
1
+ CREATE OR REPLACE FUNCTION pg_catalog.pgpool_regclass(cstring)
2
+ RETURNS oid
3
+ AS 'MODULE_PATHNAME', 'pgpool_regclass'
4
+ LANGUAGE C STRICT;
@@ -0,0 +1,7 @@
1
+ -- complain if script is sourced in psql, rather than via CREATE EXTENSION
2
+ \echo Use "CREATE EXTENSION pgpool_regclass" to load this file. \quit
3
+
4
+ CREATE FUNCTION pg_catalog.pgpool_regclass(IN expression cstring)
5
+ RETURNS oid
6
+ AS 'MODULE_PATHNAME', 'pgpool_regclass'
7
+ LANGUAGE C STRICT;
@@ -0,0 +1,5 @@
1
+ # pgpool-regclass extension
2
+ comment = 'replacement for regclass'
3
+ default_version = '1.0'
4
+ module_pathname = '$libdir/pgpool-regclass'
5
+ relocatable = true
@@ -0,0 +1 @@
1
+ DROP FUNCTION pgpool_regclass(cstring);
@@ -0,0 +1,38 @@
1
+ -- $Header$
2
+
3
+ DROP TABLE pgpool_catalog.dist_def;
4
+ DROP TABLE pgpool_catalog.replicate_def;
5
+ DROP TABLE pgpool_catalog.query_cache;
6
+ DROP SCHEMA pgpool_catalog;
7
+
8
+
9
+ CREATE SCHEMA pgpool_catalog;
10
+
11
+ CREATE TABLE pgpool_catalog.dist_def(
12
+ dbname TEXT,
13
+ schema_name TEXT,
14
+ table_name TEXT,
15
+ col_name TEXT NOT NULL CHECK (col_name = ANY (col_list)),
16
+ col_list TEXT[] NOT NULL,
17
+ type_list TEXT[] NOT NULL,
18
+ dist_def_func TEXT NOT NULL,
19
+ PRIMARY KEY (dbname,schema_name,table_name)
20
+ );
21
+
22
+ CREATE TABLE pgpool_catalog.replicate_def(
23
+ dbname TEXT,
24
+ schema_name TEXT,
25
+ table_name TEXT,
26
+ col_list TEXT[] NOT NULL,
27
+ type_list TEXT[] NOT NULL,
28
+ PRIMARY KEY (dbname,schema_name,table_name)
29
+ );
30
+
31
+ CREATE TABLE pgpool_catalog.query_cache (
32
+ hash TEXT,
33
+ query TEXT,
34
+ value bytea,
35
+ dbname TEXT,
36
+ create_time TIMESTAMP WITH TIME ZONE,
37
+ PRIMARY KEY(hash, dbname)
38
+ );
data/pgpool2/strlcpy.c ADDED
@@ -0,0 +1,85 @@
1
+ /* -*-pgsql-c-*- */
2
+ /*
3
+ *
4
+ * $Header$
5
+ *
6
+ * This file was imported from PostgreSQL source code.
7
+ * See below for the copyright and description.
8
+ *
9
+ * pgpool: a language independent connection pool server for PostgreSQL
10
+ * written by Tatsuo Ishii
11
+ *
12
+ * Portions Copyright (c) 2003-2008 PgPool Global Development Group
13
+ *
14
+ */
15
+ /*-------------------------------------------------------------------------
16
+ *
17
+ * strlcpy.c
18
+ * strncpy done right
19
+ *
20
+ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
21
+ *
22
+ *
23
+ * IDENTIFICATION
24
+ * $PostgreSQL: pgsql/src/port/strlcpy.c,v 1.3 2006/10/04 00:30:14 momjian Exp $
25
+ *
26
+ * This file was taken from OpenBSD and is used on platforms that don't
27
+ * provide strlcpy(). The OpenBSD copyright terms follow.
28
+ *-------------------------------------------------------------------------
29
+ */
30
+
31
+ /* $OpenBSD: strlcpy.c,v 1.11 2006/05/05 15:27:38 millert Exp $ */
32
+
33
+ /*
34
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
35
+ *
36
+ * Permission to use, copy, modify, and distribute this software for any
37
+ * purpose with or without fee is hereby granted, provided that the above
38
+ * copyright notice and this permission notice appear in all copies.
39
+ *
40
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
41
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
42
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
43
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
44
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
45
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
46
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
47
+ */
48
+
49
+ #include <unistd.h>
50
+ #include "pool.h"
51
+
52
+ /*
53
+ * Copy src to string dst of size siz. At most siz-1 characters
54
+ * will be copied. Always NUL terminates (unless siz == 0).
55
+ * Returns strlen(src); if retval >= siz, truncation occurred.
56
+ * Function creation history: http://www.gratisoft.us/todd/papers/strlcpy.html
57
+ */
58
+ size_t
59
+ strlcpy(char *dst, const char *src, size_t siz)
60
+ {
61
+ char *d = dst;
62
+ const char *s = src;
63
+ size_t n = siz;
64
+
65
+ /* Copy as many bytes as will fit */
66
+ if (n != 0)
67
+ {
68
+ while (--n != 0)
69
+ {
70
+ if ((*d++ = *s++) == '\0')
71
+ break;
72
+ }
73
+ }
74
+
75
+ /* Not enough room in dst, add NUL and traverse rest of src */
76
+ if (n == 0)
77
+ {
78
+ if (siz != 0)
79
+ *d = '\0'; /* NUL-terminate dst */
80
+ while (*s++)
81
+ ;
82
+ }
83
+
84
+ return (s - src - 1); /* count does not include NUL */
85
+ }
@@ -0,0 +1,98 @@
1
+ /* -*-pgsql-c-*- */
2
+ /*
3
+ * $Header$
4
+ *
5
+ * pgpool: a language independent connection pool server for PostgreSQL
6
+ * written by Tatsuo Ishii
7
+ *
8
+ * Copyright (c) 2003-2010 PgPool Global Development Group
9
+ *
10
+ * Permission to use, copy, modify, and distribute this software and
11
+ * its documentation for any purpose and without fee is hereby
12
+ * granted, provided that the above copyright notice appear in all
13
+ * copies and that both that copyright notice and this permission
14
+ * notice appear in supporting documentation, and that the name of the
15
+ * author not be used in advertising or publicity pertaining to
16
+ * distribution of the software without specific, written prior
17
+ * permission. The author makes no representations about the
18
+ * suitability of this software for any purpose. It is provided "as
19
+ * is" without express or implied warranty.
20
+ *
21
+ * Extended protocol test program.
22
+ * Features are:
23
+ * libq trace on/off
24
+ * explicit transaction on/off
25
+ * multiple SQL statements
26
+ */
27
+ #include <stdio.h>
28
+ #include <stdlib.h>
29
+ #include <string.h>
30
+
31
+ #include <sys/types.h>
32
+ #include <sys/stat.h>
33
+ #include <fcntl.h>
34
+ #include <unistd.h>
35
+
36
+ #include "libpq-fe.h"
37
+ #include "libpq/libpq-fs.h"
38
+
39
+ int main(int argc, char **argv) {
40
+ char *connect_string = "user=t-ishii dbname=test port=5432";
41
+ int doTrace = 1; /* set 1 to start libpq trace */
42
+ int doTransaction = 1; /* set 1 to start explicit transaction */
43
+ int doSleep = 0; /* set non 0 seconds to sleep after connection and beforfe starting command */
44
+
45
+ /* SQL commands to be executed */
46
+ static char *commands[] = {
47
+ "SAVEPOINT S1",
48
+ "UPDATE t1 SET k = 1",
49
+ "ROLLBACK TO S1",
50
+ "SELECT 1",
51
+ "RELEASE SAVEPOINT S1"
52
+ };
53
+
54
+ PGconn *conn;
55
+ PGresult *res;
56
+ int i;
57
+
58
+ conn = PQconnectdb(connect_string);
59
+ if (PQstatus(conn) == CONNECTION_BAD) {
60
+ printf("Unable to connect to db\n");
61
+ PQfinish(conn);
62
+ return 1;
63
+ }
64
+
65
+ if (doSleep)
66
+ sleep(doSleep);
67
+
68
+ if(doTrace == 1)
69
+ PQtrace(conn, stdout);
70
+
71
+ if(doTransaction)
72
+ PQexec(conn,"BEGIN;");
73
+
74
+ for (i=0;i<sizeof(commands)/sizeof(char *);i++)
75
+ {
76
+ char *command = commands[i];
77
+
78
+ res = PQexecParams(conn, command, 0, NULL, NULL, NULL, NULL, 0);
79
+ switch(PQresultStatus(res)) {
80
+ case PGRES_COMMAND_OK:
81
+ case PGRES_TUPLES_OK:
82
+ fprintf(stderr, "\"%s\" : succeeded\n", command);
83
+ break;
84
+ default:
85
+ fprintf(stderr, "\"%s\" failed: %s\n", command, PQresultErrorMessage(res));
86
+ break;
87
+ }
88
+ PQclear(res);
89
+
90
+ }
91
+
92
+ if(doTransaction == 1) {
93
+ PQexec(conn,"COMMIT;");
94
+ }
95
+
96
+ PQfinish(conn);
97
+ return 0;
98
+ }