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,504 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* walreceiver.h
|
4
|
+
* Exports from replication/walreceiverfuncs.c.
|
5
|
+
*
|
6
|
+
* Portions Copyright (c) 2010-2024, PostgreSQL Global Development Group
|
7
|
+
*
|
8
|
+
* src/include/replication/walreceiver.h
|
9
|
+
*
|
10
|
+
*-------------------------------------------------------------------------
|
11
|
+
*/
|
12
|
+
#ifndef _WALRECEIVER_H
|
13
|
+
#define _WALRECEIVER_H
|
14
|
+
|
15
|
+
#include <netdb.h>
|
16
|
+
|
17
|
+
#include "access/xlog.h"
|
18
|
+
#include "access/xlogdefs.h"
|
19
|
+
#include "pgtime.h"
|
20
|
+
#include "port/atomics.h"
|
21
|
+
#include "replication/logicalproto.h"
|
22
|
+
#include "replication/walsender.h"
|
23
|
+
#include "storage/condition_variable.h"
|
24
|
+
#include "storage/latch.h"
|
25
|
+
#include "storage/spin.h"
|
26
|
+
#include "utils/tuplestore.h"
|
27
|
+
|
28
|
+
/* user-settable parameters */
|
29
|
+
extern PGDLLIMPORT int wal_receiver_status_interval;
|
30
|
+
extern PGDLLIMPORT int wal_receiver_timeout;
|
31
|
+
extern PGDLLIMPORT bool hot_standby_feedback;
|
32
|
+
|
33
|
+
/*
|
34
|
+
* MAXCONNINFO: maximum size of a connection string.
|
35
|
+
*
|
36
|
+
* XXX: Should this move to pg_config_manual.h?
|
37
|
+
*/
|
38
|
+
#define MAXCONNINFO 1024
|
39
|
+
|
40
|
+
/* Can we allow the standby to accept replication connection from another standby? */
|
41
|
+
#define AllowCascadeReplication() (EnableHotStandby && max_wal_senders > 0)
|
42
|
+
|
43
|
+
/*
|
44
|
+
* Values for WalRcv->walRcvState.
|
45
|
+
*/
|
46
|
+
typedef enum
|
47
|
+
{
|
48
|
+
WALRCV_STOPPED, /* stopped and mustn't start up again */
|
49
|
+
WALRCV_STARTING, /* launched, but the process hasn't
|
50
|
+
* initialized yet */
|
51
|
+
WALRCV_STREAMING, /* walreceiver is streaming */
|
52
|
+
WALRCV_WAITING, /* stopped streaming, waiting for orders */
|
53
|
+
WALRCV_RESTARTING, /* asked to restart streaming */
|
54
|
+
WALRCV_STOPPING, /* requested to stop, but still running */
|
55
|
+
} WalRcvState;
|
56
|
+
|
57
|
+
/* Shared memory area for management of walreceiver process */
|
58
|
+
typedef struct
|
59
|
+
{
|
60
|
+
/*
|
61
|
+
* PID of currently active walreceiver process, its current state and
|
62
|
+
* start time (actually, the time at which it was requested to be
|
63
|
+
* started).
|
64
|
+
*/
|
65
|
+
pid_t pid;
|
66
|
+
WalRcvState walRcvState;
|
67
|
+
ConditionVariable walRcvStoppedCV;
|
68
|
+
pg_time_t startTime;
|
69
|
+
|
70
|
+
/*
|
71
|
+
* receiveStart and receiveStartTLI indicate the first byte position and
|
72
|
+
* timeline that will be received. When startup process starts the
|
73
|
+
* walreceiver, it sets these to the point where it wants the streaming to
|
74
|
+
* begin.
|
75
|
+
*/
|
76
|
+
XLogRecPtr receiveStart;
|
77
|
+
TimeLineID receiveStartTLI;
|
78
|
+
|
79
|
+
/*
|
80
|
+
* flushedUpto-1 is the last byte position that has already been received,
|
81
|
+
* and receivedTLI is the timeline it came from. At the first startup of
|
82
|
+
* walreceiver, these are set to receiveStart and receiveStartTLI. After
|
83
|
+
* that, walreceiver updates these whenever it flushes the received WAL to
|
84
|
+
* disk.
|
85
|
+
*/
|
86
|
+
XLogRecPtr flushedUpto;
|
87
|
+
TimeLineID receivedTLI;
|
88
|
+
|
89
|
+
/*
|
90
|
+
* latestChunkStart is the starting byte position of the current "batch"
|
91
|
+
* of received WAL. It's actually the same as the previous value of
|
92
|
+
* flushedUpto before the last flush to disk. Startup process can use
|
93
|
+
* this to detect whether it's keeping up or not.
|
94
|
+
*/
|
95
|
+
XLogRecPtr latestChunkStart;
|
96
|
+
|
97
|
+
/*
|
98
|
+
* Time of send and receive of any message received.
|
99
|
+
*/
|
100
|
+
TimestampTz lastMsgSendTime;
|
101
|
+
TimestampTz lastMsgReceiptTime;
|
102
|
+
|
103
|
+
/*
|
104
|
+
* Latest reported end of WAL on the sender
|
105
|
+
*/
|
106
|
+
XLogRecPtr latestWalEnd;
|
107
|
+
TimestampTz latestWalEndTime;
|
108
|
+
|
109
|
+
/*
|
110
|
+
* connection string; initially set to connect to the primary, and later
|
111
|
+
* clobbered to hide security-sensitive fields.
|
112
|
+
*/
|
113
|
+
char conninfo[MAXCONNINFO];
|
114
|
+
|
115
|
+
/*
|
116
|
+
* Host name (this can be a host name, an IP address, or a directory path)
|
117
|
+
* and port number of the active replication connection.
|
118
|
+
*/
|
119
|
+
char sender_host[NI_MAXHOST];
|
120
|
+
int sender_port;
|
121
|
+
|
122
|
+
/*
|
123
|
+
* replication slot name; is also used for walreceiver to connect with the
|
124
|
+
* primary
|
125
|
+
*/
|
126
|
+
char slotname[NAMEDATALEN];
|
127
|
+
|
128
|
+
/*
|
129
|
+
* If it's a temporary replication slot, it needs to be recreated when
|
130
|
+
* connecting.
|
131
|
+
*/
|
132
|
+
bool is_temp_slot;
|
133
|
+
|
134
|
+
/* set true once conninfo is ready to display (obfuscated pwds etc) */
|
135
|
+
bool ready_to_display;
|
136
|
+
|
137
|
+
/*
|
138
|
+
* Latch used by startup process to wake up walreceiver after telling it
|
139
|
+
* where to start streaming (after setting receiveStart and
|
140
|
+
* receiveStartTLI), and also to tell it to send apply feedback to the
|
141
|
+
* primary whenever specially marked commit records are applied. This is
|
142
|
+
* normally mapped to procLatch when walreceiver is running.
|
143
|
+
*/
|
144
|
+
Latch *latch;
|
145
|
+
|
146
|
+
slock_t mutex; /* locks shared variables shown above */
|
147
|
+
|
148
|
+
/*
|
149
|
+
* Like flushedUpto, but advanced after writing and before flushing,
|
150
|
+
* without the need to acquire the spin lock. Data can be read by another
|
151
|
+
* process up to this point, but shouldn't be used for data integrity
|
152
|
+
* purposes.
|
153
|
+
*/
|
154
|
+
pg_atomic_uint64 writtenUpto;
|
155
|
+
|
156
|
+
/*
|
157
|
+
* force walreceiver reply? This doesn't need to be locked; memory
|
158
|
+
* barriers for ordering are sufficient. But we do need atomic fetch and
|
159
|
+
* store semantics, so use sig_atomic_t.
|
160
|
+
*/
|
161
|
+
sig_atomic_t force_reply; /* used as a bool */
|
162
|
+
} WalRcvData;
|
163
|
+
|
164
|
+
extern PGDLLIMPORT WalRcvData *WalRcv;
|
165
|
+
|
166
|
+
typedef struct
|
167
|
+
{
|
168
|
+
bool logical; /* True if this is logical replication stream,
|
169
|
+
* false if physical stream. */
|
170
|
+
char *slotname; /* Name of the replication slot or NULL. */
|
171
|
+
XLogRecPtr startpoint; /* LSN of starting point. */
|
172
|
+
|
173
|
+
union
|
174
|
+
{
|
175
|
+
struct
|
176
|
+
{
|
177
|
+
TimeLineID startpointTLI; /* Starting timeline */
|
178
|
+
} physical;
|
179
|
+
struct
|
180
|
+
{
|
181
|
+
uint32 proto_version; /* Logical protocol version */
|
182
|
+
List *publication_names; /* String list of publications */
|
183
|
+
bool binary; /* Ask publisher to use binary */
|
184
|
+
char *streaming_str; /* Streaming of large transactions */
|
185
|
+
bool twophase; /* Streaming of two-phase transactions at
|
186
|
+
* prepare time */
|
187
|
+
char *origin; /* Only publish data originating from the
|
188
|
+
* specified origin */
|
189
|
+
} logical;
|
190
|
+
} proto;
|
191
|
+
} WalRcvStreamOptions;
|
192
|
+
|
193
|
+
struct WalReceiverConn;
|
194
|
+
typedef struct WalReceiverConn WalReceiverConn;
|
195
|
+
|
196
|
+
/*
|
197
|
+
* Status of walreceiver query execution.
|
198
|
+
*
|
199
|
+
* We only define statuses that are currently used.
|
200
|
+
*/
|
201
|
+
typedef enum
|
202
|
+
{
|
203
|
+
WALRCV_ERROR, /* There was error when executing the query. */
|
204
|
+
WALRCV_OK_COMMAND, /* Query executed utility or replication
|
205
|
+
* command. */
|
206
|
+
WALRCV_OK_TUPLES, /* Query returned tuples. */
|
207
|
+
WALRCV_OK_COPY_IN, /* Query started COPY FROM. */
|
208
|
+
WALRCV_OK_COPY_OUT, /* Query started COPY TO. */
|
209
|
+
WALRCV_OK_COPY_BOTH, /* Query started COPY BOTH replication
|
210
|
+
* protocol. */
|
211
|
+
} WalRcvExecStatus;
|
212
|
+
|
213
|
+
/*
|
214
|
+
* Return value for walrcv_exec, returns the status of the execution and
|
215
|
+
* tuples if any.
|
216
|
+
*/
|
217
|
+
typedef struct WalRcvExecResult
|
218
|
+
{
|
219
|
+
WalRcvExecStatus status;
|
220
|
+
int sqlstate;
|
221
|
+
char *err;
|
222
|
+
Tuplestorestate *tuplestore;
|
223
|
+
TupleDesc tupledesc;
|
224
|
+
} WalRcvExecResult;
|
225
|
+
|
226
|
+
/* WAL receiver - libpqwalreceiver hooks */
|
227
|
+
|
228
|
+
/*
|
229
|
+
* walrcv_connect_fn
|
230
|
+
*
|
231
|
+
* Establish connection to a cluster. 'replication' is true if the
|
232
|
+
* connection is a replication connection, and false if it is a
|
233
|
+
* regular connection. If it is a replication connection, it could
|
234
|
+
* be either logical or physical based on input argument 'logical'.
|
235
|
+
* 'appname' is a name associated to the connection, to use for example
|
236
|
+
* with fallback_application_name or application_name. Returns the
|
237
|
+
* details about the connection established, as defined by
|
238
|
+
* WalReceiverConn for each WAL receiver module. On error, NULL is
|
239
|
+
* returned with 'err' including the error generated.
|
240
|
+
*/
|
241
|
+
typedef WalReceiverConn *(*walrcv_connect_fn) (const char *conninfo,
|
242
|
+
bool replication,
|
243
|
+
bool logical,
|
244
|
+
bool must_use_password,
|
245
|
+
const char *appname,
|
246
|
+
char **err);
|
247
|
+
|
248
|
+
/*
|
249
|
+
* walrcv_check_conninfo_fn
|
250
|
+
*
|
251
|
+
* Parse and validate the connection string given as of 'conninfo'.
|
252
|
+
*/
|
253
|
+
typedef void (*walrcv_check_conninfo_fn) (const char *conninfo,
|
254
|
+
bool must_use_password);
|
255
|
+
|
256
|
+
/*
|
257
|
+
* walrcv_get_conninfo_fn
|
258
|
+
*
|
259
|
+
* Returns a user-displayable conninfo string. Note that any
|
260
|
+
* security-sensitive fields should be obfuscated.
|
261
|
+
*/
|
262
|
+
typedef char *(*walrcv_get_conninfo_fn) (WalReceiverConn *conn);
|
263
|
+
|
264
|
+
/*
|
265
|
+
* walrcv_get_senderinfo_fn
|
266
|
+
*
|
267
|
+
* Provide information of the WAL sender this WAL receiver is connected
|
268
|
+
* to, as of 'sender_host' for the host of the sender and 'sender_port'
|
269
|
+
* for its port.
|
270
|
+
*/
|
271
|
+
typedef void (*walrcv_get_senderinfo_fn) (WalReceiverConn *conn,
|
272
|
+
char **sender_host,
|
273
|
+
int *sender_port);
|
274
|
+
|
275
|
+
/*
|
276
|
+
* walrcv_identify_system_fn
|
277
|
+
*
|
278
|
+
* Run IDENTIFY_SYSTEM on the cluster connected to and validate the
|
279
|
+
* identity of the cluster. Returns the system ID of the cluster
|
280
|
+
* connected to. 'primary_tli' is the timeline ID of the sender.
|
281
|
+
*/
|
282
|
+
typedef char *(*walrcv_identify_system_fn) (WalReceiverConn *conn,
|
283
|
+
TimeLineID *primary_tli);
|
284
|
+
|
285
|
+
/*
|
286
|
+
* walrcv_get_dbname_from_conninfo_fn
|
287
|
+
*
|
288
|
+
* Returns the database name from the primary_conninfo
|
289
|
+
*/
|
290
|
+
typedef char *(*walrcv_get_dbname_from_conninfo_fn) (const char *conninfo);
|
291
|
+
|
292
|
+
/*
|
293
|
+
* walrcv_server_version_fn
|
294
|
+
*
|
295
|
+
* Returns the version number of the cluster connected to.
|
296
|
+
*/
|
297
|
+
typedef int (*walrcv_server_version_fn) (WalReceiverConn *conn);
|
298
|
+
|
299
|
+
/*
|
300
|
+
* walrcv_readtimelinehistoryfile_fn
|
301
|
+
*
|
302
|
+
* Fetch from cluster the timeline history file for timeline 'tli'.
|
303
|
+
* Returns the name of the timeline history file as of 'filename', its
|
304
|
+
* contents as of 'content' and its 'size'.
|
305
|
+
*/
|
306
|
+
typedef void (*walrcv_readtimelinehistoryfile_fn) (WalReceiverConn *conn,
|
307
|
+
TimeLineID tli,
|
308
|
+
char **filename,
|
309
|
+
char **content,
|
310
|
+
int *size);
|
311
|
+
|
312
|
+
/*
|
313
|
+
* walrcv_startstreaming_fn
|
314
|
+
*
|
315
|
+
* Start streaming WAL data from given streaming options. Returns true
|
316
|
+
* if the connection has switched successfully to copy-both mode and false
|
317
|
+
* if the server received the command and executed it successfully, but
|
318
|
+
* didn't switch to copy-mode.
|
319
|
+
*/
|
320
|
+
typedef bool (*walrcv_startstreaming_fn) (WalReceiverConn *conn,
|
321
|
+
const WalRcvStreamOptions *options);
|
322
|
+
|
323
|
+
/*
|
324
|
+
* walrcv_endstreaming_fn
|
325
|
+
*
|
326
|
+
* Stop streaming of WAL data. Returns the next timeline ID of the cluster
|
327
|
+
* connected to in 'next_tli', or 0 if there was no report.
|
328
|
+
*/
|
329
|
+
typedef void (*walrcv_endstreaming_fn) (WalReceiverConn *conn,
|
330
|
+
TimeLineID *next_tli);
|
331
|
+
|
332
|
+
/*
|
333
|
+
* walrcv_receive_fn
|
334
|
+
*
|
335
|
+
* Receive a message available from the WAL stream. 'buffer' is a pointer
|
336
|
+
* to a buffer holding the message received. Returns the length of the data,
|
337
|
+
* 0 if no data is available yet ('wait_fd' is a socket descriptor which can
|
338
|
+
* be waited on before a retry), and -1 if the cluster ended the COPY.
|
339
|
+
*/
|
340
|
+
typedef int (*walrcv_receive_fn) (WalReceiverConn *conn,
|
341
|
+
char **buffer,
|
342
|
+
pgsocket *wait_fd);
|
343
|
+
|
344
|
+
/*
|
345
|
+
* walrcv_send_fn
|
346
|
+
*
|
347
|
+
* Send a message of size 'nbytes' to the WAL stream with 'buffer' as
|
348
|
+
* contents.
|
349
|
+
*/
|
350
|
+
typedef void (*walrcv_send_fn) (WalReceiverConn *conn,
|
351
|
+
const char *buffer,
|
352
|
+
int nbytes);
|
353
|
+
|
354
|
+
/*
|
355
|
+
* walrcv_create_slot_fn
|
356
|
+
*
|
357
|
+
* Create a new replication slot named 'slotname'. 'temporary' defines
|
358
|
+
* if the slot is temporary. 'snapshot_action' defines the behavior wanted
|
359
|
+
* for an exported snapshot (see replication protocol for more details).
|
360
|
+
* 'lsn' includes the LSN position at which the created slot became
|
361
|
+
* consistent. Returns the name of the exported snapshot for a logical
|
362
|
+
* slot, or NULL for a physical slot.
|
363
|
+
*/
|
364
|
+
typedef char *(*walrcv_create_slot_fn) (WalReceiverConn *conn,
|
365
|
+
const char *slotname,
|
366
|
+
bool temporary,
|
367
|
+
bool two_phase,
|
368
|
+
bool failover,
|
369
|
+
CRSSnapshotAction snapshot_action,
|
370
|
+
XLogRecPtr *lsn);
|
371
|
+
|
372
|
+
/*
|
373
|
+
* walrcv_alter_slot_fn
|
374
|
+
*
|
375
|
+
* Change the definition of a replication slot. Currently, it only supports
|
376
|
+
* changing the failover property of the slot.
|
377
|
+
*/
|
378
|
+
typedef void (*walrcv_alter_slot_fn) (WalReceiverConn *conn,
|
379
|
+
const char *slotname,
|
380
|
+
bool failover);
|
381
|
+
|
382
|
+
/*
|
383
|
+
* walrcv_get_backend_pid_fn
|
384
|
+
*
|
385
|
+
* Returns the PID of the remote backend process.
|
386
|
+
*/
|
387
|
+
typedef pid_t (*walrcv_get_backend_pid_fn) (WalReceiverConn *conn);
|
388
|
+
|
389
|
+
/*
|
390
|
+
* walrcv_exec_fn
|
391
|
+
*
|
392
|
+
* Send generic queries (and commands) to the remote cluster. 'nRetTypes'
|
393
|
+
* is the expected number of returned attributes, and 'retTypes' an array
|
394
|
+
* including their type OIDs. Returns the status of the execution and
|
395
|
+
* tuples if any.
|
396
|
+
*/
|
397
|
+
typedef WalRcvExecResult *(*walrcv_exec_fn) (WalReceiverConn *conn,
|
398
|
+
const char *query,
|
399
|
+
const int nRetTypes,
|
400
|
+
const Oid *retTypes);
|
401
|
+
|
402
|
+
/*
|
403
|
+
* walrcv_disconnect_fn
|
404
|
+
*
|
405
|
+
* Disconnect with the cluster.
|
406
|
+
*/
|
407
|
+
typedef void (*walrcv_disconnect_fn) (WalReceiverConn *conn);
|
408
|
+
|
409
|
+
typedef struct WalReceiverFunctionsType
|
410
|
+
{
|
411
|
+
walrcv_connect_fn walrcv_connect;
|
412
|
+
walrcv_check_conninfo_fn walrcv_check_conninfo;
|
413
|
+
walrcv_get_conninfo_fn walrcv_get_conninfo;
|
414
|
+
walrcv_get_senderinfo_fn walrcv_get_senderinfo;
|
415
|
+
walrcv_identify_system_fn walrcv_identify_system;
|
416
|
+
walrcv_get_dbname_from_conninfo_fn walrcv_get_dbname_from_conninfo;
|
417
|
+
walrcv_server_version_fn walrcv_server_version;
|
418
|
+
walrcv_readtimelinehistoryfile_fn walrcv_readtimelinehistoryfile;
|
419
|
+
walrcv_startstreaming_fn walrcv_startstreaming;
|
420
|
+
walrcv_endstreaming_fn walrcv_endstreaming;
|
421
|
+
walrcv_receive_fn walrcv_receive;
|
422
|
+
walrcv_send_fn walrcv_send;
|
423
|
+
walrcv_create_slot_fn walrcv_create_slot;
|
424
|
+
walrcv_alter_slot_fn walrcv_alter_slot;
|
425
|
+
walrcv_get_backend_pid_fn walrcv_get_backend_pid;
|
426
|
+
walrcv_exec_fn walrcv_exec;
|
427
|
+
walrcv_disconnect_fn walrcv_disconnect;
|
428
|
+
} WalReceiverFunctionsType;
|
429
|
+
|
430
|
+
extern PGDLLIMPORT WalReceiverFunctionsType *WalReceiverFunctions;
|
431
|
+
|
432
|
+
#define walrcv_connect(conninfo, replication, logical, must_use_password, appname, err) \
|
433
|
+
WalReceiverFunctions->walrcv_connect(conninfo, replication, logical, must_use_password, appname, err)
|
434
|
+
#define walrcv_check_conninfo(conninfo, must_use_password) \
|
435
|
+
WalReceiverFunctions->walrcv_check_conninfo(conninfo, must_use_password)
|
436
|
+
#define walrcv_get_conninfo(conn) \
|
437
|
+
WalReceiverFunctions->walrcv_get_conninfo(conn)
|
438
|
+
#define walrcv_get_senderinfo(conn, sender_host, sender_port) \
|
439
|
+
WalReceiverFunctions->walrcv_get_senderinfo(conn, sender_host, sender_port)
|
440
|
+
#define walrcv_identify_system(conn, primary_tli) \
|
441
|
+
WalReceiverFunctions->walrcv_identify_system(conn, primary_tli)
|
442
|
+
#define walrcv_get_dbname_from_conninfo(conninfo) \
|
443
|
+
WalReceiverFunctions->walrcv_get_dbname_from_conninfo(conninfo)
|
444
|
+
#define walrcv_server_version(conn) \
|
445
|
+
WalReceiverFunctions->walrcv_server_version(conn)
|
446
|
+
#define walrcv_readtimelinehistoryfile(conn, tli, filename, content, size) \
|
447
|
+
WalReceiverFunctions->walrcv_readtimelinehistoryfile(conn, tli, filename, content, size)
|
448
|
+
#define walrcv_startstreaming(conn, options) \
|
449
|
+
WalReceiverFunctions->walrcv_startstreaming(conn, options)
|
450
|
+
#define walrcv_endstreaming(conn, next_tli) \
|
451
|
+
WalReceiverFunctions->walrcv_endstreaming(conn, next_tli)
|
452
|
+
#define walrcv_receive(conn, buffer, wait_fd) \
|
453
|
+
WalReceiverFunctions->walrcv_receive(conn, buffer, wait_fd)
|
454
|
+
#define walrcv_send(conn, buffer, nbytes) \
|
455
|
+
WalReceiverFunctions->walrcv_send(conn, buffer, nbytes)
|
456
|
+
#define walrcv_create_slot(conn, slotname, temporary, two_phase, failover, snapshot_action, lsn) \
|
457
|
+
WalReceiverFunctions->walrcv_create_slot(conn, slotname, temporary, two_phase, failover, snapshot_action, lsn)
|
458
|
+
#define walrcv_alter_slot(conn, slotname, failover) \
|
459
|
+
WalReceiverFunctions->walrcv_alter_slot(conn, slotname, failover)
|
460
|
+
#define walrcv_get_backend_pid(conn) \
|
461
|
+
WalReceiverFunctions->walrcv_get_backend_pid(conn)
|
462
|
+
#define walrcv_exec(conn, exec, nRetTypes, retTypes) \
|
463
|
+
WalReceiverFunctions->walrcv_exec(conn, exec, nRetTypes, retTypes)
|
464
|
+
#define walrcv_disconnect(conn) \
|
465
|
+
WalReceiverFunctions->walrcv_disconnect(conn)
|
466
|
+
|
467
|
+
static inline void
|
468
|
+
walrcv_clear_result(WalRcvExecResult *walres)
|
469
|
+
{
|
470
|
+
if (!walres)
|
471
|
+
return;
|
472
|
+
|
473
|
+
if (walres->err)
|
474
|
+
pfree(walres->err);
|
475
|
+
|
476
|
+
if (walres->tuplestore)
|
477
|
+
tuplestore_end(walres->tuplestore);
|
478
|
+
|
479
|
+
if (walres->tupledesc)
|
480
|
+
FreeTupleDesc(walres->tupledesc);
|
481
|
+
|
482
|
+
pfree(walres);
|
483
|
+
}
|
484
|
+
|
485
|
+
/* prototypes for functions in walreceiver.c */
|
486
|
+
extern void WalReceiverMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
487
|
+
extern void ProcessWalRcvInterrupts(void);
|
488
|
+
extern void WalRcvForceReply(void);
|
489
|
+
|
490
|
+
/* prototypes for functions in walreceiverfuncs.c */
|
491
|
+
extern Size WalRcvShmemSize(void);
|
492
|
+
extern void WalRcvShmemInit(void);
|
493
|
+
extern void ShutdownWalRcv(void);
|
494
|
+
extern bool WalRcvStreaming(void);
|
495
|
+
extern bool WalRcvRunning(void);
|
496
|
+
extern void RequestXLogStreaming(TimeLineID tli, XLogRecPtr recptr,
|
497
|
+
const char *conninfo, const char *slotname,
|
498
|
+
bool create_temp_slot);
|
499
|
+
extern XLogRecPtr GetWalRcvFlushRecPtr(XLogRecPtr *latestChunkStart, TimeLineID *receiveTLI);
|
500
|
+
extern XLogRecPtr GetWalRcvWriteRecPtr(void);
|
501
|
+
extern int GetReplicationApplyDelay(void);
|
502
|
+
extern int GetReplicationTransferLatency(void);
|
503
|
+
|
504
|
+
#endif /* _WALRECEIVER_H */
|
@@ -0,0 +1,76 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* walsender.h
|
4
|
+
* Exports from replication/walsender.c.
|
5
|
+
*
|
6
|
+
* Portions Copyright (c) 2010-2024, PostgreSQL Global Development Group
|
7
|
+
*
|
8
|
+
* src/include/replication/walsender.h
|
9
|
+
*
|
10
|
+
*-------------------------------------------------------------------------
|
11
|
+
*/
|
12
|
+
#ifndef _WALSENDER_H
|
13
|
+
#define _WALSENDER_H
|
14
|
+
|
15
|
+
#include "access/xlogdefs.h"
|
16
|
+
|
17
|
+
/*
|
18
|
+
* What to do with a snapshot in create replication slot command.
|
19
|
+
*/
|
20
|
+
typedef enum
|
21
|
+
{
|
22
|
+
CRS_EXPORT_SNAPSHOT,
|
23
|
+
CRS_NOEXPORT_SNAPSHOT,
|
24
|
+
CRS_USE_SNAPSHOT,
|
25
|
+
} CRSSnapshotAction;
|
26
|
+
|
27
|
+
/* global state */
|
28
|
+
extern PGDLLIMPORT bool am_walsender;
|
29
|
+
extern PGDLLIMPORT bool am_cascading_walsender;
|
30
|
+
extern PGDLLIMPORT bool am_db_walsender;
|
31
|
+
extern PGDLLIMPORT bool wake_wal_senders;
|
32
|
+
|
33
|
+
/* user-settable parameters */
|
34
|
+
extern PGDLLIMPORT int max_wal_senders;
|
35
|
+
extern PGDLLIMPORT int wal_sender_timeout;
|
36
|
+
extern PGDLLIMPORT bool log_replication_commands;
|
37
|
+
|
38
|
+
extern void InitWalSender(void);
|
39
|
+
extern bool exec_replication_command(const char *cmd_string);
|
40
|
+
extern void WalSndErrorCleanup(void);
|
41
|
+
extern void WalSndResourceCleanup(bool isCommit);
|
42
|
+
extern void PhysicalWakeupLogicalWalSnd(void);
|
43
|
+
extern XLogRecPtr GetStandbyFlushRecPtr(TimeLineID *tli);
|
44
|
+
extern void WalSndSignals(void);
|
45
|
+
extern Size WalSndShmemSize(void);
|
46
|
+
extern void WalSndShmemInit(void);
|
47
|
+
extern void WalSndWakeup(bool physical, bool logical);
|
48
|
+
extern void WalSndInitStopping(void);
|
49
|
+
extern void WalSndWaitStopping(void);
|
50
|
+
extern void HandleWalSndInitStopping(void);
|
51
|
+
extern void WalSndRqstFileReload(void);
|
52
|
+
|
53
|
+
/*
|
54
|
+
* Remember that we want to wakeup walsenders later
|
55
|
+
*
|
56
|
+
* This is separated from doing the actual wakeup because the writeout is done
|
57
|
+
* while holding contended locks.
|
58
|
+
*/
|
59
|
+
#define WalSndWakeupRequest() \
|
60
|
+
do { wake_wal_senders = true; } while (0)
|
61
|
+
|
62
|
+
/*
|
63
|
+
* wakeup walsenders if there is work to be done
|
64
|
+
*/
|
65
|
+
static inline void
|
66
|
+
WalSndWakeupProcessRequests(bool physical, bool logical)
|
67
|
+
{
|
68
|
+
if (wake_wal_senders)
|
69
|
+
{
|
70
|
+
wake_wal_senders = false;
|
71
|
+
if (max_wal_senders > 0)
|
72
|
+
WalSndWakeup(physical, logical);
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
#endif /* _WALSENDER_H */
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* prs2lock.h
|
4
|
+
* data structures for POSTGRES Rule System II (rewrite rules only)
|
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/rewrite/prs2lock.h
|
10
|
+
*
|
11
|
+
*-------------------------------------------------------------------------
|
12
|
+
*/
|
13
|
+
#ifndef PRS2LOCK_H
|
14
|
+
#define PRS2LOCK_H
|
15
|
+
|
16
|
+
#include "access/attnum.h"
|
17
|
+
#include "nodes/pg_list.h"
|
18
|
+
|
19
|
+
/*
|
20
|
+
* RewriteRule -
|
21
|
+
* holds an info for a rewrite rule
|
22
|
+
*
|
23
|
+
*/
|
24
|
+
typedef struct RewriteRule
|
25
|
+
{
|
26
|
+
Oid ruleId;
|
27
|
+
CmdType event;
|
28
|
+
Node *qual;
|
29
|
+
List *actions;
|
30
|
+
char enabled;
|
31
|
+
bool isInstead;
|
32
|
+
} RewriteRule;
|
33
|
+
|
34
|
+
/*
|
35
|
+
* RuleLock -
|
36
|
+
* all rules that apply to a particular relation. Even though we only
|
37
|
+
* have the rewrite rule system left and these are not really "locks",
|
38
|
+
* the name is kept for historical reasons.
|
39
|
+
*/
|
40
|
+
typedef struct RuleLock
|
41
|
+
{
|
42
|
+
int numLocks;
|
43
|
+
RewriteRule **rules;
|
44
|
+
} RuleLock;
|
45
|
+
|
46
|
+
#endif /* PRS2LOCK_H */
|
@@ -0,0 +1,41 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* rewriteHandler.h
|
4
|
+
* External interface to query rewriter.
|
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/rewrite/rewriteHandler.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef REWRITEHANDLER_H
|
15
|
+
#define REWRITEHANDLER_H
|
16
|
+
|
17
|
+
#include "nodes/parsenodes.h"
|
18
|
+
#include "utils/relcache.h"
|
19
|
+
|
20
|
+
extern List *QueryRewrite(Query *parsetree);
|
21
|
+
extern void AcquireRewriteLocks(Query *parsetree,
|
22
|
+
bool forExecute,
|
23
|
+
bool forUpdatePushedDown);
|
24
|
+
|
25
|
+
extern Node *build_column_default(Relation rel, int attrno);
|
26
|
+
|
27
|
+
extern Query *get_view_query(Relation view);
|
28
|
+
extern bool view_has_instead_trigger(Relation view, CmdType event,
|
29
|
+
List *mergeActionList);
|
30
|
+
extern const char *view_query_is_auto_updatable(Query *viewquery,
|
31
|
+
bool check_cols);
|
32
|
+
extern int relation_is_updatable(Oid reloid,
|
33
|
+
List *outer_reloids,
|
34
|
+
bool include_triggers,
|
35
|
+
Bitmapset *include_cols);
|
36
|
+
extern void error_view_not_updatable(Relation view,
|
37
|
+
CmdType command,
|
38
|
+
List *mergeActionList,
|
39
|
+
const char *detail);
|
40
|
+
|
41
|
+
#endif /* REWRITEHANDLER_H */
|