pg_query 2.2.0 → 6.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +86 -0
- data/README.md +57 -31
- data/Rakefile +5 -6
- data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
- data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
- data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/extconf.rb +33 -9
- data/ext/pg_query/include/pg_query.h +30 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +839 -290
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +638 -481
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +6786 -4193
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +450 -330
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1489 -1044
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +157 -118
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1933 -1410
- data/ext/pg_query/include/postgres/access/amapi.h +303 -0
- data/ext/pg_query/include/postgres/access/attmap.h +54 -0
- data/ext/pg_query/include/postgres/access/attnum.h +64 -0
- data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
- data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
- data/ext/pg_query/include/postgres/access/clog.h +62 -0
- data/ext/pg_query/include/postgres/access/commit_ts.h +73 -0
- data/ext/pg_query/include/postgres/access/detoast.h +82 -0
- data/ext/pg_query/include/postgres/access/genam.h +246 -0
- data/ext/pg_query/include/postgres/access/gin.h +91 -0
- data/ext/pg_query/include/postgres/access/htup.h +89 -0
- data/ext/pg_query/include/postgres/access/htup_details.h +811 -0
- data/ext/pg_query/include/postgres/access/itup.h +170 -0
- data/ext/pg_query/include/postgres/access/parallel.h +81 -0
- data/ext/pg_query/include/postgres/access/printtup.h +35 -0
- data/ext/pg_query/include/postgres/access/relation.h +28 -0
- data/ext/pg_query/include/postgres/access/relscan.h +191 -0
- data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
- data/ext/pg_query/include/postgres/access/rmgrlist.h +49 -0
- data/ext/pg_query/include/postgres/access/sdir.h +67 -0
- data/ext/pg_query/include/postgres/access/skey.h +151 -0
- data/ext/pg_query/include/postgres/access/slru.h +218 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +85 -0
- data/ext/pg_query/include/postgres/access/sysattr.h +29 -0
- data/ext/pg_query/include/postgres/access/table.h +28 -0
- data/ext/pg_query/include/postgres/access/tableam.h +2110 -0
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
- data/ext/pg_query/include/postgres/access/transam.h +418 -0
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/postgres/access/tupconvert.h +54 -0
- data/ext/pg_query/include/postgres/access/tupdesc.h +154 -0
- data/ext/pg_query/include/postgres/access/tupmacs.h +207 -0
- data/ext/pg_query/include/postgres/access/twophase.h +65 -0
- data/ext/pg_query/include/postgres/access/xact.h +530 -0
- data/ext/pg_query/include/postgres/access/xlog.h +310 -0
- data/ext/pg_query/include/postgres/access/xlog_internal.h +405 -0
- data/ext/pg_query/include/postgres/access/xlogbackup.h +43 -0
- data/ext/pg_query/include/postgres/access/xlogdefs.h +82 -0
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/postgres/access/xlogreader.h +444 -0
- data/ext/pg_query/include/postgres/access/xlogrecord.h +248 -0
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
- data/ext/pg_query/include/postgres/archive/archive_module.h +67 -0
- data/ext/pg_query/include/postgres/c.h +1374 -0
- data/ext/pg_query/include/postgres/catalog/catalog.h +47 -0
- data/ext/pg_query/include/postgres/catalog/catversion.h +62 -0
- data/ext/pg_query/include/postgres/catalog/dependency.h +228 -0
- data/ext/pg_query/include/postgres/catalog/genbki.h +149 -0
- data/ext/pg_query/include/postgres/catalog/index.h +218 -0
- data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
- data/ext/pg_query/include/postgres/catalog/namespace.h +189 -0
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +267 -0
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +93 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +182 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +78 -0
- data/ext/pg_query/include/postgres/catalog/pg_am.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +47 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +240 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_class.h +235 -0
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +134 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +106 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +278 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +74 -0
- data/ext/pg_query/include/postgres/catalog/pg_control.h +260 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +79 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_database.h +129 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +53 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +77 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_index.h +92 -0
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +59 -0
- data/ext/pg_query/include/postgres/catalog/pg_language.h +75 -0
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +41 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +142 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +76 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +223 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +101 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +161 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +65 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +33 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +288 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +199 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +45 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +153 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +109 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +56 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +35 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +63 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +37 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +54 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_type.h +407 -0
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +324 -0
- data/ext/pg_query/include/postgres/catalog/storage.h +50 -0
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +49 -0
- data/ext/pg_query/include/postgres/commands/dbcommands.h +37 -0
- data/ext/pg_query/include/postgres/commands/defrem.h +161 -0
- data/ext/pg_query/include/postgres/commands/event_trigger.h +97 -0
- data/ext/pg_query/include/postgres/commands/explain.h +145 -0
- data/ext/pg_query/include/postgres/commands/prepare.h +61 -0
- data/ext/pg_query/include/postgres/commands/tablespace.h +69 -0
- data/ext/pg_query/include/postgres/commands/trigger.h +288 -0
- data/ext/pg_query/include/postgres/commands/user.h +43 -0
- data/ext/pg_query/include/postgres/commands/vacuum.h +388 -0
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/postgres/common/file_perm.h +56 -0
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +119 -0
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
- data/ext/pg_query/include/postgres/common/int.h +512 -0
- data/ext/pg_query/include/postgres/common/keywords.h +29 -0
- data/ext/pg_query/include/postgres/common/kwlookup.h +44 -0
- data/ext/pg_query/include/postgres/common/pg_prng.h +62 -0
- data/ext/pg_query/include/postgres/common/relpath.h +97 -0
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/postgres/common/string.h +44 -0
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +124 -0
- data/ext/pg_query/include/postgres/common/unicode_nonspacing_table.h +326 -0
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5261 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +989 -0
- data/ext/pg_query/include/postgres/datatype/timestamp.h +269 -0
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3310 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +836 -0
- data/ext/pg_query/include/postgres/executor/execdesc.h +70 -0
- data/ext/pg_query/include/postgres/executor/executor.h +681 -0
- data/ext/pg_query/include/postgres/executor/functions.h +56 -0
- data/ext/pg_query/include/postgres/executor/instrument.h +120 -0
- data/ext/pg_query/include/postgres/executor/spi.h +207 -0
- data/ext/pg_query/include/postgres/executor/tablefunc.h +67 -0
- data/ext/pg_query/include/postgres/executor/tuptable.h +523 -0
- data/ext/pg_query/include/postgres/fmgr.h +800 -0
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/postgres/funcapi.h +360 -0
- data/ext/pg_query/include/postgres/gram.h +1168 -0
- data/ext/pg_query/include/postgres/gramparse.h +75 -0
- data/ext/pg_query/include/postgres/jit/jit.h +106 -0
- data/ext/pg_query/include/postgres/kwlist_d.h +1164 -0
- data/ext/pg_query/include/postgres/lib/dshash.h +130 -0
- data/ext/pg_query/include/postgres/lib/ilist.h +1159 -0
- data/ext/pg_query/include/postgres/lib/pairingheap.h +102 -0
- data/ext/pg_query/include/postgres/lib/simplehash.h +1206 -0
- data/ext/pg_query/include/postgres/lib/sort_template.h +445 -0
- data/ext/pg_query/include/postgres/lib/stringinfo.h +243 -0
- data/ext/pg_query/include/postgres/libpq/auth.h +37 -0
- data/ext/pg_query/include/postgres/libpq/crypt.h +47 -0
- data/ext/pg_query/include/postgres/libpq/hba.h +186 -0
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +361 -0
- data/ext/pg_query/include/postgres/libpq/libpq.h +143 -0
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +169 -0
- data/ext/pg_query/include/postgres/libpq/pqformat.h +209 -0
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +54 -0
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/postgres/mb/pg_wchar.h +793 -0
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
- data/ext/pg_query/include/postgres/miscadmin.h +527 -0
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
- data/ext/pg_query/include/postgres/nodes/execnodes.h +2855 -0
- data/ext/pg_query/include/postgres/nodes/extensible.h +164 -0
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +61 -0
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +127 -0
- data/ext/pg_query/include/postgres/nodes/memnodes.h +152 -0
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +222 -0
- data/ext/pg_query/include/postgres/nodes/nodes.h +435 -0
- data/ext/pg_query/include/postgres/nodes/nodetags.h +491 -0
- data/ext/pg_query/include/postgres/nodes/params.h +170 -0
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +4233 -0
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +3438 -0
- data/ext/pg_query/include/postgres/nodes/pg_list.h +686 -0
- data/ext/pg_query/include/postgres/nodes/plannodes.h +1593 -0
- data/ext/pg_query/include/postgres/nodes/primnodes.h +2339 -0
- data/ext/pg_query/include/postgres/nodes/print.h +34 -0
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
- data/ext/pg_query/include/postgres/nodes/replnodes.h +132 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +75 -0
- data/ext/pg_query/include/postgres/nodes/value.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/cost.h +216 -0
- data/ext/pg_query/include/postgres/optimizer/geqo.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +45 -0
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +205 -0
- data/ext/pg_query/include/postgres/optimizer/paths.h +271 -0
- data/ext/pg_query/include/postgres/optimizer/planmain.h +123 -0
- data/ext/pg_query/include/postgres/parser/analyze.h +66 -0
- data/ext/pg_query/include/postgres/parser/kwlist.h +518 -0
- data/ext/pg_query/include/postgres/parser/parse_agg.h +65 -0
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +105 -0
- data/ext/pg_query/include/postgres/parser/parse_expr.h +25 -0
- data/ext/pg_query/include/postgres/parser/parse_func.h +74 -0
- data/ext/pg_query/include/postgres/parser/parse_node.h +358 -0
- data/ext/pg_query/include/postgres/parser/parse_oper.h +68 -0
- data/ext/pg_query/include/postgres/parser/parse_relation.h +129 -0
- data/ext/pg_query/include/postgres/parser/parse_type.h +61 -0
- data/ext/pg_query/include/postgres/parser/parser.h +68 -0
- data/ext/pg_query/include/postgres/parser/parsetree.h +61 -0
- data/ext/pg_query/include/postgres/parser/scanner.h +152 -0
- data/ext/pg_query/include/postgres/parser/scansup.h +27 -0
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +26 -0
- data/ext/pg_query/include/postgres/pg_config.h +985 -0
- data/ext/pg_query/include/postgres/pg_config_manual.h +385 -0
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/postgres/pg_getopt.h +56 -0
- data/ext/pg_query/include/postgres/pg_trace.h +17 -0
- data/ext/pg_query/include/postgres/pgstat.h +780 -0
- data/ext/pg_query/include/postgres/pgtime.h +94 -0
- data/ext/pg_query/include/postgres/pl_gram.h +385 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +52 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +114 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +112 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +246 -0
- data/ext/pg_query/include/postgres/plerrcodes.h +998 -0
- data/ext/pg_query/include/postgres/plpgsql.h +1342 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +32 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +256 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +254 -0
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +170 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +323 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +119 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +121 -0
- data/ext/pg_query/include/postgres/port/atomics/generic.h +437 -0
- data/ext/pg_query/include/postgres/port/atomics.h +606 -0
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +421 -0
- data/ext/pg_query/include/postgres/port/pg_bswap.h +161 -0
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +110 -0
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +422 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +34 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +582 -0
- data/ext/pg_query/include/postgres/port.h +555 -0
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/postgres/postgres_ext.h +73 -0
- data/ext/pg_query/include/postgres/postmaster/autovacuum.h +69 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +164 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +60 -0
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +45 -0
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +32 -0
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +23 -0
- data/ext/pg_query/include/postgres/regex/regex.h +272 -0
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +34 -0
- data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
- data/ext/pg_query/include/postgres/replication/logicalworker.h +33 -0
- data/ext/pg_query/include/postgres/replication/origin.h +73 -0
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +734 -0
- data/ext/pg_query/include/postgres/replication/slot.h +289 -0
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +109 -0
- data/ext/pg_query/include/postgres/replication/walreceiver.h +504 -0
- data/ext/pg_query/include/postgres/replication/walsender.h +76 -0
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +46 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +41 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +96 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +26 -0
- data/ext/pg_query/include/postgres/storage/block.h +108 -0
- data/ext/pg_query/include/postgres/storage/buf.h +46 -0
- data/ext/pg_query/include/postgres/storage/bufmgr.h +411 -0
- data/ext/pg_query/include/postgres/storage/bufpage.h +510 -0
- data/ext/pg_query/include/postgres/storage/condition_variable.h +73 -0
- data/ext/pg_query/include/postgres/storage/dsm.h +61 -0
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +79 -0
- data/ext/pg_query/include/postgres/storage/fd.h +219 -0
- data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
- data/ext/pg_query/include/postgres/storage/ipc.h +87 -0
- data/ext/pg_query/include/postgres/storage/item.h +19 -0
- data/ext/pg_query/include/postgres/storage/itemid.h +184 -0
- data/ext/pg_query/include/postgres/storage/itemptr.h +245 -0
- data/ext/pg_query/include/postgres/storage/large_object.h +100 -0
- data/ext/pg_query/include/postgres/storage/latch.h +196 -0
- data/ext/pg_query/include/postgres/storage/lmgr.h +126 -0
- data/ext/pg_query/include/postgres/storage/lock.h +624 -0
- data/ext/pg_query/include/postgres/storage/lockdefs.h +61 -0
- data/ext/pg_query/include/postgres/storage/lwlock.h +228 -0
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +47 -0
- data/ext/pg_query/include/postgres/storage/off.h +57 -0
- data/ext/pg_query/include/postgres/storage/pg_sema.h +61 -0
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +93 -0
- data/ext/pg_query/include/postgres/storage/pmsignal.h +105 -0
- data/ext/pg_query/include/postgres/storage/predicate.h +83 -0
- data/ext/pg_query/include/postgres/storage/proc.h +488 -0
- data/ext/pg_query/include/postgres/storage/procarray.h +103 -0
- data/ext/pg_query/include/postgres/storage/proclist_types.h +53 -0
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +75 -0
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +100 -0
- data/ext/pg_query/include/postgres/storage/s_lock.h +847 -0
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +37 -0
- data/ext/pg_query/include/postgres/storage/shm_mq.h +86 -0
- data/ext/pg_query/include/postgres/storage/shm_toc.h +58 -0
- data/ext/pg_query/include/postgres/storage/shmem.h +59 -0
- data/ext/pg_query/include/postgres/storage/sinval.h +153 -0
- data/ext/pg_query/include/postgres/storage/smgr.h +130 -0
- data/ext/pg_query/include/postgres/storage/spin.h +77 -0
- data/ext/pg_query/include/postgres/storage/standby.h +109 -0
- data/ext/pg_query/include/postgres/storage/standbydefs.h +74 -0
- data/ext/pg_query/include/postgres/storage/sync.h +66 -0
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +62 -0
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +219 -0
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +108 -0
- data/ext/pg_query/include/postgres/tcop/dest.h +148 -0
- data/ext/pg_query/include/postgres/tcop/fastpath.h +20 -0
- data/ext/pg_query/include/postgres/tcop/pquery.h +51 -0
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +98 -0
- data/ext/pg_query/include/postgres/tcop/utility.h +112 -0
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +96 -0
- data/ext/pg_query/include/postgres/utils/acl.h +290 -0
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +45 -0
- data/ext/pg_query/include/postgres/utils/array.h +481 -0
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +46 -0
- data/ext/pg_query/include/postgres/utils/backend_status.h +340 -0
- data/ext/pg_query/include/postgres/utils/builtins.h +139 -0
- data/ext/pg_query/include/postgres/utils/bytea.h +28 -0
- data/ext/pg_query/include/postgres/utils/catcache.h +231 -0
- data/ext/pg_query/include/postgres/utils/date.h +118 -0
- data/ext/pg_query/include/postgres/utils/datetime.h +367 -0
- data/ext/pg_query/include/postgres/utils/datum.h +76 -0
- data/ext/pg_query/include/postgres/utils/dsa.h +166 -0
- data/ext/pg_query/include/postgres/utils/elog.h +540 -0
- data/ext/pg_query/include/postgres/utils/errcodes.h +352 -0
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +170 -0
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +241 -0
- data/ext/pg_query/include/postgres/utils/float.h +357 -0
- data/ext/pg_query/include/postgres/utils/fmgroids.h +3347 -0
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +2904 -0
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +49 -0
- data/ext/pg_query/include/postgres/utils/guc.h +456 -0
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +184 -0
- data/ext/pg_query/include/postgres/utils/guc_tables.h +323 -0
- data/ext/pg_query/include/postgres/utils/hsearch.h +153 -0
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +68 -0
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/postgres/utils/lsyscache.h +215 -0
- data/ext/pg_query/include/postgres/utils/memdebug.h +82 -0
- data/ext/pg_query/include/postgres/utils/memutils.h +193 -0
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +176 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +253 -0
- data/ext/pg_query/include/postgres/utils/numeric.h +110 -0
- data/ext/pg_query/include/postgres/utils/palloc.h +151 -0
- data/ext/pg_query/include/postgres/utils/partcache.h +103 -0
- data/ext/pg_query/include/postgres/utils/pg_locale.h +136 -0
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +827 -0
- data/ext/pg_query/include/postgres/utils/plancache.h +238 -0
- data/ext/pg_query/include/postgres/utils/portal.h +252 -0
- data/ext/pg_query/include/postgres/utils/probes.h +114 -0
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +74 -0
- data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
- data/ext/pg_query/include/postgres/utils/rel.h +711 -0
- data/ext/pg_query/include/postgres/utils/relcache.h +155 -0
- data/ext/pg_query/include/postgres/utils/reltrigger.h +81 -0
- data/ext/pg_query/include/postgres/utils/resowner.h +167 -0
- data/ext/pg_query/include/postgres/utils/ruleutils.h +52 -0
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +61 -0
- data/ext/pg_query/include/postgres/utils/snapmgr.h +130 -0
- data/ext/pg_query/include/postgres/utils/snapshot.h +219 -0
- data/ext/pg_query/include/postgres/utils/sortsupport.h +391 -0
- data/ext/pg_query/include/postgres/utils/syscache.h +136 -0
- data/ext/pg_query/include/postgres/utils/timeout.h +96 -0
- data/ext/pg_query/include/postgres/utils/timestamp.h +147 -0
- data/ext/pg_query/include/postgres/utils/tuplesort.h +472 -0
- data/ext/pg_query/include/postgres/utils/tuplestore.h +88 -0
- data/ext/pg_query/include/postgres/utils/typcache.h +210 -0
- data/ext/pg_query/include/postgres/utils/varlena.h +53 -0
- data/ext/pg_query/include/postgres/utils/wait_event.h +108 -0
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +94 -0
- data/ext/pg_query/include/postgres/varatt.h +358 -0
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +8077 -6217
- data/ext/pg_query/include/protobuf/pg_query.pb.h +132024 -88124
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +24028 -17173
- data/ext/pg_query/pg_query_deparse.c +1 -9902
- data/ext/pg_query/pg_query_fingerprint.c +42 -18
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -25
- data/ext/pg_query/pg_query_normalize.c +44 -3
- data/ext/pg_query/pg_query_outfuncs_json.c +62 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +19 -18
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +45 -10
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_scan.c +4 -3
- data/ext/pg_query/pg_query_split.c +6 -5
- data/ext/pg_query/postgres_deparse.c +11496 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +262 -71
- data/ext/pg_query/src_backend_catalog_pg_proc.c +3 -2
- data/ext/pg_query/src_backend_commands_define.c +12 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +142 -156
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +100 -5881
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3831
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +89 -18
- data/ext/pg_query/src_backend_nodes_makefuncs.c +138 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +433 -132
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +45255 -38885
- data/ext/pg_query/src_backend_parser_parser.c +53 -8
- data/ext/pg_query/src_backend_parser_scan.c +6999 -3438
- data/ext/pg_query/src_backend_parser_scansup.c +5 -28
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +156 -114
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +14 -2
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
- data/ext/pg_query/src_backend_utils_adt_numutils.c +488 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +247 -34
- data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
- data/ext/pg_query/src_backend_utils_error_elog.c +543 -343
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +47 -18
- data/ext/pg_query/src_backend_utils_init_globals.c +22 -7
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +84 -148
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +502 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +166 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +708 -499
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1115 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +710 -218
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1079 -0
- data/ext/pg_query/src_common_encnames.c +46 -44
- data/ext/pg_query/src_common_hashfn.c +3 -3
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +602 -510
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +3 -3
- data/ext/pg_query/src_common_stringinfo.c +21 -4
- data/ext/pg_query/src_common_wchar.c +754 -178
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +143 -24
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1295 -1255
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +20 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
- data/ext/pg_query/src_port_pg_bitutils.c +283 -54
- data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +56 -39
- data/ext/pg_query/src_port_strerror.c +9 -21
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/filter_columns.rb +1 -1
- data/lib/pg_query/fingerprint.rb +10 -9
- data/lib/pg_query/node.rb +18 -13
- data/lib/pg_query/param_refs.rb +3 -3
- data/lib/pg_query/parse.rb +25 -15
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +181 -3038
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +55 -8
- data/lib/pg_query/truncate.rb +19 -21
- data/lib/pg_query/version.rb +1 -1
- metadata +447 -436
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -246
- data/ext/pg_query/include/access/attmap.h +0 -52
- data/ext/pg_query/include/access/attnum.h +0 -64
- data/ext/pg_query/include/access/clog.h +0 -61
- data/ext/pg_query/include/access/commit_ts.h +0 -77
- data/ext/pg_query/include/access/detoast.h +0 -92
- data/ext/pg_query/include/access/genam.h +0 -228
- data/ext/pg_query/include/access/gin.h +0 -78
- data/ext/pg_query/include/access/htup.h +0 -89
- data/ext/pg_query/include/access/htup_details.h +0 -819
- data/ext/pg_query/include/access/itup.h +0 -161
- data/ext/pg_query/include/access/parallel.h +0 -82
- data/ext/pg_query/include/access/printtup.h +0 -35
- data/ext/pg_query/include/access/relation.h +0 -28
- data/ext/pg_query/include/access/relscan.h +0 -176
- data/ext/pg_query/include/access/rmgr.h +0 -35
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -58
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -83
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -27
- data/ext/pg_query/include/access/tableam.h +0 -1825
- data/ext/pg_query/include/access/transam.h +0 -265
- data/ext/pg_query/include/access/tupconvert.h +0 -51
- data/ext/pg_query/include/access/tupdesc.h +0 -154
- data/ext/pg_query/include/access/tupmacs.h +0 -247
- data/ext/pg_query/include/access/twophase.h +0 -63
- data/ext/pg_query/include/access/xact.h +0 -469
- data/ext/pg_query/include/access/xlog.h +0 -398
- data/ext/pg_query/include/access/xlog_internal.h +0 -339
- data/ext/pg_query/include/access/xlogdefs.h +0 -109
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/access/xlogreader.h +0 -337
- data/ext/pg_query/include/access/xlogrecord.h +0 -227
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/c.h +0 -1334
- data/ext/pg_query/include/catalog/catalog.h +0 -42
- data/ext/pg_query/include/catalog/catversion.h +0 -58
- data/ext/pg_query/include/catalog/dependency.h +0 -277
- data/ext/pg_query/include/catalog/genbki.h +0 -64
- data/ext/pg_query/include/catalog/index.h +0 -199
- data/ext/pg_query/include/catalog/indexing.h +0 -366
- data/ext/pg_query/include/catalog/namespace.h +0 -188
- data/ext/pg_query/include/catalog/objectaccess.h +0 -197
- data/ext/pg_query/include/catalog/objectaddress.h +0 -84
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -176
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -77
- data/ext/pg_query/include/catalog/pg_am.h +0 -60
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -204
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_authid.h +0 -58
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_class.h +0 -200
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -103
- data/ext/pg_query/include/catalog/pg_collation.h +0 -73
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -247
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -67
- data/ext/pg_query/include/catalog/pg_control.h +0 -252
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -72
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_depend.h +0 -73
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -51
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_index.h +0 -80
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -56
- data/ext/pg_query/include/catalog/pg_language.h +0 -67
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -39
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -59
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -85
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_operator.h +0 -104
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -60
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -63
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_proc.h +0 -211
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -99
- data/ext/pg_query/include/catalog/pg_publication.h +0 -118
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -57
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -29
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -275
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -194
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -74
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -40
- data/ext/pg_query/include/catalog/pg_transform.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -137
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -50
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -54
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -57
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -48
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_type.h +0 -373
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -285
- data/ext/pg_query/include/catalog/storage.h +0 -48
- data/ext/pg_query/include/commands/async.h +0 -54
- data/ext/pg_query/include/commands/dbcommands.h +0 -35
- data/ext/pg_query/include/commands/defrem.h +0 -173
- data/ext/pg_query/include/commands/event_trigger.h +0 -88
- data/ext/pg_query/include/commands/explain.h +0 -127
- data/ext/pg_query/include/commands/prepare.h +0 -61
- data/ext/pg_query/include/commands/tablespace.h +0 -69
- data/ext/pg_query/include/commands/trigger.h +0 -285
- data/ext/pg_query/include/commands/user.h +0 -37
- data/ext/pg_query/include/commands/vacuum.h +0 -293
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/file_perm.h +0 -56
- data/ext/pg_query/include/common/hashfn.h +0 -104
- data/ext/pg_query/include/common/ip.h +0 -37
- data/ext/pg_query/include/common/keywords.h +0 -33
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/relpath.h +0 -90
- data/ext/pg_query/include/common/string.h +0 -19
- data/ext/pg_query/include/common/unicode_combining_table.h +0 -196
- data/ext/pg_query/include/datatype/timestamp.h +0 -197
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -620
- data/ext/pg_query/include/executor/functions.h +0 -41
- data/ext/pg_query/include/executor/instrument.h +0 -101
- data/ext/pg_query/include/executor/spi.h +0 -175
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -487
- data/ext/pg_query/include/fmgr.h +0 -775
- data/ext/pg_query/include/funcapi.h +0 -348
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/jit/jit.h +0 -105
- data/ext/pg_query/include/kwlist_d.h +0 -1072
- data/ext/pg_query/include/lib/ilist.h +0 -727
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1059
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -29
- data/ext/pg_query/include/libpq/crypt.h +0 -46
- data/ext/pg_query/include/libpq/hba.h +0 -140
- data/ext/pg_query/include/libpq/libpq-be.h +0 -326
- data/ext/pg_query/include/libpq/libpq.h +0 -134
- data/ext/pg_query/include/libpq/pqcomm.h +0 -208
- data/ext/pg_query/include/libpq/pqformat.h +0 -210
- data/ext/pg_query/include/libpq/pqsignal.h +0 -42
- data/ext/pg_query/include/mb/pg_wchar.h +0 -673
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -489
- data/ext/pg_query/include/nodes/bitmapset.h +0 -122
- data/ext/pg_query/include/nodes/execnodes.h +0 -2523
- data/ext/pg_query/include/nodes/extensible.h +0 -160
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -108
- data/ext/pg_query/include/nodes/memnodes.h +0 -108
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
- data/ext/pg_query/include/nodes/nodes.h +0 -842
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -3580
- data/ext/pg_query/include/nodes/pathnodes.h +0 -2557
- data/ext/pg_query/include/nodes/pg_list.h +0 -606
- data/ext/pg_query/include/nodes/plannodes.h +0 -1266
- data/ext/pg_query/include/nodes/primnodes.h +0 -1541
- data/ext/pg_query/include/nodes/print.h +0 -34
- data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
- data/ext/pg_query/include/nodes/value.h +0 -61
- data/ext/pg_query/include/optimizer/cost.h +0 -206
- data/ext/pg_query/include/optimizer/geqo.h +0 -88
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -194
- data/ext/pg_query/include/optimizer/paths.h +0 -257
- data/ext/pg_query/include/optimizer/planmain.h +0 -119
- data/ext/pg_query/include/parser/analyze.h +0 -49
- data/ext/pg_query/include/parser/gram.h +0 -1067
- data/ext/pg_query/include/parser/gramparse.h +0 -75
- data/ext/pg_query/include/parser/kwlist.h +0 -477
- data/ext/pg_query/include/parser/parse_agg.h +0 -68
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_coerce.h +0 -98
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_expr.h +0 -26
- data/ext/pg_query/include/parser/parse_func.h +0 -73
- data/ext/pg_query/include/parser/parse_node.h +0 -327
- data/ext/pg_query/include/parser/parse_oper.h +0 -67
- data/ext/pg_query/include/parser/parse_relation.h +0 -123
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/include/parser/parse_type.h +0 -60
- data/ext/pg_query/include/parser/parser.h +0 -41
- data/ext/pg_query/include/parser/parsetree.h +0 -61
- data/ext/pg_query/include/parser/scanner.h +0 -152
- data/ext/pg_query/include/parser/scansup.h +0 -30
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -995
- data/ext/pg_query/include/pg_config_manual.h +0 -357
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/pg_getopt.h +0 -56
- data/ext/pg_query/include/pg_trace.h +0 -17
- data/ext/pg_query/include/pgstat.h +0 -1488
- data/ext/pg_query/include/pgtime.h +0 -84
- data/ext/pg_query/include/pl_gram.h +0 -385
- data/ext/pg_query/include/pl_reserved_kwlist.h +0 -52
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +0 -114
- data/ext/pg_query/include/pl_unreserved_kwlist.h +0 -112
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -246
- data/ext/pg_query/include/plerrcodes.h +0 -990
- data/ext/pg_query/include/plpgsql.h +0 -1347
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -26
- data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
- data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
- data/ext/pg_query/include/port/atomics/fallback.h +0 -170
- data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
- data/ext/pg_query/include/port/atomics/generic.h +0 -401
- data/ext/pg_query/include/port/atomics.h +0 -524
- data/ext/pg_query/include/port/pg_bitutils.h +0 -272
- data/ext/pg_query/include/port/pg_bswap.h +0 -161
- data/ext/pg_query/include/port/pg_crc32c.h +0 -101
- data/ext/pg_query/include/port.h +0 -528
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postgres.h +0 -764
- data/ext/pg_query/include/postgres_ext.h +0 -74
- data/ext/pg_query/include/postmaster/autovacuum.h +0 -83
- data/ext/pg_query/include/postmaster/bgworker.h +0 -161
- data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
- data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/interrupt.h +0 -32
- data/ext/pg_query/include/postmaster/pgarch.h +0 -39
- data/ext/pg_query/include/postmaster/postmaster.h +0 -77
- data/ext/pg_query/include/postmaster/syslogger.h +0 -98
- data/ext/pg_query/include/postmaster/walwriter.h +0 -21
- data/ext/pg_query/include/regex/regex.h +0 -184
- data/ext/pg_query/include/replication/logicallauncher.h +0 -31
- data/ext/pg_query/include/replication/logicalproto.h +0 -110
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/replication/origin.h +0 -73
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -468
- data/ext/pg_query/include/replication/slot.h +0 -219
- data/ext/pg_query/include/replication/syncrep.h +0 -115
- data/ext/pg_query/include/replication/walreceiver.h +0 -340
- data/ext/pg_query/include/replication/walsender.h +0 -74
- data/ext/pg_query/include/rewrite/prs2lock.h +0 -46
- data/ext/pg_query/include/rewrite/rewriteHandler.h +0 -40
- data/ext/pg_query/include/rewrite/rewriteManip.h +0 -87
- data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
- data/ext/pg_query/include/storage/backendid.h +0 -37
- data/ext/pg_query/include/storage/block.h +0 -121
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -292
- data/ext/pg_query/include/storage/bufpage.h +0 -459
- data/ext/pg_query/include/storage/condition_variable.h +0 -62
- data/ext/pg_query/include/storage/dsm.h +0 -61
- data/ext/pg_query/include/storage/dsm_impl.h +0 -75
- data/ext/pg_query/include/storage/fd.h +0 -168
- data/ext/pg_query/include/storage/ipc.h +0 -81
- data/ext/pg_query/include/storage/item.h +0 -19
- data/ext/pg_query/include/storage/itemid.h +0 -184
- data/ext/pg_query/include/storage/itemptr.h +0 -206
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -190
- data/ext/pg_query/include/storage/lmgr.h +0 -114
- data/ext/pg_query/include/storage/lock.h +0 -613
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -233
- data/ext/pg_query/include/storage/lwlocknames.h +0 -51
- data/ext/pg_query/include/storage/off.h +0 -57
- data/ext/pg_query/include/storage/pg_sema.h +0 -61
- data/ext/pg_query/include/storage/pg_shmem.h +0 -90
- data/ext/pg_query/include/storage/pmsignal.h +0 -94
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -347
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -75
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -1071
- data/ext/pg_query/include/storage/sharedfileset.h +0 -45
- data/ext/pg_query/include/storage/shm_mq.h +0 -85
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -81
- data/ext/pg_query/include/storage/sinval.h +0 -153
- data/ext/pg_query/include/storage/sinvaladt.h +0 -43
- data/ext/pg_query/include/storage/smgr.h +0 -109
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -91
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -62
- data/ext/pg_query/include/tcop/cmdtag.h +0 -58
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -217
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -149
- data/ext/pg_query/include/tcop/fastpath.h +0 -21
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -89
- data/ext/pg_query/include/tcop/utility.h +0 -108
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
- data/ext/pg_query/include/utils/acl.h +0 -312
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -459
- data/ext/pg_query/include/utils/builtins.h +0 -128
- data/ext/pg_query/include/utils/bytea.h +0 -27
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -90
- data/ext/pg_query/include/utils/datetime.h +0 -343
- data/ext/pg_query/include/utils/datum.h +0 -68
- data/ext/pg_query/include/utils/dsa.h +0 -123
- data/ext/pg_query/include/utils/dynahash.h +0 -19
- data/ext/pg_query/include/utils/elog.h +0 -439
- data/ext/pg_query/include/utils/errcodes.h +0 -352
- data/ext/pg_query/include/utils/expandeddatum.h +0 -159
- data/ext/pg_query/include/utils/expandedrecord.h +0 -231
- data/ext/pg_query/include/utils/float.h +0 -356
- data/ext/pg_query/include/utils/fmgroids.h +0 -2657
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2646
- data/ext/pg_query/include/utils/fmgrtab.h +0 -48
- data/ext/pg_query/include/utils/guc.h +0 -443
- data/ext/pg_query/include/utils/guc_tables.h +0 -272
- data/ext/pg_query/include/utils/hsearch.h +0 -149
- data/ext/pg_query/include/utils/inval.h +0 -65
- data/ext/pg_query/include/utils/lsyscache.h +0 -198
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -225
- data/ext/pg_query/include/utils/numeric.h +0 -76
- data/ext/pg_query/include/utils/palloc.h +0 -136
- data/ext/pg_query/include/utils/partcache.h +0 -102
- data/ext/pg_query/include/utils/pg_locale.h +0 -119
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/plancache.h +0 -235
- data/ext/pg_query/include/utils/portal.h +0 -254
- data/ext/pg_query/include/utils/probes.h +0 -114
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/queryenvironment.h +0 -74
- data/ext/pg_query/include/utils/regproc.h +0 -28
- data/ext/pg_query/include/utils/rel.h +0 -643
- data/ext/pg_query/include/utils/relcache.h +0 -150
- data/ext/pg_query/include/utils/reltrigger.h +0 -81
- data/ext/pg_query/include/utils/resowner.h +0 -86
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/ruleutils.h +0 -44
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -159
- data/ext/pg_query/include/utils/snapshot.h +0 -206
- data/ext/pg_query/include/utils/sortsupport.h +0 -276
- data/ext/pg_query/include/utils/syscache.h +0 -219
- data/ext/pg_query/include/utils/timeout.h +0 -88
- data/ext/pg_query/include/utils/timestamp.h +0 -116
- data/ext/pg_query/include/utils/tuplesort.h +0 -277
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -202
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/include/utils/varlena.h +0 -39
- data/ext/pg_query/include/utils/xml.h +0 -84
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1832
- data/ext/pg_query/src_common_string.c +0 -86
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_random.c +0 -31
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -1,659 +0,0 @@
|
|
1
|
-
/*--------------------------------------------------------------------
|
2
|
-
* Symbols referenced in this file:
|
3
|
-
* - PqCommMethods
|
4
|
-
*--------------------------------------------------------------------
|
5
|
-
*/
|
6
|
-
|
7
|
-
/*-------------------------------------------------------------------------
|
8
|
-
*
|
9
|
-
* pqcomm.c
|
10
|
-
* Communication functions between the Frontend and the Backend
|
11
|
-
*
|
12
|
-
* These routines handle the low-level details of communication between
|
13
|
-
* frontend and backend. They just shove data across the communication
|
14
|
-
* channel, and are ignorant of the semantics of the data --- or would be,
|
15
|
-
* except for major brain damage in the design of the old COPY OUT protocol.
|
16
|
-
* Unfortunately, COPY OUT was designed to commandeer the communication
|
17
|
-
* channel (it just transfers data without wrapping it into messages).
|
18
|
-
* No other messages can be sent while COPY OUT is in progress; and if the
|
19
|
-
* copy is aborted by an ereport(ERROR), we need to close out the copy so that
|
20
|
-
* the frontend gets back into sync. Therefore, these routines have to be
|
21
|
-
* aware of COPY OUT state. (New COPY-OUT is message-based and does *not*
|
22
|
-
* set the DoingCopyOut flag.)
|
23
|
-
*
|
24
|
-
* NOTE: generally, it's a bad idea to emit outgoing messages directly with
|
25
|
-
* pq_putbytes(), especially if the message would require multiple calls
|
26
|
-
* to send. Instead, use the routines in pqformat.c to construct the message
|
27
|
-
* in a buffer and then emit it in one call to pq_putmessage. This ensures
|
28
|
-
* that the channel will not be clogged by an incomplete message if execution
|
29
|
-
* is aborted by ereport(ERROR) partway through the message. The only
|
30
|
-
* non-libpq code that should call pq_putbytes directly is old-style COPY OUT.
|
31
|
-
*
|
32
|
-
* At one time, libpq was shared between frontend and backend, but now
|
33
|
-
* the backend's "backend/libpq" is quite separate from "interfaces/libpq".
|
34
|
-
* All that remains is similarities of names to trap the unwary...
|
35
|
-
*
|
36
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
37
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
38
|
-
*
|
39
|
-
* src/backend/libpq/pqcomm.c
|
40
|
-
*
|
41
|
-
*-------------------------------------------------------------------------
|
42
|
-
*/
|
43
|
-
|
44
|
-
/*------------------------
|
45
|
-
* INTERFACE ROUTINES
|
46
|
-
*
|
47
|
-
* setup/teardown:
|
48
|
-
* StreamServerPort - Open postmaster's server port
|
49
|
-
* StreamConnection - Create new connection with client
|
50
|
-
* StreamClose - Close a client/backend connection
|
51
|
-
* TouchSocketFiles - Protect socket files against /tmp cleaners
|
52
|
-
* pq_init - initialize libpq at backend startup
|
53
|
-
* socket_comm_reset - reset libpq during error recovery
|
54
|
-
* socket_close - shutdown libpq at backend exit
|
55
|
-
*
|
56
|
-
* low-level I/O:
|
57
|
-
* pq_getbytes - get a known number of bytes from connection
|
58
|
-
* pq_getstring - get a null terminated string from connection
|
59
|
-
* pq_getmessage - get a message with length word from connection
|
60
|
-
* pq_getbyte - get next byte from connection
|
61
|
-
* pq_peekbyte - peek at next byte from connection
|
62
|
-
* pq_putbytes - send bytes to connection (not flushed until pq_flush)
|
63
|
-
* pq_flush - flush pending output
|
64
|
-
* pq_flush_if_writable - flush pending output if writable without blocking
|
65
|
-
* pq_getbyte_if_available - get a byte if available without blocking
|
66
|
-
*
|
67
|
-
* message-level I/O (and old-style-COPY-OUT cruft):
|
68
|
-
* pq_putmessage - send a normal message (suppressed in COPY OUT mode)
|
69
|
-
* pq_putmessage_noblock - buffer a normal message (suppressed in COPY OUT)
|
70
|
-
* pq_startcopyout - inform libpq that a COPY OUT transfer is beginning
|
71
|
-
* pq_endcopyout - end a COPY OUT transfer
|
72
|
-
*
|
73
|
-
*------------------------
|
74
|
-
*/
|
75
|
-
#include "postgres.h"
|
76
|
-
|
77
|
-
#include <signal.h>
|
78
|
-
#include <fcntl.h>
|
79
|
-
#include <grp.h>
|
80
|
-
#include <unistd.h>
|
81
|
-
#include <sys/file.h>
|
82
|
-
#include <sys/socket.h>
|
83
|
-
#include <sys/stat.h>
|
84
|
-
#include <sys/time.h>
|
85
|
-
#include <netdb.h>
|
86
|
-
#include <netinet/in.h>
|
87
|
-
#ifdef HAVE_NETINET_TCP_H
|
88
|
-
#include <netinet/tcp.h>
|
89
|
-
#endif
|
90
|
-
#include <utime.h>
|
91
|
-
#ifdef _MSC_VER /* mstcpip.h is missing on mingw */
|
92
|
-
#include <mstcpip.h>
|
93
|
-
#endif
|
94
|
-
|
95
|
-
#include "common/ip.h"
|
96
|
-
#include "libpq/libpq.h"
|
97
|
-
#include "miscadmin.h"
|
98
|
-
#include "port/pg_bswap.h"
|
99
|
-
#include "storage/ipc.h"
|
100
|
-
#include "utils/guc.h"
|
101
|
-
#include "utils/memutils.h"
|
102
|
-
|
103
|
-
/*
|
104
|
-
* Cope with the various platform-specific ways to spell TCP keepalive socket
|
105
|
-
* options. This doesn't cover Windows, which as usual does its own thing.
|
106
|
-
*/
|
107
|
-
#if defined(TCP_KEEPIDLE)
|
108
|
-
/* TCP_KEEPIDLE is the name of this option on Linux and *BSD */
|
109
|
-
#define PG_TCP_KEEPALIVE_IDLE TCP_KEEPIDLE
|
110
|
-
#define PG_TCP_KEEPALIVE_IDLE_STR "TCP_KEEPIDLE"
|
111
|
-
#elif defined(TCP_KEEPALIVE_THRESHOLD)
|
112
|
-
/* TCP_KEEPALIVE_THRESHOLD is the name of this option on Solaris >= 11 */
|
113
|
-
#define PG_TCP_KEEPALIVE_IDLE TCP_KEEPALIVE_THRESHOLD
|
114
|
-
#define PG_TCP_KEEPALIVE_IDLE_STR "TCP_KEEPALIVE_THRESHOLD"
|
115
|
-
#elif defined(TCP_KEEPALIVE) && defined(__darwin__)
|
116
|
-
/* TCP_KEEPALIVE is the name of this option on macOS */
|
117
|
-
/* Caution: Solaris has this symbol but it means something different */
|
118
|
-
#define PG_TCP_KEEPALIVE_IDLE TCP_KEEPALIVE
|
119
|
-
#define PG_TCP_KEEPALIVE_IDLE_STR "TCP_KEEPALIVE"
|
120
|
-
#endif
|
121
|
-
|
122
|
-
/*
|
123
|
-
* Configuration options
|
124
|
-
*/
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
/* Where the Unix socket files are (list of palloc'd strings) */
|
129
|
-
|
130
|
-
|
131
|
-
/*
|
132
|
-
* Buffers for low-level I/O.
|
133
|
-
*
|
134
|
-
* The receive buffer is fixed size. Send buffer is usually 8k, but can be
|
135
|
-
* enlarged by pq_putmessage_noblock() if the message doesn't fit otherwise.
|
136
|
-
*/
|
137
|
-
|
138
|
-
#define PQ_SEND_BUFFER_SIZE 8192
|
139
|
-
#define PQ_RECV_BUFFER_SIZE 8192
|
140
|
-
|
141
|
-
|
142
|
-
/* Size send buffer */
|
143
|
-
/* Next index to store a byte in PqSendBuffer */
|
144
|
-
/* Next index to send a byte in PqSendBuffer */
|
145
|
-
|
146
|
-
|
147
|
-
/* Next index to read a byte from PqRecvBuffer */
|
148
|
-
/* End of data available in PqRecvBuffer */
|
149
|
-
|
150
|
-
/*
|
151
|
-
* Message status
|
152
|
-
*/
|
153
|
-
/* busy sending data to the client */
|
154
|
-
/* in the middle of reading a message */
|
155
|
-
/* in old-protocol COPY OUT processing */
|
156
|
-
|
157
|
-
|
158
|
-
/* Internal functions */
|
159
|
-
static void socket_comm_reset(void);
|
160
|
-
static void socket_close(int code, Datum arg);
|
161
|
-
static void socket_set_nonblocking(bool nonblocking);
|
162
|
-
static int socket_flush(void);
|
163
|
-
static int socket_flush_if_writable(void);
|
164
|
-
static bool socket_is_send_pending(void);
|
165
|
-
static int socket_putmessage(char msgtype, const char *s, size_t len);
|
166
|
-
static void socket_putmessage_noblock(char msgtype, const char *s, size_t len);
|
167
|
-
static void socket_startcopyout(void);
|
168
|
-
static void socket_endcopyout(bool errorAbort);
|
169
|
-
static int internal_putbytes(const char *s, size_t len);
|
170
|
-
static int internal_flush(void);
|
171
|
-
|
172
|
-
#ifdef HAVE_UNIX_SOCKETS
|
173
|
-
static int Lock_AF_UNIX(const char *unixSocketDir, const char *unixSocketPath);
|
174
|
-
static int Setup_AF_UNIX(const char *sock_path);
|
175
|
-
#endif /* HAVE_UNIX_SOCKETS */
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
const PQcommMethods *PqCommMethods = NULL;
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
/* --------------------------------
|
186
|
-
* pq_init - initialize libpq at backend startup
|
187
|
-
* --------------------------------
|
188
|
-
*/
|
189
|
-
#ifndef WIN32
|
190
|
-
#endif
|
191
|
-
|
192
|
-
/* --------------------------------
|
193
|
-
* socket_comm_reset - reset libpq during error recovery
|
194
|
-
*
|
195
|
-
* This is called from error recovery at the outer idle loop. It's
|
196
|
-
* just to get us out of trouble if we somehow manage to elog() from
|
197
|
-
* inside a pqcomm.c routine (which ideally will never happen, but...)
|
198
|
-
* --------------------------------
|
199
|
-
*/
|
200
|
-
|
201
|
-
|
202
|
-
/* --------------------------------
|
203
|
-
* socket_close - shutdown libpq at backend exit
|
204
|
-
*
|
205
|
-
* This is the one pg_on_exit_callback in place during BackendInitialize().
|
206
|
-
* That function's unusual signal handling constrains that this callback be
|
207
|
-
* safe to run at any instant.
|
208
|
-
* --------------------------------
|
209
|
-
*/
|
210
|
-
#ifdef ENABLE_GSS
|
211
|
-
#endif /* ENABLE_GSS */
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
/*
|
216
|
-
* Streams -- wrapper around Unix socket system calls
|
217
|
-
*
|
218
|
-
*
|
219
|
-
* Stream functions are used for vanilla TCP connection protocol.
|
220
|
-
*/
|
221
|
-
|
222
|
-
|
223
|
-
/*
|
224
|
-
* StreamServerPort -- open a "listening" port to accept connections.
|
225
|
-
*
|
226
|
-
* family should be AF_UNIX or AF_UNSPEC; portNumber is the port number.
|
227
|
-
* For AF_UNIX ports, hostName should be NULL and unixSocketDir must be
|
228
|
-
* specified. For TCP ports, hostName is either NULL for all interfaces or
|
229
|
-
* the interface to listen on, and unixSocketDir is ignored (can be NULL).
|
230
|
-
*
|
231
|
-
* Successfully opened sockets are added to the ListenSocket[] array (of
|
232
|
-
* length MaxListen), at the first position that isn't PGINVALID_SOCKET.
|
233
|
-
*
|
234
|
-
* RETURNS: STATUS_OK or STATUS_ERROR
|
235
|
-
*/
|
236
|
-
|
237
|
-
#ifdef HAVE_UNIX_SOCKETS
|
238
|
-
#endif
|
239
|
-
#if !defined(WIN32) || defined(IPV6_V6ONLY)
|
240
|
-
#endif
|
241
|
-
#ifdef HAVE_UNIX_SOCKETS
|
242
|
-
#endif /* HAVE_UNIX_SOCKETS */
|
243
|
-
#ifdef HAVE_IPV6
|
244
|
-
#endif
|
245
|
-
#ifdef HAVE_UNIX_SOCKETS
|
246
|
-
#endif
|
247
|
-
#ifdef HAVE_UNIX_SOCKETS
|
248
|
-
#endif
|
249
|
-
#ifndef WIN32
|
250
|
-
#endif
|
251
|
-
#ifdef IPV6_V6ONLY
|
252
|
-
#endif
|
253
|
-
#ifdef HAVE_UNIX_SOCKETS
|
254
|
-
#endif
|
255
|
-
#ifdef HAVE_UNIX_SOCKETS
|
256
|
-
#endif
|
257
|
-
|
258
|
-
|
259
|
-
#ifdef HAVE_UNIX_SOCKETS
|
260
|
-
|
261
|
-
/*
|
262
|
-
* Lock_AF_UNIX -- configure unix socket file path
|
263
|
-
*/
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
/*
|
268
|
-
* Setup_AF_UNIX -- configure unix socket permissions
|
269
|
-
*/
|
270
|
-
#ifdef WIN32
|
271
|
-
#else
|
272
|
-
#endif
|
273
|
-
#endif /* HAVE_UNIX_SOCKETS */
|
274
|
-
|
275
|
-
|
276
|
-
/*
|
277
|
-
* StreamConnection -- create a new connection with client using
|
278
|
-
* server port. Set port->sock to the FD of the new connection.
|
279
|
-
*
|
280
|
-
* ASSUME: that this doesn't need to be non-blocking because
|
281
|
-
* the Postmaster uses select() to tell when the server master
|
282
|
-
* socket is ready for accept().
|
283
|
-
*
|
284
|
-
* RETURNS: STATUS_OK or STATUS_ERROR
|
285
|
-
*/
|
286
|
-
#ifdef WIN32
|
287
|
-
#endif
|
288
|
-
#ifdef TCP_NODELAY
|
289
|
-
#endif
|
290
|
-
#ifdef WIN32
|
291
|
-
#endif
|
292
|
-
|
293
|
-
/*
|
294
|
-
* StreamClose -- close a client/backend connection
|
295
|
-
*
|
296
|
-
* NOTE: this is NOT used to terminate a session; it is just used to release
|
297
|
-
* the file descriptor in a process that should no longer have the socket
|
298
|
-
* open. (For example, the postmaster calls this after passing ownership
|
299
|
-
* of the connection to a child process.) It is expected that someone else
|
300
|
-
* still has the socket open. So, we only want to close the descriptor,
|
301
|
-
* we do NOT want to send anything to the far end.
|
302
|
-
*/
|
303
|
-
|
304
|
-
|
305
|
-
/*
|
306
|
-
* TouchSocketFiles -- mark socket files as recently accessed
|
307
|
-
*
|
308
|
-
* This routine should be called every so often to ensure that the socket
|
309
|
-
* files have a recent mod date (ordinary operations on sockets usually won't
|
310
|
-
* change the mod date). That saves them from being removed by
|
311
|
-
* overenthusiastic /tmp-directory-cleaner daemons. (Another reason we should
|
312
|
-
* never have put the socket file in /tmp...)
|
313
|
-
*/
|
314
|
-
|
315
|
-
|
316
|
-
/*
|
317
|
-
* RemoveSocketFiles -- unlink socket files at postmaster shutdown
|
318
|
-
*/
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
/* --------------------------------
|
323
|
-
* Low-level I/O routines begin here.
|
324
|
-
*
|
325
|
-
* These routines communicate with a frontend client across a connection
|
326
|
-
* already established by the preceding routines.
|
327
|
-
* --------------------------------
|
328
|
-
*/
|
329
|
-
|
330
|
-
/* --------------------------------
|
331
|
-
* socket_set_nonblocking - set socket blocking/non-blocking
|
332
|
-
*
|
333
|
-
* Sets the socket non-blocking if nonblocking is true, or sets it
|
334
|
-
* blocking otherwise.
|
335
|
-
* --------------------------------
|
336
|
-
*/
|
337
|
-
|
338
|
-
|
339
|
-
/* --------------------------------
|
340
|
-
* pq_recvbuf - load some bytes into the input buffer
|
341
|
-
*
|
342
|
-
* returns 0 if OK, EOF if trouble
|
343
|
-
* --------------------------------
|
344
|
-
*/
|
345
|
-
|
346
|
-
|
347
|
-
/* --------------------------------
|
348
|
-
* pq_getbyte - get a single byte from connection, or return EOF
|
349
|
-
* --------------------------------
|
350
|
-
*/
|
351
|
-
|
352
|
-
|
353
|
-
/* --------------------------------
|
354
|
-
* pq_peekbyte - peek at next byte from connection
|
355
|
-
*
|
356
|
-
* Same as pq_getbyte() except we don't advance the pointer.
|
357
|
-
* --------------------------------
|
358
|
-
*/
|
359
|
-
|
360
|
-
|
361
|
-
/* --------------------------------
|
362
|
-
* pq_getbyte_if_available - get a single byte from connection,
|
363
|
-
* if available
|
364
|
-
*
|
365
|
-
* The received byte is stored in *c. Returns 1 if a byte was read,
|
366
|
-
* 0 if no data was available, or EOF if trouble.
|
367
|
-
* --------------------------------
|
368
|
-
*/
|
369
|
-
|
370
|
-
|
371
|
-
/* --------------------------------
|
372
|
-
* pq_getbytes - get a known number of bytes from connection
|
373
|
-
*
|
374
|
-
* returns 0 if OK, EOF if trouble
|
375
|
-
* --------------------------------
|
376
|
-
*/
|
377
|
-
|
378
|
-
|
379
|
-
/* --------------------------------
|
380
|
-
* pq_discardbytes - throw away a known number of bytes
|
381
|
-
*
|
382
|
-
* same as pq_getbytes except we do not copy the data to anyplace.
|
383
|
-
* this is used for resynchronizing after read errors.
|
384
|
-
*
|
385
|
-
* returns 0 if OK, EOF if trouble
|
386
|
-
* --------------------------------
|
387
|
-
*/
|
388
|
-
|
389
|
-
|
390
|
-
/* --------------------------------
|
391
|
-
* pq_getstring - get a null terminated string from connection
|
392
|
-
*
|
393
|
-
* The return value is placed in an expansible StringInfo, which has
|
394
|
-
* already been initialized by the caller.
|
395
|
-
*
|
396
|
-
* This is used only for dealing with old-protocol clients. The idea
|
397
|
-
* is to produce a StringInfo that looks the same as we would get from
|
398
|
-
* pq_getmessage() with a newer client; we will then process it with
|
399
|
-
* pq_getmsgstring. Therefore, no character set conversion is done here,
|
400
|
-
* even though this is presumably useful only for text.
|
401
|
-
*
|
402
|
-
* returns 0 if OK, EOF if trouble
|
403
|
-
* --------------------------------
|
404
|
-
*/
|
405
|
-
|
406
|
-
|
407
|
-
/* --------------------------------
|
408
|
-
* pq_buffer_has_data - is any buffered data available to read?
|
409
|
-
*
|
410
|
-
* This will *not* attempt to read more data.
|
411
|
-
* --------------------------------
|
412
|
-
*/
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
/* --------------------------------
|
417
|
-
* pq_startmsgread - begin reading a message from the client.
|
418
|
-
*
|
419
|
-
* This must be called before any of the pq_get* functions.
|
420
|
-
* --------------------------------
|
421
|
-
*/
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
/* --------------------------------
|
426
|
-
* pq_endmsgread - finish reading message.
|
427
|
-
*
|
428
|
-
* This must be called after reading a V2 protocol message with
|
429
|
-
* pq_getstring() and friends, to indicate that we have read the whole
|
430
|
-
* message. In V3 protocol, pq_getmessage() does this implicitly.
|
431
|
-
* --------------------------------
|
432
|
-
*/
|
433
|
-
|
434
|
-
|
435
|
-
/* --------------------------------
|
436
|
-
* pq_is_reading_msg - are we currently reading a message?
|
437
|
-
*
|
438
|
-
* This is used in error recovery at the outer idle loop to detect if we have
|
439
|
-
* lost protocol sync, and need to terminate the connection. pq_startmsgread()
|
440
|
-
* will check for that too, but it's nicer to detect it earlier.
|
441
|
-
* --------------------------------
|
442
|
-
*/
|
443
|
-
|
444
|
-
|
445
|
-
/* --------------------------------
|
446
|
-
* pq_getmessage - get a message with length word from connection
|
447
|
-
*
|
448
|
-
* The return value is placed in an expansible StringInfo, which has
|
449
|
-
* already been initialized by the caller.
|
450
|
-
* Only the message body is placed in the StringInfo; the length word
|
451
|
-
* is removed. Also, s->cursor is initialized to zero for convenience
|
452
|
-
* in scanning the message contents.
|
453
|
-
*
|
454
|
-
* If maxlen is not zero, it is an upper limit on the length of the
|
455
|
-
* message we are willing to accept. We abort the connection (by
|
456
|
-
* returning EOF) if client tries to send more than that.
|
457
|
-
*
|
458
|
-
* returns 0 if OK, EOF if trouble
|
459
|
-
* --------------------------------
|
460
|
-
*/
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
/* --------------------------------
|
465
|
-
* pq_putbytes - send bytes to connection (not flushed until pq_flush)
|
466
|
-
*
|
467
|
-
* returns 0 if OK, EOF if trouble
|
468
|
-
* --------------------------------
|
469
|
-
*/
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
/* --------------------------------
|
475
|
-
* socket_flush - flush pending output
|
476
|
-
*
|
477
|
-
* returns 0 if OK, EOF if trouble
|
478
|
-
* --------------------------------
|
479
|
-
*/
|
480
|
-
|
481
|
-
|
482
|
-
/* --------------------------------
|
483
|
-
* internal_flush - flush pending output
|
484
|
-
*
|
485
|
-
* Returns 0 if OK (meaning everything was sent, or operation would block
|
486
|
-
* and the socket is in non-blocking mode), or EOF if trouble.
|
487
|
-
* --------------------------------
|
488
|
-
*/
|
489
|
-
|
490
|
-
|
491
|
-
/* --------------------------------
|
492
|
-
* pq_flush_if_writable - flush pending output if writable without blocking
|
493
|
-
*
|
494
|
-
* Returns 0 if OK, or EOF if trouble.
|
495
|
-
* --------------------------------
|
496
|
-
*/
|
497
|
-
|
498
|
-
|
499
|
-
/* --------------------------------
|
500
|
-
* socket_is_send_pending - is there any pending data in the output buffer?
|
501
|
-
* --------------------------------
|
502
|
-
*/
|
503
|
-
|
504
|
-
|
505
|
-
/* --------------------------------
|
506
|
-
* Message-level I/O routines begin here.
|
507
|
-
*
|
508
|
-
* These routines understand about the old-style COPY OUT protocol.
|
509
|
-
* --------------------------------
|
510
|
-
*/
|
511
|
-
|
512
|
-
|
513
|
-
/* --------------------------------
|
514
|
-
* socket_putmessage - send a normal message (suppressed in COPY OUT mode)
|
515
|
-
*
|
516
|
-
* If msgtype is not '\0', it is a message type code to place before
|
517
|
-
* the message body. If msgtype is '\0', then the message has no type
|
518
|
-
* code (this is only valid in pre-3.0 protocols).
|
519
|
-
*
|
520
|
-
* len is the length of the message body data at *s. In protocol 3.0
|
521
|
-
* and later, a message length word (equal to len+4 because it counts
|
522
|
-
* itself too) is inserted by this routine.
|
523
|
-
*
|
524
|
-
* All normal messages are suppressed while old-style COPY OUT is in
|
525
|
-
* progress. (In practice only a few notice messages might get emitted
|
526
|
-
* then; dropping them is annoying, but at least they will still appear
|
527
|
-
* in the postmaster log.)
|
528
|
-
*
|
529
|
-
* We also suppress messages generated while pqcomm.c is busy. This
|
530
|
-
* avoids any possibility of messages being inserted within other
|
531
|
-
* messages. The only known trouble case arises if SIGQUIT occurs
|
532
|
-
* during a pqcomm.c routine --- quickdie() will try to send a warning
|
533
|
-
* message, and the most reasonable approach seems to be to drop it.
|
534
|
-
*
|
535
|
-
* returns 0 if OK, EOF if trouble
|
536
|
-
* --------------------------------
|
537
|
-
*/
|
538
|
-
|
539
|
-
|
540
|
-
/* --------------------------------
|
541
|
-
* pq_putmessage_noblock - like pq_putmessage, but never blocks
|
542
|
-
*
|
543
|
-
* If the output buffer is too small to hold the message, the buffer
|
544
|
-
* is enlarged.
|
545
|
-
*/
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
/* --------------------------------
|
550
|
-
* socket_startcopyout - inform libpq that an old-style COPY OUT transfer
|
551
|
-
* is beginning
|
552
|
-
* --------------------------------
|
553
|
-
*/
|
554
|
-
|
555
|
-
|
556
|
-
/* --------------------------------
|
557
|
-
* socket_endcopyout - end an old-style COPY OUT transfer
|
558
|
-
*
|
559
|
-
* If errorAbort is indicated, we are aborting a COPY OUT due to an error,
|
560
|
-
* and must send a terminator line. Since a partial data line might have
|
561
|
-
* been emitted, send a couple of newlines first (the first one could
|
562
|
-
* get absorbed by a backslash...) Note that old-style COPY OUT does
|
563
|
-
* not allow binary transfers, so a textual terminator is always correct.
|
564
|
-
* --------------------------------
|
565
|
-
*/
|
566
|
-
|
567
|
-
|
568
|
-
/*
|
569
|
-
* Support for TCP Keepalive parameters
|
570
|
-
*/
|
571
|
-
|
572
|
-
/*
|
573
|
-
* On Windows, we need to set both idle and interval at the same time.
|
574
|
-
* We also cannot reset them to the default (setting to zero will
|
575
|
-
* actually set them to zero, not default), therefore we fallback to
|
576
|
-
* the out-of-the-box default instead.
|
577
|
-
*/
|
578
|
-
#if defined(WIN32) && defined(SIO_KEEPALIVE_VALS)
|
579
|
-
static int
|
580
|
-
pq_setkeepaliveswin32(Port *port, int idle, int interval)
|
581
|
-
{
|
582
|
-
struct tcp_keepalive ka;
|
583
|
-
DWORD retsize;
|
584
|
-
|
585
|
-
if (idle <= 0)
|
586
|
-
idle = 2 * 60 * 60; /* default = 2 hours */
|
587
|
-
if (interval <= 0)
|
588
|
-
interval = 1; /* default = 1 second */
|
589
|
-
|
590
|
-
ka.onoff = 1;
|
591
|
-
ka.keepalivetime = idle * 1000;
|
592
|
-
ka.keepaliveinterval = interval * 1000;
|
593
|
-
|
594
|
-
if (WSAIoctl(port->sock,
|
595
|
-
SIO_KEEPALIVE_VALS,
|
596
|
-
(LPVOID) &ka,
|
597
|
-
sizeof(ka),
|
598
|
-
NULL,
|
599
|
-
0,
|
600
|
-
&retsize,
|
601
|
-
NULL,
|
602
|
-
NULL)
|
603
|
-
!= 0)
|
604
|
-
{
|
605
|
-
elog(LOG, "WSAIoctl(SIO_KEEPALIVE_VALS) failed: %ui",
|
606
|
-
WSAGetLastError());
|
607
|
-
return STATUS_ERROR;
|
608
|
-
}
|
609
|
-
if (port->keepalives_idle != idle)
|
610
|
-
port->keepalives_idle = idle;
|
611
|
-
if (port->keepalives_interval != interval)
|
612
|
-
port->keepalives_interval = interval;
|
613
|
-
return STATUS_OK;
|
614
|
-
}
|
615
|
-
#endif
|
616
|
-
|
617
|
-
#if defined(PG_TCP_KEEPALIVE_IDLE) || defined(SIO_KEEPALIVE_VALS)
|
618
|
-
#ifndef WIN32
|
619
|
-
#else /* WIN32 */
|
620
|
-
#endif /* WIN32 */
|
621
|
-
#else
|
622
|
-
#endif
|
623
|
-
|
624
|
-
#if defined(PG_TCP_KEEPALIVE_IDLE) || defined(SIO_KEEPALIVE_VALS)
|
625
|
-
#ifndef WIN32
|
626
|
-
#else /* WIN32 */
|
627
|
-
#endif
|
628
|
-
#else
|
629
|
-
#endif
|
630
|
-
|
631
|
-
#if defined(TCP_KEEPINTVL) || defined(SIO_KEEPALIVE_VALS)
|
632
|
-
#ifndef WIN32
|
633
|
-
#else
|
634
|
-
#endif /* WIN32 */
|
635
|
-
#else
|
636
|
-
#endif
|
637
|
-
|
638
|
-
#if defined(TCP_KEEPINTVL) || defined(SIO_KEEPALIVE_VALS)
|
639
|
-
#ifndef WIN32
|
640
|
-
#else /* WIN32 */
|
641
|
-
#endif
|
642
|
-
#else
|
643
|
-
#endif
|
644
|
-
|
645
|
-
#ifdef TCP_KEEPCNT
|
646
|
-
#else
|
647
|
-
#endif
|
648
|
-
|
649
|
-
#ifdef TCP_KEEPCNT
|
650
|
-
#else
|
651
|
-
#endif
|
652
|
-
|
653
|
-
#ifdef TCP_USER_TIMEOUT
|
654
|
-
#else
|
655
|
-
#endif
|
656
|
-
|
657
|
-
#ifdef TCP_USER_TIMEOUT
|
658
|
-
#else
|
659
|
-
#endif
|