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,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
|