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
@@ -0,0 +1,37 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* auth.h
|
4
|
+
* Definitions for network authentication routines
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
+
*
|
10
|
+
* src/include/libpq/auth.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef AUTH_H
|
15
|
+
#define AUTH_H
|
16
|
+
|
17
|
+
#include "libpq/libpq-be.h"
|
18
|
+
|
19
|
+
extern PGDLLIMPORT char *pg_krb_server_keyfile;
|
20
|
+
extern PGDLLIMPORT bool pg_krb_caseins_users;
|
21
|
+
extern PGDLLIMPORT bool pg_gss_accept_delegation;
|
22
|
+
|
23
|
+
extern void ClientAuthentication(Port *port);
|
24
|
+
extern void sendAuthRequest(Port *port, AuthRequest areq, const char *extradata,
|
25
|
+
int extralen);
|
26
|
+
|
27
|
+
/* Hook for plugins to get control in ClientAuthentication() */
|
28
|
+
typedef void (*ClientAuthentication_hook_type) (Port *, int);
|
29
|
+
extern PGDLLIMPORT ClientAuthentication_hook_type ClientAuthentication_hook;
|
30
|
+
|
31
|
+
/* hook type for password manglers */
|
32
|
+
typedef char *(*auth_password_hook_typ) (char *input);
|
33
|
+
|
34
|
+
/* Default LDAP password mutator hook, can be overridden by a shared library */
|
35
|
+
extern PGDLLIMPORT auth_password_hook_typ ldap_password_hook;
|
36
|
+
|
37
|
+
#endif /* AUTH_H */
|
@@ -0,0 +1,47 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* crypt.h
|
4
|
+
* Interface to libpq/crypt.c
|
5
|
+
*
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
8
|
+
*
|
9
|
+
* src/include/libpq/crypt.h
|
10
|
+
*
|
11
|
+
*-------------------------------------------------------------------------
|
12
|
+
*/
|
13
|
+
#ifndef PG_CRYPT_H
|
14
|
+
#define PG_CRYPT_H
|
15
|
+
|
16
|
+
#include "datatype/timestamp.h"
|
17
|
+
|
18
|
+
/*
|
19
|
+
* Types of password hashes or secrets.
|
20
|
+
*
|
21
|
+
* Plaintext passwords can be passed in by the user, in a CREATE/ALTER USER
|
22
|
+
* command. They will be encrypted to MD5 or SCRAM-SHA-256 format, before
|
23
|
+
* storing on-disk, so only MD5 and SCRAM-SHA-256 passwords should appear
|
24
|
+
* in pg_authid.rolpassword. They are also the allowed values for the
|
25
|
+
* password_encryption GUC.
|
26
|
+
*/
|
27
|
+
typedef enum PasswordType
|
28
|
+
{
|
29
|
+
PASSWORD_TYPE_PLAINTEXT = 0,
|
30
|
+
PASSWORD_TYPE_MD5,
|
31
|
+
PASSWORD_TYPE_SCRAM_SHA_256,
|
32
|
+
} PasswordType;
|
33
|
+
|
34
|
+
extern PasswordType get_password_type(const char *shadow_pass);
|
35
|
+
extern char *encrypt_password(PasswordType target_type, const char *role,
|
36
|
+
const char *password);
|
37
|
+
|
38
|
+
extern char *get_role_password(const char *role, const char **logdetail);
|
39
|
+
|
40
|
+
extern int md5_crypt_verify(const char *role, const char *shadow_pass,
|
41
|
+
const char *client_pass, const char *md5_salt,
|
42
|
+
int md5_salt_len, const char **logdetail);
|
43
|
+
extern int plain_crypt_verify(const char *role, const char *shadow_pass,
|
44
|
+
const char *client_pass,
|
45
|
+
const char **logdetail);
|
46
|
+
|
47
|
+
#endif
|
@@ -0,0 +1,186 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* hba.h
|
4
|
+
* Interface to hba.c
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* src/include/libpq/hba.h
|
8
|
+
*
|
9
|
+
*-------------------------------------------------------------------------
|
10
|
+
*/
|
11
|
+
#ifndef HBA_H
|
12
|
+
#define HBA_H
|
13
|
+
|
14
|
+
#include "libpq/pqcomm.h" /* pgrminclude ignore */ /* needed for NetBSD */
|
15
|
+
#include "nodes/pg_list.h"
|
16
|
+
#include "regex/regex.h"
|
17
|
+
|
18
|
+
|
19
|
+
/*
|
20
|
+
* The following enum represents the authentication methods that
|
21
|
+
* are supported by PostgreSQL.
|
22
|
+
*
|
23
|
+
* Note: keep this in sync with the UserAuthName array in hba.c.
|
24
|
+
*/
|
25
|
+
typedef enum UserAuth
|
26
|
+
{
|
27
|
+
uaReject,
|
28
|
+
uaImplicitReject, /* Not a user-visible option */
|
29
|
+
uaTrust,
|
30
|
+
uaIdent,
|
31
|
+
uaPassword,
|
32
|
+
uaMD5,
|
33
|
+
uaSCRAM,
|
34
|
+
uaGSS,
|
35
|
+
uaSSPI,
|
36
|
+
uaPAM,
|
37
|
+
uaBSD,
|
38
|
+
uaLDAP,
|
39
|
+
uaCert,
|
40
|
+
uaRADIUS,
|
41
|
+
uaPeer,
|
42
|
+
#define USER_AUTH_LAST uaPeer /* Must be last value of this enum */
|
43
|
+
} UserAuth;
|
44
|
+
|
45
|
+
/*
|
46
|
+
* Data structures representing pg_hba.conf entries
|
47
|
+
*/
|
48
|
+
|
49
|
+
typedef enum IPCompareMethod
|
50
|
+
{
|
51
|
+
ipCmpMask,
|
52
|
+
ipCmpSameHost,
|
53
|
+
ipCmpSameNet,
|
54
|
+
ipCmpAll,
|
55
|
+
} IPCompareMethod;
|
56
|
+
|
57
|
+
typedef enum ConnType
|
58
|
+
{
|
59
|
+
ctLocal,
|
60
|
+
ctHost,
|
61
|
+
ctHostSSL,
|
62
|
+
ctHostNoSSL,
|
63
|
+
ctHostGSS,
|
64
|
+
ctHostNoGSS,
|
65
|
+
} ConnType;
|
66
|
+
|
67
|
+
typedef enum ClientCertMode
|
68
|
+
{
|
69
|
+
clientCertOff,
|
70
|
+
clientCertCA,
|
71
|
+
clientCertFull,
|
72
|
+
} ClientCertMode;
|
73
|
+
|
74
|
+
typedef enum ClientCertName
|
75
|
+
{
|
76
|
+
clientCertCN,
|
77
|
+
clientCertDN,
|
78
|
+
} ClientCertName;
|
79
|
+
|
80
|
+
/*
|
81
|
+
* A single string token lexed from an authentication configuration file
|
82
|
+
* (pg_ident.conf or pg_hba.conf), together with whether the token has
|
83
|
+
* been quoted. If "string" begins with a slash, it may optionally
|
84
|
+
* contain a regular expression (currently used for pg_ident.conf when
|
85
|
+
* building IdentLines and for pg_hba.conf when building HbaLines).
|
86
|
+
*/
|
87
|
+
typedef struct AuthToken
|
88
|
+
{
|
89
|
+
char *string;
|
90
|
+
bool quoted;
|
91
|
+
regex_t *regex;
|
92
|
+
} AuthToken;
|
93
|
+
|
94
|
+
typedef struct HbaLine
|
95
|
+
{
|
96
|
+
char *sourcefile;
|
97
|
+
int linenumber;
|
98
|
+
char *rawline;
|
99
|
+
ConnType conntype;
|
100
|
+
List *databases;
|
101
|
+
List *roles;
|
102
|
+
struct sockaddr_storage addr;
|
103
|
+
int addrlen; /* zero if we don't have a valid addr */
|
104
|
+
struct sockaddr_storage mask;
|
105
|
+
int masklen; /* zero if we don't have a valid mask */
|
106
|
+
IPCompareMethod ip_cmp_method;
|
107
|
+
char *hostname;
|
108
|
+
UserAuth auth_method;
|
109
|
+
char *usermap;
|
110
|
+
char *pamservice;
|
111
|
+
bool pam_use_hostname;
|
112
|
+
bool ldaptls;
|
113
|
+
char *ldapscheme;
|
114
|
+
char *ldapserver;
|
115
|
+
int ldapport;
|
116
|
+
char *ldapbinddn;
|
117
|
+
char *ldapbindpasswd;
|
118
|
+
char *ldapsearchattribute;
|
119
|
+
char *ldapsearchfilter;
|
120
|
+
char *ldapbasedn;
|
121
|
+
int ldapscope;
|
122
|
+
char *ldapprefix;
|
123
|
+
char *ldapsuffix;
|
124
|
+
ClientCertMode clientcert;
|
125
|
+
ClientCertName clientcertname;
|
126
|
+
char *krb_realm;
|
127
|
+
bool include_realm;
|
128
|
+
bool compat_realm;
|
129
|
+
bool upn_username;
|
130
|
+
List *radiusservers;
|
131
|
+
char *radiusservers_s;
|
132
|
+
List *radiussecrets;
|
133
|
+
char *radiussecrets_s;
|
134
|
+
List *radiusidentifiers;
|
135
|
+
char *radiusidentifiers_s;
|
136
|
+
List *radiusports;
|
137
|
+
char *radiusports_s;
|
138
|
+
} HbaLine;
|
139
|
+
|
140
|
+
typedef struct IdentLine
|
141
|
+
{
|
142
|
+
int linenumber;
|
143
|
+
|
144
|
+
char *usermap;
|
145
|
+
AuthToken *system_user;
|
146
|
+
AuthToken *pg_user;
|
147
|
+
} IdentLine;
|
148
|
+
|
149
|
+
/*
|
150
|
+
* TokenizedAuthLine represents one line lexed from an authentication
|
151
|
+
* configuration file. Each item in the "fields" list is a sub-list of
|
152
|
+
* AuthTokens. We don't emit a TokenizedAuthLine for empty or all-comment
|
153
|
+
* lines, so "fields" is never NIL (nor are any of its sub-lists).
|
154
|
+
*
|
155
|
+
* Exception: if an error occurs during tokenization, we might have
|
156
|
+
* fields == NIL, in which case err_msg != NULL.
|
157
|
+
*/
|
158
|
+
typedef struct TokenizedAuthLine
|
159
|
+
{
|
160
|
+
List *fields; /* List of lists of AuthTokens */
|
161
|
+
char *file_name; /* File name of origin */
|
162
|
+
int line_num; /* Line number */
|
163
|
+
char *raw_line; /* Raw line text */
|
164
|
+
char *err_msg; /* Error message if any */
|
165
|
+
} TokenizedAuthLine;
|
166
|
+
|
167
|
+
/* kluge to avoid including libpq/libpq-be.h here */
|
168
|
+
typedef struct Port hbaPort;
|
169
|
+
|
170
|
+
extern bool load_hba(void);
|
171
|
+
extern bool load_ident(void);
|
172
|
+
extern const char *hba_authname(UserAuth auth_method);
|
173
|
+
extern void hba_getauthmethod(hbaPort *port);
|
174
|
+
extern int check_usermap(const char *usermap_name,
|
175
|
+
const char *pg_user, const char *system_user,
|
176
|
+
bool case_insensitive);
|
177
|
+
extern HbaLine *parse_hba_line(TokenizedAuthLine *tok_line, int elevel);
|
178
|
+
extern IdentLine *parse_ident_line(TokenizedAuthLine *tok_line, int elevel);
|
179
|
+
extern bool pg_isblank(const char c);
|
180
|
+
extern FILE *open_auth_file(const char *filename, int elevel, int depth,
|
181
|
+
char **err_msg);
|
182
|
+
extern void free_auth_file(FILE *file, int depth);
|
183
|
+
extern void tokenize_auth_file(const char *filename, FILE *file,
|
184
|
+
List **tok_lines, int elevel, int depth);
|
185
|
+
|
186
|
+
#endif /* HBA_H */
|
@@ -0,0 +1,361 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* libpq-be.h
|
4
|
+
* This file contains definitions for structures and externs used
|
5
|
+
* by the postmaster during client authentication.
|
6
|
+
*
|
7
|
+
* Note that this is backend-internal and is NOT exported to clients.
|
8
|
+
* Structs that need to be client-visible are in pqcomm.h.
|
9
|
+
*
|
10
|
+
*
|
11
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
12
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
13
|
+
*
|
14
|
+
* src/include/libpq/libpq-be.h
|
15
|
+
*
|
16
|
+
*-------------------------------------------------------------------------
|
17
|
+
*/
|
18
|
+
#ifndef LIBPQ_BE_H
|
19
|
+
#define LIBPQ_BE_H
|
20
|
+
|
21
|
+
#include <sys/time.h>
|
22
|
+
#ifdef USE_OPENSSL
|
23
|
+
#include <openssl/ssl.h>
|
24
|
+
#include <openssl/err.h>
|
25
|
+
#endif
|
26
|
+
#include <netinet/tcp.h>
|
27
|
+
|
28
|
+
#ifdef ENABLE_GSS
|
29
|
+
#if defined(HAVE_GSSAPI_H)
|
30
|
+
#include <gssapi.h>
|
31
|
+
#else
|
32
|
+
#include <gssapi/gssapi.h>
|
33
|
+
#endif /* HAVE_GSSAPI_H */
|
34
|
+
#endif /* ENABLE_GSS */
|
35
|
+
|
36
|
+
#ifdef ENABLE_SSPI
|
37
|
+
#define SECURITY_WIN32
|
38
|
+
#if defined(WIN32) && !defined(_MSC_VER)
|
39
|
+
#include <ntsecapi.h>
|
40
|
+
#endif
|
41
|
+
#include <security.h>
|
42
|
+
#undef SECURITY_WIN32
|
43
|
+
|
44
|
+
#ifndef ENABLE_GSS
|
45
|
+
/*
|
46
|
+
* Define a fake structure compatible with GSSAPI on Unix.
|
47
|
+
*/
|
48
|
+
typedef struct
|
49
|
+
{
|
50
|
+
void *value;
|
51
|
+
int length;
|
52
|
+
} gss_buffer_desc;
|
53
|
+
#endif
|
54
|
+
#endif /* ENABLE_SSPI */
|
55
|
+
|
56
|
+
#include "datatype/timestamp.h"
|
57
|
+
#include "libpq/hba.h"
|
58
|
+
#include "libpq/pqcomm.h"
|
59
|
+
|
60
|
+
|
61
|
+
/*
|
62
|
+
* GSSAPI specific state information
|
63
|
+
*/
|
64
|
+
#if defined(ENABLE_GSS) | defined(ENABLE_SSPI)
|
65
|
+
typedef struct
|
66
|
+
{
|
67
|
+
gss_buffer_desc outbuf; /* GSSAPI output token buffer */
|
68
|
+
#ifdef ENABLE_GSS
|
69
|
+
gss_cred_id_t cred; /* GSSAPI connection cred's */
|
70
|
+
gss_ctx_id_t ctx; /* GSSAPI connection context */
|
71
|
+
gss_name_t name; /* GSSAPI client name */
|
72
|
+
char *princ; /* GSSAPI Principal used for auth, NULL if
|
73
|
+
* GSSAPI auth was not used */
|
74
|
+
bool auth; /* GSSAPI Authentication used */
|
75
|
+
bool enc; /* GSSAPI encryption in use */
|
76
|
+
bool delegated_creds; /* GSSAPI Delegated credentials */
|
77
|
+
#endif
|
78
|
+
} pg_gssinfo;
|
79
|
+
#endif
|
80
|
+
|
81
|
+
/*
|
82
|
+
* ClientConnectionInfo includes the fields describing the client connection
|
83
|
+
* that are copied over to parallel workers as nothing from Port does that.
|
84
|
+
* The same rules apply for allocations here as for Port (everything must be
|
85
|
+
* malloc'd or palloc'd in TopMemoryContext).
|
86
|
+
*
|
87
|
+
* If you add a struct member here, remember to also handle serialization in
|
88
|
+
* SerializeClientConnectionInfo() and co.
|
89
|
+
*/
|
90
|
+
typedef struct ClientConnectionInfo
|
91
|
+
{
|
92
|
+
/*
|
93
|
+
* Authenticated identity. The meaning of this identifier is dependent on
|
94
|
+
* auth_method; it is the identity (if any) that the user presented during
|
95
|
+
* the authentication cycle, before they were assigned a database role.
|
96
|
+
* (It is effectively the "SYSTEM-USERNAME" of a pg_ident usermap --
|
97
|
+
* though the exact string in use may be different, depending on pg_hba
|
98
|
+
* options.)
|
99
|
+
*
|
100
|
+
* authn_id is NULL if the user has not actually been authenticated, for
|
101
|
+
* example if the "trust" auth method is in use.
|
102
|
+
*/
|
103
|
+
const char *authn_id;
|
104
|
+
|
105
|
+
/*
|
106
|
+
* The HBA method that determined the above authn_id. This only has
|
107
|
+
* meaning if authn_id is not NULL; otherwise it's undefined.
|
108
|
+
*/
|
109
|
+
UserAuth auth_method;
|
110
|
+
} ClientConnectionInfo;
|
111
|
+
|
112
|
+
/*
|
113
|
+
* The Port structure holds state information about a client connection in a
|
114
|
+
* backend process. It is available in the global variable MyProcPort. The
|
115
|
+
* struct and all the data it points are kept in TopMemoryContext.
|
116
|
+
*
|
117
|
+
* remote_hostname is set if we did a successful reverse lookup of the
|
118
|
+
* client's IP address during connection setup.
|
119
|
+
* remote_hostname_resolv tracks the state of hostname verification:
|
120
|
+
* +1 = remote_hostname is known to resolve to client's IP address
|
121
|
+
* -1 = remote_hostname is known NOT to resolve to client's IP address
|
122
|
+
* 0 = we have not done the forward DNS lookup yet
|
123
|
+
* -2 = there was an error in name resolution
|
124
|
+
* If reverse lookup of the client IP address fails, remote_hostname will be
|
125
|
+
* left NULL while remote_hostname_resolv is set to -2. If reverse lookup
|
126
|
+
* succeeds but forward lookup fails, remote_hostname_resolv is also set to -2
|
127
|
+
* (the case is distinguishable because remote_hostname isn't NULL). In
|
128
|
+
* either of the -2 cases, remote_hostname_errcode saves the lookup return
|
129
|
+
* code for possible later use with gai_strerror.
|
130
|
+
*/
|
131
|
+
|
132
|
+
typedef struct Port
|
133
|
+
{
|
134
|
+
pgsocket sock; /* File descriptor */
|
135
|
+
bool noblock; /* is the socket in non-blocking mode? */
|
136
|
+
ProtocolVersion proto; /* FE/BE protocol version */
|
137
|
+
SockAddr laddr; /* local addr (postmaster) */
|
138
|
+
SockAddr raddr; /* remote addr (client) */
|
139
|
+
char *remote_host; /* name (or ip addr) of remote host */
|
140
|
+
char *remote_hostname; /* name (not ip addr) of remote host, if
|
141
|
+
* available */
|
142
|
+
int remote_hostname_resolv; /* see above */
|
143
|
+
int remote_hostname_errcode; /* see above */
|
144
|
+
char *remote_port; /* text rep of remote port */
|
145
|
+
|
146
|
+
/*
|
147
|
+
* Information that needs to be saved from the startup packet and passed
|
148
|
+
* into backend execution. "char *" fields are NULL if not set.
|
149
|
+
* guc_options points to a List of alternating option names and values.
|
150
|
+
*/
|
151
|
+
char *database_name;
|
152
|
+
char *user_name;
|
153
|
+
char *cmdline_options;
|
154
|
+
List *guc_options;
|
155
|
+
|
156
|
+
/*
|
157
|
+
* The startup packet application name, only used here for the "connection
|
158
|
+
* authorized" log message. We shouldn't use this post-startup, instead
|
159
|
+
* the GUC should be used as application can change it afterward.
|
160
|
+
*/
|
161
|
+
char *application_name;
|
162
|
+
|
163
|
+
/*
|
164
|
+
* Information that needs to be held during the authentication cycle.
|
165
|
+
*/
|
166
|
+
HbaLine *hba;
|
167
|
+
|
168
|
+
/*
|
169
|
+
* TCP keepalive and user timeout settings.
|
170
|
+
*
|
171
|
+
* default values are 0 if AF_UNIX or not yet known; current values are 0
|
172
|
+
* if AF_UNIX or using the default. Also, -1 in a default value means we
|
173
|
+
* were unable to find out the default (getsockopt failed).
|
174
|
+
*/
|
175
|
+
int default_keepalives_idle;
|
176
|
+
int default_keepalives_interval;
|
177
|
+
int default_keepalives_count;
|
178
|
+
int default_tcp_user_timeout;
|
179
|
+
int keepalives_idle;
|
180
|
+
int keepalives_interval;
|
181
|
+
int keepalives_count;
|
182
|
+
int tcp_user_timeout;
|
183
|
+
|
184
|
+
/*
|
185
|
+
* GSSAPI structures.
|
186
|
+
*/
|
187
|
+
#if defined(ENABLE_GSS) || defined(ENABLE_SSPI)
|
188
|
+
|
189
|
+
/*
|
190
|
+
* If GSSAPI is supported and used on this connection, store GSSAPI
|
191
|
+
* information. Even when GSSAPI is not compiled in, store a NULL pointer
|
192
|
+
* to keep struct offsets of the "SSL structures" below the same (for
|
193
|
+
* extension ABI compatibility).
|
194
|
+
*/
|
195
|
+
pg_gssinfo *gss;
|
196
|
+
#else
|
197
|
+
void *gss;
|
198
|
+
#endif
|
199
|
+
|
200
|
+
/*
|
201
|
+
* SSL structures.
|
202
|
+
*/
|
203
|
+
bool ssl_in_use;
|
204
|
+
char *peer_cn;
|
205
|
+
char *peer_dn;
|
206
|
+
bool peer_cert_valid;
|
207
|
+
bool alpn_used;
|
208
|
+
|
209
|
+
/*
|
210
|
+
* OpenSSL structures.
|
211
|
+
*/
|
212
|
+
#ifdef USE_OPENSSL
|
213
|
+
SSL *ssl;
|
214
|
+
X509 *peer;
|
215
|
+
#endif
|
216
|
+
|
217
|
+
/*
|
218
|
+
* This is a bit of a hack. raw_buf is data that was previously read and
|
219
|
+
* buffered in a higher layer but then "unread" and needs to be read again
|
220
|
+
* while establishing an SSL connection via the SSL library layer.
|
221
|
+
*
|
222
|
+
* There's no API to "unread", the upper layer just places the data in the
|
223
|
+
* Port structure in raw_buf and sets raw_buf_remaining to the amount of
|
224
|
+
* bytes unread and raw_buf_consumed to 0.
|
225
|
+
*
|
226
|
+
* NB: the offsets of these fields depend on USE_OPENSSL. These should
|
227
|
+
* not be accessed in an extension because of the ABI incompatibility.
|
228
|
+
*/
|
229
|
+
char *raw_buf;
|
230
|
+
ssize_t raw_buf_consumed,
|
231
|
+
raw_buf_remaining;
|
232
|
+
} Port;
|
233
|
+
|
234
|
+
/*
|
235
|
+
* ClientSocket holds a socket for an accepted connection, along with the
|
236
|
+
* information about the remote endpoint. This is passed from postmaster to
|
237
|
+
* the backend process.
|
238
|
+
*/
|
239
|
+
typedef struct ClientSocket
|
240
|
+
{
|
241
|
+
pgsocket sock; /* File descriptor */
|
242
|
+
SockAddr raddr; /* remote addr (client) */
|
243
|
+
} ClientSocket;
|
244
|
+
|
245
|
+
#ifdef USE_SSL
|
246
|
+
/*
|
247
|
+
* Hardcoded DH parameters, used in ephemeral DH keying. (See also
|
248
|
+
* README.SSL for more details on EDH.)
|
249
|
+
*
|
250
|
+
* This is the 2048-bit DH parameter from RFC 3526. The generation of the
|
251
|
+
* prime is specified in RFC 2412 Appendix E, which also discusses the
|
252
|
+
* design choice of the generator. Note that when loaded with OpenSSL
|
253
|
+
* this causes DH_check() to fail on DH_NOT_SUITABLE_GENERATOR, where
|
254
|
+
* leaking a bit is preferred.
|
255
|
+
*/
|
256
|
+
#define FILE_DH2048 \
|
257
|
+
"-----BEGIN DH PARAMETERS-----\n\
|
258
|
+
MIIBCAKCAQEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb\n\
|
259
|
+
IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft\n\
|
260
|
+
awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT\n\
|
261
|
+
mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh\n\
|
262
|
+
fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq\n\
|
263
|
+
5RXSJhiY+gUQFXKOWoqsqmj//////////wIBAg==\n\
|
264
|
+
-----END DH PARAMETERS-----\n"
|
265
|
+
|
266
|
+
/*
|
267
|
+
* These functions are implemented by the glue code specific to each
|
268
|
+
* SSL implementation (e.g. be-secure-openssl.c)
|
269
|
+
*/
|
270
|
+
|
271
|
+
/*
|
272
|
+
* Initialize global SSL context.
|
273
|
+
*
|
274
|
+
* If isServerStart is true, report any errors as FATAL (so we don't return).
|
275
|
+
* Otherwise, log errors at LOG level and return -1 to indicate trouble,
|
276
|
+
* preserving the old SSL state if any. Returns 0 if OK.
|
277
|
+
*/
|
278
|
+
extern int be_tls_init(bool isServerStart);
|
279
|
+
|
280
|
+
/*
|
281
|
+
* Destroy global SSL context, if any.
|
282
|
+
*/
|
283
|
+
extern void be_tls_destroy(void);
|
284
|
+
|
285
|
+
/*
|
286
|
+
* Attempt to negotiate SSL connection.
|
287
|
+
*/
|
288
|
+
extern int be_tls_open_server(Port *port);
|
289
|
+
|
290
|
+
/*
|
291
|
+
* Close SSL connection.
|
292
|
+
*/
|
293
|
+
extern void be_tls_close(Port *port);
|
294
|
+
|
295
|
+
/*
|
296
|
+
* Read data from a secure connection.
|
297
|
+
*/
|
298
|
+
extern ssize_t be_tls_read(Port *port, void *ptr, size_t len, int *waitfor);
|
299
|
+
|
300
|
+
/*
|
301
|
+
* Write data to a secure connection.
|
302
|
+
*/
|
303
|
+
extern ssize_t be_tls_write(Port *port, void *ptr, size_t len, int *waitfor);
|
304
|
+
|
305
|
+
/*
|
306
|
+
* Return information about the SSL connection.
|
307
|
+
*/
|
308
|
+
extern int be_tls_get_cipher_bits(Port *port);
|
309
|
+
extern const char *be_tls_get_version(Port *port);
|
310
|
+
extern const char *be_tls_get_cipher(Port *port);
|
311
|
+
extern void be_tls_get_peer_subject_name(Port *port, char *ptr, size_t len);
|
312
|
+
extern void be_tls_get_peer_issuer_name(Port *port, char *ptr, size_t len);
|
313
|
+
extern void be_tls_get_peer_serial(Port *port, char *ptr, size_t len);
|
314
|
+
|
315
|
+
/*
|
316
|
+
* Get the server certificate hash for SCRAM channel binding type
|
317
|
+
* tls-server-end-point.
|
318
|
+
*
|
319
|
+
* The result is a palloc'd hash of the server certificate with its
|
320
|
+
* size, and NULL if there is no certificate available.
|
321
|
+
*/
|
322
|
+
extern char *be_tls_get_certificate_hash(Port *port, size_t *len);
|
323
|
+
|
324
|
+
/* init hook for SSL, the default sets the password callback if appropriate */
|
325
|
+
#ifdef USE_OPENSSL
|
326
|
+
typedef void (*openssl_tls_init_hook_typ) (SSL_CTX *context, bool isServerStart);
|
327
|
+
extern PGDLLIMPORT openssl_tls_init_hook_typ openssl_tls_init_hook;
|
328
|
+
#endif
|
329
|
+
|
330
|
+
#endif /* USE_SSL */
|
331
|
+
|
332
|
+
#ifdef ENABLE_GSS
|
333
|
+
/*
|
334
|
+
* Return information about the GSSAPI authenticated connection
|
335
|
+
*/
|
336
|
+
extern bool be_gssapi_get_auth(Port *port);
|
337
|
+
extern bool be_gssapi_get_enc(Port *port);
|
338
|
+
extern const char *be_gssapi_get_princ(Port *port);
|
339
|
+
extern bool be_gssapi_get_delegation(Port *port);
|
340
|
+
|
341
|
+
/* Read and write to a GSSAPI-encrypted connection. */
|
342
|
+
extern ssize_t be_gssapi_read(Port *port, void *ptr, size_t len);
|
343
|
+
extern ssize_t be_gssapi_write(Port *port, void *ptr, size_t len);
|
344
|
+
#endif /* ENABLE_GSS */
|
345
|
+
|
346
|
+
extern PGDLLIMPORT ProtocolVersion FrontendProtocol;
|
347
|
+
extern PGDLLIMPORT ClientConnectionInfo MyClientConnectionInfo;
|
348
|
+
|
349
|
+
/* TCP keepalives configuration. These are no-ops on an AF_UNIX socket. */
|
350
|
+
|
351
|
+
extern int pq_getkeepalivesidle(Port *port);
|
352
|
+
extern int pq_getkeepalivesinterval(Port *port);
|
353
|
+
extern int pq_getkeepalivescount(Port *port);
|
354
|
+
extern int pq_gettcpusertimeout(Port *port);
|
355
|
+
|
356
|
+
extern int pq_setkeepalivesidle(int idle, Port *port);
|
357
|
+
extern int pq_setkeepalivesinterval(int interval, Port *port);
|
358
|
+
extern int pq_setkeepalivescount(int count, Port *port);
|
359
|
+
extern int pq_settcpusertimeout(int timeout, Port *port);
|
360
|
+
|
361
|
+
#endif /* LIBPQ_BE_H */
|