pg_query 2.1.0 → 4.2.1
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 +104 -0
- data/README.md +59 -31
- data/Rakefile +2 -2
- data/ext/pg_query/extconf.rb +8 -2
- data/ext/pg_query/include/access/amapi.h +45 -1
- data/ext/pg_query/include/access/attmap.h +1 -1
- data/ext/pg_query/include/access/attnum.h +2 -2
- data/ext/pg_query/include/access/clog.h +4 -2
- data/ext/pg_query/include/access/commit_ts.h +6 -9
- data/ext/pg_query/include/access/detoast.h +1 -11
- data/ext/pg_query/include/access/genam.h +15 -12
- data/ext/pg_query/include/access/gin.h +2 -2
- data/ext/pg_query/include/access/htup.h +1 -1
- data/ext/pg_query/include/access/htup_details.h +75 -87
- data/ext/pg_query/include/access/itup.h +7 -1
- data/ext/pg_query/include/access/parallel.h +2 -2
- data/ext/pg_query/include/access/printtup.h +1 -1
- data/ext/pg_query/include/access/relation.h +1 -1
- data/ext/pg_query/include/access/relscan.h +17 -2
- data/ext/pg_query/include/access/rmgr.h +30 -3
- data/ext/pg_query/include/access/rmgrlist.h +23 -23
- data/ext/pg_query/include/access/sdir.h +1 -1
- data/ext/pg_query/include/access/skey.h +1 -1
- data/ext/pg_query/include/access/stratnum.h +4 -2
- data/ext/pg_query/include/access/sysattr.h +1 -1
- data/ext/pg_query/include/access/table.h +2 -1
- data/ext/pg_query/include/access/tableam.h +272 -20
- data/ext/pg_query/include/access/toast_compression.h +73 -0
- data/ext/pg_query/include/access/transam.h +123 -13
- data/ext/pg_query/include/access/tupconvert.h +1 -1
- data/ext/pg_query/include/access/tupdesc.h +1 -1
- data/ext/pg_query/include/access/tupmacs.h +3 -3
- data/ext/pg_query/include/access/twophase.h +5 -1
- data/ext/pg_query/include/access/xact.h +79 -19
- data/ext/pg_query/include/access/xlog.h +60 -155
- data/ext/pg_query/include/access/xlog_internal.h +50 -14
- data/ext/pg_query/include/access/xlogdefs.h +8 -16
- data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/access/xlogreader.h +148 -32
- data/ext/pg_query/include/access/xlogrecord.h +18 -9
- data/ext/pg_query/include/access/xlogrecovery.h +157 -0
- data/ext/pg_query/include/c.h +101 -44
- data/ext/pg_query/include/catalog/catalog.h +3 -1
- data/ext/pg_query/include/catalog/catversion.h +2 -2
- data/ext/pg_query/include/catalog/dependency.h +10 -16
- data/ext/pg_query/include/catalog/genbki.h +83 -5
- data/ext/pg_query/include/catalog/index.h +18 -3
- data/ext/pg_query/include/catalog/indexing.h +12 -324
- data/ext/pg_query/include/catalog/namespace.h +4 -2
- data/ext/pg_query/include/catalog/objectaccess.h +70 -2
- data/ext/pg_query/include/catalog/objectaddress.h +11 -6
- data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_am.h +4 -1
- data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
- data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
- data/ext/pg_query/include/catalog/pg_authid.h +7 -2
- data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
- data/ext/pg_query/include/catalog/pg_class.h +45 -15
- data/ext/pg_query/include/catalog/pg_class_d.h +31 -2
- data/ext/pg_query/include/catalog/pg_collation.h +33 -8
- data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
- data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
- data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
- data/ext/pg_query/include/catalog/pg_control.h +5 -5
- data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
- data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
- data/ext/pg_query/include/catalog/pg_depend.h +11 -7
- data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_index.h +17 -7
- data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
- data/ext/pg_query/include/catalog/pg_language.h +10 -5
- data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
- data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
- data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_operator.h +21 -16
- data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
- data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_proc.h +20 -11
- data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
- data/ext/pg_query/include/catalog/pg_publication.h +50 -4
- data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
- data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
- data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
- data/ext/pg_query/include/catalog/pg_transform.h +8 -5
- data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
- data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
- data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_type.h +56 -24
- data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
- data/ext/pg_query/include/catalog/storage.h +5 -3
- data/ext/pg_query/include/commands/async.h +4 -5
- data/ext/pg_query/include/commands/dbcommands.h +2 -1
- data/ext/pg_query/include/commands/defrem.h +11 -24
- data/ext/pg_query/include/commands/event_trigger.h +2 -2
- data/ext/pg_query/include/commands/explain.h +1 -1
- data/ext/pg_query/include/commands/prepare.h +1 -1
- data/ext/pg_query/include/commands/tablespace.h +3 -1
- data/ext/pg_query/include/commands/trigger.h +27 -17
- data/ext/pg_query/include/commands/user.h +2 -2
- data/ext/pg_query/include/commands/vacuum.h +88 -41
- data/ext/pg_query/include/commands/variable.h +1 -1
- data/ext/pg_query/include/common/file_perm.h +4 -4
- data/ext/pg_query/include/common/hashfn.h +1 -1
- data/ext/pg_query/include/common/ip.h +1 -7
- data/ext/pg_query/include/common/keywords.h +2 -6
- data/ext/pg_query/include/common/kwlookup.h +1 -1
- data/ext/pg_query/include/common/pg_prng.h +60 -0
- data/ext/pg_query/include/common/relpath.h +2 -2
- data/ext/pg_query/include/common/string.h +24 -1
- data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
- data/ext/pg_query/include/datatype/timestamp.h +40 -1
- data/ext/pg_query/include/executor/execdesc.h +1 -1
- data/ext/pg_query/include/executor/executor.h +65 -22
- data/ext/pg_query/include/executor/functions.h +17 -3
- data/ext/pg_query/include/executor/instrument.h +33 -16
- data/ext/pg_query/include/executor/spi.h +41 -3
- data/ext/pg_query/include/executor/tablefunc.h +1 -1
- data/ext/pg_query/include/executor/tuptable.h +1 -1
- data/ext/pg_query/include/fmgr.h +13 -7
- data/ext/pg_query/include/funcapi.h +16 -4
- data/ext/pg_query/include/getaddrinfo.h +1 -1
- data/ext/pg_query/include/jit/jit.h +11 -11
- data/ext/pg_query/include/kwlist_d.h +517 -494
- data/ext/pg_query/include/lib/dshash.h +112 -0
- data/ext/pg_query/include/lib/ilist.h +20 -1
- data/ext/pg_query/include/lib/pairingheap.h +1 -1
- data/ext/pg_query/include/lib/simplehash.h +150 -25
- data/ext/pg_query/include/lib/sort_template.h +432 -0
- data/ext/pg_query/include/lib/stringinfo.h +1 -1
- data/ext/pg_query/include/libpq/auth.h +6 -4
- data/ext/pg_query/include/libpq/crypt.h +5 -4
- data/ext/pg_query/include/libpq/hba.h +43 -4
- data/ext/pg_query/include/libpq/libpq-be.h +23 -6
- data/ext/pg_query/include/libpq/libpq.h +31 -20
- data/ext/pg_query/include/libpq/pqcomm.h +17 -31
- data/ext/pg_query/include/libpq/pqformat.h +1 -1
- data/ext/pg_query/include/libpq/pqsignal.h +4 -4
- data/ext/pg_query/include/mb/pg_wchar.h +106 -23
- data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/miscadmin.h +71 -52
- data/ext/pg_query/include/nodes/bitmapset.h +1 -1
- data/ext/pg_query/include/nodes/execnodes.h +272 -80
- data/ext/pg_query/include/nodes/extensible.h +4 -2
- data/ext/pg_query/include/nodes/lockoptions.h +1 -1
- data/ext/pg_query/include/nodes/makefuncs.h +7 -6
- data/ext/pg_query/include/nodes/memnodes.h +5 -3
- data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
- data/ext/pg_query/include/nodes/nodes.h +30 -11
- data/ext/pg_query/include/nodes/params.h +1 -1
- data/ext/pg_query/include/nodes/parsenodes.h +327 -94
- data/ext/pg_query/include/nodes/pathnodes.h +245 -67
- data/ext/pg_query/include/nodes/pg_list.h +75 -68
- data/ext/pg_query/include/nodes/plannodes.h +128 -30
- data/ext/pg_query/include/nodes/primnodes.h +99 -47
- data/ext/pg_query/include/nodes/print.h +1 -1
- data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
- data/ext/pg_query/include/nodes/value.h +58 -39
- data/ext/pg_query/include/optimizer/cost.h +9 -2
- data/ext/pg_query/include/optimizer/geqo.h +9 -7
- data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
- data/ext/pg_query/include/optimizer/optimizer.h +25 -22
- data/ext/pg_query/include/optimizer/paths.h +6 -6
- data/ext/pg_query/include/optimizer/planmain.h +15 -14
- data/ext/pg_query/include/parser/analyze.h +19 -5
- data/ext/pg_query/include/parser/gram.h +947 -913
- data/ext/pg_query/include/parser/gramparse.h +1 -1
- data/ext/pg_query/include/parser/kwlist.h +463 -453
- data/ext/pg_query/include/parser/parse_agg.h +2 -7
- data/ext/pg_query/include/parser/parse_coerce.h +4 -1
- data/ext/pg_query/include/parser/parse_expr.h +2 -3
- data/ext/pg_query/include/parser/parse_func.h +2 -1
- data/ext/pg_query/include/parser/parse_node.h +21 -9
- data/ext/pg_query/include/parser/parse_oper.h +1 -3
- data/ext/pg_query/include/parser/parse_relation.h +5 -4
- data/ext/pg_query/include/parser/parse_type.h +1 -1
- data/ext/pg_query/include/parser/parser.h +31 -4
- data/ext/pg_query/include/parser/parsetree.h +1 -1
- data/ext/pg_query/include/parser/scanner.h +1 -1
- data/ext/pg_query/include/parser/scansup.h +2 -5
- data/ext/pg_query/include/partitioning/partdefs.h +1 -1
- data/ext/pg_query/include/pg_config.h +94 -46
- data/ext/pg_query/include/pg_config_manual.h +74 -21
- data/ext/pg_query/include/pg_getopt.h +6 -6
- data/ext/pg_query/include/pg_query.h +5 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +1220 -422
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +152 -26
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +174 -30
- data/ext/pg_query/include/pg_trace.h +1 -1
- data/ext/pg_query/include/pgstat.h +449 -1237
- data/ext/pg_query/include/pgtime.h +14 -4
- data/ext/pg_query/include/pl_gram.h +126 -128
- data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
- data/ext/pg_query/include/plerrcodes.h +9 -1
- data/ext/pg_query/include/plpgsql.h +52 -54
- data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
- data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
- data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
- data/ext/pg_query/include/port/atomics/fallback.h +1 -1
- data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
- data/ext/pg_query/include/port/atomics/generic.h +1 -1
- data/ext/pg_query/include/port/atomics.h +1 -1
- data/ext/pg_query/include/port/pg_bitutils.h +88 -12
- data/ext/pg_query/include/port/pg_bswap.h +1 -1
- data/ext/pg_query/include/port/pg_crc32c.h +1 -1
- data/ext/pg_query/include/port.h +72 -43
- data/ext/pg_query/include/portability/instr_time.h +1 -1
- data/ext/pg_query/include/postgres.h +60 -16
- data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
- data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
- data/ext/pg_query/include/postmaster/bgworker.h +2 -1
- data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
- data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
- data/ext/pg_query/include/postmaster/fork_process.h +1 -1
- data/ext/pg_query/include/postmaster/interrupt.h +1 -1
- data/ext/pg_query/include/postmaster/pgarch.h +42 -8
- data/ext/pg_query/include/postmaster/postmaster.h +18 -17
- data/ext/pg_query/include/postmaster/startup.h +39 -0
- data/ext/pg_query/include/postmaster/syslogger.h +15 -10
- data/ext/pg_query/include/postmaster/walwriter.h +3 -3
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1422 -916
- data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
- data/ext/pg_query/include/regex/regex.h +18 -16
- data/ext/pg_query/include/replication/logicallauncher.h +3 -5
- data/ext/pg_query/include/replication/logicalproto.h +161 -17
- data/ext/pg_query/include/replication/logicalworker.h +1 -1
- data/ext/pg_query/include/replication/origin.h +7 -7
- data/ext/pg_query/include/replication/reorderbuffer.h +262 -44
- data/ext/pg_query/include/replication/slot.h +23 -12
- data/ext/pg_query/include/replication/syncrep.h +5 -5
- data/ext/pg_query/include/replication/walreceiver.h +145 -13
- data/ext/pg_query/include/replication/walsender.h +8 -8
- data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
- data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
- data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
- data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
- data/ext/pg_query/include/storage/backendid.h +3 -3
- data/ext/pg_query/include/storage/block.h +4 -10
- data/ext/pg_query/include/storage/buf.h +1 -1
- data/ext/pg_query/include/storage/bufmgr.h +19 -14
- data/ext/pg_query/include/storage/bufpage.h +6 -8
- data/ext/pg_query/include/storage/condition_variable.h +13 -2
- data/ext/pg_query/include/storage/dsm.h +4 -1
- data/ext/pg_query/include/storage/dsm_impl.h +3 -2
- data/ext/pg_query/include/storage/fd.h +33 -3
- data/ext/pg_query/include/storage/fileset.h +40 -0
- data/ext/pg_query/include/storage/ipc.h +4 -1
- data/ext/pg_query/include/storage/item.h +1 -1
- data/ext/pg_query/include/storage/itemid.h +1 -1
- data/ext/pg_query/include/storage/itemptr.h +3 -1
- data/ext/pg_query/include/storage/large_object.h +2 -2
- data/ext/pg_query/include/storage/latch.h +9 -13
- data/ext/pg_query/include/storage/lmgr.h +2 -1
- data/ext/pg_query/include/storage/lock.h +17 -13
- data/ext/pg_query/include/storage/lockdefs.h +2 -2
- data/ext/pg_query/include/storage/lwlock.h +6 -32
- data/ext/pg_query/include/storage/lwlocknames.h +0 -1
- data/ext/pg_query/include/storage/off.h +1 -1
- data/ext/pg_query/include/storage/pg_sema.h +1 -1
- data/ext/pg_query/include/storage/pg_shmem.h +9 -7
- data/ext/pg_query/include/storage/pmsignal.h +15 -4
- data/ext/pg_query/include/storage/predicate.h +4 -4
- data/ext/pg_query/include/storage/proc.h +183 -55
- data/ext/pg_query/include/storage/procarray.h +98 -0
- data/ext/pg_query/include/storage/proclist_types.h +1 -1
- data/ext/pg_query/include/storage/procsignal.h +3 -7
- data/ext/pg_query/include/storage/relfilenode.h +1 -1
- data/ext/pg_query/include/storage/s_lock.h +67 -4
- data/ext/pg_query/include/storage/sharedfileset.h +3 -11
- data/ext/pg_query/include/storage/shm_mq.h +5 -4
- data/ext/pg_query/include/storage/shm_toc.h +1 -1
- data/ext/pg_query/include/storage/shmem.h +1 -1
- data/ext/pg_query/include/storage/sinval.h +3 -3
- data/ext/pg_query/include/storage/sinvaladt.h +1 -1
- data/ext/pg_query/include/storage/smgr.h +10 -8
- data/ext/pg_query/include/storage/spin.h +2 -2
- data/ext/pg_query/include/storage/standby.h +13 -6
- data/ext/pg_query/include/storage/standbydefs.h +2 -2
- data/ext/pg_query/include/storage/sync.h +7 -3
- data/ext/pg_query/include/tcop/cmdtag.h +1 -1
- data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
- data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
- data/ext/pg_query/include/tcop/dest.h +1 -1
- data/ext/pg_query/include/tcop/fastpath.h +1 -2
- data/ext/pg_query/include/tcop/pquery.h +7 -1
- data/ext/pg_query/include/tcop/tcopprot.h +19 -11
- data/ext/pg_query/include/tcop/utility.h +7 -3
- data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
- data/ext/pg_query/include/utils/acl.h +24 -3
- data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
- data/ext/pg_query/include/utils/array.h +7 -2
- data/ext/pg_query/include/utils/backend_progress.h +44 -0
- data/ext/pg_query/include/utils/backend_status.h +321 -0
- data/ext/pg_query/include/utils/builtins.h +11 -11
- data/ext/pg_query/include/utils/bytea.h +3 -2
- data/ext/pg_query/include/utils/catcache.h +1 -1
- data/ext/pg_query/include/utils/date.h +1 -1
- data/ext/pg_query/include/utils/datetime.h +8 -7
- data/ext/pg_query/include/utils/datum.h +9 -1
- data/ext/pg_query/include/utils/dsa.h +1 -1
- data/ext/pg_query/include/utils/dynahash.h +4 -3
- data/ext/pg_query/include/utils/elog.h +52 -21
- data/ext/pg_query/include/utils/errcodes.h +2 -0
- data/ext/pg_query/include/utils/expandeddatum.h +1 -1
- data/ext/pg_query/include/utils/expandedrecord.h +1 -1
- data/ext/pg_query/include/utils/float.h +7 -7
- data/ext/pg_query/include/utils/fmgroids.h +1300 -696
- data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
- data/ext/pg_query/include/utils/fmgrtab.h +6 -5
- data/ext/pg_query/include/utils/guc.h +69 -43
- data/ext/pg_query/include/utils/guc_tables.h +23 -19
- data/ext/pg_query/include/utils/hsearch.h +15 -11
- data/ext/pg_query/include/utils/inval.h +5 -1
- data/ext/pg_query/include/utils/lsyscache.h +11 -1
- data/ext/pg_query/include/utils/memdebug.h +1 -1
- data/ext/pg_query/include/utils/memutils.h +8 -3
- data/ext/pg_query/include/utils/numeric.h +19 -5
- data/ext/pg_query/include/utils/palloc.h +25 -3
- data/ext/pg_query/include/utils/partcache.h +1 -1
- data/ext/pg_query/include/utils/pg_locale.h +17 -9
- data/ext/pg_query/include/utils/pg_lsn.h +1 -1
- data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
- data/ext/pg_query/include/utils/pidfile.h +1 -1
- data/ext/pg_query/include/utils/plancache.h +6 -5
- data/ext/pg_query/include/utils/portal.h +12 -1
- data/ext/pg_query/include/utils/ps_status.h +1 -1
- data/ext/pg_query/include/utils/queryenvironment.h +1 -1
- data/ext/pg_query/include/utils/queryjumble.h +88 -0
- data/ext/pg_query/include/utils/regproc.h +14 -3
- data/ext/pg_query/include/utils/rel.h +71 -20
- data/ext/pg_query/include/utils/relcache.h +9 -7
- data/ext/pg_query/include/utils/reltrigger.h +1 -1
- data/ext/pg_query/include/utils/resowner.h +1 -1
- data/ext/pg_query/include/utils/rls.h +2 -2
- data/ext/pg_query/include/utils/ruleutils.h +4 -1
- data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/utils/snapmgr.h +35 -14
- data/ext/pg_query/include/utils/snapshot.h +14 -1
- data/ext/pg_query/include/utils/sortsupport.h +117 -2
- data/ext/pg_query/include/utils/syscache.h +6 -1
- data/ext/pg_query/include/utils/timeout.h +11 -4
- data/ext/pg_query/include/utils/timestamp.h +6 -5
- data/ext/pg_query/include/utils/tuplesort.h +25 -11
- data/ext/pg_query/include/utils/tuplestore.h +2 -2
- data/ext/pg_query/include/utils/typcache.h +24 -17
- data/ext/pg_query/include/utils/tzparser.h +1 -1
- data/ext/pg_query/include/utils/varlena.h +5 -3
- data/ext/pg_query/include/utils/wait_event.h +289 -0
- data/ext/pg_query/include/utils/xml.h +4 -4
- data/ext/pg_query/pg_query.pb-c.c +4318 -2307
- data/ext/pg_query/pg_query_deparse.c +1114 -381
- data/ext/pg_query/pg_query_fingerprint.c +46 -10
- data/ext/pg_query/pg_query_fingerprint.h +3 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +55 -12
- data/ext/pg_query/pg_query_normalize.c +163 -20
- data/ext/pg_query/pg_query_outfuncs.h +1 -0
- data/ext/pg_query/pg_query_outfuncs_json.c +65 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
- data/ext/pg_query/pg_query_parse.c +1 -1
- data/ext/pg_query/pg_query_parse_plpgsql.c +79 -16
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
- data/ext/pg_query/pg_query_ruby.c +1 -1
- data/ext/pg_query/pg_query_scan.c +2 -1
- data/ext/pg_query/pg_query_split.c +3 -2
- data/ext/pg_query/src_backend_catalog_namespace.c +21 -9
- data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
- data/ext/pg_query/src_backend_commands_define.c +11 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +424 -109
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +291 -46
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +86 -11
- data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +33890 -31262
- data/ext/pg_query/src_backend_parser_parser.c +26 -7
- data/ext/pg_query/src_backend_parser_scan.c +644 -441
- data/ext/pg_query/src_backend_parser_scansup.c +4 -28
- data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +73 -24
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
- 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_ruleutils.c +109 -15
- data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
- data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
- data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
- data/ext/pg_query/src_backend_utils_misc_guc.c +207 -45
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
- data/ext/pg_query/src_common_encnames.c +1 -1
- 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 +517 -494
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_pg_prng.c +152 -0
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_string.c +7 -1
- data/ext/pg_query/src_common_stringinfo.c +1 -1
- data/ext/pg_query/src_common_wchar.c +712 -109
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1235 -1261
- 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 +2 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
- data/ext/pg_query/src_port_pg_bitutils.c +41 -52
- data/ext/pg_query/src_port_pgsleep.c +1 -1
- data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +46 -20
- data/ext/pg_query/src_port_strerror.c +9 -19
- data/ext/pg_query/src_port_strnlen.c +1 -1
- data/lib/pg_query/deparse.rb +7 -1
- data/lib/pg_query/filter_columns.rb +6 -4
- data/lib/pg_query/fingerprint.rb +18 -3
- data/lib/pg_query/node.rb +2 -2
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +87 -51
- data/lib/pg_query/pg_query_pb.rb +1109 -942
- data/lib/pg_query/treewalker.rb +6 -0
- data/lib/pg_query/truncate.rb +54 -8
- data/lib/pg_query/version.rb +1 -1
- metadata +29 -18
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_random.c +0 -31
|
@@ -56,21 +56,23 @@ typedef struct
|
|
|
56
56
|
{
|
|
57
57
|
int re_magic; /* magic number */
|
|
58
58
|
size_t re_nsub; /* number of subexpressions */
|
|
59
|
-
long re_info; /*
|
|
60
|
-
#define REG_UBACKREF
|
|
61
|
-
#define REG_ULOOKAROUND
|
|
62
|
-
#define REG_UBOUNDS
|
|
63
|
-
#define REG_UBRACES
|
|
64
|
-
#define REG_UBSALNUM
|
|
65
|
-
#define REG_UPBOTCH
|
|
66
|
-
|
|
67
|
-
#define
|
|
68
|
-
#define
|
|
69
|
-
#define
|
|
70
|
-
|
|
71
|
-
#define
|
|
72
|
-
#define
|
|
73
|
-
#define
|
|
59
|
+
long re_info; /* bitmask of the following flags: */
|
|
60
|
+
#define REG_UBACKREF 000001 /* has back-reference (\n) */
|
|
61
|
+
#define REG_ULOOKAROUND 000002 /* has lookahead/lookbehind constraint */
|
|
62
|
+
#define REG_UBOUNDS 000004 /* has bounded quantifier ({m,n}) */
|
|
63
|
+
#define REG_UBRACES 000010 /* has { that doesn't begin a quantifier */
|
|
64
|
+
#define REG_UBSALNUM 000020 /* has backslash-alphanumeric in non-ARE */
|
|
65
|
+
#define REG_UPBOTCH 000040 /* has unmatched right paren in ERE (legal
|
|
66
|
+
* per spec, but that was a mistake) */
|
|
67
|
+
#define REG_UBBS 000100 /* has backslash within bracket expr */
|
|
68
|
+
#define REG_UNONPOSIX 000200 /* has any construct that extends POSIX */
|
|
69
|
+
#define REG_UUNSPEC 000400 /* has any case disallowed by POSIX, e.g.
|
|
70
|
+
* an empty branch */
|
|
71
|
+
#define REG_UUNPORT 001000 /* has numeric character code dependency */
|
|
72
|
+
#define REG_ULOCALE 002000 /* has locale dependency */
|
|
73
|
+
#define REG_UEMPTYMATCH 004000 /* can match a zero-length string */
|
|
74
|
+
#define REG_UIMPOSSIBLE 010000 /* provably cannot match anything */
|
|
75
|
+
#define REG_USHORTEST 020000 /* has non-greedy quantifier */
|
|
74
76
|
int re_csize; /* sizeof(character) */
|
|
75
77
|
char *re_endp; /* backward compatibility kludge */
|
|
76
78
|
Oid re_collation; /* Collation that defines LC_CTYPE behavior */
|
|
@@ -104,7 +106,7 @@ typedef struct
|
|
|
104
106
|
#define REG_QUOTE 000004 /* no special characters, none */
|
|
105
107
|
#define REG_NOSPEC REG_QUOTE /* historical synonym */
|
|
106
108
|
#define REG_ICASE 000010 /* ignore case */
|
|
107
|
-
#define REG_NOSUB 000020 /*
|
|
109
|
+
#define REG_NOSUB 000020 /* caller doesn't need subexpr match data */
|
|
108
110
|
#define REG_EXPANDED 000040 /* expanded format, white space & comments */
|
|
109
111
|
#define REG_NLSTOP 000100 /* \n doesn't match . or [^ ] */
|
|
110
112
|
#define REG_NLANCH 000200 /* ^ matches after \n, $ before */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* logicallauncher.h
|
|
4
4
|
* Exports for logical replication launcher.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 2016-
|
|
6
|
+
* Portions Copyright (c) 2016-2022, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* src/include/replication/logicallauncher.h
|
|
9
9
|
*
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
#ifndef LOGICALLAUNCHER_H
|
|
13
13
|
#define LOGICALLAUNCHER_H
|
|
14
14
|
|
|
15
|
-
extern int
|
|
16
|
-
extern int
|
|
15
|
+
extern PGDLLIMPORT int max_logical_replication_workers;
|
|
16
|
+
extern PGDLLIMPORT int max_sync_workers_per_subscription;
|
|
17
17
|
|
|
18
18
|
extern void ApplyLauncherRegister(void);
|
|
19
19
|
extern void ApplyLauncherMain(Datum main_arg);
|
|
@@ -22,9 +22,7 @@ extern Size ApplyLauncherShmemSize(void);
|
|
|
22
22
|
extern void ApplyLauncherShmemInit(void);
|
|
23
23
|
|
|
24
24
|
extern void ApplyLauncherWakeupAtCommit(void);
|
|
25
|
-
extern bool XactManipulatesLogicalReplicationWorkers(void);
|
|
26
25
|
extern void AtEOXact_ApplyLauncher(bool isCommit);
|
|
27
|
-
extern void AtEOSubXact_ApplyLauncher(bool isCommit, int nestDepth);
|
|
28
26
|
|
|
29
27
|
extern bool IsLogicalLauncher(void);
|
|
30
28
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* logicalproto.h
|
|
4
4
|
* logical replication protocol
|
|
5
5
|
*
|
|
6
|
-
* Copyright (c) 2015-
|
|
6
|
+
* Copyright (c) 2015-2022, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* IDENTIFICATION
|
|
9
9
|
* src/include/replication/logicalproto.h
|
|
@@ -13,29 +13,86 @@
|
|
|
13
13
|
#ifndef LOGICAL_PROTO_H
|
|
14
14
|
#define LOGICAL_PROTO_H
|
|
15
15
|
|
|
16
|
+
#include "access/xact.h"
|
|
17
|
+
#include "executor/tuptable.h"
|
|
16
18
|
#include "replication/reorderbuffer.h"
|
|
17
19
|
#include "utils/rel.h"
|
|
18
20
|
|
|
19
21
|
/*
|
|
20
22
|
* Protocol capabilities
|
|
21
23
|
*
|
|
22
|
-
* LOGICALREP_PROTO_VERSION_NUM is our native protocol
|
|
23
|
-
*
|
|
24
|
+
* LOGICALREP_PROTO_VERSION_NUM is our native protocol.
|
|
25
|
+
* LOGICALREP_PROTO_MAX_VERSION_NUM is the greatest version we can support.
|
|
26
|
+
* LOGICALREP_PROTO_MIN_VERSION_NUM is the oldest version we
|
|
24
27
|
* have backwards compatibility for. The client requests protocol version at
|
|
25
28
|
* connect time.
|
|
29
|
+
*
|
|
30
|
+
* LOGICALREP_PROTO_STREAM_VERSION_NUM is the minimum protocol version with
|
|
31
|
+
* support for streaming large transactions. Introduced in PG14.
|
|
32
|
+
*
|
|
33
|
+
* LOGICALREP_PROTO_TWOPHASE_VERSION_NUM is the minimum protocol version with
|
|
34
|
+
* support for two-phase commit decoding (at prepare time). Introduced in PG15.
|
|
26
35
|
*/
|
|
27
36
|
#define LOGICALREP_PROTO_MIN_VERSION_NUM 1
|
|
28
37
|
#define LOGICALREP_PROTO_VERSION_NUM 1
|
|
38
|
+
#define LOGICALREP_PROTO_STREAM_VERSION_NUM 2
|
|
39
|
+
#define LOGICALREP_PROTO_TWOPHASE_VERSION_NUM 3
|
|
40
|
+
#define LOGICALREP_PROTO_MAX_VERSION_NUM LOGICALREP_PROTO_TWOPHASE_VERSION_NUM
|
|
41
|
+
|
|
42
|
+
/*
|
|
43
|
+
* Logical message types
|
|
44
|
+
*
|
|
45
|
+
* Used by logical replication wire protocol.
|
|
46
|
+
*
|
|
47
|
+
* Note: though this is an enum, the values are used to identify message types
|
|
48
|
+
* in logical replication protocol, which uses a single byte to identify a
|
|
49
|
+
* message type. Hence the values should be single-byte wide and preferably
|
|
50
|
+
* human-readable characters.
|
|
51
|
+
*/
|
|
52
|
+
typedef enum LogicalRepMsgType
|
|
53
|
+
{
|
|
54
|
+
LOGICAL_REP_MSG_BEGIN = 'B',
|
|
55
|
+
LOGICAL_REP_MSG_COMMIT = 'C',
|
|
56
|
+
LOGICAL_REP_MSG_ORIGIN = 'O',
|
|
57
|
+
LOGICAL_REP_MSG_INSERT = 'I',
|
|
58
|
+
LOGICAL_REP_MSG_UPDATE = 'U',
|
|
59
|
+
LOGICAL_REP_MSG_DELETE = 'D',
|
|
60
|
+
LOGICAL_REP_MSG_TRUNCATE = 'T',
|
|
61
|
+
LOGICAL_REP_MSG_RELATION = 'R',
|
|
62
|
+
LOGICAL_REP_MSG_TYPE = 'Y',
|
|
63
|
+
LOGICAL_REP_MSG_MESSAGE = 'M',
|
|
64
|
+
LOGICAL_REP_MSG_BEGIN_PREPARE = 'b',
|
|
65
|
+
LOGICAL_REP_MSG_PREPARE = 'P',
|
|
66
|
+
LOGICAL_REP_MSG_COMMIT_PREPARED = 'K',
|
|
67
|
+
LOGICAL_REP_MSG_ROLLBACK_PREPARED = 'r',
|
|
68
|
+
LOGICAL_REP_MSG_STREAM_START = 'S',
|
|
69
|
+
LOGICAL_REP_MSG_STREAM_STOP = 'E',
|
|
70
|
+
LOGICAL_REP_MSG_STREAM_COMMIT = 'c',
|
|
71
|
+
LOGICAL_REP_MSG_STREAM_ABORT = 'A',
|
|
72
|
+
LOGICAL_REP_MSG_STREAM_PREPARE = 'p'
|
|
73
|
+
} LogicalRepMsgType;
|
|
29
74
|
|
|
30
|
-
/*
|
|
75
|
+
/*
|
|
76
|
+
* This struct stores a tuple received via logical replication.
|
|
77
|
+
* Keep in mind that the columns correspond to the *remote* table.
|
|
78
|
+
*/
|
|
31
79
|
typedef struct LogicalRepTupleData
|
|
32
80
|
{
|
|
33
|
-
/*
|
|
34
|
-
|
|
35
|
-
/* markers for
|
|
36
|
-
|
|
81
|
+
/* Array of StringInfos, one per column; some may be unused */
|
|
82
|
+
StringInfoData *colvalues;
|
|
83
|
+
/* Array of markers for null/unchanged/text/binary, one per column */
|
|
84
|
+
char *colstatus;
|
|
85
|
+
/* Length of above arrays */
|
|
86
|
+
int ncols;
|
|
37
87
|
} LogicalRepTupleData;
|
|
38
88
|
|
|
89
|
+
/* Possible values for LogicalRepTupleData.colstatus[colnum] */
|
|
90
|
+
/* These values are also used in the on-the-wire protocol */
|
|
91
|
+
#define LOGICALREP_COLUMN_NULL 'n'
|
|
92
|
+
#define LOGICALREP_COLUMN_UNCHANGED 'u'
|
|
93
|
+
#define LOGICALREP_COLUMN_TEXT 't'
|
|
94
|
+
#define LOGICALREP_COLUMN_BINARY 'b' /* added in PG14 */
|
|
95
|
+
|
|
39
96
|
typedef uint32 LogicalRepRelId;
|
|
40
97
|
|
|
41
98
|
/* Relation information */
|
|
@@ -76,6 +133,48 @@ typedef struct LogicalRepCommitData
|
|
|
76
133
|
TimestampTz committime;
|
|
77
134
|
} LogicalRepCommitData;
|
|
78
135
|
|
|
136
|
+
/*
|
|
137
|
+
* Prepared transaction protocol information for begin_prepare, and prepare.
|
|
138
|
+
*/
|
|
139
|
+
typedef struct LogicalRepPreparedTxnData
|
|
140
|
+
{
|
|
141
|
+
XLogRecPtr prepare_lsn;
|
|
142
|
+
XLogRecPtr end_lsn;
|
|
143
|
+
TimestampTz prepare_time;
|
|
144
|
+
TransactionId xid;
|
|
145
|
+
char gid[GIDSIZE];
|
|
146
|
+
} LogicalRepPreparedTxnData;
|
|
147
|
+
|
|
148
|
+
/*
|
|
149
|
+
* Prepared transaction protocol information for commit prepared.
|
|
150
|
+
*/
|
|
151
|
+
typedef struct LogicalRepCommitPreparedTxnData
|
|
152
|
+
{
|
|
153
|
+
XLogRecPtr commit_lsn;
|
|
154
|
+
XLogRecPtr end_lsn;
|
|
155
|
+
TimestampTz commit_time;
|
|
156
|
+
TransactionId xid;
|
|
157
|
+
char gid[GIDSIZE];
|
|
158
|
+
} LogicalRepCommitPreparedTxnData;
|
|
159
|
+
|
|
160
|
+
/*
|
|
161
|
+
* Rollback Prepared transaction protocol information. The prepare information
|
|
162
|
+
* prepare_end_lsn and prepare_time are used to check if the downstream has
|
|
163
|
+
* received this prepared transaction in which case it can apply the rollback,
|
|
164
|
+
* otherwise, it can skip the rollback operation. The gid alone is not
|
|
165
|
+
* sufficient because the downstream node can have a prepared transaction with
|
|
166
|
+
* same identifier.
|
|
167
|
+
*/
|
|
168
|
+
typedef struct LogicalRepRollbackPreparedTxnData
|
|
169
|
+
{
|
|
170
|
+
XLogRecPtr prepare_end_lsn;
|
|
171
|
+
XLogRecPtr rollback_end_lsn;
|
|
172
|
+
TimestampTz prepare_time;
|
|
173
|
+
TimestampTz rollback_time;
|
|
174
|
+
TransactionId xid;
|
|
175
|
+
char gid[GIDSIZE];
|
|
176
|
+
} LogicalRepRollbackPreparedTxnData;
|
|
177
|
+
|
|
79
178
|
extern void logicalrep_write_begin(StringInfo out, ReorderBufferTXN *txn);
|
|
80
179
|
extern void logicalrep_read_begin(StringInfo in,
|
|
81
180
|
LogicalRepBeginData *begin_data);
|
|
@@ -83,28 +182,73 @@ extern void logicalrep_write_commit(StringInfo out, ReorderBufferTXN *txn,
|
|
|
83
182
|
XLogRecPtr commit_lsn);
|
|
84
183
|
extern void logicalrep_read_commit(StringInfo in,
|
|
85
184
|
LogicalRepCommitData *commit_data);
|
|
185
|
+
extern void logicalrep_write_begin_prepare(StringInfo out, ReorderBufferTXN *txn);
|
|
186
|
+
extern void logicalrep_read_begin_prepare(StringInfo in,
|
|
187
|
+
LogicalRepPreparedTxnData *begin_data);
|
|
188
|
+
extern void logicalrep_write_prepare(StringInfo out, ReorderBufferTXN *txn,
|
|
189
|
+
XLogRecPtr prepare_lsn);
|
|
190
|
+
extern void logicalrep_read_prepare(StringInfo in,
|
|
191
|
+
LogicalRepPreparedTxnData *prepare_data);
|
|
192
|
+
extern void logicalrep_write_commit_prepared(StringInfo out, ReorderBufferTXN *txn,
|
|
193
|
+
XLogRecPtr commit_lsn);
|
|
194
|
+
extern void logicalrep_read_commit_prepared(StringInfo in,
|
|
195
|
+
LogicalRepCommitPreparedTxnData *prepare_data);
|
|
196
|
+
extern void logicalrep_write_rollback_prepared(StringInfo out, ReorderBufferTXN *txn,
|
|
197
|
+
XLogRecPtr prepare_end_lsn,
|
|
198
|
+
TimestampTz prepare_time);
|
|
199
|
+
extern void logicalrep_read_rollback_prepared(StringInfo in,
|
|
200
|
+
LogicalRepRollbackPreparedTxnData *rollback_data);
|
|
201
|
+
extern void logicalrep_write_stream_prepare(StringInfo out, ReorderBufferTXN *txn,
|
|
202
|
+
XLogRecPtr prepare_lsn);
|
|
203
|
+
extern void logicalrep_read_stream_prepare(StringInfo in,
|
|
204
|
+
LogicalRepPreparedTxnData *prepare_data);
|
|
205
|
+
|
|
86
206
|
extern void logicalrep_write_origin(StringInfo out, const char *origin,
|
|
87
207
|
XLogRecPtr origin_lsn);
|
|
88
208
|
extern char *logicalrep_read_origin(StringInfo in, XLogRecPtr *origin_lsn);
|
|
89
|
-
extern void logicalrep_write_insert(StringInfo out,
|
|
90
|
-
|
|
209
|
+
extern void logicalrep_write_insert(StringInfo out, TransactionId xid,
|
|
210
|
+
Relation rel,
|
|
211
|
+
TupleTableSlot *newslot,
|
|
212
|
+
bool binary, Bitmapset *columns);
|
|
91
213
|
extern LogicalRepRelId logicalrep_read_insert(StringInfo in, LogicalRepTupleData *newtup);
|
|
92
|
-
extern void logicalrep_write_update(StringInfo out,
|
|
93
|
-
|
|
214
|
+
extern void logicalrep_write_update(StringInfo out, TransactionId xid,
|
|
215
|
+
Relation rel,
|
|
216
|
+
TupleTableSlot *oldslot,
|
|
217
|
+
TupleTableSlot *newslot, bool binary, Bitmapset *columns);
|
|
94
218
|
extern LogicalRepRelId logicalrep_read_update(StringInfo in,
|
|
95
219
|
bool *has_oldtuple, LogicalRepTupleData *oldtup,
|
|
96
220
|
LogicalRepTupleData *newtup);
|
|
97
|
-
extern void logicalrep_write_delete(StringInfo out,
|
|
98
|
-
|
|
221
|
+
extern void logicalrep_write_delete(StringInfo out, TransactionId xid,
|
|
222
|
+
Relation rel, TupleTableSlot *oldtuple,
|
|
223
|
+
bool binary);
|
|
99
224
|
extern LogicalRepRelId logicalrep_read_delete(StringInfo in,
|
|
100
225
|
LogicalRepTupleData *oldtup);
|
|
101
|
-
extern void logicalrep_write_truncate(StringInfo out,
|
|
226
|
+
extern void logicalrep_write_truncate(StringInfo out, TransactionId xid,
|
|
227
|
+
int nrelids, Oid relids[],
|
|
102
228
|
bool cascade, bool restart_seqs);
|
|
103
229
|
extern List *logicalrep_read_truncate(StringInfo in,
|
|
104
230
|
bool *cascade, bool *restart_seqs);
|
|
105
|
-
extern void
|
|
231
|
+
extern void logicalrep_write_message(StringInfo out, TransactionId xid, XLogRecPtr lsn,
|
|
232
|
+
bool transactional, const char *prefix, Size sz, const char *message);
|
|
233
|
+
extern void logicalrep_write_rel(StringInfo out, TransactionId xid,
|
|
234
|
+
Relation rel, Bitmapset *columns);
|
|
106
235
|
extern LogicalRepRelation *logicalrep_read_rel(StringInfo in);
|
|
107
|
-
extern void logicalrep_write_typ(StringInfo out,
|
|
236
|
+
extern void logicalrep_write_typ(StringInfo out, TransactionId xid,
|
|
237
|
+
Oid typoid);
|
|
108
238
|
extern void logicalrep_read_typ(StringInfo out, LogicalRepTyp *ltyp);
|
|
239
|
+
extern void logicalrep_write_stream_start(StringInfo out, TransactionId xid,
|
|
240
|
+
bool first_segment);
|
|
241
|
+
extern TransactionId logicalrep_read_stream_start(StringInfo in,
|
|
242
|
+
bool *first_segment);
|
|
243
|
+
extern void logicalrep_write_stream_stop(StringInfo out);
|
|
244
|
+
extern void logicalrep_write_stream_commit(StringInfo out, ReorderBufferTXN *txn,
|
|
245
|
+
XLogRecPtr commit_lsn);
|
|
246
|
+
extern TransactionId logicalrep_read_stream_commit(StringInfo out,
|
|
247
|
+
LogicalRepCommitData *commit_data);
|
|
248
|
+
extern void logicalrep_write_stream_abort(StringInfo out, TransactionId xid,
|
|
249
|
+
TransactionId subxid);
|
|
250
|
+
extern void logicalrep_read_stream_abort(StringInfo in, TransactionId *xid,
|
|
251
|
+
TransactionId *subxid);
|
|
252
|
+
extern char *logicalrep_message_type(LogicalRepMsgType action);
|
|
109
253
|
|
|
110
254
|
#endif /* LOGICAL_PROTO_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* logicalworker.h
|
|
4
4
|
* Exports for logical replication workers.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 2016-
|
|
6
|
+
* Portions Copyright (c) 2016-2022, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* src/include/replication/logicalworker.h
|
|
9
9
|
*
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* origin.h
|
|
3
3
|
* Exports from replication/logical/origin.c
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2013-
|
|
5
|
+
* Copyright (c) 2013-2022, PostgreSQL Global Development Group
|
|
6
6
|
*
|
|
7
7
|
* src/include/replication/origin.h
|
|
8
8
|
*-------------------------------------------------------------------------
|
|
@@ -38,9 +38,9 @@ extern PGDLLIMPORT XLogRecPtr replorigin_session_origin_lsn;
|
|
|
38
38
|
extern PGDLLIMPORT TimestampTz replorigin_session_origin_timestamp;
|
|
39
39
|
|
|
40
40
|
/* API for querying & manipulating replication origins */
|
|
41
|
-
extern RepOriginId replorigin_by_name(char *name, bool missing_ok);
|
|
42
|
-
extern RepOriginId replorigin_create(char *name);
|
|
43
|
-
extern void
|
|
41
|
+
extern RepOriginId replorigin_by_name(const char *name, bool missing_ok);
|
|
42
|
+
extern RepOriginId replorigin_create(const char *name);
|
|
43
|
+
extern void replorigin_drop_by_name(const char *name, bool missing_ok, bool nowait);
|
|
44
44
|
extern bool replorigin_by_oid(RepOriginId roident, bool missing_ok,
|
|
45
45
|
char **roname);
|
|
46
46
|
|
|
@@ -62,9 +62,9 @@ extern void CheckPointReplicationOrigin(void);
|
|
|
62
62
|
extern void StartupReplicationOrigin(void);
|
|
63
63
|
|
|
64
64
|
/* WAL logging */
|
|
65
|
-
void
|
|
66
|
-
void
|
|
67
|
-
const char *replorigin_identify(uint8 info);
|
|
65
|
+
extern void replorigin_redo(XLogReaderState *record);
|
|
66
|
+
extern void replorigin_desc(StringInfo buf, XLogReaderState *record);
|
|
67
|
+
extern const char *replorigin_identify(uint8 info);
|
|
68
68
|
|
|
69
69
|
/* shared memory allocation */
|
|
70
70
|
extern Size ReplicationOriginShmemSize(void);
|