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,134 @@
1
+ # Macros to detect C compiler features
2
+ # $PostgreSQL: pgsql/config/c-compiler.m4,v 1.19 2008/06/27 00:36:16 tgl Exp $
3
+
4
+
5
+ # PGAC_C_SIGNED
6
+ # -------------
7
+ # Check if the C compiler understands signed types.
8
+ AC_DEFUN([PGAC_C_SIGNED],
9
+ [AC_CACHE_CHECK(for signed types, pgac_cv_c_signed,
10
+ [AC_TRY_COMPILE([],
11
+ [signed char c; signed short s; signed int i;],
12
+ [pgac_cv_c_signed=yes],
13
+ [pgac_cv_c_signed=no])])
14
+ if test x"$pgac_cv_c_signed" = xno ; then
15
+ AC_DEFINE(signed,, [Define to empty if the C compiler does not understand signed types.])
16
+ fi])# PGAC_C_SIGNED
17
+
18
+
19
+
20
+ # PGAC_TYPE_64BIT_INT(TYPE)
21
+ # -------------------------
22
+ # Check if TYPE is a working 64 bit integer type. Set HAVE_TYPE_64 to
23
+ # yes or no respectively, and define HAVE_TYPE_64 if yes.
24
+ AC_DEFUN([PGAC_TYPE_64BIT_INT],
25
+ [define([Ac_define], [translit([have_$1_64], [a-z *], [A-Z_P])])dnl
26
+ define([Ac_cachevar], [translit([pgac_cv_type_$1_64], [ *], [_p])])dnl
27
+ AC_CACHE_CHECK([whether $1 is 64 bits], [Ac_cachevar],
28
+ [AC_TRY_RUN(
29
+ [typedef $1 ac_int64;
30
+
31
+ /*
32
+ * These are globals to discourage the compiler from folding all the
33
+ * arithmetic tests down to compile-time constants.
34
+ */
35
+ ac_int64 a = 20000001;
36
+ ac_int64 b = 40000005;
37
+
38
+ int does_int64_work()
39
+ {
40
+ ac_int64 c,d;
41
+
42
+ if (sizeof(ac_int64) != 8)
43
+ return 0; /* definitely not the right size */
44
+
45
+ /* Do perfunctory checks to see if 64-bit arithmetic seems to work */
46
+ c = a * b;
47
+ d = (c + b) / b;
48
+ if (d != a+1)
49
+ return 0;
50
+ return 1;
51
+ }
52
+ main() {
53
+ exit(! does_int64_work());
54
+ }],
55
+ [Ac_cachevar=yes],
56
+ [Ac_cachevar=no],
57
+ [# If cross-compiling, check the size reported by the compiler and
58
+ # trust that the arithmetic works.
59
+ AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([], [sizeof($1) == 8])],
60
+ Ac_cachevar=yes,
61
+ Ac_cachevar=no)])])
62
+
63
+ Ac_define=$Ac_cachevar
64
+ if test x"$Ac_cachevar" = xyes ; then
65
+ AC_DEFINE(Ac_define, 1, [Define to 1 if `]$1[' works and is 64 bits.])
66
+ fi
67
+ undefine([Ac_define])dnl
68
+ undefine([Ac_cachevar])dnl
69
+ ])# PGAC_TYPE_64BIT_INT
70
+
71
+
72
+
73
+ # PGAC_C_FUNCNAME_SUPPORT
74
+ # -----------------------
75
+ # Check if the C compiler understands __func__ (C99) or __FUNCTION__ (gcc).
76
+ # Define HAVE_FUNCNAME__FUNC or HAVE_FUNCNAME__FUNCTION accordingly.
77
+ AC_DEFUN([PGAC_C_FUNCNAME_SUPPORT],
78
+ [AC_CACHE_CHECK(for __func__, pgac_cv_funcname_func_support,
79
+ [AC_TRY_COMPILE([#include <stdio.h>],
80
+ [printf("%s\n", __func__);],
81
+ [pgac_cv_funcname_func_support=yes],
82
+ [pgac_cv_funcname_func_support=no])])
83
+ if test x"$pgac_cv_funcname_func_support" = xyes ; then
84
+ AC_DEFINE(HAVE_FUNCNAME__FUNC, 1,
85
+ [Define to 1 if your compiler understands __func__.])
86
+ else
87
+ AC_CACHE_CHECK(for __FUNCTION__, pgac_cv_funcname_function_support,
88
+ [AC_TRY_COMPILE([#include <stdio.h>],
89
+ [printf("%s\n", __FUNCTION__);],
90
+ [pgac_cv_funcname_function_support=yes],
91
+ [pgac_cv_funcname_function_support=no])])
92
+ if test x"$pgac_cv_funcname_function_support" = xyes ; then
93
+ AC_DEFINE(HAVE_FUNCNAME__FUNCTION, 1,
94
+ [Define to 1 if your compiler understands __FUNCTION__.])
95
+ fi
96
+ fi])# PGAC_C_FUNCNAME_SUPPORT
97
+
98
+
99
+
100
+ # PGAC_PROG_CC_CFLAGS_OPT
101
+ # -----------------------
102
+ # Given a string, check if the compiler supports the string as a
103
+ # command-line option. If it does, add the string to CFLAGS.
104
+ AC_DEFUN([PGAC_PROG_CC_CFLAGS_OPT],
105
+ [AC_MSG_CHECKING([if $CC supports $1])
106
+ pgac_save_CFLAGS=$CFLAGS
107
+ CFLAGS="$pgac_save_CFLAGS $1"
108
+ _AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
109
+ AC_MSG_RESULT(yes),
110
+ [CFLAGS="$pgac_save_CFLAGS"
111
+ AC_MSG_RESULT(no)])
112
+ ])# PGAC_PROG_CC_CFLAGS_OPT
113
+
114
+
115
+
116
+ # PGAC_PROG_CC_LDFLAGS_OPT
117
+ # ------------------------
118
+ # Given a string, check if the compiler supports the string as a
119
+ # command-line option. If it does, add the string to LDFLAGS.
120
+ # For reasons you'd really rather not know about, this checks whether
121
+ # you can link to a particular function, not just whether you can link.
122
+ # In fact, we must actually check that the resulting program runs :-(
123
+ AC_DEFUN([PGAC_PROG_CC_LDFLAGS_OPT],
124
+ [AC_MSG_CHECKING([if $CC supports $1])
125
+ pgac_save_LDFLAGS=$LDFLAGS
126
+ LDFLAGS="$pgac_save_LDFLAGS $1"
127
+ AC_RUN_IFELSE([AC_LANG_PROGRAM([extern void $2 (); void (*fptr) () = $2;],[])],
128
+ AC_MSG_RESULT(yes),
129
+ [LDFLAGS="$pgac_save_LDFLAGS"
130
+ AC_MSG_RESULT(no)],
131
+ [LDFLAGS="$pgac_save_LDFLAGS"
132
+ AC_MSG_RESULT(assuming no)])
133
+ ])# PGAC_PROG_CC_LDFLAGS_OPT
134
+
@@ -0,0 +1,325 @@
1
+ # Macros that test various C library quirks
2
+ # $PostgreSQL: pgsql/config/c-library.m4,v 1.33 2008/08/21 13:53:28 petere Exp $
3
+
4
+
5
+ # PGAC_VAR_INT_TIMEZONE
6
+ # ---------------------
7
+ # Check if the global variable `timezone' exists. If so, define
8
+ # HAVE_INT_TIMEZONE.
9
+ AC_DEFUN([PGAC_VAR_INT_TIMEZONE],
10
+ [AC_CACHE_CHECK(for int timezone, pgac_cv_var_int_timezone,
11
+ [AC_TRY_LINK([#include <time.h>
12
+ int res;],
13
+ [#ifndef __CYGWIN__
14
+ res = timezone / 60;
15
+ #else
16
+ res = _timezone / 60;
17
+ #endif],
18
+ [pgac_cv_var_int_timezone=yes],
19
+ [pgac_cv_var_int_timezone=no])])
20
+ if test x"$pgac_cv_var_int_timezone" = xyes ; then
21
+ AC_DEFINE(HAVE_INT_TIMEZONE,, [Define to 1 if you have the global variable 'int timezone'.])
22
+ fi])# PGAC_VAR_INT_TIMEZONE
23
+
24
+
25
+ # PGAC_STRUCT_TIMEZONE
26
+ # ------------------
27
+ # Figure out how to get the current timezone. If `struct tm' has a
28
+ # `tm_zone' member, define `HAVE_TM_ZONE'. Also, if the
29
+ # external array `tzname' is found, define `HAVE_TZNAME'.
30
+ # This is the same as the standard macro AC_STRUCT_TIMEZONE, except that
31
+ # tzname[] is checked for regardless of whether we find tm_zone.
32
+ AC_DEFUN([PGAC_STRUCT_TIMEZONE],
33
+ [AC_REQUIRE([AC_STRUCT_TM])dnl
34
+ AC_CHECK_MEMBERS([struct tm.tm_zone],,,[#include <sys/types.h>
35
+ #include <$ac_cv_struct_tm>
36
+ ])
37
+ if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
38
+ AC_DEFINE(HAVE_TM_ZONE, 1,
39
+ [Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
40
+ `HAVE_STRUCT_TM_TM_ZONE' instead.])
41
+ fi
42
+ AC_CACHE_CHECK(for tzname, ac_cv_var_tzname,
43
+ [AC_TRY_LINK(
44
+ [#include <time.h>
45
+ #ifndef tzname /* For SGI. */
46
+ extern char *tzname[]; /* RS6000 and others reject char **tzname. */
47
+ #endif
48
+ ],
49
+ [atoi(*tzname);], ac_cv_var_tzname=yes, ac_cv_var_tzname=no)])
50
+ if test $ac_cv_var_tzname = yes; then
51
+ AC_DEFINE(HAVE_TZNAME, 1,
52
+ [Define to 1 if you have the external array `tzname'.])
53
+ fi
54
+ ])# PGAC_STRUCT_TIMEZONE
55
+
56
+
57
+ # PGAC_FUNC_GETTIMEOFDAY_1ARG
58
+ # ---------------------------
59
+ # Check if gettimeofday() has only one arguments. (Normal is two.)
60
+ # If so, define GETTIMEOFDAY_1ARG.
61
+ AC_DEFUN([PGAC_FUNC_GETTIMEOFDAY_1ARG],
62
+ [AC_CACHE_CHECK(whether gettimeofday takes only one argument,
63
+ pgac_cv_func_gettimeofday_1arg,
64
+ [AC_TRY_COMPILE([#include <sys/time.h>],
65
+ [struct timeval *tp;
66
+ struct timezone *tzp;
67
+ gettimeofday(tp,tzp);],
68
+ [pgac_cv_func_gettimeofday_1arg=no],
69
+ [pgac_cv_func_gettimeofday_1arg=yes])])
70
+ if test x"$pgac_cv_func_gettimeofday_1arg" = xyes ; then
71
+ AC_DEFINE(GETTIMEOFDAY_1ARG,, [Define to 1 if gettimeofday() takes only 1 argument.])
72
+ fi
73
+ AH_VERBATIM(GETTIMEOFDAY_1ARG_,
74
+ [@%:@ifdef GETTIMEOFDAY_1ARG
75
+ @%:@ define gettimeofday(a,b) gettimeofday(a)
76
+ @%:@endif])dnl
77
+ ])# PGAC_FUNC_GETTIMEOFDAY_1ARG
78
+
79
+
80
+ # PGAC_FUNC_GETPWUID_R_5ARG
81
+ # ---------------------------
82
+ # Check if getpwuid_r() takes a fifth argument (later POSIX standard, not draft version)
83
+ # If so, define GETPWUID_R_5ARG
84
+ AC_DEFUN([PGAC_FUNC_GETPWUID_R_5ARG],
85
+ [AC_CACHE_CHECK(whether getpwuid_r takes a fifth argument,
86
+ pgac_cv_func_getpwuid_r_5arg,
87
+ [AC_TRY_COMPILE([#include <sys/types.h>
88
+ #include <pwd.h>],
89
+ [uid_t uid;
90
+ struct passwd *space;
91
+ char *buf;
92
+ size_t bufsize;
93
+ struct passwd **result;
94
+ getpwuid_r(uid, space, buf, bufsize, result);],
95
+ [pgac_cv_func_getpwuid_r_5arg=yes],
96
+ [pgac_cv_func_getpwuid_r_5arg=no])])
97
+ if test x"$pgac_cv_func_getpwuid_r_5arg" = xyes ; then
98
+ AC_DEFINE(GETPWUID_R_5ARG,, [Define to 1 if getpwuid_r() takes a 5th argument.])
99
+ fi
100
+ ])# PGAC_FUNC_GETPWUID_R_5ARG
101
+
102
+
103
+ # PGAC_FUNC_STRERROR_R_INT
104
+ # ---------------------------
105
+ # Check if strerror_r() returns an int (SUSv3) rather than a char * (GNU libc)
106
+ # If so, define STRERROR_R_INT
107
+ AC_DEFUN([PGAC_FUNC_STRERROR_R_INT],
108
+ [AC_CACHE_CHECK(whether strerror_r returns int,
109
+ pgac_cv_func_strerror_r_int,
110
+ [AC_TRY_COMPILE([#include <string.h>],
111
+ [#ifndef _AIX
112
+ int strerror_r(int, char *, size_t);
113
+ #else
114
+ /* Older AIX has 'int' for the third argument so we don't test the args. */
115
+ int strerror_r();
116
+ #endif],
117
+ [pgac_cv_func_strerror_r_int=yes],
118
+ [pgac_cv_func_strerror_r_int=no])])
119
+ if test x"$pgac_cv_func_strerror_r_int" = xyes ; then
120
+ AC_DEFINE(STRERROR_R_INT,, [Define to 1 if strerror_r() returns a int.])
121
+ fi
122
+ ])# PGAC_FUNC_STRERROR_R_INT
123
+
124
+
125
+ # PGAC_UNION_SEMUN
126
+ # ----------------
127
+ # Check if `union semun' exists. Define HAVE_UNION_SEMUN if so.
128
+ # If it doesn't then one could define it as
129
+ # union semun { int val; struct semid_ds *buf; unsigned short *array; }
130
+ AC_DEFUN([PGAC_UNION_SEMUN],
131
+ [AC_CHECK_TYPES([union semun], [], [],
132
+ [#include <sys/types.h>
133
+ #include <sys/ipc.h>
134
+ #include <sys/sem.h>])])# PGAC_UNION_SEMUN
135
+
136
+
137
+ # PGAC_STRUCT_SOCKADDR_UN
138
+ # -----------------------
139
+ # If `struct sockaddr_un' exists, define HAVE_UNIX_SOCKETS.
140
+ # (Requires test for <sys/un.h>!)
141
+ AC_DEFUN([PGAC_STRUCT_SOCKADDR_UN],
142
+ [AC_CHECK_TYPES([struct sockaddr_un], [AC_DEFINE(HAVE_UNIX_SOCKETS, 1, [Define to 1 if you have unix sockets.])], [],
143
+ [#include <sys/types.h>
144
+ #ifdef HAVE_SYS_UN_H
145
+ #include <sys/un.h>
146
+ #endif
147
+ ])])# PGAC_STRUCT_SOCKADDR_UN
148
+
149
+
150
+ # PGAC_STRUCT_SOCKADDR_STORAGE
151
+ # ----------------------------
152
+ # If `struct sockaddr_storage' exists, define HAVE_STRUCT_SOCKADDR_STORAGE.
153
+ # If it is missing then one could define it.
154
+ AC_DEFUN([PGAC_STRUCT_SOCKADDR_STORAGE],
155
+ [AC_CHECK_TYPES([struct sockaddr_storage], [], [],
156
+ [#include <sys/types.h>
157
+ #ifdef HAVE_SYS_SOCKET_H
158
+ #include <sys/socket.h>
159
+ #endif
160
+ ])])# PGAC_STRUCT_SOCKADDR_STORAGE
161
+
162
+ # PGAC_STRUCT_SOCKADDR_STORAGE_MEMBERS
163
+ # --------------------------------------
164
+ # Check the members of `struct sockaddr_storage'. We need to know about
165
+ # ss_family and ss_len. (Some platforms follow RFC 2553 and call them
166
+ # __ss_family and __ss_len.) We also check struct sockaddr's sa_len;
167
+ # if we have to define our own `struct sockaddr_storage', this tells us
168
+ # whether we need to provide an ss_len field.
169
+ AC_DEFUN([PGAC_STRUCT_SOCKADDR_STORAGE_MEMBERS],
170
+ [AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family,
171
+ struct sockaddr_storage.__ss_family,
172
+ struct sockaddr_storage.ss_len,
173
+ struct sockaddr_storage.__ss_len,
174
+ struct sockaddr.sa_len], [], [],
175
+ [#include <sys/types.h>
176
+ #ifdef HAVE_SYS_SOCKET_H
177
+ #include <sys/socket.h>
178
+ #endif
179
+ ])])# PGAC_STRUCT_SOCKADDR_STORAGE_MEMBERS
180
+
181
+
182
+ # PGAC_STRUCT_ADDRINFO
183
+ # -----------------------
184
+ # If `struct addrinfo' exists, define HAVE_STRUCT_ADDRINFO.
185
+ AC_DEFUN([PGAC_STRUCT_ADDRINFO],
186
+ [AC_CHECK_TYPES([struct addrinfo], [], [],
187
+ [#include <sys/types.h>
188
+ #include <sys/socket.h>
189
+ #include <netdb.h>
190
+ ])])# PGAC_STRUCT_ADDRINFO
191
+
192
+
193
+ # PGAC_FUNC_POSIX_SIGNALS
194
+ # -----------------------
195
+ # Check to see if the machine has the POSIX signal interface. Define
196
+ # HAVE_POSIX_SIGNALS if so. Also set the output variable HAVE_POSIX_SIGNALS
197
+ # to yes or no.
198
+ #
199
+ # Note that this test only compiles a test program, it doesn't check
200
+ # whether the routines actually work. If that becomes a problem, make
201
+ # a fancier check.
202
+ AC_DEFUN([PGAC_FUNC_POSIX_SIGNALS],
203
+ [AC_CACHE_CHECK(for POSIX signal interface, pgac_cv_func_posix_signals,
204
+ [AC_TRY_LINK([#include <signal.h>
205
+ ],
206
+ [struct sigaction act, oact;
207
+ sigemptyset(&act.sa_mask);
208
+ act.sa_flags = SA_RESTART;
209
+ sigaction(0, &act, &oact);],
210
+ [pgac_cv_func_posix_signals=yes],
211
+ [pgac_cv_func_posix_signals=no])])
212
+ if test x"$pgac_cv_func_posix_signals" = xyes ; then
213
+ AC_DEFINE(HAVE_POSIX_SIGNALS,, [Define to 1 if you have the POSIX signal interface.])
214
+ fi
215
+ HAVE_POSIX_SIGNALS=$pgac_cv_func_posix_signals
216
+ AC_SUBST(HAVE_POSIX_SIGNALS)])# PGAC_FUNC_POSIX_SIGNALS
217
+
218
+
219
+ # PGAC_FUNC_SNPRINTF_LONG_LONG_INT_FORMAT
220
+ # ---------------------------------------
221
+ # Determine which format snprintf uses for long long int. We handle
222
+ # %lld, %qd, %I64d. The result is in shell variable
223
+ # LONG_LONG_INT_FORMAT.
224
+ #
225
+ # MinGW uses '%I64d', though gcc throws an warning with -Wall,
226
+ # while '%lld' doesn't generate a warning, but doesn't work.
227
+ #
228
+ AC_DEFUN([PGAC_FUNC_SNPRINTF_LONG_LONG_INT_FORMAT],
229
+ [AC_MSG_CHECKING([snprintf format for long long int])
230
+ AC_CACHE_VAL(pgac_cv_snprintf_long_long_int_format,
231
+ [for pgac_format in '%lld' '%qd' '%I64d'; do
232
+ AC_TRY_RUN([#include <stdio.h>
233
+ typedef long long int ac_int64;
234
+ #define INT64_FORMAT "$pgac_format"
235
+
236
+ ac_int64 a = 20000001;
237
+ ac_int64 b = 40000005;
238
+
239
+ int does_int64_snprintf_work()
240
+ {
241
+ ac_int64 c;
242
+ char buf[100];
243
+
244
+ if (sizeof(ac_int64) != 8)
245
+ return 0; /* doesn't look like the right size */
246
+
247
+ c = a * b;
248
+ snprintf(buf, 100, INT64_FORMAT, c);
249
+ if (strcmp(buf, "800000140000005") != 0)
250
+ return 0; /* either multiply or snprintf is busted */
251
+ return 1;
252
+ }
253
+ main() {
254
+ exit(! does_int64_snprintf_work());
255
+ }],
256
+ [pgac_cv_snprintf_long_long_int_format=$pgac_format; break],
257
+ [],
258
+ [pgac_cv_snprintf_long_long_int_format=cross; break])
259
+ done])dnl AC_CACHE_VAL
260
+
261
+ LONG_LONG_INT_FORMAT=''
262
+
263
+ case $pgac_cv_snprintf_long_long_int_format in
264
+ cross) AC_MSG_RESULT([cannot test (not on host machine)]);;
265
+ ?*) AC_MSG_RESULT([$pgac_cv_snprintf_long_long_int_format])
266
+ LONG_LONG_INT_FORMAT=$pgac_cv_snprintf_long_long_int_format;;
267
+ *) AC_MSG_RESULT(none);;
268
+ esac])# PGAC_FUNC_SNPRINTF_LONG_LONG_INT_FORMAT
269
+
270
+
271
+ # PGAC_FUNC_PRINTF_ARG_CONTROL
272
+ # ---------------------------------------
273
+ # Determine if printf supports %1$ argument selection, e.g. %5$ selects
274
+ # the fifth argument after the printf print string.
275
+ # This is not in the C99 standard, but in the Single Unix Specification (SUS).
276
+ # It is used in our language translation strings.
277
+ #
278
+ AC_DEFUN([PGAC_FUNC_PRINTF_ARG_CONTROL],
279
+ [AC_MSG_CHECKING([whether printf supports argument control])
280
+ AC_CACHE_VAL(pgac_cv_printf_arg_control,
281
+ [AC_TRY_RUN([#include <stdio.h>
282
+ #include <string.h>
283
+
284
+ int main()
285
+ {
286
+ char buf[100];
287
+
288
+ /* can it swap arguments? */
289
+ snprintf(buf, 100, "%2\$d %1\$d", 3, 4);
290
+ if (strcmp(buf, "4 3") != 0)
291
+ return 1;
292
+ return 0;
293
+ }],
294
+ [pgac_cv_printf_arg_control=yes],
295
+ [pgac_cv_printf_arg_control=no],
296
+ [pgac_cv_printf_arg_control=cross])
297
+ ])dnl AC_CACHE_VAL
298
+ AC_MSG_RESULT([$pgac_cv_printf_arg_control])
299
+ ])# PGAC_FUNC_PRINTF_ARG_CONTROL
300
+
301
+
302
+ # backport from Autoconf 2.61a
303
+ # http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=f0c325537a22105536ac8c4e88656e50f9946486
304
+
305
+ # AC_FUNC_FSEEKO
306
+ # --------------
307
+ AN_FUNCTION([ftello], [AC_FUNC_FSEEKO])
308
+ AN_FUNCTION([fseeko], [AC_FUNC_FSEEKO])
309
+ AC_DEFUN([AC_FUNC_FSEEKO],
310
+ [_AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, 1,
311
+ [ac_cv_sys_largefile_source],
312
+ [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).],
313
+ [[#include <sys/types.h> /* for off_t */
314
+ #include <stdio.h>]],
315
+ [[int (*fp) (FILE *, off_t, int) = fseeko;
316
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);]])
317
+
318
+ # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
319
+ # in glibc 2.1.3, but that breaks too many other things.
320
+ # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
321
+ if test $ac_cv_sys_largefile_source != unknown; then
322
+ AC_DEFINE(HAVE_FSEEKO, 1,
323
+ [Define to 1 if fseeko (and presumably ftello) exists and is declared.])
324
+ fi
325
+ ])# AC_FUNC_FSEEKO