pg_query 5.0.0 → 6.0.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 +27 -0
- data/README.md +1 -1
- data/Rakefile +3 -4
- data/ext/pg_query/extconf.rb +14 -4
- data/ext/pg_query/include/pg_query.h +4 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +2901 -1794
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +211 -24
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +272 -53
- data/ext/pg_query/include/postgres/access/amapi.h +299 -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 +237 -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/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 +221 -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 +2109 -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 +375 -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 +89 -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 +91 -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/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 +453 -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/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 +358 -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 +792 -0
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
- data/ext/pg_query/include/postgres/miscadmin.h +519 -0
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
- data/ext/pg_query/include/postgres/nodes/execnodes.h +2852 -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 +3435 -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 +2335 -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 +102 -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 +977 -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 +584 -0
- data/ext/pg_query/include/postgres/port.h +524 -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/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 +743 -0
- data/ext/pg_query/include/postgres/replication/slot.h +285 -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 +59 -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 +491 -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 +127 -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 +230 -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 +808 -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/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 +131 -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 +1546 -792
- data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
- data/ext/pg_query/pg_query.c +9 -0
- data/ext/pg_query/pg_query.pb-c.c +6598 -3739
- data/ext/pg_query/pg_query_fingerprint.c +4 -5
- data/ext/pg_query/pg_query_normalize.c +42 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +9 -1
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +1 -0
- data/ext/pg_query/pg_query_parse.c +1 -1
- data/ext/pg_query/pg_query_parse_plpgsql.c +18 -17
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -1
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +1 -1
- data/ext/pg_query/postgres_deparse.c +409 -21
- data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +3 -7
- data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +34490 -32135
- data/ext/pg_query/src_backend_parser_parser.c +8 -8
- data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
- data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
- data/ext/pg_query/src_backend_utils_error_elog.c +60 -190
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +16 -4
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +19 -81
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -8
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
- data/ext/pg_query/src_common_encnames.c +43 -44
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +511 -466
- 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 +18 -1
- data/ext/pg_query/src_common_wchar.c +45 -108
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
- 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 +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_port_pg_bitutils.c +251 -32
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +4 -4
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +2 -3
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +26 -3
- data/lib/pg_query/treewalker.rb +52 -12
- data/lib/pg_query/truncate.rb +1 -1
- data/lib/pg_query/version.rb +1 -1
- metadata +444 -400
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -292
- data/ext/pg_query/include/access/attmap.h +0 -54
- data/ext/pg_query/include/access/attnum.h +0 -64
- data/ext/pg_query/include/access/clog.h +0 -63
- data/ext/pg_query/include/access/commit_ts.h +0 -74
- data/ext/pg_query/include/access/detoast.h +0 -82
- data/ext/pg_query/include/access/genam.h +0 -233
- data/ext/pg_query/include/access/gin.h +0 -91
- data/ext/pg_query/include/access/htup.h +0 -89
- data/ext/pg_query/include/access/htup_details.h +0 -811
- data/ext/pg_query/include/access/itup.h +0 -170
- 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 -191
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -67
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -85
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -28
- data/ext/pg_query/include/access/tableam.h +0 -2100
- data/ext/pg_query/include/access/toast_compression.h +0 -73
- data/ext/pg_query/include/access/transam.h +0 -375
- data/ext/pg_query/include/access/tsmapi.h +0 -82
- data/ext/pg_query/include/access/tupconvert.h +0 -54
- data/ext/pg_query/include/access/tupdesc.h +0 -154
- data/ext/pg_query/include/access/tupmacs.h +0 -207
- data/ext/pg_query/include/access/twophase.h +0 -65
- data/ext/pg_query/include/access/xact.h +0 -530
- data/ext/pg_query/include/access/xlog.h +0 -302
- data/ext/pg_query/include/access/xlog_internal.h +0 -404
- data/ext/pg_query/include/access/xlogbackup.h +0 -41
- data/ext/pg_query/include/access/xlogdefs.h +0 -82
- data/ext/pg_query/include/access/xlogprefetcher.h +0 -55
- data/ext/pg_query/include/access/xlogreader.h +0 -444
- data/ext/pg_query/include/access/xlogrecord.h +0 -248
- data/ext/pg_query/include/access/xlogrecovery.h +0 -158
- data/ext/pg_query/include/archive/archive_module.h +0 -59
- data/ext/pg_query/include/c.h +0 -1379
- data/ext/pg_query/include/catalog/catalog.h +0 -45
- data/ext/pg_query/include/catalog/catversion.h +0 -62
- data/ext/pg_query/include/catalog/dependency.h +0 -270
- data/ext/pg_query/include/catalog/genbki.h +0 -143
- data/ext/pg_query/include/catalog/index.h +0 -214
- data/ext/pg_query/include/catalog/indexing.h +0 -54
- data/ext/pg_query/include/catalog/namespace.h +0 -190
- data/ext/pg_query/include/catalog/objectaccess.h +0 -267
- data/ext/pg_query/include/catalog/objectaddress.h +0 -89
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -180
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -78
- data/ext/pg_query/include/catalog/pg_am.h +0 -63
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -223
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -62
- data/ext/pg_query/include/catalog/pg_authid.h +0 -63
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_class.h +0 -230
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -132
- data/ext/pg_query/include/catalog/pg_collation.h +0 -100
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -63
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -273
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -73
- data/ext/pg_query/include/catalog/pg_control.h +0 -258
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -75
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_database.h +0 -124
- data/ext/pg_query/include/catalog/pg_database_d.h +0 -52
- data/ext/pg_query/include/catalog/pg_depend.h +0 -77
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -57
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_index.h +0 -90
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_language.h +0 -72
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -41
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -64
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -88
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -51
- data/ext/pg_query/include/catalog/pg_operator.h +0 -107
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -142
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -64
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -51
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -74
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_proc.h +0 -220
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -101
- data/ext/pg_query/include/catalog/pg_publication.h +0 -158
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -62
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -282
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -195
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -88
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform.h +0 -48
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -153
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -109
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -53
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -59
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -60
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -37
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -51
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_type.h +0 -404
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -324
- data/ext/pg_query/include/catalog/storage.h +0 -50
- data/ext/pg_query/include/commands/async.h +0 -53
- data/ext/pg_query/include/commands/dbcommands.h +0 -37
- data/ext/pg_query/include/commands/defrem.h +0 -161
- data/ext/pg_query/include/commands/event_trigger.h +0 -88
- data/ext/pg_query/include/commands/explain.h +0 -129
- 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 -288
- data/ext/pg_query/include/commands/vacuum.h +0 -386
- data/ext/pg_query/include/common/cryptohash.h +0 -39
- 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/int.h +0 -437
- data/ext/pg_query/include/common/ip.h +0 -33
- data/ext/pg_query/include/common/keywords.h +0 -29
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/pg_prng.h +0 -61
- data/ext/pg_query/include/common/relpath.h +0 -97
- data/ext/pg_query/include/common/scram-common.h +0 -70
- data/ext/pg_query/include/common/sha2.h +0 -32
- data/ext/pg_query/include/common/string.h +0 -44
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +0 -125
- data/ext/pg_query/include/copyfuncs.funcs.c +0 -5013
- data/ext/pg_query/include/copyfuncs.switch.c +0 -938
- data/ext/pg_query/include/datatype/timestamp.h +0 -243
- data/ext/pg_query/include/equalfuncs.funcs.c +0 -3097
- data/ext/pg_query/include/equalfuncs.switch.c +0 -785
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -680
- data/ext/pg_query/include/executor/functions.h +0 -55
- data/ext/pg_query/include/executor/instrument.h +0 -118
- data/ext/pg_query/include/executor/spi.h +0 -213
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -494
- data/ext/pg_query/include/fmgr.h +0 -800
- data/ext/pg_query/include/foreign/fdwapi.h +0 -294
- data/ext/pg_query/include/funcapi.h +0 -360
- data/ext/pg_query/include/gram.h +0 -1127
- data/ext/pg_query/include/gramparse.h +0 -75
- data/ext/pg_query/include/jit/jit.h +0 -105
- data/ext/pg_query/include/kwlist_d.h +0 -1119
- data/ext/pg_query/include/lib/dshash.h +0 -115
- data/ext/pg_query/include/lib/ilist.h +0 -1159
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1184
- data/ext/pg_query/include/lib/sort_template.h +0 -432
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -37
- data/ext/pg_query/include/libpq/crypt.h +0 -47
- data/ext/pg_query/include/libpq/hba.h +0 -186
- data/ext/pg_query/include/libpq/libpq-be.h +0 -354
- data/ext/pg_query/include/libpq/libpq.h +0 -144
- data/ext/pg_query/include/libpq/pqcomm.h +0 -163
- data/ext/pg_query/include/libpq/pqformat.h +0 -210
- data/ext/pg_query/include/libpq/pqsignal.h +0 -54
- data/ext/pg_query/include/libpq/sasl.h +0 -136
- data/ext/pg_query/include/libpq/scram.h +0 -37
- data/ext/pg_query/include/mb/pg_wchar.h +0 -772
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -507
- data/ext/pg_query/include/nodes/bitmapset.h +0 -126
- data/ext/pg_query/include/nodes/execnodes.h +0 -2768
- data/ext/pg_query/include/nodes/extensible.h +0 -164
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -121
- data/ext/pg_query/include/nodes/memnodes.h +0 -113
- data/ext/pg_query/include/nodes/miscnodes.h +0 -56
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -222
- data/ext/pg_query/include/nodes/nodes.h +0 -446
- data/ext/pg_query/include/nodes/nodetags.h +0 -471
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -4050
- data/ext/pg_query/include/nodes/pathnodes.h +0 -3384
- data/ext/pg_query/include/nodes/pg_list.h +0 -635
- data/ext/pg_query/include/nodes/plannodes.h +0 -1592
- data/ext/pg_query/include/nodes/primnodes.h +0 -2041
- data/ext/pg_query/include/nodes/print.h +0 -34
- data/ext/pg_query/include/nodes/queryjumble.h +0 -86
- data/ext/pg_query/include/nodes/replnodes.h +0 -111
- data/ext/pg_query/include/nodes/supportnodes.h +0 -346
- data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
- data/ext/pg_query/include/nodes/value.h +0 -90
- data/ext/pg_query/include/optimizer/cost.h +0 -215
- data/ext/pg_query/include/optimizer/geqo.h +0 -90
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -202
- data/ext/pg_query/include/optimizer/paths.h +0 -266
- data/ext/pg_query/include/optimizer/planmain.h +0 -117
- data/ext/pg_query/include/parser/analyze.h +0 -64
- data/ext/pg_query/include/parser/kwlist.h +0 -498
- data/ext/pg_query/include/parser/parse_agg.h +0 -65
- data/ext/pg_query/include/parser/parse_coerce.h +0 -102
- data/ext/pg_query/include/parser/parse_expr.h +0 -25
- data/ext/pg_query/include/parser/parse_func.h +0 -74
- data/ext/pg_query/include/parser/parse_node.h +0 -357
- data/ext/pg_query/include/parser/parse_oper.h +0 -65
- data/ext/pg_query/include/parser/parse_relation.h +0 -129
- data/ext/pg_query/include/parser/parse_type.h +0 -61
- data/ext/pg_query/include/parser/parser.h +0 -68
- 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 -27
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -843
- data/ext/pg_query/include/pg_config_manual.h +0 -372
- 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 -778
- data/ext/pg_query/include/pgtime.h +0 -94
- 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 -998
- data/ext/pg_query/include/plpgsql.h +0 -1340
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -32
- 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 -519
- data/ext/pg_query/include/port/pg_bitutils.h +0 -339
- 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/simd.h +0 -375
- data/ext/pg_query/include/port.h +0 -520
- data/ext/pg_query/include/portability/instr_time.h +0 -197
- data/ext/pg_query/include/postgres.h +0 -579
- data/ext/pg_query/include/postmaster/autovacuum.h +0 -80
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/bgworker.h +0 -162
- 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 -36
- data/ext/pg_query/include/postmaster/postmaster.h +0 -81
- data/ext/pg_query/include/postmaster/startup.h +0 -41
- data/ext/pg_query/include/postmaster/syslogger.h +0 -103
- data/ext/pg_query/include/postmaster/walwriter.h +0 -23
- data/ext/pg_query/include/regex/regex.h +0 -189
- data/ext/pg_query/include/replication/logicallauncher.h +0 -34
- data/ext/pg_query/include/replication/logicalproto.h +0 -274
- data/ext/pg_query/include/replication/logicalworker.h +0 -32
- data/ext/pg_query/include/replication/origin.h +0 -73
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -753
- data/ext/pg_query/include/replication/slot.h +0 -249
- data/ext/pg_query/include/replication/syncrep.h +0 -109
- data/ext/pg_query/include/replication/walreceiver.h +0 -478
- 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 -35
- data/ext/pg_query/include/rewrite/rewriteManip.h +0 -96
- data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
- data/ext/pg_query/include/src_backend_nodes_copyfuncs.funcs.c +0 -5321
- data/ext/pg_query/include/src_backend_nodes_equalfuncs.funcs.c +0 -3354
- data/ext/pg_query/include/storage/backendid.h +0 -37
- data/ext/pg_query/include/storage/block.h +0 -108
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -393
- data/ext/pg_query/include/storage/bufpage.h +0 -510
- data/ext/pg_query/include/storage/condition_variable.h +0 -73
- data/ext/pg_query/include/storage/dsm.h +0 -61
- data/ext/pg_query/include/storage/dsm_impl.h +0 -79
- data/ext/pg_query/include/storage/fd.h +0 -202
- data/ext/pg_query/include/storage/fileset.h +0 -40
- data/ext/pg_query/include/storage/ipc.h +0 -84
- 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 -245
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -194
- data/ext/pg_query/include/storage/lmgr.h +0 -120
- data/ext/pg_query/include/storage/lock.h +0 -624
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -220
- data/ext/pg_query/include/storage/lwlocknames.h +0 -50
- 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 -92
- data/ext/pg_query/include/storage/pmsignal.h +0 -105
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -466
- data/ext/pg_query/include/storage/procarray.h +0 -99
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -73
- data/ext/pg_query/include/storage/relfilelocator.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -867
- data/ext/pg_query/include/storage/sharedfileset.h +0 -37
- data/ext/pg_query/include/storage/shm_mq.h +0 -86
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -59
- data/ext/pg_query/include/storage/sinval.h +0 -153
- data/ext/pg_query/include/storage/sinvaladt.h +0 -45
- data/ext/pg_query/include/storage/smgr.h +0 -113
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -99
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -66
- data/ext/pg_query/include/tcop/cmdtag.h +0 -63
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -218
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -147
- data/ext/pg_query/include/tcop/fastpath.h +0 -20
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -94
- data/ext/pg_query/include/tcop/utility.h +0 -112
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -96
- data/ext/pg_query/include/utils/acl.h +0 -278
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -482
- data/ext/pg_query/include/utils/backend_progress.h +0 -45
- data/ext/pg_query/include/utils/backend_status.h +0 -342
- data/ext/pg_query/include/utils/builtins.h +0 -136
- data/ext/pg_query/include/utils/bytea.h +0 -28
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -118
- data/ext/pg_query/include/utils/datetime.h +0 -364
- data/ext/pg_query/include/utils/datum.h +0 -76
- data/ext/pg_query/include/utils/dsa.h +0 -127
- data/ext/pg_query/include/utils/elog.h +0 -545
- data/ext/pg_query/include/utils/errcodes.h +0 -354
- data/ext/pg_query/include/utils/expandeddatum.h +0 -170
- data/ext/pg_query/include/utils/expandedrecord.h +0 -241
- data/ext/pg_query/include/utils/float.h +0 -357
- data/ext/pg_query/include/utils/fmgroids.h +0 -3314
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2871
- data/ext/pg_query/include/utils/fmgrtab.h +0 -49
- data/ext/pg_query/include/utils/guc.h +0 -442
- data/ext/pg_query/include/utils/guc_hooks.h +0 -163
- data/ext/pg_query/include/utils/guc_tables.h +0 -322
- data/ext/pg_query/include/utils/hsearch.h +0 -153
- data/ext/pg_query/include/utils/inval.h +0 -68
- data/ext/pg_query/include/utils/logtape.h +0 -77
- data/ext/pg_query/include/utils/lsyscache.h +0 -212
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -186
- data/ext/pg_query/include/utils/memutils_internal.h +0 -136
- data/ext/pg_query/include/utils/memutils_memorychunk.h +0 -237
- data/ext/pg_query/include/utils/numeric.h +0 -105
- data/ext/pg_query/include/utils/palloc.h +0 -165
- data/ext/pg_query/include/utils/partcache.h +0 -103
- data/ext/pg_query/include/utils/pg_locale.h +0 -135
- data/ext/pg_query/include/utils/pgstat_internal.h +0 -814
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/plancache.h +0 -236
- data/ext/pg_query/include/utils/portal.h +0 -252
- data/ext/pg_query/include/utils/queryenvironment.h +0 -74
- data/ext/pg_query/include/utils/regproc.h +0 -39
- data/ext/pg_query/include/utils/rel.h +0 -712
- data/ext/pg_query/include/utils/relcache.h +0 -158
- 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/ruleutils.h +0 -52
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -181
- data/ext/pg_query/include/utils/snapshot.h +0 -219
- data/ext/pg_query/include/utils/sortsupport.h +0 -391
- data/ext/pg_query/include/utils/syscache.h +0 -227
- data/ext/pg_query/include/utils/timeout.h +0 -95
- data/ext/pg_query/include/utils/timestamp.h +0 -147
- data/ext/pg_query/include/utils/tuplesort.h +0 -445
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -209
- data/ext/pg_query/include/utils/varlena.h +0 -53
- data/ext/pg_query/include/utils/wait_event.h +0 -294
- data/ext/pg_query/include/utils/xml.h +0 -94
- data/ext/pg_query/include/varatt.h +0 -358
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2220
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{commands → postgres/commands}/user.h +0 -0
- /data/ext/pg_query/include/{common → postgres/common}/unicode_nonspacing_table.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
- /data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/probes.h +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/ps_status.h +0 -0
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* backendid.h
|
|
4
|
-
* POSTGRES backend id communication definitions
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
|
-
*
|
|
10
|
-
* src/include/storage/backendid.h
|
|
11
|
-
*
|
|
12
|
-
*-------------------------------------------------------------------------
|
|
13
|
-
*/
|
|
14
|
-
#ifndef BACKENDID_H
|
|
15
|
-
#define BACKENDID_H
|
|
16
|
-
|
|
17
|
-
/* ----------------
|
|
18
|
-
* -cim 8/17/90
|
|
19
|
-
* ----------------
|
|
20
|
-
*/
|
|
21
|
-
typedef int BackendId; /* unique currently active backend identifier */
|
|
22
|
-
|
|
23
|
-
#define InvalidBackendId (-1)
|
|
24
|
-
|
|
25
|
-
extern PGDLLIMPORT BackendId MyBackendId; /* backend id of this backend */
|
|
26
|
-
|
|
27
|
-
/* backend id of our parallel session leader, or InvalidBackendId if none */
|
|
28
|
-
extern PGDLLIMPORT BackendId ParallelLeaderBackendId;
|
|
29
|
-
|
|
30
|
-
/*
|
|
31
|
-
* The BackendId to use for our session's temp relations is normally our own,
|
|
32
|
-
* but parallel workers should use their leader's ID.
|
|
33
|
-
*/
|
|
34
|
-
#define BackendIdForTempRelations() \
|
|
35
|
-
(ParallelLeaderBackendId == InvalidBackendId ? MyBackendId : ParallelLeaderBackendId)
|
|
36
|
-
|
|
37
|
-
#endif /* BACKENDID_H */
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* block.h
|
|
4
|
-
* POSTGRES disk block definitions.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
|
-
*
|
|
10
|
-
* src/include/storage/block.h
|
|
11
|
-
*
|
|
12
|
-
*-------------------------------------------------------------------------
|
|
13
|
-
*/
|
|
14
|
-
#ifndef BLOCK_H
|
|
15
|
-
#define BLOCK_H
|
|
16
|
-
|
|
17
|
-
/*
|
|
18
|
-
* BlockNumber:
|
|
19
|
-
*
|
|
20
|
-
* each data file (heap or index) is divided into postgres disk blocks
|
|
21
|
-
* (which may be thought of as the unit of i/o -- a postgres buffer
|
|
22
|
-
* contains exactly one disk block). the blocks are numbered
|
|
23
|
-
* sequentially, 0 to 0xFFFFFFFE.
|
|
24
|
-
*
|
|
25
|
-
* InvalidBlockNumber is the same thing as P_NEW in bufmgr.h.
|
|
26
|
-
*
|
|
27
|
-
* the access methods, the buffer manager and the storage manager are
|
|
28
|
-
* more or less the only pieces of code that should be accessing disk
|
|
29
|
-
* blocks directly.
|
|
30
|
-
*/
|
|
31
|
-
typedef uint32 BlockNumber;
|
|
32
|
-
|
|
33
|
-
#define InvalidBlockNumber ((BlockNumber) 0xFFFFFFFF)
|
|
34
|
-
|
|
35
|
-
#define MaxBlockNumber ((BlockNumber) 0xFFFFFFFE)
|
|
36
|
-
|
|
37
|
-
/*
|
|
38
|
-
* BlockId:
|
|
39
|
-
*
|
|
40
|
-
* this is a storage type for BlockNumber. in other words, this type
|
|
41
|
-
* is used for on-disk structures (e.g., in HeapTupleData) whereas
|
|
42
|
-
* BlockNumber is the type on which calculations are performed (e.g.,
|
|
43
|
-
* in access method code).
|
|
44
|
-
*
|
|
45
|
-
* there doesn't appear to be any reason to have separate types except
|
|
46
|
-
* for the fact that BlockIds can be SHORTALIGN'd (and therefore any
|
|
47
|
-
* structures that contains them, such as ItemPointerData, can also be
|
|
48
|
-
* SHORTALIGN'd). this is an important consideration for reducing the
|
|
49
|
-
* space requirements of the line pointer (ItemIdData) array on each
|
|
50
|
-
* page and the header of each heap or index tuple, so it doesn't seem
|
|
51
|
-
* wise to change this without good reason.
|
|
52
|
-
*/
|
|
53
|
-
typedef struct BlockIdData
|
|
54
|
-
{
|
|
55
|
-
uint16 bi_hi;
|
|
56
|
-
uint16 bi_lo;
|
|
57
|
-
} BlockIdData;
|
|
58
|
-
|
|
59
|
-
typedef BlockIdData *BlockId; /* block identifier */
|
|
60
|
-
|
|
61
|
-
/* ----------------
|
|
62
|
-
* support functions
|
|
63
|
-
* ----------------
|
|
64
|
-
*/
|
|
65
|
-
|
|
66
|
-
/*
|
|
67
|
-
* BlockNumberIsValid
|
|
68
|
-
* True iff blockNumber is valid.
|
|
69
|
-
*/
|
|
70
|
-
static inline bool
|
|
71
|
-
BlockNumberIsValid(BlockNumber blockNumber)
|
|
72
|
-
{
|
|
73
|
-
return blockNumber != InvalidBlockNumber;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/*
|
|
77
|
-
* BlockIdSet
|
|
78
|
-
* Sets a block identifier to the specified value.
|
|
79
|
-
*/
|
|
80
|
-
static inline void
|
|
81
|
-
BlockIdSet(BlockIdData *blockId, BlockNumber blockNumber)
|
|
82
|
-
{
|
|
83
|
-
blockId->bi_hi = blockNumber >> 16;
|
|
84
|
-
blockId->bi_lo = blockNumber & 0xffff;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/*
|
|
88
|
-
* BlockIdEquals
|
|
89
|
-
* Check for block number equality.
|
|
90
|
-
*/
|
|
91
|
-
static inline bool
|
|
92
|
-
BlockIdEquals(const BlockIdData *blockId1, const BlockIdData *blockId2)
|
|
93
|
-
{
|
|
94
|
-
return (blockId1->bi_hi == blockId2->bi_hi &&
|
|
95
|
-
blockId1->bi_lo == blockId2->bi_lo);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/*
|
|
99
|
-
* BlockIdGetBlockNumber
|
|
100
|
-
* Retrieve the block number from a block identifier.
|
|
101
|
-
*/
|
|
102
|
-
static inline BlockNumber
|
|
103
|
-
BlockIdGetBlockNumber(const BlockIdData *blockId)
|
|
104
|
-
{
|
|
105
|
-
return (((BlockNumber) blockId->bi_hi) << 16) | ((BlockNumber) blockId->bi_lo);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
#endif /* BLOCK_H */
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* buf.h
|
|
4
|
-
* Basic buffer manager data types.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
|
-
*
|
|
10
|
-
* src/include/storage/buf.h
|
|
11
|
-
*
|
|
12
|
-
*-------------------------------------------------------------------------
|
|
13
|
-
*/
|
|
14
|
-
#ifndef BUF_H
|
|
15
|
-
#define BUF_H
|
|
16
|
-
|
|
17
|
-
/*
|
|
18
|
-
* Buffer identifiers.
|
|
19
|
-
*
|
|
20
|
-
* Zero is invalid, positive is the index of a shared buffer (1..NBuffers),
|
|
21
|
-
* negative is the index of a local buffer (-1 .. -NLocBuffer).
|
|
22
|
-
*/
|
|
23
|
-
typedef int Buffer;
|
|
24
|
-
|
|
25
|
-
#define InvalidBuffer 0
|
|
26
|
-
|
|
27
|
-
/*
|
|
28
|
-
* BufferIsInvalid
|
|
29
|
-
* True iff the buffer is invalid.
|
|
30
|
-
*/
|
|
31
|
-
#define BufferIsInvalid(buffer) ((buffer) == InvalidBuffer)
|
|
32
|
-
|
|
33
|
-
/*
|
|
34
|
-
* BufferIsLocal
|
|
35
|
-
* True iff the buffer is local (not visible to other backends).
|
|
36
|
-
*/
|
|
37
|
-
#define BufferIsLocal(buffer) ((buffer) < 0)
|
|
38
|
-
|
|
39
|
-
/*
|
|
40
|
-
* Buffer access strategy objects.
|
|
41
|
-
*
|
|
42
|
-
* BufferAccessStrategyData is private to freelist.c
|
|
43
|
-
*/
|
|
44
|
-
typedef struct BufferAccessStrategyData *BufferAccessStrategy;
|
|
45
|
-
|
|
46
|
-
#endif /* BUF_H */
|
|
@@ -1,393 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* bufmgr.h
|
|
4
|
-
* POSTGRES buffer manager definitions.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
|
-
*
|
|
10
|
-
* src/include/storage/bufmgr.h
|
|
11
|
-
*
|
|
12
|
-
*-------------------------------------------------------------------------
|
|
13
|
-
*/
|
|
14
|
-
#ifndef BUFMGR_H
|
|
15
|
-
#define BUFMGR_H
|
|
16
|
-
|
|
17
|
-
#include "storage/block.h"
|
|
18
|
-
#include "storage/buf.h"
|
|
19
|
-
#include "storage/bufpage.h"
|
|
20
|
-
#include "storage/relfilelocator.h"
|
|
21
|
-
#include "utils/relcache.h"
|
|
22
|
-
#include "utils/snapmgr.h"
|
|
23
|
-
|
|
24
|
-
typedef void *Block;
|
|
25
|
-
|
|
26
|
-
/*
|
|
27
|
-
* Possible arguments for GetAccessStrategy().
|
|
28
|
-
*
|
|
29
|
-
* If adding a new BufferAccessStrategyType, also add a new IOContext so
|
|
30
|
-
* IO statistics using this strategy are tracked.
|
|
31
|
-
*/
|
|
32
|
-
typedef enum BufferAccessStrategyType
|
|
33
|
-
{
|
|
34
|
-
BAS_NORMAL, /* Normal random access */
|
|
35
|
-
BAS_BULKREAD, /* Large read-only scan (hint bit updates are
|
|
36
|
-
* ok) */
|
|
37
|
-
BAS_BULKWRITE, /* Large multi-block write (e.g. COPY IN) */
|
|
38
|
-
BAS_VACUUM /* VACUUM */
|
|
39
|
-
} BufferAccessStrategyType;
|
|
40
|
-
|
|
41
|
-
/* Possible modes for ReadBufferExtended() */
|
|
42
|
-
typedef enum
|
|
43
|
-
{
|
|
44
|
-
RBM_NORMAL, /* Normal read */
|
|
45
|
-
RBM_ZERO_AND_LOCK, /* Don't read from disk, caller will
|
|
46
|
-
* initialize. Also locks the page. */
|
|
47
|
-
RBM_ZERO_AND_CLEANUP_LOCK, /* Like RBM_ZERO_AND_LOCK, but locks the page
|
|
48
|
-
* in "cleanup" mode */
|
|
49
|
-
RBM_ZERO_ON_ERROR, /* Read, but return an all-zeros page on error */
|
|
50
|
-
RBM_NORMAL_NO_LOG /* Don't log page as invalid during WAL
|
|
51
|
-
* replay; otherwise same as RBM_NORMAL */
|
|
52
|
-
} ReadBufferMode;
|
|
53
|
-
|
|
54
|
-
/*
|
|
55
|
-
* Type returned by PrefetchBuffer().
|
|
56
|
-
*/
|
|
57
|
-
typedef struct PrefetchBufferResult
|
|
58
|
-
{
|
|
59
|
-
Buffer recent_buffer; /* If valid, a hit (recheck needed!) */
|
|
60
|
-
bool initiated_io; /* If true, a miss resulting in async I/O */
|
|
61
|
-
} PrefetchBufferResult;
|
|
62
|
-
|
|
63
|
-
/*
|
|
64
|
-
* Flags influencing the behaviour of ExtendBufferedRel*
|
|
65
|
-
*/
|
|
66
|
-
typedef enum ExtendBufferedFlags
|
|
67
|
-
{
|
|
68
|
-
/*
|
|
69
|
-
* Don't acquire extension lock. This is safe only if the relation isn't
|
|
70
|
-
* shared, an access exclusive lock is held or if this is the startup
|
|
71
|
-
* process.
|
|
72
|
-
*/
|
|
73
|
-
EB_SKIP_EXTENSION_LOCK = (1 << 0),
|
|
74
|
-
|
|
75
|
-
/* Is this extension part of recovery? */
|
|
76
|
-
EB_PERFORMING_RECOVERY = (1 << 1),
|
|
77
|
-
|
|
78
|
-
/*
|
|
79
|
-
* Should the fork be created if it does not currently exist? This likely
|
|
80
|
-
* only ever makes sense for relation forks.
|
|
81
|
-
*/
|
|
82
|
-
EB_CREATE_FORK_IF_NEEDED = (1 << 2),
|
|
83
|
-
|
|
84
|
-
/* Should the first (possibly only) return buffer be returned locked? */
|
|
85
|
-
EB_LOCK_FIRST = (1 << 3),
|
|
86
|
-
|
|
87
|
-
/* Should the smgr size cache be cleared? */
|
|
88
|
-
EB_CLEAR_SIZE_CACHE = (1 << 4),
|
|
89
|
-
|
|
90
|
-
/* internal flags follow */
|
|
91
|
-
EB_LOCK_TARGET = (1 << 5),
|
|
92
|
-
} ExtendBufferedFlags;
|
|
93
|
-
|
|
94
|
-
/*
|
|
95
|
-
* Some functions identify relations either by relation or smgr +
|
|
96
|
-
* relpersistence. Used via the BMR_REL()/BMR_SMGR() macros below. This
|
|
97
|
-
* allows us to use the same function for both recovery and normal operation.
|
|
98
|
-
*/
|
|
99
|
-
typedef struct BufferManagerRelation
|
|
100
|
-
{
|
|
101
|
-
Relation rel;
|
|
102
|
-
struct SMgrRelationData *smgr;
|
|
103
|
-
char relpersistence;
|
|
104
|
-
} BufferManagerRelation;
|
|
105
|
-
|
|
106
|
-
#define BMR_REL(p_rel) ((BufferManagerRelation){.rel = p_rel})
|
|
107
|
-
#define BMR_SMGR(p_smgr, p_relpersistence) ((BufferManagerRelation){.smgr = p_smgr, .relpersistence = p_relpersistence})
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
/* forward declared, to avoid having to expose buf_internals.h here */
|
|
111
|
-
struct WritebackContext;
|
|
112
|
-
|
|
113
|
-
/* forward declared, to avoid including smgr.h here */
|
|
114
|
-
struct SMgrRelationData;
|
|
115
|
-
|
|
116
|
-
/* in globals.c ... this duplicates miscadmin.h */
|
|
117
|
-
extern PGDLLIMPORT int NBuffers;
|
|
118
|
-
|
|
119
|
-
/* in bufmgr.c */
|
|
120
|
-
extern PGDLLIMPORT bool zero_damaged_pages;
|
|
121
|
-
extern PGDLLIMPORT int bgwriter_lru_maxpages;
|
|
122
|
-
extern PGDLLIMPORT double bgwriter_lru_multiplier;
|
|
123
|
-
extern PGDLLIMPORT bool track_io_timing;
|
|
124
|
-
|
|
125
|
-
/* only applicable when prefetching is available */
|
|
126
|
-
#ifdef USE_PREFETCH
|
|
127
|
-
#define DEFAULT_EFFECTIVE_IO_CONCURRENCY 1
|
|
128
|
-
#define DEFAULT_MAINTENANCE_IO_CONCURRENCY 10
|
|
129
|
-
#else
|
|
130
|
-
#define DEFAULT_EFFECTIVE_IO_CONCURRENCY 0
|
|
131
|
-
#define DEFAULT_MAINTENANCE_IO_CONCURRENCY 0
|
|
132
|
-
#endif
|
|
133
|
-
extern PGDLLIMPORT int effective_io_concurrency;
|
|
134
|
-
extern PGDLLIMPORT int maintenance_io_concurrency;
|
|
135
|
-
|
|
136
|
-
extern PGDLLIMPORT int checkpoint_flush_after;
|
|
137
|
-
extern PGDLLIMPORT int backend_flush_after;
|
|
138
|
-
extern PGDLLIMPORT int bgwriter_flush_after;
|
|
139
|
-
|
|
140
|
-
/* in buf_init.c */
|
|
141
|
-
extern PGDLLIMPORT char *BufferBlocks;
|
|
142
|
-
|
|
143
|
-
/* in localbuf.c */
|
|
144
|
-
extern PGDLLIMPORT int NLocBuffer;
|
|
145
|
-
extern PGDLLIMPORT Block *LocalBufferBlockPointers;
|
|
146
|
-
extern PGDLLIMPORT int32 *LocalRefCount;
|
|
147
|
-
|
|
148
|
-
/* upper limit for effective_io_concurrency */
|
|
149
|
-
#define MAX_IO_CONCURRENCY 1000
|
|
150
|
-
|
|
151
|
-
/* special block number for ReadBuffer() */
|
|
152
|
-
#define P_NEW InvalidBlockNumber /* grow the file to get a new page */
|
|
153
|
-
|
|
154
|
-
/*
|
|
155
|
-
* Buffer content lock modes (mode argument for LockBuffer())
|
|
156
|
-
*/
|
|
157
|
-
#define BUFFER_LOCK_UNLOCK 0
|
|
158
|
-
#define BUFFER_LOCK_SHARE 1
|
|
159
|
-
#define BUFFER_LOCK_EXCLUSIVE 2
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
/*
|
|
163
|
-
* prototypes for functions in bufmgr.c
|
|
164
|
-
*/
|
|
165
|
-
extern PrefetchBufferResult PrefetchSharedBuffer(struct SMgrRelationData *smgr_reln,
|
|
166
|
-
ForkNumber forkNum,
|
|
167
|
-
BlockNumber blockNum);
|
|
168
|
-
extern PrefetchBufferResult PrefetchBuffer(Relation reln, ForkNumber forkNum,
|
|
169
|
-
BlockNumber blockNum);
|
|
170
|
-
extern bool ReadRecentBuffer(RelFileLocator rlocator, ForkNumber forkNum,
|
|
171
|
-
BlockNumber blockNum, Buffer recent_buffer);
|
|
172
|
-
extern Buffer ReadBuffer(Relation reln, BlockNumber blockNum);
|
|
173
|
-
extern Buffer ReadBufferExtended(Relation reln, ForkNumber forkNum,
|
|
174
|
-
BlockNumber blockNum, ReadBufferMode mode,
|
|
175
|
-
BufferAccessStrategy strategy);
|
|
176
|
-
extern Buffer ReadBufferWithoutRelcache(RelFileLocator rlocator,
|
|
177
|
-
ForkNumber forkNum, BlockNumber blockNum,
|
|
178
|
-
ReadBufferMode mode, BufferAccessStrategy strategy,
|
|
179
|
-
bool permanent);
|
|
180
|
-
extern void ReleaseBuffer(Buffer buffer);
|
|
181
|
-
extern void UnlockReleaseBuffer(Buffer buffer);
|
|
182
|
-
extern void MarkBufferDirty(Buffer buffer);
|
|
183
|
-
extern void IncrBufferRefCount(Buffer buffer);
|
|
184
|
-
extern void CheckBufferIsPinnedOnce(Buffer buffer);
|
|
185
|
-
extern Buffer ReleaseAndReadBuffer(Buffer buffer, Relation relation,
|
|
186
|
-
BlockNumber blockNum);
|
|
187
|
-
|
|
188
|
-
extern Buffer ExtendBufferedRel(BufferManagerRelation bmr,
|
|
189
|
-
ForkNumber forkNum,
|
|
190
|
-
BufferAccessStrategy strategy,
|
|
191
|
-
uint32 flags);
|
|
192
|
-
extern BlockNumber ExtendBufferedRelBy(BufferManagerRelation bmr,
|
|
193
|
-
ForkNumber fork,
|
|
194
|
-
BufferAccessStrategy strategy,
|
|
195
|
-
uint32 flags,
|
|
196
|
-
uint32 extend_by,
|
|
197
|
-
Buffer *buffers,
|
|
198
|
-
uint32 *extended_by);
|
|
199
|
-
extern Buffer ExtendBufferedRelTo(BufferManagerRelation bmr,
|
|
200
|
-
ForkNumber fork,
|
|
201
|
-
BufferAccessStrategy strategy,
|
|
202
|
-
uint32 flags,
|
|
203
|
-
BlockNumber extend_to,
|
|
204
|
-
ReadBufferMode mode);
|
|
205
|
-
|
|
206
|
-
extern void InitBufferPoolAccess(void);
|
|
207
|
-
extern void AtEOXact_Buffers(bool isCommit);
|
|
208
|
-
extern void PrintBufferLeakWarning(Buffer buffer);
|
|
209
|
-
extern void CheckPointBuffers(int flags);
|
|
210
|
-
extern BlockNumber BufferGetBlockNumber(Buffer buffer);
|
|
211
|
-
extern BlockNumber RelationGetNumberOfBlocksInFork(Relation relation,
|
|
212
|
-
ForkNumber forkNum);
|
|
213
|
-
extern void FlushOneBuffer(Buffer buffer);
|
|
214
|
-
extern void FlushRelationBuffers(Relation rel);
|
|
215
|
-
extern void FlushRelationsAllBuffers(struct SMgrRelationData **smgrs, int nrels);
|
|
216
|
-
extern void CreateAndCopyRelationData(RelFileLocator src_rlocator,
|
|
217
|
-
RelFileLocator dst_rlocator,
|
|
218
|
-
bool permanent);
|
|
219
|
-
extern void FlushDatabaseBuffers(Oid dbid);
|
|
220
|
-
extern void DropRelationBuffers(struct SMgrRelationData *smgr_reln,
|
|
221
|
-
ForkNumber *forkNum,
|
|
222
|
-
int nforks, BlockNumber *firstDelBlock);
|
|
223
|
-
extern void DropRelationsAllBuffers(struct SMgrRelationData **smgr_reln,
|
|
224
|
-
int nlocators);
|
|
225
|
-
extern void DropDatabaseBuffers(Oid dbid);
|
|
226
|
-
|
|
227
|
-
#define RelationGetNumberOfBlocks(reln) \
|
|
228
|
-
RelationGetNumberOfBlocksInFork(reln, MAIN_FORKNUM)
|
|
229
|
-
|
|
230
|
-
extern bool BufferIsPermanent(Buffer buffer);
|
|
231
|
-
extern XLogRecPtr BufferGetLSNAtomic(Buffer buffer);
|
|
232
|
-
|
|
233
|
-
#ifdef NOT_USED
|
|
234
|
-
extern void PrintPinnedBufs(void);
|
|
235
|
-
#endif
|
|
236
|
-
extern void BufferGetTag(Buffer buffer, RelFileLocator *rlocator,
|
|
237
|
-
ForkNumber *forknum, BlockNumber *blknum);
|
|
238
|
-
|
|
239
|
-
extern void MarkBufferDirtyHint(Buffer buffer, bool buffer_std);
|
|
240
|
-
|
|
241
|
-
extern void UnlockBuffers(void);
|
|
242
|
-
extern void LockBuffer(Buffer buffer, int mode);
|
|
243
|
-
extern bool ConditionalLockBuffer(Buffer buffer);
|
|
244
|
-
extern void LockBufferForCleanup(Buffer buffer);
|
|
245
|
-
extern bool ConditionalLockBufferForCleanup(Buffer buffer);
|
|
246
|
-
extern bool IsBufferCleanupOK(Buffer buffer);
|
|
247
|
-
extern bool HoldingBufferPinThatDelaysRecovery(void);
|
|
248
|
-
|
|
249
|
-
extern void AbortBufferIO(Buffer buffer);
|
|
250
|
-
|
|
251
|
-
extern bool BgBufferSync(struct WritebackContext *wb_context);
|
|
252
|
-
|
|
253
|
-
extern void TestForOldSnapshot_impl(Snapshot snapshot, Relation relation);
|
|
254
|
-
|
|
255
|
-
/* in buf_init.c */
|
|
256
|
-
extern void InitBufferPool(void);
|
|
257
|
-
extern Size BufferShmemSize(void);
|
|
258
|
-
|
|
259
|
-
/* in localbuf.c */
|
|
260
|
-
extern void AtProcExit_LocalBuffers(void);
|
|
261
|
-
|
|
262
|
-
/* in freelist.c */
|
|
263
|
-
|
|
264
|
-
extern BufferAccessStrategy GetAccessStrategy(BufferAccessStrategyType btype);
|
|
265
|
-
extern BufferAccessStrategy GetAccessStrategyWithSize(BufferAccessStrategyType btype,
|
|
266
|
-
int ring_size_kb);
|
|
267
|
-
extern int GetAccessStrategyBufferCount(BufferAccessStrategy strategy);
|
|
268
|
-
|
|
269
|
-
extern void FreeAccessStrategy(BufferAccessStrategy strategy);
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
/* inline functions */
|
|
273
|
-
|
|
274
|
-
/*
|
|
275
|
-
* Although this header file is nominally backend-only, certain frontend
|
|
276
|
-
* programs like pg_waldump include it. For compilers that emit static
|
|
277
|
-
* inline functions even when they're unused, that leads to unsatisfied
|
|
278
|
-
* external references; hence hide these with #ifndef FRONTEND.
|
|
279
|
-
*/
|
|
280
|
-
|
|
281
|
-
#ifndef FRONTEND
|
|
282
|
-
|
|
283
|
-
/*
|
|
284
|
-
* BufferIsValid
|
|
285
|
-
* True iff the given buffer number is valid (either as a shared
|
|
286
|
-
* or local buffer).
|
|
287
|
-
*
|
|
288
|
-
* Note: For a long time this was defined the same as BufferIsPinned,
|
|
289
|
-
* that is it would say False if you didn't hold a pin on the buffer.
|
|
290
|
-
* I believe this was bogus and served only to mask logic errors.
|
|
291
|
-
* Code should always know whether it has a buffer reference,
|
|
292
|
-
* independently of the pin state.
|
|
293
|
-
*
|
|
294
|
-
* Note: For a further long time this was not quite the inverse of the
|
|
295
|
-
* BufferIsInvalid() macro, in that it also did sanity checks to verify
|
|
296
|
-
* that the buffer number was in range. Most likely, this macro was
|
|
297
|
-
* originally intended only to be used in assertions, but its use has
|
|
298
|
-
* since expanded quite a bit, and the overhead of making those checks
|
|
299
|
-
* even in non-assert-enabled builds can be significant. Thus, we've
|
|
300
|
-
* now demoted the range checks to assertions within the macro itself.
|
|
301
|
-
*/
|
|
302
|
-
static inline bool
|
|
303
|
-
BufferIsValid(Buffer bufnum)
|
|
304
|
-
{
|
|
305
|
-
Assert(bufnum <= NBuffers);
|
|
306
|
-
Assert(bufnum >= -NLocBuffer);
|
|
307
|
-
|
|
308
|
-
return bufnum != InvalidBuffer;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
/*
|
|
312
|
-
* BufferGetBlock
|
|
313
|
-
* Returns a reference to a disk page image associated with a buffer.
|
|
314
|
-
*
|
|
315
|
-
* Note:
|
|
316
|
-
* Assumes buffer is valid.
|
|
317
|
-
*/
|
|
318
|
-
static inline Block
|
|
319
|
-
BufferGetBlock(Buffer buffer)
|
|
320
|
-
{
|
|
321
|
-
Assert(BufferIsValid(buffer));
|
|
322
|
-
|
|
323
|
-
if (BufferIsLocal(buffer))
|
|
324
|
-
return LocalBufferBlockPointers[-buffer - 1];
|
|
325
|
-
else
|
|
326
|
-
return (Block) (BufferBlocks + ((Size) (buffer - 1)) * BLCKSZ);
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
/*
|
|
330
|
-
* BufferGetPageSize
|
|
331
|
-
* Returns the page size within a buffer.
|
|
332
|
-
*
|
|
333
|
-
* Notes:
|
|
334
|
-
* Assumes buffer is valid.
|
|
335
|
-
*
|
|
336
|
-
* The buffer can be a raw disk block and need not contain a valid
|
|
337
|
-
* (formatted) disk page.
|
|
338
|
-
*/
|
|
339
|
-
/* XXX should dig out of buffer descriptor */
|
|
340
|
-
static inline Size
|
|
341
|
-
BufferGetPageSize(Buffer buffer)
|
|
342
|
-
{
|
|
343
|
-
AssertMacro(BufferIsValid(buffer));
|
|
344
|
-
return (Size) BLCKSZ;
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
/*
|
|
348
|
-
* BufferGetPage
|
|
349
|
-
* Returns the page associated with a buffer.
|
|
350
|
-
*
|
|
351
|
-
* When this is called as part of a scan, there may be a need for a nearby
|
|
352
|
-
* call to TestForOldSnapshot(). See the definition of that for details.
|
|
353
|
-
*/
|
|
354
|
-
static inline Page
|
|
355
|
-
BufferGetPage(Buffer buffer)
|
|
356
|
-
{
|
|
357
|
-
return (Page) BufferGetBlock(buffer);
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
/*
|
|
361
|
-
* Check whether the given snapshot is too old to have safely read the given
|
|
362
|
-
* page from the given table. If so, throw a "snapshot too old" error.
|
|
363
|
-
*
|
|
364
|
-
* This test generally needs to be performed after every BufferGetPage() call
|
|
365
|
-
* that is executed as part of a scan. It is not needed for calls made for
|
|
366
|
-
* modifying the page (for example, to position to the right place to insert a
|
|
367
|
-
* new index tuple or for vacuuming). It may also be omitted where calls to
|
|
368
|
-
* lower-level functions will have already performed the test.
|
|
369
|
-
*
|
|
370
|
-
* Note that a NULL snapshot argument is allowed and causes a fast return
|
|
371
|
-
* without error; this is to support call sites which can be called from
|
|
372
|
-
* either scans or index modification areas.
|
|
373
|
-
*
|
|
374
|
-
* For best performance, keep the tests that are fastest and/or most likely to
|
|
375
|
-
* exclude a page from old snapshot testing near the front.
|
|
376
|
-
*/
|
|
377
|
-
static inline void
|
|
378
|
-
TestForOldSnapshot(Snapshot snapshot, Relation relation, Page page)
|
|
379
|
-
{
|
|
380
|
-
Assert(relation != NULL);
|
|
381
|
-
|
|
382
|
-
if (old_snapshot_threshold >= 0
|
|
383
|
-
&& (snapshot) != NULL
|
|
384
|
-
&& ((snapshot)->snapshot_type == SNAPSHOT_MVCC
|
|
385
|
-
|| (snapshot)->snapshot_type == SNAPSHOT_TOAST)
|
|
386
|
-
&& !XLogRecPtrIsInvalid((snapshot)->lsn)
|
|
387
|
-
&& PageGetLSN(page) > (snapshot)->lsn)
|
|
388
|
-
TestForOldSnapshot_impl(snapshot, relation);
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
#endif /* FRONTEND */
|
|
392
|
-
|
|
393
|
-
#endif /* BUFMGR_H */
|