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.
- data/.gitignore +4 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +20 -0
- data/LICENSE +202 -0
- data/NOTICE +22 -0
- data/README.md +217 -0
- data/Rakefile +13 -0
- data/VERSION +1 -0
- data/bin/prestogres +254 -0
- data/config/pcp.conf.sample +28 -0
- data/config/pgpool.conf +678 -0
- data/config/pool_hba.conf +84 -0
- data/config/pool_passwd +0 -0
- data/config/postgresql.conf +2 -0
- data/ext/.gitignore +6 -0
- data/ext/depend +26 -0
- data/ext/extconf.rb +4 -0
- data/ext/prestogres_config.c +12 -0
- data/pgpool2/.gitignore +36 -0
- data/pgpool2/AUTHORS +4 -0
- data/pgpool2/COPYING +12 -0
- data/pgpool2/ChangeLog +1 -0
- data/pgpool2/INSTALL +1 -0
- data/pgpool2/Makefile.am +159 -0
- data/pgpool2/Makefile.in +1187 -0
- data/pgpool2/NEWS +4960 -0
- data/pgpool2/README +1 -0
- data/pgpool2/README.euc_jp +1 -0
- data/pgpool2/README.online-recovery +62 -0
- data/pgpool2/TODO +103 -0
- data/pgpool2/ac_func_accept_argtypes.m4 +85 -0
- data/pgpool2/aclocal.m4 +1088 -0
- data/pgpool2/c-compiler.m4 +134 -0
- data/pgpool2/c-library.m4 +325 -0
- data/pgpool2/child.c +2097 -0
- data/pgpool2/config.guess +1532 -0
- data/pgpool2/config.h.in +332 -0
- data/pgpool2/config.sub +1640 -0
- data/pgpool2/configure +15752 -0
- data/pgpool2/configure.in +392 -0
- data/pgpool2/depcomp +522 -0
- data/pgpool2/doc/basebackup.sh +17 -0
- data/pgpool2/doc/pgpool-de.html +4220 -0
- data/pgpool2/doc/pgpool-en.html +5738 -0
- data/pgpool2/doc/pgpool-fr.html +4118 -0
- data/pgpool2/doc/pgpool-ja.css +198 -0
- data/pgpool2/doc/pgpool-ja.html +11279 -0
- data/pgpool2/doc/pgpool-zh_cn.html +4445 -0
- data/pgpool2/doc/pgpool.css +280 -0
- data/pgpool2/doc/pgpool_remote_start +13 -0
- data/pgpool2/doc/recovery.conf.sample +117 -0
- data/pgpool2/doc/tutorial-en.html +707 -0
- data/pgpool2/doc/tutorial-ja.html +422 -0
- data/pgpool2/doc/tutorial-memqcache-en.html +325 -0
- data/pgpool2/doc/tutorial-memqcache-ja.html +370 -0
- data/pgpool2/doc/tutorial-memqcache-zh_cn.html +322 -0
- data/pgpool2/doc/tutorial-watchdog-en.html +306 -0
- data/pgpool2/doc/tutorial-watchdog-ja.html +343 -0
- data/pgpool2/doc/tutorial-watchdog-zh_cn.html +301 -0
- data/pgpool2/doc/tutorial-zh_cn.html +537 -0
- data/pgpool2/doc/watchdog.png +0 -0
- data/pgpool2/doc/wd-en.html +236 -0
- data/pgpool2/doc/wd-en.jpg +0 -0
- data/pgpool2/doc/wd-ja.html +219 -0
- data/pgpool2/doc/wd-ja.jpg +0 -0
- data/pgpool2/doc/wd-zh_cn.html +201 -0
- data/pgpool2/doc/where_to_send_queries.odg +0 -0
- data/pgpool2/doc/where_to_send_queries.pdf +0 -0
- data/pgpool2/general.m4 +166 -0
- data/pgpool2/getopt_long.c +200 -0
- data/pgpool2/getopt_long.h +44 -0
- data/pgpool2/install-sh +251 -0
- data/pgpool2/ltmain.sh +8406 -0
- data/pgpool2/m4/libtool.m4 +7360 -0
- data/pgpool2/m4/ltoptions.m4 +368 -0
- data/pgpool2/m4/ltsugar.m4 +123 -0
- data/pgpool2/m4/ltversion.m4 +23 -0
- data/pgpool2/m4/lt~obsolete.m4 +92 -0
- data/pgpool2/main.c +2971 -0
- data/pgpool2/md5.c +444 -0
- data/pgpool2/md5.h +28 -0
- data/pgpool2/missing +360 -0
- data/pgpool2/mkinstalldirs +40 -0
- data/pgpool2/parser/Makefile.am +50 -0
- data/pgpool2/parser/Makefile.in +559 -0
- data/pgpool2/parser/copyfuncs.c +3310 -0
- data/pgpool2/parser/gram.c +39100 -0
- data/pgpool2/parser/gram.h +940 -0
- data/pgpool2/parser/gram.y +13408 -0
- data/pgpool2/parser/gramparse.h +74 -0
- data/pgpool2/parser/keywords.c +32 -0
- data/pgpool2/parser/keywords.h +39 -0
- data/pgpool2/parser/kwlist.h +425 -0
- data/pgpool2/parser/kwlookup.c +88 -0
- data/pgpool2/parser/list.c +1156 -0
- data/pgpool2/parser/makefuncs.c +518 -0
- data/pgpool2/parser/makefuncs.h +83 -0
- data/pgpool2/parser/memnodes.h +79 -0
- data/pgpool2/parser/nodes.c +29 -0
- data/pgpool2/parser/nodes.h +609 -0
- data/pgpool2/parser/outfuncs.c +5790 -0
- data/pgpool2/parser/parsenodes.h +2615 -0
- data/pgpool2/parser/parser.c +262 -0
- data/pgpool2/parser/parser.h +46 -0
- data/pgpool2/parser/pg_class.h +158 -0
- data/pgpool2/parser/pg_config_manual.h +273 -0
- data/pgpool2/parser/pg_list.h +352 -0
- data/pgpool2/parser/pg_trigger.h +147 -0
- data/pgpool2/parser/pg_wchar.h +492 -0
- data/pgpool2/parser/pool_memory.c +342 -0
- data/pgpool2/parser/pool_memory.h +77 -0
- data/pgpool2/parser/pool_parser.h +222 -0
- data/pgpool2/parser/pool_string.c +121 -0
- data/pgpool2/parser/pool_string.h +37 -0
- data/pgpool2/parser/primnodes.h +1280 -0
- data/pgpool2/parser/scan.c +4094 -0
- data/pgpool2/parser/scan.l +1451 -0
- data/pgpool2/parser/scanner.h +120 -0
- data/pgpool2/parser/scansup.c +221 -0
- data/pgpool2/parser/scansup.h +28 -0
- data/pgpool2/parser/snprintf.c +1102 -0
- data/pgpool2/parser/stringinfo.c +294 -0
- data/pgpool2/parser/stringinfo.h +178 -0
- data/pgpool2/parser/value.c +78 -0
- data/pgpool2/parser/value.h +62 -0
- data/pgpool2/parser/wchar.c +2048 -0
- data/pgpool2/pcp.conf.sample +28 -0
- data/pgpool2/pcp/Makefile.am +40 -0
- data/pgpool2/pcp/Makefile.in +771 -0
- data/pgpool2/pcp/libpcp_ext.h +250 -0
- data/pgpool2/pcp/md5.c +444 -0
- data/pgpool2/pcp/md5.h +28 -0
- data/pgpool2/pcp/pcp.c +1652 -0
- data/pgpool2/pcp/pcp.h +61 -0
- data/pgpool2/pcp/pcp_attach_node.c +172 -0
- data/pgpool2/pcp/pcp_detach_node.c +185 -0
- data/pgpool2/pcp/pcp_error.c +87 -0
- data/pgpool2/pcp/pcp_node_count.c +160 -0
- data/pgpool2/pcp/pcp_node_info.c +198 -0
- data/pgpool2/pcp/pcp_pool_status.c +166 -0
- data/pgpool2/pcp/pcp_proc_count.c +166 -0
- data/pgpool2/pcp/pcp_proc_info.c +261 -0
- data/pgpool2/pcp/pcp_promote_node.c +185 -0
- data/pgpool2/pcp/pcp_recovery_node.c +172 -0
- data/pgpool2/pcp/pcp_stop_pgpool.c +179 -0
- data/pgpool2/pcp/pcp_stream.c +385 -0
- data/pgpool2/pcp/pcp_stream.h +52 -0
- data/pgpool2/pcp/pcp_systemdb_info.c +194 -0
- data/pgpool2/pcp/pcp_watchdog_info.c +211 -0
- data/pgpool2/pcp_child.c +1493 -0
- data/pgpool2/pg_md5.c +305 -0
- data/pgpool2/pgpool.8.in +121 -0
- data/pgpool2/pgpool.conf +553 -0
- data/pgpool2/pgpool.conf.sample +666 -0
- data/pgpool2/pgpool.conf.sample-master-slave +665 -0
- data/pgpool2/pgpool.conf.sample-replication +664 -0
- data/pgpool2/pgpool.conf.sample-stream +664 -0
- data/pgpool2/pgpool.spec +264 -0
- data/pgpool2/pgpool_adm/TODO +7 -0
- data/pgpool2/pgpool_adm/pgpool_adm--1.0.sql +85 -0
- data/pgpool2/pgpool_adm/pgpool_adm.c +558 -0
- data/pgpool2/pgpool_adm/pgpool_adm.control +5 -0
- data/pgpool2/pgpool_adm/pgpool_adm.h +46 -0
- data/pgpool2/pgpool_adm/pgpool_adm.sql.in +85 -0
- data/pgpool2/pool.h +655 -0
- data/pgpool2/pool_auth.c +1390 -0
- data/pgpool2/pool_config.c +5007 -0
- data/pgpool2/pool_config.h +284 -0
- data/pgpool2/pool_config.l +3281 -0
- data/pgpool2/pool_config_md5.c +29 -0
- data/pgpool2/pool_connection_pool.c +812 -0
- data/pgpool2/pool_error.c +242 -0
- data/pgpool2/pool_globals.c +27 -0
- data/pgpool2/pool_hba.c +1723 -0
- data/pgpool2/pool_hba.conf.sample +67 -0
- data/pgpool2/pool_ip.c +567 -0
- data/pgpool2/pool_ip.h +65 -0
- data/pgpool2/pool_ipc.h +38 -0
- data/pgpool2/pool_lobj.c +242 -0
- data/pgpool2/pool_lobj.h +32 -0
- data/pgpool2/pool_memqcache.c +3818 -0
- data/pgpool2/pool_memqcache.h +268 -0
- data/pgpool2/pool_params.c +163 -0
- data/pgpool2/pool_passwd.c +249 -0
- data/pgpool2/pool_passwd.h +41 -0
- data/pgpool2/pool_path.c +193 -0
- data/pgpool2/pool_path.h +81 -0
- data/pgpool2/pool_process_context.c +247 -0
- data/pgpool2/pool_process_context.h +62 -0
- data/pgpool2/pool_process_query.c +5001 -0
- data/pgpool2/pool_process_reporting.c +1671 -0
- data/pgpool2/pool_process_reporting.h +44 -0
- data/pgpool2/pool_proto2.c +671 -0
- data/pgpool2/pool_proto_modules.c +3524 -0
- data/pgpool2/pool_proto_modules.h +185 -0
- data/pgpool2/pool_query_cache.c +1020 -0
- data/pgpool2/pool_query_context.c +1871 -0
- data/pgpool2/pool_query_context.h +105 -0
- data/pgpool2/pool_relcache.c +284 -0
- data/pgpool2/pool_relcache.h +78 -0
- data/pgpool2/pool_rewrite_outfuncs.c +9060 -0
- data/pgpool2/pool_rewrite_query.c +715 -0
- data/pgpool2/pool_rewrite_query.h +192 -0
- data/pgpool2/pool_select_walker.c +1150 -0
- data/pgpool2/pool_select_walker.h +68 -0
- data/pgpool2/pool_sema.c +161 -0
- data/pgpool2/pool_session_context.c +952 -0
- data/pgpool2/pool_session_context.h +203 -0
- data/pgpool2/pool_shmem.c +185 -0
- data/pgpool2/pool_signal.c +158 -0
- data/pgpool2/pool_signal.h +61 -0
- data/pgpool2/pool_ssl.c +339 -0
- data/pgpool2/pool_stream.c +962 -0
- data/pgpool2/pool_stream.h +61 -0
- data/pgpool2/pool_system.c +659 -0
- data/pgpool2/pool_timestamp.c +1215 -0
- data/pgpool2/pool_timestamp.h +38 -0
- data/pgpool2/pool_type.h +171 -0
- data/pgpool2/pool_worker_child.c +384 -0
- data/pgpool2/ps_status.c +404 -0
- data/pgpool2/recovery.c +435 -0
- data/pgpool2/redhat/pgpool.conf.sample.patch +52 -0
- data/pgpool2/redhat/pgpool.init +201 -0
- data/pgpool2/redhat/pgpool.sysconfig +7 -0
- data/pgpool2/redhat/rpm_installer/basebackup-replication.sh +53 -0
- data/pgpool2/redhat/rpm_installer/basebackup-stream.sh +55 -0
- data/pgpool2/redhat/rpm_installer/config_for_script +17 -0
- data/pgpool2/redhat/rpm_installer/failover.sh +64 -0
- data/pgpool2/redhat/rpm_installer/getsources.sh +141 -0
- data/pgpool2/redhat/rpm_installer/install.sh +1363 -0
- data/pgpool2/redhat/rpm_installer/pgpool_recovery_pitr +47 -0
- data/pgpool2/redhat/rpm_installer/pgpool_remote_start +15 -0
- data/pgpool2/redhat/rpm_installer/recovery.conf +4 -0
- data/pgpool2/redhat/rpm_installer/uninstall.sh +57 -0
- data/pgpool2/sample/dist_def_pgbench.sql +73 -0
- data/pgpool2/sample/pgpool.pam +3 -0
- data/pgpool2/sample/pgpool_recovery +20 -0
- data/pgpool2/sample/pgpool_recovery_pitr +19 -0
- data/pgpool2/sample/pgpool_remote_start +13 -0
- data/pgpool2/sample/replicate_def_pgbench.sql +18 -0
- data/pgpool2/sql/insert_lock.sql +15 -0
- data/pgpool2/sql/pgpool-recovery/pgpool-recovery.c +280 -0
- data/pgpool2/sql/pgpool-recovery/pgpool-recovery.sql.in +19 -0
- data/pgpool2/sql/pgpool-recovery/pgpool_recovery--1.0.sql +24 -0
- data/pgpool2/sql/pgpool-recovery/pgpool_recovery.control +5 -0
- data/pgpool2/sql/pgpool-recovery/uninstall_pgpool-recovery.sql +3 -0
- data/pgpool2/sql/pgpool-regclass/pgpool-regclass.c +206 -0
- data/pgpool2/sql/pgpool-regclass/pgpool-regclass.sql.in +4 -0
- data/pgpool2/sql/pgpool-regclass/pgpool_regclass--1.0.sql +7 -0
- data/pgpool2/sql/pgpool-regclass/pgpool_regclass.control +5 -0
- data/pgpool2/sql/pgpool-regclass/uninstall_pgpool-regclass.sql +1 -0
- data/pgpool2/sql/system_db.sql +38 -0
- data/pgpool2/strlcpy.c +85 -0
- data/pgpool2/test/C/test_extended.c +98 -0
- data/pgpool2/test/jdbc/.cvsignore +2 -0
- data/pgpool2/test/jdbc/AutoCommitTest.java +45 -0
- data/pgpool2/test/jdbc/BatchTest.java +55 -0
- data/pgpool2/test/jdbc/ColumnTest.java +60 -0
- data/pgpool2/test/jdbc/CreateTempTableTest.java +48 -0
- data/pgpool2/test/jdbc/InsertTest.java +34 -0
- data/pgpool2/test/jdbc/LockTest.java +36 -0
- data/pgpool2/test/jdbc/PgpoolTest.java +75 -0
- data/pgpool2/test/jdbc/README.euc_jp +73 -0
- data/pgpool2/test/jdbc/RunTest.java +83 -0
- data/pgpool2/test/jdbc/SelectTest.java +37 -0
- data/pgpool2/test/jdbc/UpdateTest.java +32 -0
- data/pgpool2/test/jdbc/expected/CreateTempTable +1 -0
- data/pgpool2/test/jdbc/expected/autocommit +10 -0
- data/pgpool2/test/jdbc/expected/batch +1 -0
- data/pgpool2/test/jdbc/expected/column +100 -0
- data/pgpool2/test/jdbc/expected/insert +1 -0
- data/pgpool2/test/jdbc/expected/lock +100 -0
- data/pgpool2/test/jdbc/expected/select +2 -0
- data/pgpool2/test/jdbc/expected/update +1 -0
- data/pgpool2/test/jdbc/pgpool.properties +7 -0
- data/pgpool2/test/jdbc/prepare.sql +54 -0
- data/pgpool2/test/jdbc/run.sh +6 -0
- data/pgpool2/test/parser/.cvsignore +6 -0
- data/pgpool2/test/parser/README +32 -0
- data/pgpool2/test/parser/expected/copy.out +17 -0
- data/pgpool2/test/parser/expected/create.out +64 -0
- data/pgpool2/test/parser/expected/cursor.out +37 -0
- data/pgpool2/test/parser/expected/delete.out +10 -0
- data/pgpool2/test/parser/expected/drop.out +12 -0
- data/pgpool2/test/parser/expected/insert.out +13 -0
- data/pgpool2/test/parser/expected/misc.out +28 -0
- data/pgpool2/test/parser/expected/prepare.out +4 -0
- data/pgpool2/test/parser/expected/privileges.out +31 -0
- data/pgpool2/test/parser/expected/scanner.out +30 -0
- data/pgpool2/test/parser/expected/select.out +89 -0
- data/pgpool2/test/parser/expected/transaction.out +38 -0
- data/pgpool2/test/parser/expected/update.out +11 -0
- data/pgpool2/test/parser/expected/v84.out +37 -0
- data/pgpool2/test/parser/expected/v90.out +25 -0
- data/pgpool2/test/parser/expected/var.out +22 -0
- data/pgpool2/test/parser/input/alter.sql +2 -0
- data/pgpool2/test/parser/input/copy.sql +17 -0
- data/pgpool2/test/parser/input/create.sql +64 -0
- data/pgpool2/test/parser/input/cursor.sql +37 -0
- data/pgpool2/test/parser/input/delete.sql +10 -0
- data/pgpool2/test/parser/input/drop.sql +12 -0
- data/pgpool2/test/parser/input/insert.sql +13 -0
- data/pgpool2/test/parser/input/misc.sql +28 -0
- data/pgpool2/test/parser/input/prepare.sql +4 -0
- data/pgpool2/test/parser/input/privileges.sql +31 -0
- data/pgpool2/test/parser/input/scanner.sql +34 -0
- data/pgpool2/test/parser/input/select.sql +89 -0
- data/pgpool2/test/parser/input/transaction.sql +38 -0
- data/pgpool2/test/parser/input/update.sql +11 -0
- data/pgpool2/test/parser/input/v84.sql +37 -0
- data/pgpool2/test/parser/input/v90.sql +38 -0
- data/pgpool2/test/parser/input/var.sql +22 -0
- data/pgpool2/test/parser/main.c +96 -0
- data/pgpool2/test/parser/parse_schedule +16 -0
- data/pgpool2/test/parser/pool.h +13 -0
- data/pgpool2/test/parser/run-test +62 -0
- data/pgpool2/test/pdo-test/README.euc_jp +58 -0
- data/pgpool2/test/pdo-test/SQLlist/test1.sql +3 -0
- data/pgpool2/test/pdo-test/SQLlist/test2.sql +3 -0
- data/pgpool2/test/pdo-test/collections.inc +11 -0
- data/pgpool2/test/pdo-test/def.inc +7 -0
- data/pgpool2/test/pdo-test/log.txt +0 -0
- data/pgpool2/test/pdo-test/mod/database.inc +36 -0
- data/pgpool2/test/pdo-test/mod/def.inc +0 -0
- data/pgpool2/test/pdo-test/mod/errorhandler.inc +27 -0
- data/pgpool2/test/pdo-test/pdotest.php +11 -0
- data/pgpool2/test/pdo-test/regsql.inc +56 -0
- data/pgpool2/test/pgpool_setup +898 -0
- data/pgpool2/test/regression/README +39 -0
- data/pgpool2/test/regression/clean.sh +21 -0
- data/pgpool2/test/regression/libs.sh +16 -0
- data/pgpool2/test/regression/regress.sh +166 -0
- data/pgpool2/test/regression/tests/001.load_balance/test.sh +128 -0
- data/pgpool2/test/regression/tests/002.native_replication/PgTester.java +47 -0
- data/pgpool2/test/regression/tests/002.native_replication/create.sql +6 -0
- data/pgpool2/test/regression/tests/002.native_replication/test.sh +71 -0
- data/pgpool2/test/regression/tests/003.failover/expected.r +6 -0
- data/pgpool2/test/regression/tests/003.failover/expected.s +6 -0
- data/pgpool2/test/regression/tests/003.failover/test.sh +45 -0
- data/pgpool2/test/regression/tests/004.watchdog/master.conf +12 -0
- data/pgpool2/test/regression/tests/004.watchdog/standby.conf +19 -0
- data/pgpool2/test/regression/tests/004.watchdog/test.sh +52 -0
- data/pgpool2/test/regression/tests/050.bug58/test.sh +50 -0
- data/pgpool2/test/regression/tests/051.bug60/bug.sql +12 -0
- data/pgpool2/test/regression/tests/051.bug60/database-clean.sql +6 -0
- data/pgpool2/test/regression/tests/051.bug60/database-setup.sql +28 -0
- data/pgpool2/test/regression/tests/051.bug60/test.sh +79 -0
- data/pgpool2/test/regression/tests/052.do_query/test.sh +44 -0
- data/pgpool2/test/regression/tests/053.insert_lock_hangs/test.sh +81 -0
- data/pgpool2/test/regression/tests/054.postgres_fdw/test.sh +67 -0
- data/pgpool2/test/regression/tests/055.backend_all_down/test.sh +52 -0
- data/pgpool2/test/regression/tests/056.bug63/jdbctest2.java +66 -0
- data/pgpool2/test/regression/tests/056.bug63/test.sh +47 -0
- data/pgpool2/test/regression/tests/057.bug61/test.sh +40 -0
- data/pgpool2/test/regression/tests/058.bug68/jdbctest3.java +45 -0
- data/pgpool2/test/regression/tests/058.bug68/test.sh +47 -0
- data/pgpool2/test/timestamp/expected/insert.out +16 -0
- data/pgpool2/test/timestamp/expected/misc.out +3 -0
- data/pgpool2/test/timestamp/expected/update.out +6 -0
- data/pgpool2/test/timestamp/input/insert.sql +16 -0
- data/pgpool2/test/timestamp/input/misc.sql +3 -0
- data/pgpool2/test/timestamp/input/update.sql +6 -0
- data/pgpool2/test/timestamp/main.c +129 -0
- data/pgpool2/test/timestamp/parse_schedule +3 -0
- data/pgpool2/test/timestamp/run-test +69 -0
- data/pgpool2/version.h +1 -0
- data/pgpool2/watchdog/Makefile.am +17 -0
- data/pgpool2/watchdog/Makefile.in +505 -0
- data/pgpool2/watchdog/test/stab.c +266 -0
- data/pgpool2/watchdog/test/test.c +85 -0
- data/pgpool2/watchdog/test/wd_child_t.c +87 -0
- data/pgpool2/watchdog/test/wd_lifecheck_t.c +87 -0
- data/pgpool2/watchdog/test/wd_packet_t.c +87 -0
- data/pgpool2/watchdog/test/wd_ping_t.c +20 -0
- data/pgpool2/watchdog/watchdog.c +408 -0
- data/pgpool2/watchdog/watchdog.h +209 -0
- data/pgpool2/watchdog/wd_child.c +444 -0
- data/pgpool2/watchdog/wd_ext.h +123 -0
- data/pgpool2/watchdog/wd_heartbeat.c +577 -0
- data/pgpool2/watchdog/wd_if.c +216 -0
- data/pgpool2/watchdog/wd_init.c +126 -0
- data/pgpool2/watchdog/wd_interlock.c +347 -0
- data/pgpool2/watchdog/wd_lifecheck.c +512 -0
- data/pgpool2/watchdog/wd_list.c +429 -0
- data/pgpool2/watchdog/wd_packet.c +1159 -0
- data/pgpool2/watchdog/wd_ping.c +330 -0
- data/pgpool2/ylwrap +223 -0
- data/pgsql/presto_client.py +346 -0
- data/pgsql/prestogres.py +156 -0
- data/pgsql/setup_functions.sql +21 -0
- data/pgsql/setup_language.sql +3 -0
- data/prestogres.gemspec +23 -0
- metadata +496 -0
|
@@ -0,0 +1,342 @@
|
|
|
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-2012 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
|
+
* pool_memory.c: Memory pooling module for SQL parser.
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
#undef POOL_MEMORY_DEBUG
|
|
26
|
+
|
|
27
|
+
#include "pool.h"
|
|
28
|
+
#include "pool_memory.h"
|
|
29
|
+
#include <errno.h>
|
|
30
|
+
#include <stdlib.h>
|
|
31
|
+
#include <string.h>
|
|
32
|
+
|
|
33
|
+
#define ALIGN 3
|
|
34
|
+
#define POOL_HEADER_SIZE (sizeof (POOL_CHUNK_HEADER))
|
|
35
|
+
|
|
36
|
+
POOL_MEMORY_POOL *pool_memory = NULL;
|
|
37
|
+
|
|
38
|
+
static int get_free_index(unsigned int size);
|
|
39
|
+
|
|
40
|
+
static int get_free_index(unsigned int size)
|
|
41
|
+
{
|
|
42
|
+
int idx = 0;
|
|
43
|
+
|
|
44
|
+
if (size > 0)
|
|
45
|
+
{
|
|
46
|
+
size = (size - 1) >> ALIGN;
|
|
47
|
+
while (size)
|
|
48
|
+
{
|
|
49
|
+
size >>= 1;
|
|
50
|
+
idx++;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return idx;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/*
|
|
57
|
+
* pool_memory_alloc:
|
|
58
|
+
* Returns pointer to allocated memory of given size.
|
|
59
|
+
*/
|
|
60
|
+
void *pool_memory_alloc(POOL_MEMORY_POOL *pool, unsigned int size)
|
|
61
|
+
{
|
|
62
|
+
POOL_BLOCK *block;
|
|
63
|
+
POOL_CHUNK *chunk;
|
|
64
|
+
|
|
65
|
+
#ifdef POOL_MEMORY_DEBUG
|
|
66
|
+
pool_log("pool_memory_alloc: pool:%p size:%d", pool, size);
|
|
67
|
+
#endif
|
|
68
|
+
|
|
69
|
+
if ((size + POOL_HEADER_SIZE) > pool->blocksize)
|
|
70
|
+
{
|
|
71
|
+
block = malloc(sizeof(POOL_BLOCK));
|
|
72
|
+
if (block == NULL)
|
|
73
|
+
{
|
|
74
|
+
pool_error("pool_memory_alloc: malloc failed: %s", strerror(errno));
|
|
75
|
+
child_exit(1);
|
|
76
|
+
}
|
|
77
|
+
block->allocsize = block->size = size + POOL_HEADER_SIZE;
|
|
78
|
+
block->block = malloc(size + POOL_HEADER_SIZE);
|
|
79
|
+
if (block->block == NULL)
|
|
80
|
+
{
|
|
81
|
+
pool_error("pool_memory_alloc: malloc failed: %s", strerror(errno));
|
|
82
|
+
child_exit(1);
|
|
83
|
+
}
|
|
84
|
+
block->freepoint = block + (size + POOL_HEADER_SIZE);
|
|
85
|
+
chunk = block->block;
|
|
86
|
+
chunk->header.size = size + POOL_HEADER_SIZE;
|
|
87
|
+
block->next = pool->largeblocks;
|
|
88
|
+
pool->largeblocks = block;
|
|
89
|
+
}
|
|
90
|
+
else
|
|
91
|
+
{
|
|
92
|
+
int fidx = get_free_index(size + POOL_HEADER_SIZE);
|
|
93
|
+
int allocsize = 1 << (fidx + ALIGN);
|
|
94
|
+
|
|
95
|
+
/* pick up from freelist */
|
|
96
|
+
if (pool->freelist[fidx] != NULL)
|
|
97
|
+
{
|
|
98
|
+
chunk = pool->freelist[fidx];
|
|
99
|
+
pool->freelist[fidx] = chunk->header.next;
|
|
100
|
+
chunk->header.size = allocsize;
|
|
101
|
+
return chunk->data;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
block = pool->blocks;
|
|
105
|
+
if (block == NULL ||
|
|
106
|
+
block->freepoint + allocsize > block->block + block->size)
|
|
107
|
+
{
|
|
108
|
+
block = malloc(sizeof(POOL_BLOCK));
|
|
109
|
+
if (block == NULL)
|
|
110
|
+
{
|
|
111
|
+
pool_error("pool_memory_alloc: malloc failed: %s", strerror(errno));
|
|
112
|
+
child_exit(1);
|
|
113
|
+
}
|
|
114
|
+
block->size = pool->blocksize;
|
|
115
|
+
block->allocsize = 0;
|
|
116
|
+
block->block = malloc(pool->blocksize);
|
|
117
|
+
if (block->block == NULL)
|
|
118
|
+
{
|
|
119
|
+
pool_error("pool_memory_alloc: malloc failed: %s", strerror(errno));
|
|
120
|
+
child_exit(1);
|
|
121
|
+
}
|
|
122
|
+
block->freepoint = block->block;
|
|
123
|
+
block->next = pool->blocks;
|
|
124
|
+
pool->blocks = block;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
block = pool->blocks;
|
|
128
|
+
chunk = block->freepoint;
|
|
129
|
+
block->freepoint += allocsize;
|
|
130
|
+
block->allocsize += allocsize;
|
|
131
|
+
chunk->header.size = allocsize;
|
|
132
|
+
}
|
|
133
|
+
return chunk->data;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
/*
|
|
138
|
+
* pool_memory_alloc_zero:
|
|
139
|
+
* Returns pointer to allocated memory of given size.
|
|
140
|
+
* The allocated memory is cleared.
|
|
141
|
+
*/
|
|
142
|
+
void *pool_memory_alloc_zero(POOL_MEMORY_POOL *pool, unsigned int size)
|
|
143
|
+
{
|
|
144
|
+
void *ptr = pool_memory_alloc(pool, size);
|
|
145
|
+
memset(ptr, 0, size);
|
|
146
|
+
return ptr;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/*
|
|
150
|
+
* pool_memory_free:
|
|
151
|
+
* Frees allocated memory into memory pool.
|
|
152
|
+
*/
|
|
153
|
+
void pool_memory_free(POOL_MEMORY_POOL *pool, void *ptr)
|
|
154
|
+
{
|
|
155
|
+
POOL_CHUNK *chunk = ptr - POOL_HEADER_SIZE;
|
|
156
|
+
int fidx;
|
|
157
|
+
|
|
158
|
+
#ifdef POOL_MEMORY_DEBUG
|
|
159
|
+
pool_log("pool_memory_free: pool:%p ptr:%p", pool, ptr);
|
|
160
|
+
#endif
|
|
161
|
+
|
|
162
|
+
if (ptr == NULL)
|
|
163
|
+
return;
|
|
164
|
+
|
|
165
|
+
if (chunk->header.size > pool->blocksize)
|
|
166
|
+
{
|
|
167
|
+
POOL_BLOCK *block, *ptr = NULL;
|
|
168
|
+
|
|
169
|
+
for (block = pool->largeblocks; block; ptr = block, block = block->next)
|
|
170
|
+
{
|
|
171
|
+
if (block->block == chunk)
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (block == NULL)
|
|
176
|
+
{
|
|
177
|
+
pool_log("An address \"%p\" does not exist in memory pool.", chunk);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (ptr == NULL)
|
|
182
|
+
{
|
|
183
|
+
pool->largeblocks = block->next;
|
|
184
|
+
}
|
|
185
|
+
else
|
|
186
|
+
{
|
|
187
|
+
ptr->next = block->next;
|
|
188
|
+
}
|
|
189
|
+
free(block->block);
|
|
190
|
+
free(block);
|
|
191
|
+
}
|
|
192
|
+
else
|
|
193
|
+
{
|
|
194
|
+
fidx = get_free_index(chunk->header.size);
|
|
195
|
+
chunk->header.next = pool->freelist[fidx];
|
|
196
|
+
pool->freelist[fidx] = chunk;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/*
|
|
201
|
+
* pool_memory_realloc:
|
|
202
|
+
* Returns new pointer to allocated memory of given size.
|
|
203
|
+
* The new memory is copied from the old memory, and the old
|
|
204
|
+
* memory is freed.
|
|
205
|
+
*/
|
|
206
|
+
void *pool_memory_realloc(POOL_MEMORY_POOL *pool, void *ptr, unsigned int size)
|
|
207
|
+
{
|
|
208
|
+
int fidx;
|
|
209
|
+
void *p;
|
|
210
|
+
POOL_CHUNK *chunk = ptr - POOL_HEADER_SIZE;
|
|
211
|
+
|
|
212
|
+
if (size <= chunk->header.size - POOL_HEADER_SIZE)
|
|
213
|
+
return ptr;
|
|
214
|
+
|
|
215
|
+
fidx = get_free_index(size + POOL_HEADER_SIZE);
|
|
216
|
+
if (size + POOL_HEADER_SIZE <= pool->blocksize &&
|
|
217
|
+
chunk->header.size <= pool->blocksize &&
|
|
218
|
+
fidx == get_free_index(chunk->header.size))
|
|
219
|
+
{
|
|
220
|
+
return ptr;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
p = pool_memory_alloc(pool, size);
|
|
224
|
+
memmove(p, ptr, chunk->header.size - POOL_HEADER_SIZE);
|
|
225
|
+
pool_memory_free(pool, ptr);
|
|
226
|
+
|
|
227
|
+
return p;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/*
|
|
231
|
+
* pool_memory_create:
|
|
232
|
+
* Create a new memory pool.
|
|
233
|
+
*/
|
|
234
|
+
POOL_MEMORY_POOL *pool_memory_create(int blocksize)
|
|
235
|
+
{
|
|
236
|
+
POOL_MEMORY_POOL *pool;
|
|
237
|
+
int i;
|
|
238
|
+
|
|
239
|
+
pool = malloc(sizeof(POOL_MEMORY_POOL));
|
|
240
|
+
if (pool == NULL)
|
|
241
|
+
{
|
|
242
|
+
pool_error("pool_memory_create: malloc failed: %s", strerror(errno));
|
|
243
|
+
child_exit(1);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
#ifdef POOL_MEMORY_DEBUG
|
|
247
|
+
pool_log("pool_memory_create: blocksize: %d pool:%p", blocksize, pool);
|
|
248
|
+
#endif
|
|
249
|
+
|
|
250
|
+
pool->blocks = NULL;
|
|
251
|
+
pool->largeblocks = NULL;
|
|
252
|
+
pool->blocksize = blocksize;
|
|
253
|
+
|
|
254
|
+
for (i = 0; i < SLOT_NUM; i++)
|
|
255
|
+
{
|
|
256
|
+
pool->freelist[i] = NULL;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
return pool;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/*
|
|
263
|
+
* pool_memory_delete:
|
|
264
|
+
* Frees all memory which is allocated in the memory pool.
|
|
265
|
+
*/
|
|
266
|
+
void pool_memory_delete(POOL_MEMORY_POOL *pool_memory, int reuse)
|
|
267
|
+
{
|
|
268
|
+
POOL_BLOCK *block, *ptr;
|
|
269
|
+
|
|
270
|
+
#ifdef POOL_MEMORY_DEBUG
|
|
271
|
+
pool_log("pool_memory_delete: pool:%p reuse:%d", pool_memory, reuse);
|
|
272
|
+
#endif
|
|
273
|
+
|
|
274
|
+
/* Reuse the first memory block */
|
|
275
|
+
if (reuse && pool_memory->blocks)
|
|
276
|
+
block = pool_memory->blocks->next;
|
|
277
|
+
else
|
|
278
|
+
block = pool_memory->blocks;
|
|
279
|
+
|
|
280
|
+
while (block)
|
|
281
|
+
{
|
|
282
|
+
ptr = block->next;
|
|
283
|
+
free(block->block);
|
|
284
|
+
free(block);
|
|
285
|
+
block = ptr;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
for (block = pool_memory->largeblocks; block;)
|
|
289
|
+
{
|
|
290
|
+
ptr = block->next;
|
|
291
|
+
free(block->block);
|
|
292
|
+
free(block);
|
|
293
|
+
block = ptr;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
if (reuse)
|
|
297
|
+
{
|
|
298
|
+
int i;
|
|
299
|
+
|
|
300
|
+
if (pool_memory->blocks)
|
|
301
|
+
{
|
|
302
|
+
pool_memory->blocks->next = NULL;
|
|
303
|
+
pool_memory->blocks->allocsize = 0;
|
|
304
|
+
pool_memory->blocks->freepoint = pool_memory->blocks->block;
|
|
305
|
+
}
|
|
306
|
+
pool_memory->largeblocks = NULL;
|
|
307
|
+
for (i = 0; i < SLOT_NUM; i++)
|
|
308
|
+
{
|
|
309
|
+
pool_memory->freelist[i] = NULL;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
else
|
|
313
|
+
{
|
|
314
|
+
free(pool_memory);
|
|
315
|
+
pool_memory = NULL;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
/*
|
|
320
|
+
* pool_memory_strdup:
|
|
321
|
+
* Creates the new string which is copied the given string.
|
|
322
|
+
*/
|
|
323
|
+
char *pool_memory_strdup(POOL_MEMORY_POOL *pool_memory, const char *string)
|
|
324
|
+
{
|
|
325
|
+
int len = strlen(string);
|
|
326
|
+
char *str = pool_memory_alloc(pool_memory, len + 1);
|
|
327
|
+
|
|
328
|
+
memmove(str, string, len);
|
|
329
|
+
str[len] = '\0';
|
|
330
|
+
return str;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/*
|
|
334
|
+
* Switch memory context from pool_memory to pm
|
|
335
|
+
*/
|
|
336
|
+
POOL_MEMORY_POOL *pool_memory_context_switch_to(POOL_MEMORY_POOL *pm)
|
|
337
|
+
{
|
|
338
|
+
POOL_MEMORY_POOL *old = pool_memory;
|
|
339
|
+
pool_memory = pm;
|
|
340
|
+
return old;
|
|
341
|
+
}
|
|
342
|
+
|
|
@@ -0,0 +1,77 @@
|
|
|
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
|
+
* pool_memory.h: Memory pooling module for SQL parser.
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
#ifndef POOL_MEMORY_H
|
|
26
|
+
#define POOL_MEMORY_H
|
|
27
|
+
|
|
28
|
+
#define SLOT_NUM 11
|
|
29
|
+
|
|
30
|
+
#define PARSER_BLOCK_SIZE 8192
|
|
31
|
+
#define PREPARE_BLOCK_SIZE 1024
|
|
32
|
+
|
|
33
|
+
typedef struct POOL_BLOCK {
|
|
34
|
+
int size;
|
|
35
|
+
int allocsize;
|
|
36
|
+
void *block;
|
|
37
|
+
void *freepoint;
|
|
38
|
+
struct POOL_BLOCK *next;
|
|
39
|
+
} POOL_BLOCK;
|
|
40
|
+
|
|
41
|
+
typedef union {
|
|
42
|
+
unsigned int size;
|
|
43
|
+
struct POOL_CHUNK *next;
|
|
44
|
+
} POOL_CHUNK_HEADER;
|
|
45
|
+
|
|
46
|
+
typedef struct POOL_CHUNK {
|
|
47
|
+
POOL_CHUNK_HEADER header;
|
|
48
|
+
char data[1];
|
|
49
|
+
} POOL_CHUNK;
|
|
50
|
+
|
|
51
|
+
typedef struct {
|
|
52
|
+
int size;
|
|
53
|
+
int blocksize;
|
|
54
|
+
POOL_BLOCK *blocks;
|
|
55
|
+
POOL_BLOCK *largeblocks;
|
|
56
|
+
POOL_CHUNK *freelist[SLOT_NUM];
|
|
57
|
+
} POOL_MEMORY_POOL;
|
|
58
|
+
|
|
59
|
+
extern POOL_MEMORY_POOL *pool_memory;
|
|
60
|
+
|
|
61
|
+
extern void *pool_memory_alloc(POOL_MEMORY_POOL *pool, unsigned int size);
|
|
62
|
+
extern void pool_memory_free(POOL_MEMORY_POOL *pool, void *ptr);
|
|
63
|
+
extern void *pool_memory_realloc(POOL_MEMORY_POOL *pool, void *ptr, unsigned int size);
|
|
64
|
+
extern POOL_MEMORY_POOL *pool_memory_create(int blocksize);
|
|
65
|
+
extern void pool_memory_delete(POOL_MEMORY_POOL *pool_memory, int reuse);
|
|
66
|
+
extern char *pool_memory_strdup(POOL_MEMORY_POOL *pool_memory, const char *string);
|
|
67
|
+
extern void *pool_memory_alloc_zero(POOL_MEMORY_POOL *pool_memory, unsigned int size);
|
|
68
|
+
extern POOL_MEMORY_POOL *pool_memory_context_switch_to(POOL_MEMORY_POOL *pm);
|
|
69
|
+
|
|
70
|
+
#define palloc(s) pool_memory_alloc(pool_memory, (s))
|
|
71
|
+
#define pfree(p) pool_memory_free(pool_memory, (p))
|
|
72
|
+
#define repalloc(p, s) pool_memory_realloc(pool_memory, (p), (s))
|
|
73
|
+
#define pstrdup(s) pool_memory_strdup(pool_memory, (s))
|
|
74
|
+
#define palloc0(s) pool_memory_alloc_zero(pool_memory, (s))
|
|
75
|
+
#define palloc0fast(s) pool_memory_alloc_zero(pool_memory, (s)) /* Added in 8.4 */
|
|
76
|
+
|
|
77
|
+
#endif /* POOL_MEMORY_H */
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/* -*-pgsql-c-*- */
|
|
2
|
+
/*
|
|
3
|
+
* $Header$
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2006-2009, pgpool Global Development Group
|
|
6
|
+
*
|
|
7
|
+
* Permission to use, copy, modify, and distribute this software and
|
|
8
|
+
* its documentation for any purpose and without fee is hereby
|
|
9
|
+
* granted, provided that the above copyright notice appear in all
|
|
10
|
+
* copies and that both that copyright notice and this permission
|
|
11
|
+
* notice appear in supporting documentation, and that the name of the
|
|
12
|
+
* author not be used in advertising or publicity pertaining to
|
|
13
|
+
* distribution of the software without specific, written prior
|
|
14
|
+
* permission. The author makes no representations about the
|
|
15
|
+
* suitability of this software for any purpose. It is provided "as
|
|
16
|
+
* is" without express or implied warranty.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
#ifndef POOL_PARSER_H
|
|
20
|
+
#define POOL_PARSER_H
|
|
21
|
+
|
|
22
|
+
#include "../pool_type.h"
|
|
23
|
+
#include <setjmp.h>
|
|
24
|
+
|
|
25
|
+
extern jmp_buf jmpbuffer;
|
|
26
|
+
extern int server_version_num;
|
|
27
|
+
|
|
28
|
+
#define AssertMacro
|
|
29
|
+
#define Assert(expr) ((void) 0)
|
|
30
|
+
|
|
31
|
+
/* include/c.h */
|
|
32
|
+
/* integer */
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* move int32 and int16 to pool_types.h since there's no point that
|
|
36
|
+
* these are solely used for parser
|
|
37
|
+
* typedef signed int int32;
|
|
38
|
+
* typedef signed short int16;
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/*
|
|
42
|
+
* bitsN
|
|
43
|
+
* Unit of bitwise operation, AT LEAST N BITS IN SIZE.
|
|
44
|
+
*/
|
|
45
|
+
typedef uint8 bits8; /* >= 8 bits */
|
|
46
|
+
typedef uint16 bits16; /* >= 16 bits */
|
|
47
|
+
typedef uint32 bits32; /* >= 32 bits */
|
|
48
|
+
typedef unsigned long long int uint64;
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
typedef size_t Size;
|
|
52
|
+
typedef unsigned int PoolOid;
|
|
53
|
+
typedef unsigned int Index;
|
|
54
|
+
typedef short AttrNumber;
|
|
55
|
+
typedef unsigned long Datum; /* XXX sizeof(long) >= sizeof(void *) */
|
|
56
|
+
|
|
57
|
+
#define Oid PoolOid
|
|
58
|
+
#define InvalidOid ((Oid) 0)
|
|
59
|
+
|
|
60
|
+
/*
|
|
61
|
+
* NAMEDATALEN is the max length for system identifiers (e.g. table names,
|
|
62
|
+
* attribute names, function names, etc). It must be a multiple of
|
|
63
|
+
* sizeof(int) (typically 4).
|
|
64
|
+
*
|
|
65
|
+
* NOTE that databases with different NAMEDATALEN's cannot interoperate!
|
|
66
|
+
*/
|
|
67
|
+
#define NAMEDATALEN 64
|
|
68
|
+
|
|
69
|
+
/*
|
|
70
|
+
* Max
|
|
71
|
+
* Return the maximum of two numbers.
|
|
72
|
+
*/
|
|
73
|
+
#define Max(x, y) ((x) > (y) ? (x) : (y))
|
|
74
|
+
|
|
75
|
+
/*
|
|
76
|
+
* Min
|
|
77
|
+
* Return the minimum of two numbers.
|
|
78
|
+
*/
|
|
79
|
+
#define Min(x, y) ((x) < (y) ? (x) : (y))
|
|
80
|
+
/* array */
|
|
81
|
+
#define lengthof(array) (sizeof(array) / sizeof(((array)[0])))
|
|
82
|
+
#define endof(array) (&(array)[lengthof(array)])
|
|
83
|
+
|
|
84
|
+
/* msb for char */
|
|
85
|
+
#define HIGHBIT (0x80)
|
|
86
|
+
#define IS_HIGHBIT_SET(ch) ((unsigned char)(ch) & HIGHBIT)
|
|
87
|
+
|
|
88
|
+
#define PGDLLIMPORT
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
/* include/utils/datetime.h */
|
|
92
|
+
/* date and datetime */
|
|
93
|
+
#define RESERV 0
|
|
94
|
+
#define MONTH 1
|
|
95
|
+
#define YEAR 2
|
|
96
|
+
#define DAY 3
|
|
97
|
+
#define JULIAN 4
|
|
98
|
+
#define TZ 5
|
|
99
|
+
#define DTZ 6
|
|
100
|
+
#define DTZMOD 7
|
|
101
|
+
#define IGNORE_DTF 8
|
|
102
|
+
#define AMPM 9
|
|
103
|
+
#define HOUR 10
|
|
104
|
+
#define MINUTE 11
|
|
105
|
+
#define SECOND 12
|
|
106
|
+
#define DOY 13
|
|
107
|
+
#define DOW 14
|
|
108
|
+
#define UNITS 15
|
|
109
|
+
#define ADBC 16
|
|
110
|
+
/* these are only for relative dates */
|
|
111
|
+
#define AGO 17
|
|
112
|
+
#define ABS_BEFORE 18
|
|
113
|
+
#define ABS_AFTER 19
|
|
114
|
+
/* generic fields to help with parsing */
|
|
115
|
+
#define ISODATE 20
|
|
116
|
+
#define ISOTIME 21
|
|
117
|
+
/* reserved for unrecognized string values */
|
|
118
|
+
#define UNKNOWN_FIELD 31
|
|
119
|
+
#define MAX_TIMESTAMP_PRECISION 6
|
|
120
|
+
#define MAX_INTERVAL_PRECISION 6
|
|
121
|
+
#define INTERVAL_FULL_RANGE (0x7FFF)
|
|
122
|
+
#define INTERVAL_RANGE_MASK (0x7FFF)
|
|
123
|
+
#define INTERVAL_FULL_PRECISION (0xFFFF)
|
|
124
|
+
#define INTERVAL_PRECISION_MASK (0xFFFF)
|
|
125
|
+
|
|
126
|
+
#define INTERVAL_MASK(b) (1 << (b))
|
|
127
|
+
#define INTERVAL_TYPMOD(p,r) ((((r) & INTERVAL_RANGE_MASK) << 16) | ((p) & INTERVAL_PRECISION_MASK))
|
|
128
|
+
#define INTERVAL_PRECISION(t) ((t) & INTERVAL_PRECISION_MASK)
|
|
129
|
+
#define INTERVAL_RANGE(t) (((t) >> 16) & INTERVAL_RANGE_MASK)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
/* include/storage/lock.h */
|
|
133
|
+
/* lock */
|
|
134
|
+
/* NoLock is not a lock mode, but a flag value meaning "don't get a lock" */
|
|
135
|
+
#define NoLock 0
|
|
136
|
+
|
|
137
|
+
#define AccessShareLock 1 /* SELECT */
|
|
138
|
+
#define RowShareLock 2 /* SELECT FOR UPDATE/FOR SHARE */
|
|
139
|
+
#define RowExclusiveLock 3 /* INSERT, UPDATE, DELETE */
|
|
140
|
+
#define ShareUpdateExclusiveLock 4 /* VACUUM (non-FULL) */
|
|
141
|
+
#define ShareLock 5 /* CREATE INDEX */
|
|
142
|
+
#define ShareRowExclusiveLock 6 /* like EXCLUSIVE MODE, but allows ROW
|
|
143
|
+
* SHARE */
|
|
144
|
+
#define ExclusiveLock 7 /* blocks ROW SHARE/SELECT...FOR
|
|
145
|
+
* UPDATE */
|
|
146
|
+
#define AccessExclusiveLock 8 /* ALTER TABLE, DROP TABLE, VACUUM
|
|
147
|
+
* FULL, and unqualified LOCK TABLE */
|
|
148
|
+
|
|
149
|
+
#define DEFAULT_INDEX_TYPE "btree"
|
|
150
|
+
#define NUMERIC_MAX_PRECISION 1000
|
|
151
|
+
|
|
152
|
+
#define VARHDRSZ ((int32) sizeof(int32))
|
|
153
|
+
|
|
154
|
+
#define MaxAttrSize (10 * 1024 * 1024)
|
|
155
|
+
#define BITS_PER_BYTE 8
|
|
156
|
+
#define MAX_TIME_PRECISION 6
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
/* ----------------------------------------------------------------
|
|
160
|
+
* Section 1: hacks to cope with non-ANSI C compilers
|
|
161
|
+
*
|
|
162
|
+
* type prefixes (const, signed, volatile, inline) are handled in pg_config.h.
|
|
163
|
+
* ----------------------------------------------------------------
|
|
164
|
+
*/
|
|
165
|
+
|
|
166
|
+
/*
|
|
167
|
+
* CppAsString
|
|
168
|
+
* Convert the argument to a string, using the C preprocessor.
|
|
169
|
+
* CppConcat
|
|
170
|
+
* Concatenate two arguments together, using the C preprocessor.
|
|
171
|
+
*
|
|
172
|
+
* Note: the standard Autoconf macro AC_C_STRINGIZE actually only checks
|
|
173
|
+
* whether #identifier works, but if we have that we likely have ## too.
|
|
174
|
+
*/
|
|
175
|
+
#if defined(HAVE_STRINGIZE)
|
|
176
|
+
|
|
177
|
+
#define CppAsString(identifier) #identifier
|
|
178
|
+
#define CppConcat(x, y) x##y
|
|
179
|
+
#else /* !HAVE_STRINGIZE */
|
|
180
|
+
|
|
181
|
+
#define CppAsString(identifier) "identifier"
|
|
182
|
+
|
|
183
|
+
/*
|
|
184
|
+
* CppIdentity -- On Reiser based cpp's this is used to concatenate
|
|
185
|
+
* two tokens. That is
|
|
186
|
+
* CppIdentity(A)B ==> AB
|
|
187
|
+
* We renamed it to _private_CppIdentity because it should not
|
|
188
|
+
* be referenced outside this file. On other cpp's it
|
|
189
|
+
* produces A B.
|
|
190
|
+
*/
|
|
191
|
+
#define _priv_CppIdentity(x)x
|
|
192
|
+
#define CppConcat(x, y) _priv_CppIdentity(x)y
|
|
193
|
+
#endif /* !HAVE_STRINGIZE */
|
|
194
|
+
|
|
195
|
+
#if 0
|
|
196
|
+
/* from include/catalog/pg_trigger.h start */
|
|
197
|
+
/* Bits within tgtype */
|
|
198
|
+
#define TRIGGER_TYPE_ROW (1 << 0)
|
|
199
|
+
#define TRIGGER_TYPE_BEFORE (1 << 1)
|
|
200
|
+
#define TRIGGER_TYPE_INSERT (1 << 2)
|
|
201
|
+
#define TRIGGER_TYPE_DELETE (1 << 3)
|
|
202
|
+
#define TRIGGER_TYPE_UPDATE (1 << 4)
|
|
203
|
+
#define TRIGGER_TYPE_TRUNCATE (1 << 5)
|
|
204
|
+
/* from include/catalog/pg_trigger.h end */
|
|
205
|
+
#endif
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
/* include/utils/elog.h */
|
|
209
|
+
#define NOTICE 18
|
|
210
|
+
#define WARNING 19
|
|
211
|
+
#define ERROR 20
|
|
212
|
+
|
|
213
|
+
extern void pool_parser_error(int level, const char *file, int line);
|
|
214
|
+
#ifndef ereport
|
|
215
|
+
#define ereport(elevel, rest) pool_parser_error(elevel, __FILE__, __LINE__)
|
|
216
|
+
#endif
|
|
217
|
+
#ifndef elog
|
|
218
|
+
#define elog(elevel, fmt, ...) pool_parser_error(elevel, __FILE__, __LINE__)
|
|
219
|
+
#endif
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
#endif /* POOL_PARSER_H */
|