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,37 @@
1
+ DECLARE xx CURSOR FOR SELECT * FROM t;
2
+ DECLARE xx BINARY CURSOR FOR SELECT * FROM t;
3
+ DECLARE xx INSENSITIVE CURSOR FOR SELECT * FROM t;
4
+ DECLARE xx SCROLL CURSOR FOR SELECT * FROM t;
5
+ DECLARE xx CURSOR WITH HOLD FOR SELECT * FROM t;
6
+ DECLARE xx CURSOR WITHOUT HOLD FOR SELECT * FROM t;
7
+ CLOSE xx;
8
+ FETCH IN xx;
9
+ FETCH NEXT IN xx;
10
+ FETCH PRIOR IN xx;
11
+ FETCH LAST IN xx;
12
+ FETCH ABSOLUTE 2 IN xx;
13
+ FETCH RELATIVE 2 IN xx;
14
+ FETCH 1 IN xx;
15
+ FETCH ALL IN xx;
16
+ FETCH FORWARD IN xx;
17
+ FETCH FORWARD 2 IN xx;
18
+ FETCH FORWARD ALL IN xx;
19
+ FETCH BACKWARD IN xx;
20
+ FETCH BACKWARD 3 IN xx;
21
+ FETCH BACKWARD ALL IN xx;
22
+ FETCH BACKWARD ALL FROM xx;
23
+ MOVE IN xx;
24
+ MOVE NEXT IN xx;
25
+ MOVE PRIOR IN xx;
26
+ MOVE LAST IN xx;
27
+ MOVE ABSOLUTE 2 IN xx;
28
+ MOVE RELATIVE 2 IN xx;
29
+ MOVE 1 IN xx;
30
+ MOVE ALL IN xx;
31
+ MOVE FORWARD IN xx;
32
+ MOVE FORWARD 2 IN xx;
33
+ MOVE FORWARD ALL IN xx;
34
+ MOVE BACKWARD IN xx;
35
+ MOVE BACKWARD 3 IN xx;
36
+ MOVE BACKWARD ALL IN xx;
37
+ MOVE BACKWARD ALL FROM xx;
@@ -0,0 +1,10 @@
1
+ DELETE FROM t;
2
+ DELETE ;
3
+ DELETE FROM ONLY xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
4
+ DELETE FROM t WHERE x = 3;
5
+ DELETE FROM t WHERE x IN (select * from t1);
6
+ DELETE FROM foo WHERE a = 1 RETURNING *;
7
+ DELETE FROM foo WHERE a = 1 RETURNING a;
8
+ DELETE FROM foo WHERE a = 1 RETURNING a,b;
9
+ DELETE FROM foo WHERE CURRENT OF $1
10
+ DELETE FROM foo WHERE CURRENT OF cur
@@ -0,0 +1,12 @@
1
+ DROP TABLE foo
2
+ DROP OWNED BY role_a
3
+ DROP OWNED BY role_a CASCADE
4
+ DROP OWNED BY role_a RESTRICT
5
+ DROP OWNED BY role_a, role_b, role_c
6
+ REASSIGN OWNED BY role_a TO role_b
7
+ REASSIGN OWNED BY role_a, role1 TO role_b
8
+ DROP OPERATOR FAMILY foo USING bar
9
+ DROP OPERATOR FAMILY IF EXISTS foo USING bar
10
+ DROP OPERATOR FAMILY foo USING
11
+ DROP ROLE foo
12
+ DROP ROLE IF EXISTS foo
@@ -0,0 +1,13 @@
1
+ INSERT INTO t values (1);
2
+ INSERT INTO t(a) VALUES (2);
3
+ INSERT INTO t(a,b,c) VALUES (2,2);
4
+ INSERT INTO t(a,b,c) VALUES (2,2,3);
5
+ INSERT INTO t(a,b,c) VALUES (2,DEFAULT,'3');
6
+ INSERT INTO t DEFAULT VALUES;
7
+ INSERT INTO t SELECT * FROM t;
8
+ INSERT INTO t values (func(x, y));
9
+ INSERT INTO t(a,b,c) VALUES (2,DEFAULT,'\'\\');
10
+ INSERT INTO foo(a,b) VALUES (1, 2) RETURNING *;
11
+ INSERT INTO foo(a,b) VALUES (1, 2) RETURNING a;
12
+ INSERT INTO foo(a,b) VALUES (1, 2) RETURNING a,b;
13
+ INSERT INTO foo(a,b) VALUES (1, 2), (3, 4), (5, 6);
@@ -0,0 +1,28 @@
1
+ VACUUM;
2
+ VACUUM FULL;
3
+ VACUUM FULL FREEZE;
4
+ VACUUM FULL FREEZE VERBOSE;
5
+ VACUUM FULL FREEZE VERBOSE ANALYZE;
6
+ VACUUM FULL t;
7
+ ANALYZE
8
+ ANALYZE VERBOSE
9
+ ANALYZE VERBOSE x
10
+ ANALYZE VERBOSE x(a,b,c);
11
+ EXPLAIN SELECT * FROM t;
12
+ EXPLAIN ANALYZE SELECT * FROM t;
13
+ EXPLAIN ANALYZE VERBOSE SELECT * FROM t;
14
+ REINDEX INDEX x
15
+ REINDEX INDEX x force
16
+ REINDEX TABLE x
17
+ REINDEX TABLE x force
18
+ REINDEX DATABASE x
19
+ REINDEX DATABASE x force
20
+ REINDEX SYSTEM x
21
+ REINDEX SYSTEM x force
22
+ LISTEN x
23
+ NOTIFY x
24
+ DISCARD ALL
25
+ DISCARD TEMP
26
+ DISCARD TEMPORARY
27
+ DISCARD PLANS
28
+ DISCARD xxx
@@ -0,0 +1,4 @@
1
+ PREPARE xx(integer, text) AS INSERT INTO foo VALUES ($1, $2);
2
+ EXECUTE xx(1, 'xxx');
3
+ DEALLOCATE xx;
4
+ DEALLOCATE PREPARE xx;
@@ -0,0 +1,31 @@
1
+ GRANT SELECT, INSERT, UPDATE, DELETE, RULE, REFERENCES, TRIGGER on t1, t2 to x;
2
+ GRANT SELECT, INSERT, UPDATE, DELETE, RULE, REFERENCES, TRIGGER on t1, t2 to x WITH GRANT OPTION;
3
+ GRANT SELECT, INSERT, UPDATE, DELETE, RULE, REFERENCES, TRIGGER on t1, t2 to GROUP x WITH GRANT OPTION;
4
+ GRANT SELECT, INSERT, UPDATE, DELETE, RULE, REFERENCES, TRIGGER on t1, t2 to PUBLIC;
5
+ GRANT ALL on t1, t2 to x;
6
+ GRANT CREATE on DATABASE db1, db2 TO x,y;
7
+ GRANT TEMPORARY on DATABASE db1, db2 TO x,y;
8
+ GRANT TEMP on DATABASE db1, db2 TO x,y;
9
+ GRANT EXECUTE on FUNCTION func(int, text) TO x,y;
10
+ GRANT USAGE ON LANGUAGE lang TO x, y;
11
+ GRANT CREATE ON SCHEMA s TO x, y;
12
+ GRANT USAGE ON SCHEMA s TO x, y;
13
+ GRANT CREATE ON TABLESPACE tblspc TO x, y;
14
+ GRANT role1 to role2;
15
+ REVOKE SELECT,INSERT,UPDATE,DELETE,RULE,REFERENCES,TRIGGER on t1, t2 FROM x, y;
16
+ REVOKE SELECT,INSERT,UPDATE,DELETE,RULE,REFERENCES,TRIGGER on t1, t2 FROM x, y CASCADE;
17
+ REVOKE SELECT,INSERT,UPDATE,DELETE,RULE,REFERENCES,TRIGGER on t1, t2 FROM x, y RESTRICT;
18
+ REVOKE ALL on t1, t2 FROM x, y;
19
+ REVOKE ALL on t1, t2 FROM PUBLIC;
20
+ REVOKE GRANT OPTION FOR ALL on t1, t2 FROM PUBLIC;
21
+ REVOKE GRANT OPTION FOR CREATE on DATABASE db1,db2 FROM x,y;
22
+ REVOKE CREATE on DATABASE db1,db2 FROM x,y;
23
+ REVOKE TEMPORARY on DATABASE db1,db2 FROM x,y;
24
+ REVOKE TEMP on DATABASE db1,db2 FROM x,y;
25
+ REVOKE EXECUTE on FUNCTION foo(int,text) db1,db2 FROM x,y;
26
+ REVOKE USAGE ON LANGUAGE lang FROM x,y;
27
+ REVOKE CREATE ON SCHEMA s1,s2 FROM x,y;
28
+ REVOKE USAGE ON SCHEMA s1,s2 FROM x,y;
29
+ REVOKE CREATE ON TABLESPACE tblspc FROM x,y;
30
+ REVOKE ADMIN OPTION FOR role1, role2 FROM x,y;
31
+ REVOKE role1, role2 FROM x,y;
@@ -0,0 +1,34 @@
1
+ \pset standard_conforming_strings off
2
+ SELECT '\'';
3
+ SELECT '''';
4
+ SELECT 'A\nBC';
5
+ SELECT E'A\nBC';
6
+ SELECT U&'d\0061t\+000061'; --error
7
+ \pset standard_conforming_strings on
8
+ SELECT '\''; -- error
9
+ SELECT '''';
10
+ SELECT 'A\nBC';
11
+ SELECT E'A\nBC';
12
+
13
+ \pset server_encoding SQL_ASCII
14
+ # unicode ident
15
+ SELECT * FROM U&"d\0061t\+000061";
16
+ # unicode literal
17
+ SELECT E'd\u0061t\U00000061';
18
+ SELECT U&'d\0061t\+000061';
19
+ SELECT U&'d!0061t!+000061' UESCAPE '!';
20
+ SELECT E'\u3042\u3044\u3046\u3048\u304a'; -- error
21
+ SELECT U&'\3042\3044\3046\3048\304a'; -- error
22
+
23
+ \pset server_encoding UTF8
24
+ # unicode ident
25
+ SELECT * FROM U&"d\0061t\+000061";
26
+ # unicode literal
27
+ SELECT E'd\u0061t\U00000061';
28
+ SELECT U&'d\0061t\+000061';
29
+ SELECT U&'d!0061t!+000061' UESCAPE '!';
30
+ SELECT E'\u3042\u3044\u3046\u3048\u304a';
31
+ SELECT U&'\3042\3044\3046\3048\304a';
32
+ # surrogate pair
33
+ SELECT E'\ud800\udc00';
34
+ SELECT U&'\d800\dc00';
@@ -0,0 +1,89 @@
1
+ SELECT 1;
2
+ SELECT * FROM t;
3
+ SELECT x FROM a;
4
+ SELECT x.y FROM a;
5
+ SELECT x FROM a.b;
6
+ SeLeCt foo();
7
+ SELECT y FROM foo();
8
+ SELECT * FROM (SELECT * FROM foo);
9
+ select a as t from x;
10
+ SELECT x FROM a as b;
11
+ SELECT a as tttttttttttttttttttttttttttttttttttttttttttttttttttttttt, b as uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz;
12
+ SELECT ;
13
+ SELECT * FROM t FOR UPDATE
14
+ SELECT * FROM t FOR SHARE
15
+ SELECT distinct * FROM t
16
+ select distinct on (x) x from t;
17
+ select distinct on (foo(x)) x from t;
18
+ SELECT ALL * FROM t;
19
+ SELECT x FROM t WHERE x > 3;
20
+ SELECT count(*) FROM t GROUP BY x HAVING x > 111;
21
+ SELECT count(*) FROM t GROUP BY x HAVING x > 111 ORDER BY y;
22
+ SELECT count(*) FROM t GROUP BY x HAVING x > 111 ORDER BY y DESC;
23
+ SELECT count(*) FROM t GROUP BY x HAVING x > 111 ORDER BY y ASC;
24
+ SELECT x FROM t LIMIT ALL;
25
+ SELECT x FROM t LIMIT 1;
26
+ SELECT * from t offset 1;
27
+ SELECT * from t limit 2 offset 1;
28
+ SELECT * from t offset 1 limit 2;
29
+ SELECT * FROM t left outer join t1 on (x = y);
30
+ SELECT * FROM t right outer join t1 on (x = y);
31
+ SELECT * FROM t full outer join t1 on (x = y);
32
+ SELECT * FROM t left outer join t1 using (x);
33
+ SELECT * FROM t right outer join t1 using (x);
34
+ SELECT * FROM t full outer join t1 using (x);
35
+ SELECT * FROM t inner join t1 on x;
36
+ SELECT * FROM t natural left outer join t1;
37
+ SELECT * FROM t natural right outer join t1;
38
+ SELECT * FROM t natural full outer join t1;
39
+ select * from t where a IS NULL
40
+ select * from t where a IS NOT NULL
41
+ select * from t where a like 'abc';
42
+ select * from t where a not like 'abc';
43
+ SELECT * FROM t where a between 1 and 4;
44
+ SELECT * FROM t where a In (1,2,3,4);
45
+ SELECT * FROM t where a not In (1,2,3,4);
46
+ SELECT * FROM t WHERE EXISTS (select * from tt);
47
+ SELECT * FROM t WHERE NOT EXISTS (select * from tt);
48
+ (SELECT * FROM t1) UNION (SELECT * FROM t2);
49
+ (SELECT * FROM t1) UNION ALL (SELECT * FROM t2);
50
+ (SELECT * FROM t1) INTERSECT (SELECT * FROM t2);
51
+ (SELECT * FROM t1) INTERSECT ALL (SELECT * FROM t2);
52
+ (SELECT * FROM t1) EXCEPT (SELECT * FROM t2);
53
+ (SELECT * FROM t1) EXCEPT ALL (SELECT * FROM t2);
54
+ SELECT * INTO x FROM t;
55
+ select * from t1 where i <> ALL (select i from t2);
56
+ SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a;
57
+ SELECT * FROM t1 UNION ALL (SELECT * FROM t2 ORDER BY a);
58
+ select max(i)::int from test
59
+ select max(i)::int from test where a = 'aaa''bbb\\ccc'
60
+ select max(i)::int from test where a = 'aaa\'bbb\\ccc'
61
+ SELECT * FROM t WHERE 1 = any(arr)
62
+ SELECT * FROM t WHERE 1 = all(arr)
63
+ SELECT * FROM t WHERE 1 IS OF (int)
64
+ SELECT * FROM t WHERE 1 IS NOT OF (int)
65
+ SELECT * FROM t WHERE a IN ('a','b',1);
66
+ SELECT * FROM t WHERE a NOT IN ('a','b',1);
67
+ SELECT * FROM t WHERE a IS DOCUMENT;
68
+ SELECT * FROM t WHERE a IS NOT DOCUMENT;
69
+ SELECT XMLCONCAT(a,b);
70
+ SELECT XMLELEMENT(NAME a);
71
+ SELECT XMLELEMENT(NAME a,b,c);
72
+ SELECT XMLFOREST(a)
73
+ SELECT XMLPARSE(DOCUMENT 1 STRIP WHITESPACE)
74
+ SELECT XMLPARSE(DOCUMENT 1 PRESERVE WHITESPACE)
75
+ SELECT day '1900-1-1'
76
+ SELECT interval '1 year'
77
+ SELECT interval '1 year' YEAR
78
+ SELECT interval '1 year' MONTH
79
+ SELECT interval '1 year' DAY
80
+ SELECT interval '1 year' HOUR
81
+ SELECT interval '1 year' MINUTE
82
+ SELECT interval '1 year' SECOND
83
+ SELECT interval '1 year' YEAR TO MONTH
84
+ SELECT interval '1 year' DAY TO HOUR
85
+ SELECT interval '1 year' DAY TO MINUTE
86
+ SELECT interval '1 year' DAY TO SECOND
87
+ SELECT interval '1 year' HOUR TO MINUTE
88
+ SELECT interval '1 year' HOUR TO SECOND
89
+ VALUES (1, 2), (3, 4), (5, 6);
@@ -0,0 +1,38 @@
1
+ BEGIN;
2
+ BEGIN WORK;
3
+ BEGIN TRANSACTION;
4
+ BEGIN ISOLATION LEVEL READ COMMITTED;
5
+ BEGIN ISOLATION LEVEL SERIALIZABLE;
6
+ BEGIN READ WRITE;
7
+ BEGIN READ ONLY;
8
+ START TRANSACTION;
9
+ COMMIT;
10
+ COMMIT WORK;
11
+ COMMIT TRANSACTION;
12
+ END;
13
+ END WORK;
14
+ END TRANSACTION;
15
+ ROLLBACK;
16
+ ROLLBACK WORK;
17
+ ROLLBACK TRANSACTION;
18
+ ABORT;
19
+ ABORT WORK;
20
+ ABORT TRANSACTION;
21
+ SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
22
+ SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
23
+ SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ COMMITTED;
24
+ SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE;
25
+ SET CONSTRAINTS ALL DEFERRED;
26
+ SET CONSTRAINTS ALL IMMEDIATE;
27
+ SET CONSTRAINTS x DEFERRED;
28
+ SET CONSTRAINTS x IMMEDIATE;
29
+ LOCK TABLE t1,t2;
30
+ LOCK t1,t2;
31
+ LOCK TABLE t1,t2 IN ACCESS SHARE MODE;
32
+ LOCK TABLE t1,t2 IN ROW SHARE MODE;
33
+ LOCK TABLE t1,t2 IN ROW EXCLUSIVE MODE;
34
+ LOCK TABLE t1,t2 IN SHARE UPDATE EXCLUSIVE MODE;
35
+ LOCK TABLE t1,t2 IN SHARE MODE;
36
+ LOCK TABLE t1,t2 IN SHARE ROW EXCLUSIVE MODE;
37
+ LOCK TABLE t1,t2 IN EXCLUSIVE MODE;
38
+ LOCK TABLE t1,t2 IN ACCESS EXCLUSIVE MODE;
@@ -0,0 +1,11 @@
1
+ UPDATE t set a = 1;
2
+ UPDATE t set a = 3, b = 'a', c = NULL, d = DEFAULT;
3
+ UPDATE t set a = 1 FROM x;
4
+ UPDATE t set a = 1 FROM x,y,z;
5
+ UPDATE t set a = 1 FROM x where x < 100 and y > 200;
6
+ UPDATE ONLY t set a = 1;
7
+ UPDATE foo SET a = 1 RETURNING *;
8
+ UPDATE foo SET a = 1 RETURNING a;
9
+ UPDATE foo SET a = 1 RETURNING a,b;
10
+ UPDATE foo SET a = 1 WHERE CURRENT OF $1
11
+ UPDATE foo SET a = 1 WHERE CURRENT OF cur
@@ -0,0 +1,37 @@
1
+ SELECT INTERVAL(0) '1.23' SECOND;
2
+ SELECT INTERVAL '1 year' HOUR TO SECOND(2)
3
+ SELECT char 'ABC';
4
+ SELECT "char" 'ABC';
5
+ SELECT avg(c1) OVER (PARTITION BY depname RANGE UNBOUNDED PRECEDING) FROM r1;
6
+ SELECT avg(c1) OVER (PARTITION BY depname ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM r1;
7
+ SELECT sum(c1) OVER w1 FROM r1 WINDOW w1 AS (PARTITION BY c2 ORDER BY c3), w2 AS (w1 PARTITION BY c4);
8
+ WITH w1(n) AS (SELECT 1), w2(n) AS (SELECT 2) SELECT sum(n) FROM r1;
9
+ WITH RECURSIVE t(n) AS (VALUES (1) UNION ALL SELECT n+1 FROM t WHERE n < 100) SELECT sum(n) FROM t;
10
+ ALTER AGGREGATE FOO(int) OWNER TO BAR;
11
+ ALTER CONVERSION FOO OWNER TO BAR;
12
+ ALTER DATABASE FOO OWNER TO BAR;
13
+ ALTER DOMAIN FOO OWNER TO BAR;
14
+ ALTER FUNCTION FOO() OWNER TO BAR;
15
+ ALTER LANGUAGE FOO OWNER TO BAR;
16
+ ALTER OPERATOR + (int, int) OWNER TO BAR;
17
+ ALTER OPERATOR CLASS FOO USING BAZ OWNER TO BAR;
18
+ ALTER OPERATOR FAMILY FOO USING BAZ OWNER TO BAR;
19
+ ALTER TYPE FOO OWNER TO BAR;
20
+ ALTER TABLESPACE FOO OWNER TO BAR;
21
+ ALTER TEXT SEARCH DICTIONARY FOO OWNER TO BAR;
22
+ ALTER TEXT SEARCH CONFIGURATION FOO OWNER TO BAR;
23
+ ALTER FOREIGN DATA WRAPPER FOO OWNER TO BAR;
24
+ ALTER SERVER FOO OWNER TO BAR;
25
+ ALTER SCHEMA FOO OWNER TO BAR;
26
+ LISTEN x
27
+ NOTIFY x
28
+ UNLISTEN x
29
+ UNLISTEN *
30
+ CREATE TRIGGER t1 BEFORE INSERT OR UPDATE OR DELETE OR TRUNCATE ON r1 EXECUTE PROCEDURE p1();
31
+ GRANT ALL ON r1 TO PUBLIC;
32
+ GRANT ALL ON SEQUENCE r1 TO PUBLIC;
33
+ GRANT ALL ON FUNCTION r1() TO PUBLIC;
34
+ GRANT ALL ON DATABASE r1 TO PUBLIC;
35
+ GRANT ALL ON LANGUAGE r1 TO PUBLIC;
36
+ GRANT ALL ON SCHEMA r1 TO PUBLIC;
37
+ GRANT ALL ON TABLESPACE r1 TO PUBLIC;
@@ -0,0 +1,38 @@
1
+ # named parameter
2
+ SELECT func(a := 7, b := 12);
3
+ # order by aggrigator
4
+ SELECT array_agg(a ORDER BY b, c);
5
+ # variadic from html/xfunc-sql.html
6
+ SELECT mleast(VARIADIC ARRAY[10, -1, 5, 4.4]);
7
+ # window function
8
+ SELECT avg(c1) OVER (ROWS 1 PRECEDING) FROM r1;
9
+ SELECT avg(c1) OVER w1 FROM r1 WINDOW w1 AS (ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING);
10
+ # offset
11
+ SELECT * FROM t1 OFFSET 1 ROWS FETCH FIRST 2 ROWS ONLY;
12
+ SELECT * FROM t1 FETCH NEXT 2 ROWS ONLY;
13
+ # DO
14
+ DO LANGUAGE PLPGSQL $$BEGIN RAISE NOTICE 'hello'; END$$;
15
+
16
+ \pset server_version 9.0.0
17
+ # explain
18
+ # old syntax
19
+ EXPLAIN ANALYZE VERBOSE SELECT 1;
20
+ # new syntax
21
+ EXPLAIN (ANALYZE true,VERBOSE true,COSTS true,BUFFERS true,FORMAT XML) SELECT 1;
22
+ EXPLAIN (ANALYZE false,VERBOSE false,COSTS false,BUFFERS false,FORMAT JSON) SELECT 1;
23
+ # copy
24
+ # old syntax
25
+ COPY t FROM stdin;
26
+ COPY t FROM 'xxx' BINARY;
27
+ COPY t FROM 'xxx' CSV HEADER QUOTE AS '#' ESCAPE AS '$' FORCE NOT NULL foo,bar;
28
+ COPY t FROM 'xxx' OIDS;
29
+ COPY t FROM 'xxx' DELIMITER ',';
30
+ COPY t FROM 'xxx' NULL 'x';
31
+ # new syntax
32
+ COPY t FROM stdin (FORMAT 'text');
33
+ COPY t FROM stdin (FORMAT 'csv');
34
+ COPY t FROM stdin (FORMAT 'binary');
35
+ COPY t FROM 'f' (OIDS false);
36
+ COPY t FROM 'f' (OIDS true, DELIMITER '|', NULL '<N>', HEADER false);
37
+ COPY t FROM 'f' (HEADER true, QUOTE '"', ESCAPE '@');
38
+ COPY t FROM 'f' (FORCE_QUOTE *, FORCE_NOT_NULL(one, two, three));
@@ -0,0 +1,22 @@
1
+ SET var TO val
2
+ SET var TO 'val'
3
+ SET var TO DEFAULT
4
+ SET var = DEFAULT
5
+ SET TIME ZONE val
6
+ SET TIME ZONE 'val'
7
+ SET TIME ZONE local
8
+ SET TIME ZONE default
9
+ SET local TIME ZONE default
10
+ SET session TIME ZONE default
11
+ SET var FROM CURRENT
12
+ SET XML OPTION DOCUMENT
13
+ SET XML OPTION CONTENT
14
+ show 'x';
15
+ show x;
16
+ show all;
17
+ reset x;
18
+ reset all;
19
+ reset time zone;
20
+ reset transaction isolation level
21
+ reset session authorization
22
+ reset 'x';
@@ -0,0 +1,96 @@
1
+ /* $Header$ */
2
+ #include "pool.h"
3
+ #include "pool_memory.h"
4
+ #include "parsenodes.h"
5
+ #include "gramparse.h"
6
+ #include "parser.h"
7
+
8
+ #include <stdio.h>
9
+ #include <stdlib.h>
10
+ #include <unistd.h>
11
+
12
+ enum {
13
+ TEST_CONTINUE,
14
+ TEST_QUIT
15
+ };
16
+
17
+ extern int GetDatabaseEncoding(void);
18
+
19
+ int
20
+ command(const char *cmd)
21
+ {
22
+ char name[1024], value[1024];
23
+
24
+ if (*cmd == 'q')
25
+ return TEST_QUIT;
26
+
27
+ if (sscanf(cmd, "pset %s %s", name, value) == 2)
28
+ {
29
+ if (strcmp(name, "standard_conforming_strings") == 0)
30
+ {
31
+ parser_set_param(name, value);
32
+ fprintf(stdout, "pset %d\n", standard_conforming_strings);
33
+ }
34
+ else if (strcmp(name, "server_version") == 0)
35
+ {
36
+ parser_set_param(name, value);
37
+ fprintf(stdout, "pset %d\n", server_version_num);
38
+ }
39
+ else if (strcmp(name, "server_encoding") == 0)
40
+ {
41
+ parser_set_param(name, value);
42
+ fprintf(stdout, "pset %d\n", GetDatabaseEncoding());
43
+ }
44
+ else
45
+ fprintf(stdout, "ERROR: pset %s\n", name);
46
+ }
47
+ return TEST_CONTINUE;
48
+ }
49
+
50
+ int main(int argc, char **argv)
51
+ {
52
+ List *tree;
53
+ ListCell *l;
54
+ int state = TEST_CONTINUE;
55
+ int notty = (!isatty(fileno(stdin)) || !isatty(fileno(stdout)));
56
+ char line[1024];
57
+
58
+ while (state != TEST_QUIT)
59
+ {
60
+ if (!notty)
61
+ fprintf(stdout, "> ");
62
+
63
+ if (!fgets(line, 1024, stdin))
64
+ break;
65
+
66
+ *(strchr(line, (int) '\n')) = '\0';
67
+
68
+ if (line[0] == '#' || line[0] == '\0')
69
+ continue;
70
+
71
+ if (line[0] == '\\')
72
+ {
73
+ state = command(line + 1);
74
+ continue;
75
+ }
76
+
77
+ tree = raw_parser(line);
78
+
79
+ if (tree == NULL)
80
+ {
81
+ printf("syntax error: %s\n", line);
82
+ }
83
+ else
84
+ {
85
+ foreach(l, tree)
86
+ {
87
+ Node *node = (Node *) lfirst(l);
88
+ printf("%s\n", nodeToString(node));
89
+ }
90
+ }
91
+
92
+ free_parser();
93
+ }
94
+
95
+ return 0;
96
+ }