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/pg_md5.c ADDED
@@ -0,0 +1,305 @@
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-2013 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
+ * pg_md5 command main
22
+ *
23
+ */
24
+ #include "pool.h"
25
+ #include "pool_config.h"
26
+ #include "pool_passwd.h"
27
+ #include "md5.h"
28
+
29
+ #include <stdio.h>
30
+ #include <stdlib.h>
31
+ #include <string.h>
32
+ #include <unistd.h>
33
+ #include <errno.h>
34
+ #include <termios.h>
35
+ #ifdef HAVE_GETOPT_H
36
+ #include <getopt.h>
37
+ #else
38
+ #include "getopt_long.h"
39
+ #endif
40
+ #include <pwd.h>
41
+ #include <libgen.h>
42
+
43
+ /* Maximum number of characters allowed for input. */
44
+ #define MAX_INPUT_SIZE MAX_USER_NAME_LEN
45
+
46
+ static void print_usage(const char prog[], int exit_code);
47
+ static void set_tio_attr(int enable);
48
+ static void update_pool_passwd(char *conf_file, char *username, char *password);
49
+
50
+ int
51
+ main(int argc, char *argv[])
52
+ {
53
+ #define PRINT_USAGE(exit_code) print_usage(argv[0], exit_code)
54
+
55
+ char conf_file[POOLMAXPATHLEN+1];
56
+ char username[MAX_INPUT_SIZE+1];
57
+ int opt;
58
+ int optindex;
59
+ bool md5auth = false;
60
+ bool prompt = false;
61
+
62
+ static struct option long_options[] = {
63
+ {"help", no_argument, NULL, 'h'},
64
+ {"prompt", no_argument, NULL, 'p'},
65
+ {"md5auth", no_argument, NULL, 'm'},
66
+ {"username", required_argument, NULL, 'u'},
67
+ {"config-file", required_argument, NULL, 'f'},
68
+ {NULL, 0, NULL, 0}
69
+ };
70
+
71
+ snprintf(conf_file, sizeof(conf_file), "%s/%s", DEFAULT_CONFIGDIR, POOL_CONF_FILE_NAME);
72
+
73
+ /* initialize username buffer with zeros so that we can use strlen on it later
74
+ to check if a username was given on the command line
75
+ */
76
+ memset(username, 0, MAX_INPUT_SIZE+1);
77
+
78
+ while ((opt = getopt_long(argc, argv, "hpmf:u:", long_options, &optindex)) != -1)
79
+ {
80
+ switch (opt)
81
+ {
82
+ case 'p': /* prompt for password */
83
+ prompt = true;
84
+ break;
85
+
86
+ case 'm': /* produce md5 authentication password */
87
+ md5auth = true;
88
+ break;
89
+
90
+ case 'f': /* specify configuration file */
91
+ if (!optarg)
92
+ {
93
+ PRINT_USAGE(EXIT_SUCCESS);
94
+ }
95
+ strlcpy(conf_file, optarg, sizeof(conf_file));
96
+ break;
97
+
98
+ case 'u':
99
+ if (!optarg)
100
+ {
101
+ PRINT_USAGE(EXIT_SUCCESS);
102
+ }
103
+ /* check the input limit early */
104
+ if (strlen(optarg) > MAX_INPUT_SIZE)
105
+ {
106
+ fprintf(stderr, "Error: input exceeds maximum username length!\n\n");
107
+ exit(EXIT_FAILURE);
108
+ }
109
+ strlcpy(username, optarg, sizeof(username));
110
+ break;
111
+
112
+ default:
113
+ PRINT_USAGE(EXIT_SUCCESS);
114
+ break;
115
+ }
116
+ }
117
+
118
+ /* Prompt for password. */
119
+ if (prompt)
120
+ {
121
+ char md5[MD5_PASSWD_LEN+1];
122
+ char buf[MAX_INPUT_SIZE+1];
123
+ int len;
124
+
125
+ set_tio_attr(1);
126
+ printf("password: ");
127
+ if (!fgets(buf, (MAX_INPUT_SIZE+1), stdin))
128
+ {
129
+ int eno = errno;
130
+
131
+ fprintf(stderr, "Couldn't read input from stdin. (fgets(): %s)",
132
+ strerror(eno));
133
+
134
+ exit(EXIT_FAILURE);
135
+ }
136
+ printf("\n");
137
+ set_tio_attr(0);
138
+
139
+ /* Remove LF at the end of line, if there is any. */
140
+ len = strlen(buf);
141
+ if (len > 0 && buf[len-1] == '\n')
142
+ {
143
+ buf[len-1] = '\0';
144
+ len--;
145
+ }
146
+
147
+ if (md5auth)
148
+ {
149
+ update_pool_passwd(conf_file, username, buf);
150
+ }
151
+ else
152
+ {
153
+ pool_md5_hash(buf, len, md5);
154
+ printf("%s\n", md5);
155
+ }
156
+ }
157
+
158
+ /* Read password from argv. */
159
+ else
160
+ {
161
+ char md5[POOL_PASSWD_LEN+1];
162
+ int len;
163
+
164
+ if (optind >= argc)
165
+ {
166
+ PRINT_USAGE(EXIT_FAILURE);
167
+ }
168
+
169
+ len = strlen(argv[optind]);
170
+
171
+ if (len > MAX_INPUT_SIZE)
172
+ {
173
+ fprintf(stderr, "Error: Input exceeds maximum password length!\n\n");
174
+ PRINT_USAGE(EXIT_FAILURE);
175
+ }
176
+
177
+ if (md5auth)
178
+ {
179
+ update_pool_passwd(conf_file, username, argv[optind]);
180
+ }
181
+ else
182
+ {
183
+ pool_md5_hash(argv[optind], len, md5);
184
+ printf("%s\n", md5);
185
+ }
186
+ }
187
+
188
+ return EXIT_SUCCESS;
189
+ }
190
+
191
+ static void update_pool_passwd(char *conf_file, char *username, char *password)
192
+ {
193
+ struct passwd *pw;
194
+ char md5[POOL_PASSWD_LEN+1];
195
+ char pool_passwd[POOLMAXPATHLEN+1];
196
+ char dirnamebuf[POOLMAXPATHLEN+1];
197
+ char *dirp;
198
+
199
+ if (pool_init_config())
200
+ {
201
+ fprintf(stderr, "pool_init_config() failed\n\n");
202
+ exit(EXIT_FAILURE);
203
+ }
204
+ if (pool_get_config(conf_file, INIT_CONFIG))
205
+ {
206
+ fprintf(stderr, "Unable to get configuration. Exiting...");
207
+ exit(EXIT_FAILURE);
208
+ }
209
+
210
+ strlcpy(dirnamebuf, conf_file, sizeof(dirnamebuf));
211
+ dirp = dirname(dirnamebuf);
212
+ snprintf(pool_passwd, sizeof(pool_passwd), "%s/%s",
213
+ dirp, pool_config->pool_passwd);
214
+ pool_init_pool_passwd(pool_passwd);
215
+
216
+ if (strlen(username))
217
+ {
218
+ /* generate the hash for the given username */
219
+ pg_md5_encrypt(password, username, strlen(username), md5);
220
+ pool_create_passwdent(username, md5);
221
+ }
222
+ else
223
+ {
224
+ /* get the user information from the current uid */
225
+ pw = getpwuid(getuid());
226
+ if (!pw)
227
+ {
228
+ fprintf(stderr, "getpwuid() failed\n\n");
229
+ exit(EXIT_FAILURE);
230
+ }
231
+ pg_md5_encrypt(password, pw->pw_name, strlen(pw->pw_name), md5);
232
+ pool_create_passwdent(pw->pw_name, md5);
233
+ }
234
+ pool_finish_pool_passwd();
235
+ }
236
+
237
+ static void
238
+ print_usage(const char prog[], int exit_code)
239
+ {
240
+ fprintf(((exit_code == EXIT_SUCCESS) ? stdout : stderr),
241
+ "Usage:\n\
242
+ \n\
243
+ %s [OPTIONS]\n\
244
+ %s <PASSWORD>\n\
245
+ \n\
246
+ --prompt, -p Prompt password using standard input.\n\
247
+ --md5auth, -m Produce md5 authentication password.\n\
248
+ --username, -u USER When producing a md5 authentication password,\n\
249
+ create the pool_passwd entry for USER.\n\
250
+ --config-file, -f CONFIG-FILE Specify pgpool.conf.\n\
251
+ --help, -h This help menu.\n\
252
+ \n\
253
+ Warning: At most %d characters are allowed for input.\n\
254
+ Warning: Plain password argument is deprecated for security concerns\n\
255
+ and kept for compatibility. Please prefer using password\n\
256
+ prompt.\n",
257
+ prog, prog, MAX_INPUT_SIZE);
258
+
259
+ exit(exit_code);
260
+ }
261
+
262
+
263
+ static void
264
+ set_tio_attr(int set)
265
+ {
266
+ struct termios tio;
267
+ static struct termios tio_save;
268
+
269
+
270
+ if (!isatty(0))
271
+ {
272
+ fprintf(stderr, "stdin is not tty\n");
273
+ exit(EXIT_FAILURE);
274
+ }
275
+
276
+ if (set)
277
+ {
278
+ if (tcgetattr(0, &tio) < 0)
279
+ {
280
+ fprintf(stderr, "set_tio_attr(set): tcgetattr failed\n");
281
+ exit(EXIT_FAILURE);
282
+ }
283
+
284
+ tio_save = tio;
285
+
286
+ tio.c_iflag &= ~(BRKINT|ISTRIP|IXON);
287
+ tio.c_lflag &= ~(ICANON|IEXTEN|ECHO|ECHOE|ECHOK|ECHONL);
288
+ tio.c_cc[VMIN] = 1;
289
+ tio.c_cc[VTIME] = 0;
290
+
291
+ if (tcsetattr(0, TCSANOW, &tio) < 0)
292
+ {
293
+ fprintf(stderr, "(set_tio_attr(set): tcsetattr failed\n");
294
+ exit(EXIT_FAILURE);
295
+ }
296
+ }
297
+ else
298
+ {
299
+ if (tcsetattr(0, TCSANOW, &tio_save) < 0)
300
+ {
301
+ fprintf(stderr, "set_tio_attr(reset): tcsetattr failed\n");
302
+ exit(EXIT_FAILURE);
303
+ }
304
+ }
305
+ }
@@ -0,0 +1,121 @@
1
+ .\" Copyright 2004-2009 by PgPool Global Development Group
2
+ .\" This man page is subject to the same license as the rest of pgpool.
3
+ .\"
4
+ .TH PGPOOL 8 "12 Oct 2009"
5
+ .\" Please adjust this date whenever revising the manpage.
6
+ .hy 0
7
+ .ad l
8
+ .nf
9
+ .SH NAME
10
+ pgpool \- PostgreSQL connection pool daemon
11
+ .SH SYNOPSIS
12
+ \fBpgpool\fR [ \fB\-c\fR] [ \fB\-f config_file\fR ] [ \fB\-F pcp_config_file\fR ] [ \fB\-a hba_file\fR ] [ \fB\-n\fR ] [ \fB\-D\fR ] [ \fB\-d\fR ]
13
+ .LP
14
+ \fBpgpool\fR [ \fB\-f config_file\fR ] [ \fB\-F pcp_config_file\fR ] [ \fB\-a hba_file\fR ] [ \fB\-m\fR \fI{s[mart]|f[ast]|i[mmediate]}\fR ] \fBstop\fR
15
+ .LP
16
+ \fBpgpool\fR [ \fB\-f config_file\fR ] [ \fB\-F pcp_config_file\fR ] [ \fB\-a hba_file\fR ] \fBreload\fR
17
+ .LP
18
+ .SH DESCRIPTION
19
+ \fBpgpool\fR is a connection pool server for PostgreSQL.
20
+ \fBpgpool\fR runs between PostgreSQL's client and server.
21
+ Any PostgreSQL client can connect to \fBpgpool\fR as if it's a real PostgreSQL server.
22
+ \fBpgpool\fR caches the connection to the PostgreSQL server to reduce the overhead
23
+ involved in establishing the connection to it.
24
+ .P
25
+ \fBpgpool\fR can also be
26
+ used with two PostgreSQL servers for fail over purposes. If the first
27
+ server goes down, \fBpgpool\fR will automatically switch to the secondary server.
28
+ .P
29
+ \fBpgpool\fR is typically started and stopped via system initialization scripts.
30
+ .
31
+ .P
32
+ .SH INVOCATION
33
+ .TP
34
+ \fBpgpool\fP [ \fIoptions...\fP ]
35
+ Starts as a daemon in the background (unless \fB\-n\fR is given).
36
+ .TP
37
+ \fBpgpool\fP [ \fIoptions...\fP ] \fBstop\fP
38
+ Shutdown.
39
+ .TP
40
+ \fBpgpool\fP [ \fIoptions...\fP ] \fBreload\fP
41
+ Reloads the configuration.
42
+ .
43
+ .SH OPTIONS
44
+ .TP
45
+ \fB\-a\fR \fIpath\fR
46
+ .P
47
+ .B \--hba-file\fR \fIpath\fR
48
+ Sets the path to the \fIpool_hba.conf\fR configuration file (default: \fI@sysconfdir@/pgpool_hba.conf\fR).
49
+ .TP
50
+ \fB\-c\fR
51
+ .P
52
+ .B \--clear-cache
53
+ Clears the query cache.
54
+ .TP
55
+ \fB\-d\fR
56
+ .P
57
+ .B \--debug
58
+ Print lots of debug messages.
59
+ .TP
60
+ \fB\-f\fR \fIpath\fR
61
+ .P
62
+ .B \--config-file\fR \fIpath\fR
63
+ Sets the path to the \fIpgpool.conf\fR configuration file (default: \fI@sysconfdir@/pgpool.conf\fR).
64
+ .TP
65
+ \fB\-F\fR \fIpath\fR
66
+ .P
67
+ .B \--pcp-config-file\fR \fIpath\fR
68
+ Sets the path to the \fIpcp.conf\fR configuration file (default: \fI@sysconfdir@/pcp.conf\fR).
69
+ .TP
70
+ \fB\-h\fR
71
+ .P
72
+ .B \--help
73
+ Print a help message and exit.
74
+ .TP
75
+ \fB\-m\fR \fImode\fR
76
+ .P
77
+ .B \--mode\fR \fImode\fR
78
+ Shutdown mode:
79
+ .B smart, fast,
80
+ or
81
+ .BR immediate .
82
+ .TP
83
+ \fB\-n\fR
84
+ .P
85
+ .B \--no-daemon
86
+ Foreground mode.
87
+ Error messages go to stdout or stderr, which
88
+ could be piped out to log processors such as
89
+ .BR logger (1)
90
+ or
91
+ .BR rotatelogs (8).
92
+ To daemonize, explicitly invoke
93
+ .B pgpool
94
+ in background.
95
+ .TP
96
+ .B \-D
97
+ .P
98
+ .B \--discard-status
99
+ Discard pgpool_status file and do not restore previous status.
100
+ .TP
101
+ .B \-v
102
+ .P
103
+ .B \--version
104
+ Print version and exit.
105
+ .
106
+ .SH FILES
107
+ .TP
108
+ \fI@sysconfdir@/pgpool.conf\fR
109
+ Default configuration file
110
+ .TP
111
+ \fI@sysconfdir@/pool_hba.conf\fR
112
+ Host Based Access configuration file
113
+ .TP
114
+ \fI@sysconfdir@/pcp.conf\fR
115
+ PCP commands configuration file
116
+ .SH SEE ALSO
117
+ .BR logger (1),
118
+ .BR postmaster (1),
119
+ .BR rotatelogs (8)
120
+ .PP
121
+ Additional information can be found in the \fBpgpool\fR \fIREADME\fR file.
@@ -0,0 +1,553 @@
1
+ # ----------------------------
2
+ # pgPool-II configuration file
3
+ # ----------------------------
4
+ #
5
+ # This file consists of lines of the form:
6
+ #
7
+ # name = value
8
+ #
9
+ # Whitespace may be used. Comments are introduced with "#" anywhere on a line.
10
+ # The complete list of parameter names and allowed values can be found in the
11
+ # pgPool-II documentation.
12
+ #
13
+ # This file is read on server startup and when the server receives a SIGHUP
14
+ # signal. If you edit the file on a running system, you have to SIGHUP the
15
+ # server for the changes to take effect, or use "pgpool reload". Some
16
+ # parameters, which are marked below, require a server shutdown and restart to
17
+ # take effect.
18
+ #
19
+
20
+
21
+ #------------------------------------------------------------------------------
22
+ # CONNECTIONS
23
+ #------------------------------------------------------------------------------
24
+
25
+ # - pgpool Connection Settings -
26
+
27
+ listen_addresses = '*'
28
+ # Host name or IP address to listen on:
29
+ # '*' for all, '' for no TCP/IP connections
30
+ # (change requires restart)
31
+ port = 9999
32
+ # Port number
33
+ # (change requires restart)
34
+ socket_dir = '/tmp'
35
+ # Unix domain socket path
36
+ # The Debian package defaults to
37
+ # /var/run/postgresql
38
+ # (change requires restart)
39
+
40
+
41
+ # - pgpool Communication Manager Connection Settings -
42
+
43
+ pcp_port = 9898
44
+ # Port number for pcp
45
+ # (change requires restart)
46
+ pcp_socket_dir = '/tmp'
47
+ # Unix domain socket path for pcp
48
+ # The Debian package defaults to
49
+ # /var/run/postgresql
50
+ # (change requires restart)
51
+
52
+ # - Backend Connection Settings -
53
+
54
+ backend_hostname0 = 'vm1'
55
+ # Host name or IP address to connect to for backend 0
56
+ backend_port0 = 5432
57
+ # Port number for backend 0
58
+ backend_weight0 = 1
59
+ # Weight for backend 0 (only in load balancing mode)
60
+ backend_data_directory0 = '/usr/local/pgsql/data'
61
+ # Data directory for backend 0
62
+ backend_flag0 = 'ALLOW_TO_FAILOVER'
63
+ # Controls various backend behavior
64
+ # ALLOW_TO_FAILOVER or DISALLOW_TO_FAILOVER
65
+ backend_hostname1 = 'vm2'
66
+ backend_port1 = 5433
67
+ backend_weight1 = 1
68
+ backend_data_directory1 = '/usr/local/pgsql/data'
69
+ backend_flag1 = 'ALLOW_TO_FAILOVER'
70
+
71
+ # - Authentication -
72
+
73
+ enable_pool_hba = off
74
+ # Use pool_hba.conf for client authentication
75
+ authentication_timeout = 60
76
+ # Delay in seconds to complete client authentication
77
+ # 0 means no timeout.
78
+
79
+ # - SSL Connections -
80
+
81
+ ssl = off
82
+ # Enable SSL support
83
+ # (change requires restart)
84
+ #ssl_key = './server.key'
85
+ # Path to the SSL private key file
86
+ # (change requires restart)
87
+ #ssl_cert = './server.cert'
88
+ # Path to the SSL public certificate file
89
+ # (change requires restart)
90
+ #ssl_ca_cert = ''
91
+ # Path to a single PEM format file
92
+ # containing CA root certificate(s)
93
+ # (change requires restart)
94
+ #ssl_ca_cert_dir = ''
95
+ # Directory containing CA root certificate(s)
96
+ # (change requires restart)
97
+
98
+
99
+ #------------------------------------------------------------------------------
100
+ # POOLS
101
+ #------------------------------------------------------------------------------
102
+
103
+ # - Pool size -
104
+
105
+ num_init_children = 32
106
+ # Number of pools
107
+ # (change requires restart)
108
+ max_pool = 4
109
+ # Number of connections per pool
110
+ # (change requires restart)
111
+
112
+ # - Life time -
113
+
114
+ child_life_time = 300
115
+ # Pool exits after being idle for this many seconds
116
+ child_max_connections = 0
117
+ # Pool exits after receiving that many connections
118
+ # 0 means no exit
119
+ connection_life_time = 0
120
+ # Connection to backend closes after being idle for this many seconds
121
+ # 0 means no close
122
+ client_idle_limit = 0
123
+ # Client is disconnected after being idle for that many seconds
124
+ # (even inside an explicit transactions!)
125
+ # 0 means no disconnection
126
+
127
+
128
+ #------------------------------------------------------------------------------
129
+ # LOGS
130
+ #------------------------------------------------------------------------------
131
+
132
+ # - Where to log -
133
+
134
+ log_destination = 'stderr'
135
+ # Where to log
136
+ # Valid values are combinations of stderr,
137
+ # and syslog. Default to stderr.
138
+
139
+ # - What to log -
140
+
141
+ print_timestamp = on
142
+ # Print timestamp on each line
143
+ # (change requires restart)
144
+
145
+ log_connections = off
146
+ # Log connections
147
+ log_hostname = off
148
+ # Hostname will be shown in ps status
149
+ # and in logs if connections are logged
150
+ log_statement = off
151
+ # Log all statements
152
+ log_per_node_statement = off
153
+ # Log all statements
154
+ # with node and backend informations
155
+ log_standby_delay = 'none'
156
+ # Log standby delay
157
+ # Valid values are combinations of always,
158
+ # if_over_threshold, none
159
+
160
+ # - Syslog specific -
161
+
162
+ syslog_facility = 'LOCAL0'
163
+ # Syslog local facility. Default to LOCAL0
164
+ syslog_ident = 'pgpool'
165
+ # Syslog program identification string
166
+ # Default to 'pgpool'
167
+
168
+ # - Debug -
169
+
170
+ debug_level = 0
171
+ # Debug message verbosity level
172
+ # 0 means no message, 1 or more mean verbose
173
+
174
+
175
+ #------------------------------------------------------------------------------
176
+ # FILE LOCATIONS
177
+ #------------------------------------------------------------------------------
178
+
179
+ pid_file_name = './pgpool.pid'
180
+ # PID file name
181
+ # (change requires restart)
182
+ logdir = '/tmp'
183
+ # Directory of pgPool status file
184
+ # (change requires restart)
185
+
186
+
187
+ #------------------------------------------------------------------------------
188
+ # CONNECTION POOLING
189
+ #------------------------------------------------------------------------------
190
+
191
+ connection_cache = on
192
+ # Activate connection pools
193
+ # (change requires restart)
194
+
195
+ # Semicolon separated list of queries
196
+ # to be issued at the end of a session
197
+ # The default is for 8.3 and later
198
+ reset_query_list = 'ABORT; DISCARD ALL'
199
+ # The following one is for 8.2 and before
200
+ #reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT'
201
+
202
+
203
+ #------------------------------------------------------------------------------
204
+ # REPLICATION MODE
205
+ #------------------------------------------------------------------------------
206
+
207
+ replication_mode = off
208
+ # Activate replication mode
209
+ # (change requires restart)
210
+ replicate_select = off
211
+ # Replicate SELECT statements
212
+ # when in replication or parallel mode
213
+ # replicate_select is higher priority than
214
+ # load_balance_mode.
215
+
216
+ insert_lock = on
217
+ # Automatically locks a dummy row or a table
218
+ # with INSERT statements to keep SERIAL data
219
+ # consistency
220
+ # Without SERIAL, no lock will be issued
221
+ lobj_lock_table = ''
222
+ # When rewriting lo_creat command in
223
+ # replication mode, specify table name to
224
+ # lock
225
+
226
+ # - Degenerate handling -
227
+
228
+ replication_stop_on_mismatch = off
229
+ # On disagreement with the packet kind
230
+ # sent from backend, degenerate the node
231
+ # which is most likely "minority"
232
+ # If off, just force to exit this session
233
+
234
+ failover_if_affected_tuples_mismatch = off
235
+ # On disagreement with the number of affected
236
+ # tuples in UPDATE/DELETE queries, then
237
+ # degenerate the node which is most likely
238
+ # "minority".
239
+ # If off, just abort the transaction to
240
+ # keep the consistency
241
+
242
+
243
+ #------------------------------------------------------------------------------
244
+ # LOAD BALANCING MODE
245
+ #------------------------------------------------------------------------------
246
+
247
+ load_balance_mode = off
248
+ # Activate load balancing mode
249
+ # (change requires restart)
250
+ ignore_leading_white_space = on
251
+ # Ignore leading white spaces of each query
252
+ white_function_list = ''
253
+ # Comma separated list of function names
254
+ # that don't write to database
255
+ # Regexp are accepted
256
+ black_function_list = 'nextval,setval'
257
+ # Comma separated list of function names
258
+ # that write to database
259
+ # Regexp are accepted
260
+
261
+
262
+ #------------------------------------------------------------------------------
263
+ # MASTER/SLAVE MODE
264
+ #------------------------------------------------------------------------------
265
+
266
+ master_slave_mode = off
267
+ # Activate master/slave mode
268
+ # (change requires restart)
269
+ master_slave_sub_mode = 'slony'
270
+ # Master/slave sub mode
271
+ # Valid values are combinations slony or
272
+ # stream. Default is slony.
273
+ # (change requires restart)
274
+
275
+ # - Streaming -
276
+
277
+ sr_check_period = 0
278
+ # Streaming replication check period
279
+ # Disabled (0) by default
280
+ sr_check_user = 'nobody'
281
+ # Streaming replication check user
282
+ # This is necessary even if you disable
283
+ # streaming replication delay check with
284
+ # sr_check_period = 0
285
+ sr_check_password = ''
286
+ # Password for streaming replication check user
287
+ delay_threshold = 0
288
+ # Threshold before not dispatching query to standby node
289
+ # Unit is in bytes
290
+ # Disabled (0) by default
291
+
292
+ # - Special commands -
293
+
294
+ follow_master_command = ''
295
+ # Executes this command after master failover
296
+ # Special values:
297
+ # %d = node id
298
+ # %h = host name
299
+ # %p = port number
300
+ # %D = database cluster path
301
+ # %m = new master node id
302
+ # %H = hostname of the new master node
303
+ # %M = old master node id
304
+ # %P = old primary node id
305
+ # %r = new master port number
306
+ # %R = new master database cluster path
307
+ # %% = '%' character
308
+
309
+
310
+ #------------------------------------------------------------------------------
311
+ # PARALLEL MODE
312
+ #------------------------------------------------------------------------------
313
+
314
+ parallel_mode = off
315
+ # Activates parallel query mode
316
+ # (change requires restart)
317
+ pgpool2_hostname = 'vm1'
318
+ # Set pgpool2 hostname
319
+ # (change requires restart)
320
+
321
+ # - System DB info -
322
+
323
+ system_db_hostname = 'localhost'
324
+ # (change requires restart)
325
+ system_db_port = 5432
326
+ # (change requires restart)
327
+ system_db_dbname = 'pgpool'
328
+ # (change requires restart)
329
+ system_db_schema = 'pgpool_catalog'
330
+ # (change requires restart)
331
+ system_db_user = 'pgpool'
332
+ # (change requires restart)
333
+ system_db_password = ''
334
+ # (change requires restart)
335
+
336
+
337
+ #------------------------------------------------------------------------------
338
+ # HEALTH CHECK
339
+ #------------------------------------------------------------------------------
340
+
341
+ health_check_period = 0
342
+ # Health check period
343
+ # Disabled (0) by default
344
+ health_check_timeout = 20
345
+ # Health check timeout
346
+ # 0 means no timeout
347
+ health_check_user = 'nobody'
348
+ # Health check user
349
+ health_check_password = ''
350
+ # Password for health check user
351
+ health_check_max_retries = 0
352
+ # Maximum number of times to retry a failed health check before giving up.
353
+ health_check_retry_delay = 1
354
+ # Amount of time to wait (in seconds) between retries.
355
+
356
+
357
+ #------------------------------------------------------------------------------
358
+ # FAILOVER AND FAILBACK
359
+ #------------------------------------------------------------------------------
360
+
361
+ failover_command = ''
362
+ # Executes this command at failover
363
+ # Special values:
364
+ # %d = node id
365
+ # %h = host name
366
+ # %p = port number
367
+ # %D = database cluster path
368
+ # %m = new master node id
369
+ # %H = hostname of the new master node
370
+ # %M = old master node id
371
+ # %P = old primary node id
372
+ # %r = new master port number
373
+ # %R = new master database cluster path
374
+ # %% = '%' character
375
+ failback_command = ''
376
+ # Executes this command at failback.
377
+ # Special values:
378
+ # %d = node id
379
+ # %h = host name
380
+ # %p = port number
381
+ # %D = database cluster path
382
+ # %m = new master node id
383
+ # %H = hostname of the new master node
384
+ # %M = old master node id
385
+ # %P = old primary node id
386
+ # %r = new master port number
387
+ # %R = new master database cluster path
388
+ # %% = '%' character
389
+
390
+ fail_over_on_backend_error = on
391
+ # Initiates failover when reading/writing to the
392
+ # backend communication socket fails
393
+ # If set to off, pgpool will report an
394
+ # error and disconnect the session.
395
+
396
+ search_primary_node_timeout = 10
397
+ # Timeout in seconds to search for the
398
+ # primary node when a failover occurs.
399
+ # 0 means no timeout, keep searching
400
+ # for a primary node forever.
401
+
402
+ #------------------------------------------------------------------------------
403
+ # ONLINE RECOVERY
404
+ #------------------------------------------------------------------------------
405
+
406
+ recovery_user = 'nobody'
407
+ # Online recovery user
408
+ recovery_password = ''
409
+ # Online recovery password
410
+ recovery_1st_stage_command = ''
411
+ # Executes a command in first stage
412
+ recovery_2nd_stage_command = ''
413
+ # Executes a command in second stage
414
+ recovery_timeout = 90
415
+ # Timeout in seconds to wait for the
416
+ # recovering node's postmaster to start up
417
+ # 0 means no wait
418
+ client_idle_limit_in_recovery = 0
419
+ # Client is disconnected after being idle
420
+ # for that many seconds in the second stage
421
+ # of online recovery
422
+ # 0 means no disconnection
423
+ # -1 means immediate disconnection
424
+
425
+
426
+ #------------------------------------------------------------------------------
427
+ # WATCHDOG
428
+ #------------------------------------------------------------------------------
429
+ use_watchdog = on
430
+ # Activates watchdog
431
+ trusted_servers = '192.168.122.1'
432
+ # trusted server list which are used
433
+ # to confirm network connection
434
+ # (hostA,hostB,hostC,...)
435
+ delegate_IP = '192.168.122.80'
436
+ # delegate IP address
437
+ wd_hostname = 'vm1'
438
+ # Host name or IP address of this watchdog
439
+ wd_port = 9000
440
+ # port number for watchdog service
441
+ wd_interval = 10
442
+ # lifecheck interval (sec) > 0
443
+ ping_path = '/bin'
444
+ # ping command path
445
+ ifconfig_path = '/sbin'
446
+ # ifconfig command path
447
+ if_up_cmd = 'ifconfig eth0:0 inet $_IP_$ netmask 255.255.255.0'
448
+ # startup delegate IP command
449
+ if_down_cmd = 'ifconfig eth0:0 down'
450
+ # shutdown delegate IP command
451
+ wd_life_point = 3
452
+ # lifecheck retry times
453
+ wd_lifecheck_query = 'SELECT 1'
454
+ # lifecheck query to pgpool from watchdog
455
+ # Other pgpool Connection Settings
456
+
457
+ other_pgpool_hostname0 = 'vm2'
458
+ # Host name or IP address to connect to for other pgpool 0
459
+ other_pgpool_port0 = 9999
460
+ # Port number for othet pgpool 0
461
+ other_wd_port0 = 9000
462
+ # Port number for othet watchdog 0
463
+ #other_pgpool_hostname1 = 'vm1'
464
+ #other_pgpool_port1 = 9999
465
+ #other_wd_port1 = 9000
466
+
467
+ #------------------------------------------------------------------------------
468
+ # OTHERS
469
+ #------------------------------------------------------------------------------
470
+ relcache_expire = 0
471
+ # Life time of relation cache in seconds.
472
+ # 0 means no cache expiration(the default).
473
+ # The relation cache is used for cache the
474
+ # query result against PostgreSQL system
475
+ # catalog to obtain various information
476
+ # including table structures or if it's a
477
+ # temporary table or not. The cache is
478
+ # maintained in a pgpool child local memory
479
+ # and being kept as long as it survives.
480
+ # If someone modify the table by using
481
+ # ALTER TABLE or some such, the relcache is
482
+ # not consistent anymore.
483
+ # For this purpose, cache_expiration
484
+ # controls the life time of the cache.
485
+
486
+ relcache_size = 256
487
+ # Number of relation cache
488
+ # entry. If you see frequently:
489
+ # "pool_search_relcache: cache replacement happend"
490
+ # in the pgpool log, you might want to increate this number.
491
+
492
+ check_temp_table = on
493
+ # If on, enable temporary table check in SELECT statements.
494
+ # This initiates queries against system catalog of primary/master
495
+ # thus increases load of master.
496
+ # If you are absolutely sure that your system never uses temporary tables
497
+ # and you want to save access to primary/master, you could turn this off.
498
+ # Default is on.
499
+
500
+
501
+ #------------------------------------------------------------------------------
502
+ # ON MEMORY QUERY MEMORY CACHE
503
+ #------------------------------------------------------------------------------
504
+ # If on, use the memory cache functionality, off by default
505
+ memory_cache_enabled = off
506
+
507
+ # Cache storage method. either 'shmem'(shared memory) or 'memcached'. 'shmem' by default
508
+ memqcache_method = 'shmem'
509
+
510
+ # Memcached host name or IP address. Mandatory if memqcache_method = 'memcached'.
511
+ # Defaults to localhost
512
+ memqcache_memcached_host = 'localhost'
513
+
514
+ # Memcached port number. Mondatory if memqcache_method = 'memcached'.
515
+ # Defaults to 11211
516
+ memqcache_memcached_port = 11211
517
+
518
+ # Total memory size in bytes for storing memory cache. Mandatory if memqcache_method = 'shmem'.
519
+ # Defaults to 64MB.
520
+ memqcache_total_size = 67108864
521
+
522
+ # Total number of cache entries. Mandatory if memqcache_method = 'shmem'.
523
+ # Each cache entry consumes 48 bytes on shared memory. Defaults to 1,000,000(45.8MB).
524
+ memqcache_max_num_cache = 1000000
525
+
526
+ # Memory cache entry life time specified in seconds.
527
+ # 0 means infinite life time. 0 by default.
528
+ memqcache_expire = 0
529
+
530
+ # If on, invalidation of query cache is triggered by corresponding
531
+ # DDL/DML/DCL(and memqcache_expire). If off, it is only triggered
532
+ # by memqcache_expire. on by default.
533
+ memqcache_auto_cache_invalidation = on
534
+
535
+ # Maximum SELECT result size in bytes.
536
+ # Must be smaller than memqcache_cache_block_size. Defaults to 400KB.
537
+ memqcache_maxcache = 409600
538
+
539
+ # Cache block size in bytes. Mandatory if memqcache_method = 'shmem'.
540
+ # Defaults to 1MB.
541
+ memqcache_cache_block_size = 1048576
542
+
543
+ # Temporary work directory to record table oids
544
+ memqcache_oiddir = '/var/log/pgpool/oiddir'
545
+
546
+ white_memqcache_table_list = ''
547
+ # Comma separated list of table names to memcache
548
+ # that don't write to database
549
+ # Regexp are accepted
550
+ black_memqcache_table_list = ''
551
+ # Comma separated list of table names not to memcache
552
+ # that don't write to database
553
+ # Regexp are accepted