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,262 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* parser.c
|
|
4
|
+
* Main entry point/driver for PostgreSQL grammar
|
|
5
|
+
*
|
|
6
|
+
* Note that the grammar is not allowed to perform any table access
|
|
7
|
+
* (since we need to be able to do basic parsing even while inside an
|
|
8
|
+
* aborted transaction). Therefore, the data structures returned by
|
|
9
|
+
* the grammar are "raw" parsetrees that still need to be analyzed by
|
|
10
|
+
* analyze.c and related files.
|
|
11
|
+
*
|
|
12
|
+
*
|
|
13
|
+
* Portions Copyright (c) 2003-2009, PgPool Global Development Group
|
|
14
|
+
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
|
15
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
16
|
+
*
|
|
17
|
+
* IDENTIFICATION
|
|
18
|
+
* src/backend/parser/parser.c
|
|
19
|
+
*
|
|
20
|
+
*-------------------------------------------------------------------------
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
#include <string.h>
|
|
24
|
+
#include "pool_parser.h"
|
|
25
|
+
#include "pool_memory.h"
|
|
26
|
+
#include "gramparse.h" /* required before parser/gram.h! */
|
|
27
|
+
#include "gram.h"
|
|
28
|
+
#include "parser.h"
|
|
29
|
+
#include "pg_wchar.h"
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
List *parsetree; /* result of parsing is left here */
|
|
33
|
+
jmp_buf jmpbuffer;
|
|
34
|
+
int server_version_num = 0;
|
|
35
|
+
|
|
36
|
+
static pg_enc server_encoding = PG_SQL_ASCII;
|
|
37
|
+
static bool in_parser_context = false;
|
|
38
|
+
|
|
39
|
+
static int
|
|
40
|
+
parse_version(const char *versionString);
|
|
41
|
+
|
|
42
|
+
/*
|
|
43
|
+
* raw_parser
|
|
44
|
+
* Given a query in string form, do lexical and grammatical analysis.
|
|
45
|
+
*
|
|
46
|
+
* Returns a list of raw (un-analyzed) parse trees.
|
|
47
|
+
*/
|
|
48
|
+
List *
|
|
49
|
+
raw_parser(const char *str)
|
|
50
|
+
{
|
|
51
|
+
core_yyscan_t yyscanner;
|
|
52
|
+
base_yy_extra_type yyextra;
|
|
53
|
+
int yyresult;
|
|
54
|
+
|
|
55
|
+
if (pool_memory == NULL)
|
|
56
|
+
pool_memory = pool_memory_create(PARSER_BLOCK_SIZE);
|
|
57
|
+
|
|
58
|
+
parsetree = NIL; /* in case grammar forgets to set it */
|
|
59
|
+
|
|
60
|
+
/* initialize the flex scanner */
|
|
61
|
+
yyscanner = scanner_init(str, &yyextra.core_yy_extra,
|
|
62
|
+
ScanKeywords, NumScanKeywords);
|
|
63
|
+
|
|
64
|
+
/* base_yylex() only needs this much initialization */
|
|
65
|
+
yyextra.have_lookahead = false;
|
|
66
|
+
|
|
67
|
+
/* initialize the bison parser */
|
|
68
|
+
parser_init(&yyextra);
|
|
69
|
+
|
|
70
|
+
in_parser_context = true;
|
|
71
|
+
if (setjmp(jmpbuffer) != 0)
|
|
72
|
+
{
|
|
73
|
+
scanner_finish(yyscanner);
|
|
74
|
+
in_parser_context = false;
|
|
75
|
+
return NIL; /* error */
|
|
76
|
+
}
|
|
77
|
+
else
|
|
78
|
+
{
|
|
79
|
+
yyresult = base_yyparse(yyscanner);
|
|
80
|
+
|
|
81
|
+
scanner_finish(yyscanner);
|
|
82
|
+
|
|
83
|
+
in_parser_context = false;
|
|
84
|
+
if (yyresult) /* error */
|
|
85
|
+
return NIL;
|
|
86
|
+
}
|
|
87
|
+
return yyextra.parsetree;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
void free_parser(void)
|
|
91
|
+
{
|
|
92
|
+
pool_memory_delete(pool_memory, 1);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/*
|
|
96
|
+
* Intermediate filter between parser and base lexer (base_yylex in scan.l).
|
|
97
|
+
*
|
|
98
|
+
* The filter is needed because in some cases the standard SQL grammar
|
|
99
|
+
* requires more than one token lookahead. We reduce these cases to one-token
|
|
100
|
+
* lookahead by combining tokens here, in order to keep the grammar LALR(1).
|
|
101
|
+
*
|
|
102
|
+
* Using a filter is simpler than trying to recognize multiword tokens
|
|
103
|
+
* directly in scan.l, because we'd have to allow for comments between the
|
|
104
|
+
* words. Furthermore it's not clear how to do it without re-introducing
|
|
105
|
+
* scanner backtrack, which would cost more performance than this filter
|
|
106
|
+
* layer does.
|
|
107
|
+
*
|
|
108
|
+
* The filter also provides a convenient place to translate between
|
|
109
|
+
* the core_YYSTYPE and YYSTYPE representations (which are really the
|
|
110
|
+
* same thing anyway, but notationally they're different).
|
|
111
|
+
*/
|
|
112
|
+
int
|
|
113
|
+
base_yylex(YYSTYPE *lvalp, YYLTYPE *llocp, core_yyscan_t yyscanner)
|
|
114
|
+
{
|
|
115
|
+
base_yy_extra_type *yyextra = pg_yyget_extra(yyscanner);
|
|
116
|
+
int cur_token;
|
|
117
|
+
int next_token;
|
|
118
|
+
core_YYSTYPE cur_yylval;
|
|
119
|
+
YYLTYPE cur_yylloc;
|
|
120
|
+
|
|
121
|
+
/* Get next token --- we might already have it */
|
|
122
|
+
if (yyextra->have_lookahead)
|
|
123
|
+
{
|
|
124
|
+
cur_token = yyextra->lookahead_token;
|
|
125
|
+
lvalp->core_yystype = yyextra->lookahead_yylval;
|
|
126
|
+
*llocp = yyextra->lookahead_yylloc;
|
|
127
|
+
yyextra->have_lookahead = false;
|
|
128
|
+
}
|
|
129
|
+
else
|
|
130
|
+
cur_token = core_yylex(&(lvalp->core_yystype), llocp, yyscanner);
|
|
131
|
+
|
|
132
|
+
/* Do we need to look ahead for a possible multiword token? */
|
|
133
|
+
switch (cur_token)
|
|
134
|
+
{
|
|
135
|
+
case NULLS_P:
|
|
136
|
+
|
|
137
|
+
/*
|
|
138
|
+
* NULLS FIRST and NULLS LAST must be reduced to one token
|
|
139
|
+
*/
|
|
140
|
+
cur_yylval = lvalp->core_yystype;
|
|
141
|
+
cur_yylloc = *llocp;
|
|
142
|
+
next_token = core_yylex(&(lvalp->core_yystype), llocp, yyscanner);
|
|
143
|
+
switch (next_token)
|
|
144
|
+
{
|
|
145
|
+
case FIRST_P:
|
|
146
|
+
cur_token = NULLS_FIRST;
|
|
147
|
+
break;
|
|
148
|
+
case LAST_P:
|
|
149
|
+
cur_token = NULLS_LAST;
|
|
150
|
+
break;
|
|
151
|
+
default:
|
|
152
|
+
/* save the lookahead token for next time */
|
|
153
|
+
yyextra->lookahead_token = next_token;
|
|
154
|
+
yyextra->lookahead_yylval = lvalp->core_yystype;
|
|
155
|
+
yyextra->lookahead_yylloc = *llocp;
|
|
156
|
+
yyextra->have_lookahead = true;
|
|
157
|
+
/* and back up the output info to cur_token */
|
|
158
|
+
lvalp->core_yystype = cur_yylval;
|
|
159
|
+
*llocp = cur_yylloc;
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
break;
|
|
163
|
+
|
|
164
|
+
case WITH:
|
|
165
|
+
|
|
166
|
+
/*
|
|
167
|
+
* WITH TIME must be reduced to one token
|
|
168
|
+
*/
|
|
169
|
+
cur_yylval = lvalp->core_yystype;
|
|
170
|
+
cur_yylloc = *llocp;
|
|
171
|
+
next_token = core_yylex(&(lvalp->core_yystype), llocp, yyscanner);
|
|
172
|
+
switch (next_token)
|
|
173
|
+
{
|
|
174
|
+
case TIME:
|
|
175
|
+
cur_token = WITH_TIME;
|
|
176
|
+
break;
|
|
177
|
+
default:
|
|
178
|
+
/* save the lookahead token for next time */
|
|
179
|
+
yyextra->lookahead_token = next_token;
|
|
180
|
+
yyextra->lookahead_yylval = lvalp->core_yystype;
|
|
181
|
+
yyextra->lookahead_yylloc = *llocp;
|
|
182
|
+
yyextra->have_lookahead = true;
|
|
183
|
+
/* and back up the output info to cur_token */
|
|
184
|
+
lvalp->core_yystype = cur_yylval;
|
|
185
|
+
*llocp = cur_yylloc;
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
break;
|
|
189
|
+
|
|
190
|
+
default:
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
return cur_token;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
void
|
|
199
|
+
pool_parser_error(int level, const char *file, int line)
|
|
200
|
+
{
|
|
201
|
+
#ifdef PARSER_DEBUG
|
|
202
|
+
fprintf(stderr, "error: %d %s %d\n", level, file, line);
|
|
203
|
+
#endif
|
|
204
|
+
if (level < ERROR)
|
|
205
|
+
return;
|
|
206
|
+
if (in_parser_context)
|
|
207
|
+
longjmp(jmpbuffer, 1);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
static int
|
|
211
|
+
parse_version(const char *versionString)
|
|
212
|
+
{
|
|
213
|
+
int cnt;
|
|
214
|
+
int vmaj,
|
|
215
|
+
vmin,
|
|
216
|
+
vrev;
|
|
217
|
+
|
|
218
|
+
cnt = sscanf(versionString, "%d.%d.%d", &vmaj, &vmin, &vrev);
|
|
219
|
+
|
|
220
|
+
if (cnt < 2)
|
|
221
|
+
return -1;
|
|
222
|
+
|
|
223
|
+
if (cnt == 2)
|
|
224
|
+
vrev = 0;
|
|
225
|
+
|
|
226
|
+
return (100 * vmaj + vmin) * 100 + vrev;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
void
|
|
230
|
+
parser_set_param(const char *name, const char *value)
|
|
231
|
+
{
|
|
232
|
+
if (strcmp(name, "server_version") == 0)
|
|
233
|
+
{
|
|
234
|
+
server_version_num = parse_version(value);
|
|
235
|
+
}
|
|
236
|
+
else if (strcmp(name, "server_encoding") == 0)
|
|
237
|
+
{
|
|
238
|
+
if (strcmp(value, "UTF8") == 0)
|
|
239
|
+
server_encoding = PG_UTF8;
|
|
240
|
+
else
|
|
241
|
+
server_encoding = PG_SQL_ASCII;
|
|
242
|
+
}
|
|
243
|
+
else if (strcmp(name, "standard_conforming_strings") == 0)
|
|
244
|
+
{
|
|
245
|
+
if (strcmp(value, "on") == 0)
|
|
246
|
+
standard_conforming_strings = true;
|
|
247
|
+
else
|
|
248
|
+
standard_conforming_strings = false;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
int
|
|
253
|
+
GetDatabaseEncoding(void)
|
|
254
|
+
{
|
|
255
|
+
return server_encoding;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
int
|
|
259
|
+
pg_mblen(const char *mbstr)
|
|
260
|
+
{
|
|
261
|
+
return pg_utf_mblen((const unsigned char *) mbstr);
|
|
262
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* parser.h
|
|
4
|
+
* Definitions for the "raw" parser (flex and bison phases only)
|
|
5
|
+
*
|
|
6
|
+
* This is the external API for the raw lexing/parsing functions.
|
|
7
|
+
*
|
|
8
|
+
* Portions Copyright (c) 2003-2013, PgPool Global Development Group
|
|
9
|
+
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
|
|
10
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
11
|
+
*
|
|
12
|
+
* src/include/parser/parser.h
|
|
13
|
+
*
|
|
14
|
+
*-------------------------------------------------------------------------
|
|
15
|
+
*/
|
|
16
|
+
#ifndef PARSER_H
|
|
17
|
+
#define PARSER_H
|
|
18
|
+
|
|
19
|
+
#include "pg_list.h"
|
|
20
|
+
#include "parsenodes.h"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
typedef enum
|
|
24
|
+
{
|
|
25
|
+
BACKSLASH_QUOTE_OFF,
|
|
26
|
+
BACKSLASH_QUOTE_ON,
|
|
27
|
+
BACKSLASH_QUOTE_SAFE_ENCODING
|
|
28
|
+
} BackslashQuoteType;
|
|
29
|
+
|
|
30
|
+
/* GUC variables in scan.l (every one of these is a bad idea :-() */
|
|
31
|
+
extern int backslash_quote;
|
|
32
|
+
extern bool escape_string_warning;
|
|
33
|
+
extern PGDLLIMPORT bool standard_conforming_strings;
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
/* Primary entry point for the raw parsing functions */
|
|
37
|
+
extern List *raw_parser(const char *str);
|
|
38
|
+
extern void free_parser(void);
|
|
39
|
+
|
|
40
|
+
/* Utility functions exported by gram.y (perhaps these should be elsewhere) */
|
|
41
|
+
extern List *SystemFuncName(char *name);
|
|
42
|
+
extern TypeName *SystemTypeName(char *name);
|
|
43
|
+
|
|
44
|
+
extern void parser_set_param(const char *name, const char *value);
|
|
45
|
+
|
|
46
|
+
#endif /* PARSER_H */
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* pg_class.h
|
|
4
|
+
* definition of the system "relation" relation (pg_class)
|
|
5
|
+
* along with the relation's initial contents.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* Portions Copyright (c) 2003-2013, PgPool Global Development Group
|
|
9
|
+
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
|
|
10
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
11
|
+
*
|
|
12
|
+
* src/include/catalog/pg_class.h
|
|
13
|
+
*
|
|
14
|
+
* NOTES
|
|
15
|
+
* the genbki.pl script reads this file and generates .bki
|
|
16
|
+
* information from the DATA() statements.
|
|
17
|
+
*
|
|
18
|
+
*-------------------------------------------------------------------------
|
|
19
|
+
*/
|
|
20
|
+
#ifndef PG_CLASS_H
|
|
21
|
+
#define PG_CLASS_H
|
|
22
|
+
|
|
23
|
+
#if 0
|
|
24
|
+
#include "catalog/genbki.h"
|
|
25
|
+
|
|
26
|
+
/* ----------------
|
|
27
|
+
* pg_class definition. cpp turns this into
|
|
28
|
+
* typedef struct FormData_pg_class
|
|
29
|
+
* ----------------
|
|
30
|
+
*/
|
|
31
|
+
#define RelationRelationId 1259
|
|
32
|
+
#define RelationRelation_Rowtype_Id 83
|
|
33
|
+
|
|
34
|
+
CATALOG(pg_class,1259) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83) BKI_SCHEMA_MACRO
|
|
35
|
+
{
|
|
36
|
+
NameData relname; /* class name */
|
|
37
|
+
Oid relnamespace; /* OID of namespace containing this class */
|
|
38
|
+
Oid reltype; /* OID of entry in pg_type for table's
|
|
39
|
+
* implicit row type */
|
|
40
|
+
Oid reloftype; /* OID of entry in pg_type for underlying
|
|
41
|
+
* composite type */
|
|
42
|
+
Oid relowner; /* class owner */
|
|
43
|
+
Oid relam; /* index access method; 0 if not an index */
|
|
44
|
+
Oid relfilenode; /* identifier of physical storage file */
|
|
45
|
+
|
|
46
|
+
/* relfilenode == 0 means it is a "mapped" relation, see relmapper.c */
|
|
47
|
+
Oid reltablespace; /* identifier of table space for relation */
|
|
48
|
+
int4 relpages; /* # of blocks (not always up-to-date) */
|
|
49
|
+
float4 reltuples; /* # of tuples (not always up-to-date) */
|
|
50
|
+
int4 relallvisible; /* # of all-visible blocks (not always
|
|
51
|
+
* up-to-date) */
|
|
52
|
+
Oid reltoastrelid; /* OID of toast table; 0 if none */
|
|
53
|
+
Oid reltoastidxid; /* if toast table, OID of chunk_id index */
|
|
54
|
+
bool relhasindex; /* T if has (or has had) any indexes */
|
|
55
|
+
bool relisshared; /* T if shared across databases */
|
|
56
|
+
char relpersistence; /* see RELPERSISTENCE_xxx constants below */
|
|
57
|
+
char relkind; /* see RELKIND_xxx constants below */
|
|
58
|
+
int2 relnatts; /* number of user attributes */
|
|
59
|
+
|
|
60
|
+
/*
|
|
61
|
+
* Class pg_attribute must contain exactly "relnatts" user attributes
|
|
62
|
+
* (with attnums ranging from 1 to relnatts) for this class. It may also
|
|
63
|
+
* contain entries with negative attnums for system attributes.
|
|
64
|
+
*/
|
|
65
|
+
int2 relchecks; /* # of CHECK constraints for class */
|
|
66
|
+
bool relhasoids; /* T if we generate OIDs for rows of rel */
|
|
67
|
+
bool relhaspkey; /* has (or has had) PRIMARY KEY index */
|
|
68
|
+
bool relhasrules; /* has (or has had) any rules */
|
|
69
|
+
bool relhastriggers; /* has (or has had) any TRIGGERs */
|
|
70
|
+
bool relhassubclass; /* has (or has had) derived classes */
|
|
71
|
+
TransactionId relfrozenxid; /* all Xids < this are frozen in this rel */
|
|
72
|
+
|
|
73
|
+
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
|
74
|
+
/* NOTE: These fields are not present in a relcache entry's rd_rel field. */
|
|
75
|
+
aclitem relacl[1]; /* access permissions */
|
|
76
|
+
text reloptions[1]; /* access-method-specific options */
|
|
77
|
+
#endif
|
|
78
|
+
} FormData_pg_class;
|
|
79
|
+
|
|
80
|
+
/* Size of fixed part of pg_class tuples, not counting var-length fields */
|
|
81
|
+
#define CLASS_TUPLE_SIZE \
|
|
82
|
+
(offsetof(FormData_pg_class,relfrozenxid) + sizeof(TransactionId))
|
|
83
|
+
|
|
84
|
+
/* ----------------
|
|
85
|
+
* Form_pg_class corresponds to a pointer to a tuple with
|
|
86
|
+
* the format of pg_class relation.
|
|
87
|
+
* ----------------
|
|
88
|
+
*/
|
|
89
|
+
typedef FormData_pg_class *Form_pg_class;
|
|
90
|
+
|
|
91
|
+
/* ----------------
|
|
92
|
+
* compiler constants for pg_class
|
|
93
|
+
* ----------------
|
|
94
|
+
*/
|
|
95
|
+
|
|
96
|
+
#define Natts_pg_class 27
|
|
97
|
+
#define Anum_pg_class_relname 1
|
|
98
|
+
#define Anum_pg_class_relnamespace 2
|
|
99
|
+
#define Anum_pg_class_reltype 3
|
|
100
|
+
#define Anum_pg_class_reloftype 4
|
|
101
|
+
#define Anum_pg_class_relowner 5
|
|
102
|
+
#define Anum_pg_class_relam 6
|
|
103
|
+
#define Anum_pg_class_relfilenode 7
|
|
104
|
+
#define Anum_pg_class_reltablespace 8
|
|
105
|
+
#define Anum_pg_class_relpages 9
|
|
106
|
+
#define Anum_pg_class_reltuples 10
|
|
107
|
+
#define Anum_pg_class_relallvisible 11
|
|
108
|
+
#define Anum_pg_class_reltoastrelid 12
|
|
109
|
+
#define Anum_pg_class_reltoastidxid 13
|
|
110
|
+
#define Anum_pg_class_relhasindex 14
|
|
111
|
+
#define Anum_pg_class_relisshared 15
|
|
112
|
+
#define Anum_pg_class_relpersistence 16
|
|
113
|
+
#define Anum_pg_class_relkind 17
|
|
114
|
+
#define Anum_pg_class_relnatts 18
|
|
115
|
+
#define Anum_pg_class_relchecks 19
|
|
116
|
+
#define Anum_pg_class_relhasoids 20
|
|
117
|
+
#define Anum_pg_class_relhaspkey 21
|
|
118
|
+
#define Anum_pg_class_relhasrules 22
|
|
119
|
+
#define Anum_pg_class_relhastriggers 23
|
|
120
|
+
#define Anum_pg_class_relhassubclass 24
|
|
121
|
+
#define Anum_pg_class_relfrozenxid 25
|
|
122
|
+
#define Anum_pg_class_relacl 26
|
|
123
|
+
#define Anum_pg_class_reloptions 27
|
|
124
|
+
|
|
125
|
+
/* ----------------
|
|
126
|
+
* initial contents of pg_class
|
|
127
|
+
*
|
|
128
|
+
* NOTE: only "bootstrapped" relations need to be declared here. Be sure that
|
|
129
|
+
* the OIDs listed here match those given in their CATALOG macros, and that
|
|
130
|
+
* the relnatts values are correct.
|
|
131
|
+
* ----------------
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
/* Note: "3" in the relfrozenxid column stands for FirstNormalTransactionId */
|
|
135
|
+
DATA(insert OID = 1247 ( pg_type PGNSP 71 0 PGUID 0 0 0 0 0 0 0 0 f f p r 30 0 t f f f f 3 _null_ _null_ ));
|
|
136
|
+
DESCR("");
|
|
137
|
+
DATA(insert OID = 1249 ( pg_attribute PGNSP 75 0 PGUID 0 0 0 0 0 0 0 0 f f p r 21 0 f f f f f 3 _null_ _null_ ));
|
|
138
|
+
DESCR("");
|
|
139
|
+
DATA(insert OID = 1255 ( pg_proc PGNSP 81 0 PGUID 0 0 0 0 0 0 0 0 f f p r 27 0 t f f f f 3 _null_ _null_ ));
|
|
140
|
+
DESCR("");
|
|
141
|
+
DATA(insert OID = 1259 ( pg_class PGNSP 83 0 PGUID 0 0 0 0 0 0 0 0 f f p r 27 0 t f f f f 3 _null_ _null_ ));
|
|
142
|
+
DESCR("");
|
|
143
|
+
#endif
|
|
144
|
+
|
|
145
|
+
#define RELKIND_RELATION 'r' /* ordinary table */
|
|
146
|
+
#define RELKIND_INDEX 'i' /* secondary index */
|
|
147
|
+
#define RELKIND_SEQUENCE 'S' /* sequence object */
|
|
148
|
+
#define RELKIND_TOASTVALUE 't' /* for out-of-line values */
|
|
149
|
+
#define RELKIND_VIEW 'v' /* view */
|
|
150
|
+
#define RELKIND_COMPOSITE_TYPE 'c' /* composite type */
|
|
151
|
+
#define RELKIND_FOREIGN_TABLE 'f' /* foreign table */
|
|
152
|
+
#define RELKIND_UNCATALOGED 'u' /* not yet cataloged */
|
|
153
|
+
|
|
154
|
+
#define RELPERSISTENCE_PERMANENT 'p' /* regular table */
|
|
155
|
+
#define RELPERSISTENCE_UNLOGGED 'u' /* unlogged permanent table */
|
|
156
|
+
#define RELPERSISTENCE_TEMP 't' /* temporary table */
|
|
157
|
+
|
|
158
|
+
#endif /* PG_CLASS_H */
|