pg_query 2.2.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +86 -0
- data/README.md +57 -31
- data/Rakefile +5 -6
- data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
- data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
- data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/extconf.rb +33 -9
- data/ext/pg_query/include/pg_query.h +30 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +839 -290
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +638 -481
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +6786 -4193
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +450 -330
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1489 -1044
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +157 -118
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1933 -1410
- data/ext/pg_query/include/postgres/access/amapi.h +303 -0
- data/ext/pg_query/include/postgres/access/attmap.h +54 -0
- data/ext/pg_query/include/postgres/access/attnum.h +64 -0
- data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
- data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
- data/ext/pg_query/include/postgres/access/clog.h +62 -0
- data/ext/pg_query/include/postgres/access/commit_ts.h +73 -0
- data/ext/pg_query/include/postgres/access/detoast.h +82 -0
- data/ext/pg_query/include/postgres/access/genam.h +246 -0
- data/ext/pg_query/include/postgres/access/gin.h +91 -0
- data/ext/pg_query/include/postgres/access/htup.h +89 -0
- data/ext/pg_query/include/postgres/access/htup_details.h +811 -0
- data/ext/pg_query/include/postgres/access/itup.h +170 -0
- data/ext/pg_query/include/postgres/access/parallel.h +81 -0
- data/ext/pg_query/include/postgres/access/printtup.h +35 -0
- data/ext/pg_query/include/postgres/access/relation.h +28 -0
- data/ext/pg_query/include/postgres/access/relscan.h +191 -0
- data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
- data/ext/pg_query/include/postgres/access/rmgrlist.h +49 -0
- data/ext/pg_query/include/postgres/access/sdir.h +67 -0
- data/ext/pg_query/include/postgres/access/skey.h +151 -0
- data/ext/pg_query/include/postgres/access/slru.h +218 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +85 -0
- data/ext/pg_query/include/postgres/access/sysattr.h +29 -0
- data/ext/pg_query/include/postgres/access/table.h +28 -0
- data/ext/pg_query/include/postgres/access/tableam.h +2110 -0
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
- data/ext/pg_query/include/postgres/access/transam.h +418 -0
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/postgres/access/tupconvert.h +54 -0
- data/ext/pg_query/include/postgres/access/tupdesc.h +154 -0
- data/ext/pg_query/include/postgres/access/tupmacs.h +207 -0
- data/ext/pg_query/include/postgres/access/twophase.h +65 -0
- data/ext/pg_query/include/postgres/access/xact.h +530 -0
- data/ext/pg_query/include/postgres/access/xlog.h +310 -0
- data/ext/pg_query/include/postgres/access/xlog_internal.h +405 -0
- data/ext/pg_query/include/postgres/access/xlogbackup.h +43 -0
- data/ext/pg_query/include/postgres/access/xlogdefs.h +82 -0
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/postgres/access/xlogreader.h +444 -0
- data/ext/pg_query/include/postgres/access/xlogrecord.h +248 -0
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
- data/ext/pg_query/include/postgres/archive/archive_module.h +67 -0
- data/ext/pg_query/include/postgres/c.h +1374 -0
- data/ext/pg_query/include/postgres/catalog/catalog.h +47 -0
- data/ext/pg_query/include/postgres/catalog/catversion.h +62 -0
- data/ext/pg_query/include/postgres/catalog/dependency.h +228 -0
- data/ext/pg_query/include/postgres/catalog/genbki.h +149 -0
- data/ext/pg_query/include/postgres/catalog/index.h +218 -0
- data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
- data/ext/pg_query/include/postgres/catalog/namespace.h +189 -0
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +267 -0
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +93 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +182 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +78 -0
- data/ext/pg_query/include/postgres/catalog/pg_am.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +47 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +240 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_class.h +235 -0
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +134 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +106 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +278 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +74 -0
- data/ext/pg_query/include/postgres/catalog/pg_control.h +260 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +79 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_database.h +129 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +53 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +77 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_index.h +92 -0
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +59 -0
- data/ext/pg_query/include/postgres/catalog/pg_language.h +75 -0
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +41 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +142 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +76 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +223 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +101 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +161 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +65 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +33 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +288 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +199 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +45 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +153 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +109 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +56 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +35 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +63 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +37 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +54 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_type.h +407 -0
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +324 -0
- data/ext/pg_query/include/postgres/catalog/storage.h +50 -0
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +49 -0
- data/ext/pg_query/include/postgres/commands/dbcommands.h +37 -0
- data/ext/pg_query/include/postgres/commands/defrem.h +161 -0
- data/ext/pg_query/include/postgres/commands/event_trigger.h +97 -0
- data/ext/pg_query/include/postgres/commands/explain.h +145 -0
- data/ext/pg_query/include/postgres/commands/prepare.h +61 -0
- data/ext/pg_query/include/postgres/commands/tablespace.h +69 -0
- data/ext/pg_query/include/postgres/commands/trigger.h +288 -0
- data/ext/pg_query/include/postgres/commands/user.h +43 -0
- data/ext/pg_query/include/postgres/commands/vacuum.h +388 -0
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/postgres/common/file_perm.h +56 -0
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +119 -0
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
- data/ext/pg_query/include/postgres/common/int.h +512 -0
- data/ext/pg_query/include/postgres/common/keywords.h +29 -0
- data/ext/pg_query/include/postgres/common/kwlookup.h +44 -0
- data/ext/pg_query/include/postgres/common/pg_prng.h +62 -0
- data/ext/pg_query/include/postgres/common/relpath.h +97 -0
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/postgres/common/string.h +44 -0
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +124 -0
- data/ext/pg_query/include/postgres/common/unicode_nonspacing_table.h +326 -0
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5261 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +989 -0
- data/ext/pg_query/include/postgres/datatype/timestamp.h +269 -0
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3310 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +836 -0
- data/ext/pg_query/include/postgres/executor/execdesc.h +70 -0
- data/ext/pg_query/include/postgres/executor/executor.h +681 -0
- data/ext/pg_query/include/postgres/executor/functions.h +56 -0
- data/ext/pg_query/include/postgres/executor/instrument.h +120 -0
- data/ext/pg_query/include/postgres/executor/spi.h +207 -0
- data/ext/pg_query/include/postgres/executor/tablefunc.h +67 -0
- data/ext/pg_query/include/postgres/executor/tuptable.h +523 -0
- data/ext/pg_query/include/postgres/fmgr.h +800 -0
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/postgres/funcapi.h +360 -0
- data/ext/pg_query/include/postgres/gram.h +1168 -0
- data/ext/pg_query/include/postgres/gramparse.h +75 -0
- data/ext/pg_query/include/postgres/jit/jit.h +106 -0
- data/ext/pg_query/include/postgres/kwlist_d.h +1164 -0
- data/ext/pg_query/include/postgres/lib/dshash.h +130 -0
- data/ext/pg_query/include/postgres/lib/ilist.h +1159 -0
- data/ext/pg_query/include/postgres/lib/pairingheap.h +102 -0
- data/ext/pg_query/include/postgres/lib/simplehash.h +1206 -0
- data/ext/pg_query/include/postgres/lib/sort_template.h +445 -0
- data/ext/pg_query/include/postgres/lib/stringinfo.h +243 -0
- data/ext/pg_query/include/postgres/libpq/auth.h +37 -0
- data/ext/pg_query/include/postgres/libpq/crypt.h +47 -0
- data/ext/pg_query/include/postgres/libpq/hba.h +186 -0
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +361 -0
- data/ext/pg_query/include/postgres/libpq/libpq.h +143 -0
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +169 -0
- data/ext/pg_query/include/postgres/libpq/pqformat.h +209 -0
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +54 -0
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/postgres/mb/pg_wchar.h +793 -0
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
- data/ext/pg_query/include/postgres/miscadmin.h +527 -0
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
- data/ext/pg_query/include/postgres/nodes/execnodes.h +2855 -0
- data/ext/pg_query/include/postgres/nodes/extensible.h +164 -0
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +61 -0
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +127 -0
- data/ext/pg_query/include/postgres/nodes/memnodes.h +152 -0
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +222 -0
- data/ext/pg_query/include/postgres/nodes/nodes.h +435 -0
- data/ext/pg_query/include/postgres/nodes/nodetags.h +491 -0
- data/ext/pg_query/include/postgres/nodes/params.h +170 -0
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +4233 -0
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +3438 -0
- data/ext/pg_query/include/postgres/nodes/pg_list.h +686 -0
- data/ext/pg_query/include/postgres/nodes/plannodes.h +1593 -0
- data/ext/pg_query/include/postgres/nodes/primnodes.h +2339 -0
- data/ext/pg_query/include/postgres/nodes/print.h +34 -0
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
- data/ext/pg_query/include/postgres/nodes/replnodes.h +132 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +75 -0
- data/ext/pg_query/include/postgres/nodes/value.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/cost.h +216 -0
- data/ext/pg_query/include/postgres/optimizer/geqo.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +45 -0
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +205 -0
- data/ext/pg_query/include/postgres/optimizer/paths.h +271 -0
- data/ext/pg_query/include/postgres/optimizer/planmain.h +123 -0
- data/ext/pg_query/include/postgres/parser/analyze.h +66 -0
- data/ext/pg_query/include/postgres/parser/kwlist.h +518 -0
- data/ext/pg_query/include/postgres/parser/parse_agg.h +65 -0
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +105 -0
- data/ext/pg_query/include/postgres/parser/parse_expr.h +25 -0
- data/ext/pg_query/include/postgres/parser/parse_func.h +74 -0
- data/ext/pg_query/include/postgres/parser/parse_node.h +358 -0
- data/ext/pg_query/include/postgres/parser/parse_oper.h +68 -0
- data/ext/pg_query/include/postgres/parser/parse_relation.h +129 -0
- data/ext/pg_query/include/postgres/parser/parse_type.h +61 -0
- data/ext/pg_query/include/postgres/parser/parser.h +68 -0
- data/ext/pg_query/include/postgres/parser/parsetree.h +61 -0
- data/ext/pg_query/include/postgres/parser/scanner.h +152 -0
- data/ext/pg_query/include/postgres/parser/scansup.h +27 -0
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +26 -0
- data/ext/pg_query/include/postgres/pg_config.h +985 -0
- data/ext/pg_query/include/postgres/pg_config_manual.h +385 -0
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/postgres/pg_getopt.h +56 -0
- data/ext/pg_query/include/postgres/pg_trace.h +17 -0
- data/ext/pg_query/include/postgres/pgstat.h +780 -0
- data/ext/pg_query/include/postgres/pgtime.h +94 -0
- data/ext/pg_query/include/postgres/pl_gram.h +385 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +52 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +114 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +112 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +246 -0
- data/ext/pg_query/include/postgres/plerrcodes.h +998 -0
- data/ext/pg_query/include/postgres/plpgsql.h +1342 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +32 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +256 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +254 -0
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +170 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +323 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +119 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +121 -0
- data/ext/pg_query/include/postgres/port/atomics/generic.h +437 -0
- data/ext/pg_query/include/postgres/port/atomics.h +606 -0
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +421 -0
- data/ext/pg_query/include/postgres/port/pg_bswap.h +161 -0
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +110 -0
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +422 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +34 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +582 -0
- data/ext/pg_query/include/postgres/port.h +555 -0
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/postgres/postgres_ext.h +73 -0
- data/ext/pg_query/include/postgres/postmaster/autovacuum.h +69 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +164 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +60 -0
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +45 -0
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +32 -0
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +23 -0
- data/ext/pg_query/include/postgres/regex/regex.h +272 -0
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +34 -0
- data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
- data/ext/pg_query/include/postgres/replication/logicalworker.h +33 -0
- data/ext/pg_query/include/postgres/replication/origin.h +73 -0
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +734 -0
- data/ext/pg_query/include/postgres/replication/slot.h +289 -0
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +109 -0
- data/ext/pg_query/include/postgres/replication/walreceiver.h +504 -0
- data/ext/pg_query/include/postgres/replication/walsender.h +76 -0
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +46 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +41 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +96 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +26 -0
- data/ext/pg_query/include/postgres/storage/block.h +108 -0
- data/ext/pg_query/include/postgres/storage/buf.h +46 -0
- data/ext/pg_query/include/postgres/storage/bufmgr.h +411 -0
- data/ext/pg_query/include/postgres/storage/bufpage.h +510 -0
- data/ext/pg_query/include/postgres/storage/condition_variable.h +73 -0
- data/ext/pg_query/include/postgres/storage/dsm.h +61 -0
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +79 -0
- data/ext/pg_query/include/postgres/storage/fd.h +219 -0
- data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
- data/ext/pg_query/include/postgres/storage/ipc.h +87 -0
- data/ext/pg_query/include/postgres/storage/item.h +19 -0
- data/ext/pg_query/include/postgres/storage/itemid.h +184 -0
- data/ext/pg_query/include/postgres/storage/itemptr.h +245 -0
- data/ext/pg_query/include/postgres/storage/large_object.h +100 -0
- data/ext/pg_query/include/postgres/storage/latch.h +196 -0
- data/ext/pg_query/include/postgres/storage/lmgr.h +126 -0
- data/ext/pg_query/include/postgres/storage/lock.h +624 -0
- data/ext/pg_query/include/postgres/storage/lockdefs.h +61 -0
- data/ext/pg_query/include/postgres/storage/lwlock.h +228 -0
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +47 -0
- data/ext/pg_query/include/postgres/storage/off.h +57 -0
- data/ext/pg_query/include/postgres/storage/pg_sema.h +61 -0
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +93 -0
- data/ext/pg_query/include/postgres/storage/pmsignal.h +105 -0
- data/ext/pg_query/include/postgres/storage/predicate.h +83 -0
- data/ext/pg_query/include/postgres/storage/proc.h +488 -0
- data/ext/pg_query/include/postgres/storage/procarray.h +103 -0
- data/ext/pg_query/include/postgres/storage/proclist_types.h +53 -0
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +75 -0
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +100 -0
- data/ext/pg_query/include/postgres/storage/s_lock.h +847 -0
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +37 -0
- data/ext/pg_query/include/postgres/storage/shm_mq.h +86 -0
- data/ext/pg_query/include/postgres/storage/shm_toc.h +58 -0
- data/ext/pg_query/include/postgres/storage/shmem.h +59 -0
- data/ext/pg_query/include/postgres/storage/sinval.h +153 -0
- data/ext/pg_query/include/postgres/storage/smgr.h +130 -0
- data/ext/pg_query/include/postgres/storage/spin.h +77 -0
- data/ext/pg_query/include/postgres/storage/standby.h +109 -0
- data/ext/pg_query/include/postgres/storage/standbydefs.h +74 -0
- data/ext/pg_query/include/postgres/storage/sync.h +66 -0
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +62 -0
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +219 -0
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +108 -0
- data/ext/pg_query/include/postgres/tcop/dest.h +148 -0
- data/ext/pg_query/include/postgres/tcop/fastpath.h +20 -0
- data/ext/pg_query/include/postgres/tcop/pquery.h +51 -0
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +98 -0
- data/ext/pg_query/include/postgres/tcop/utility.h +112 -0
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +96 -0
- data/ext/pg_query/include/postgres/utils/acl.h +290 -0
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +45 -0
- data/ext/pg_query/include/postgres/utils/array.h +481 -0
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +46 -0
- data/ext/pg_query/include/postgres/utils/backend_status.h +340 -0
- data/ext/pg_query/include/postgres/utils/builtins.h +139 -0
- data/ext/pg_query/include/postgres/utils/bytea.h +28 -0
- data/ext/pg_query/include/postgres/utils/catcache.h +231 -0
- data/ext/pg_query/include/postgres/utils/date.h +118 -0
- data/ext/pg_query/include/postgres/utils/datetime.h +367 -0
- data/ext/pg_query/include/postgres/utils/datum.h +76 -0
- data/ext/pg_query/include/postgres/utils/dsa.h +166 -0
- data/ext/pg_query/include/postgres/utils/elog.h +540 -0
- data/ext/pg_query/include/postgres/utils/errcodes.h +352 -0
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +170 -0
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +241 -0
- data/ext/pg_query/include/postgres/utils/float.h +357 -0
- data/ext/pg_query/include/postgres/utils/fmgroids.h +3347 -0
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +2904 -0
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +49 -0
- data/ext/pg_query/include/postgres/utils/guc.h +456 -0
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +184 -0
- data/ext/pg_query/include/postgres/utils/guc_tables.h +323 -0
- data/ext/pg_query/include/postgres/utils/hsearch.h +153 -0
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +68 -0
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/postgres/utils/lsyscache.h +215 -0
- data/ext/pg_query/include/postgres/utils/memdebug.h +82 -0
- data/ext/pg_query/include/postgres/utils/memutils.h +193 -0
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +176 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +253 -0
- data/ext/pg_query/include/postgres/utils/numeric.h +110 -0
- data/ext/pg_query/include/postgres/utils/palloc.h +151 -0
- data/ext/pg_query/include/postgres/utils/partcache.h +103 -0
- data/ext/pg_query/include/postgres/utils/pg_locale.h +136 -0
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +827 -0
- data/ext/pg_query/include/postgres/utils/plancache.h +238 -0
- data/ext/pg_query/include/postgres/utils/portal.h +252 -0
- data/ext/pg_query/include/postgres/utils/probes.h +114 -0
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +74 -0
- data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
- data/ext/pg_query/include/postgres/utils/rel.h +711 -0
- data/ext/pg_query/include/postgres/utils/relcache.h +155 -0
- data/ext/pg_query/include/postgres/utils/reltrigger.h +81 -0
- data/ext/pg_query/include/postgres/utils/resowner.h +167 -0
- data/ext/pg_query/include/postgres/utils/ruleutils.h +52 -0
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +61 -0
- data/ext/pg_query/include/postgres/utils/snapmgr.h +130 -0
- data/ext/pg_query/include/postgres/utils/snapshot.h +219 -0
- data/ext/pg_query/include/postgres/utils/sortsupport.h +391 -0
- data/ext/pg_query/include/postgres/utils/syscache.h +136 -0
- data/ext/pg_query/include/postgres/utils/timeout.h +96 -0
- data/ext/pg_query/include/postgres/utils/timestamp.h +147 -0
- data/ext/pg_query/include/postgres/utils/tuplesort.h +472 -0
- data/ext/pg_query/include/postgres/utils/tuplestore.h +88 -0
- data/ext/pg_query/include/postgres/utils/typcache.h +210 -0
- data/ext/pg_query/include/postgres/utils/varlena.h +53 -0
- data/ext/pg_query/include/postgres/utils/wait_event.h +108 -0
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +94 -0
- data/ext/pg_query/include/postgres/varatt.h +358 -0
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +8077 -6217
- data/ext/pg_query/include/protobuf/pg_query.pb.h +132024 -88124
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +24028 -17173
- data/ext/pg_query/pg_query_deparse.c +1 -9902
- data/ext/pg_query/pg_query_fingerprint.c +42 -18
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -25
- data/ext/pg_query/pg_query_normalize.c +44 -3
- data/ext/pg_query/pg_query_outfuncs_json.c +62 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +19 -18
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +45 -10
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_scan.c +4 -3
- data/ext/pg_query/pg_query_split.c +6 -5
- data/ext/pg_query/postgres_deparse.c +11496 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +262 -71
- data/ext/pg_query/src_backend_catalog_pg_proc.c +3 -2
- data/ext/pg_query/src_backend_commands_define.c +12 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +142 -156
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +100 -5881
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3831
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +89 -18
- data/ext/pg_query/src_backend_nodes_makefuncs.c +138 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +433 -132
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +45255 -38885
- data/ext/pg_query/src_backend_parser_parser.c +53 -8
- data/ext/pg_query/src_backend_parser_scan.c +6999 -3438
- data/ext/pg_query/src_backend_parser_scansup.c +5 -28
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +156 -114
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +14 -2
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
- data/ext/pg_query/src_backend_utils_adt_numutils.c +488 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +247 -34
- data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
- data/ext/pg_query/src_backend_utils_error_elog.c +543 -343
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +47 -18
- data/ext/pg_query/src_backend_utils_init_globals.c +22 -7
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +84 -148
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +502 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +166 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +708 -499
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1115 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +710 -218
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1079 -0
- data/ext/pg_query/src_common_encnames.c +46 -44
- data/ext/pg_query/src_common_hashfn.c +3 -3
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +602 -510
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +3 -3
- data/ext/pg_query/src_common_stringinfo.c +21 -4
- data/ext/pg_query/src_common_wchar.c +754 -178
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +143 -24
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1295 -1255
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +20 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
- data/ext/pg_query/src_port_pg_bitutils.c +283 -54
- data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +56 -39
- data/ext/pg_query/src_port_strerror.c +9 -21
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/filter_columns.rb +1 -1
- data/lib/pg_query/fingerprint.rb +10 -9
- data/lib/pg_query/node.rb +18 -13
- data/lib/pg_query/param_refs.rb +3 -3
- data/lib/pg_query/parse.rb +25 -15
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +181 -3038
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +55 -8
- data/lib/pg_query/truncate.rb +19 -21
- data/lib/pg_query/version.rb +1 -1
- metadata +447 -436
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -246
- data/ext/pg_query/include/access/attmap.h +0 -52
- data/ext/pg_query/include/access/attnum.h +0 -64
- data/ext/pg_query/include/access/clog.h +0 -61
- data/ext/pg_query/include/access/commit_ts.h +0 -77
- data/ext/pg_query/include/access/detoast.h +0 -92
- data/ext/pg_query/include/access/genam.h +0 -228
- data/ext/pg_query/include/access/gin.h +0 -78
- data/ext/pg_query/include/access/htup.h +0 -89
- data/ext/pg_query/include/access/htup_details.h +0 -819
- data/ext/pg_query/include/access/itup.h +0 -161
- data/ext/pg_query/include/access/parallel.h +0 -82
- data/ext/pg_query/include/access/printtup.h +0 -35
- data/ext/pg_query/include/access/relation.h +0 -28
- data/ext/pg_query/include/access/relscan.h +0 -176
- data/ext/pg_query/include/access/rmgr.h +0 -35
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -58
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -83
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -27
- data/ext/pg_query/include/access/tableam.h +0 -1825
- data/ext/pg_query/include/access/transam.h +0 -265
- data/ext/pg_query/include/access/tupconvert.h +0 -51
- data/ext/pg_query/include/access/tupdesc.h +0 -154
- data/ext/pg_query/include/access/tupmacs.h +0 -247
- data/ext/pg_query/include/access/twophase.h +0 -63
- data/ext/pg_query/include/access/xact.h +0 -469
- data/ext/pg_query/include/access/xlog.h +0 -398
- data/ext/pg_query/include/access/xlog_internal.h +0 -339
- data/ext/pg_query/include/access/xlogdefs.h +0 -109
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/access/xlogreader.h +0 -337
- data/ext/pg_query/include/access/xlogrecord.h +0 -227
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/c.h +0 -1334
- data/ext/pg_query/include/catalog/catalog.h +0 -42
- data/ext/pg_query/include/catalog/catversion.h +0 -58
- data/ext/pg_query/include/catalog/dependency.h +0 -277
- data/ext/pg_query/include/catalog/genbki.h +0 -64
- data/ext/pg_query/include/catalog/index.h +0 -199
- data/ext/pg_query/include/catalog/indexing.h +0 -366
- data/ext/pg_query/include/catalog/namespace.h +0 -188
- data/ext/pg_query/include/catalog/objectaccess.h +0 -197
- data/ext/pg_query/include/catalog/objectaddress.h +0 -84
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -176
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -77
- data/ext/pg_query/include/catalog/pg_am.h +0 -60
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -204
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_authid.h +0 -58
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_class.h +0 -200
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -103
- data/ext/pg_query/include/catalog/pg_collation.h +0 -73
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -247
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -67
- data/ext/pg_query/include/catalog/pg_control.h +0 -252
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -72
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_depend.h +0 -73
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -51
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_index.h +0 -80
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -56
- data/ext/pg_query/include/catalog/pg_language.h +0 -67
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -39
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -59
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -85
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_operator.h +0 -104
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -60
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -63
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_proc.h +0 -211
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -99
- data/ext/pg_query/include/catalog/pg_publication.h +0 -118
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -57
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -29
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -275
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -194
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -74
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -40
- data/ext/pg_query/include/catalog/pg_transform.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -137
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -50
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -54
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -57
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -48
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_type.h +0 -373
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -285
- data/ext/pg_query/include/catalog/storage.h +0 -48
- data/ext/pg_query/include/commands/async.h +0 -54
- data/ext/pg_query/include/commands/dbcommands.h +0 -35
- data/ext/pg_query/include/commands/defrem.h +0 -173
- data/ext/pg_query/include/commands/event_trigger.h +0 -88
- data/ext/pg_query/include/commands/explain.h +0 -127
- data/ext/pg_query/include/commands/prepare.h +0 -61
- data/ext/pg_query/include/commands/tablespace.h +0 -69
- data/ext/pg_query/include/commands/trigger.h +0 -285
- data/ext/pg_query/include/commands/user.h +0 -37
- data/ext/pg_query/include/commands/vacuum.h +0 -293
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/file_perm.h +0 -56
- data/ext/pg_query/include/common/hashfn.h +0 -104
- data/ext/pg_query/include/common/ip.h +0 -37
- data/ext/pg_query/include/common/keywords.h +0 -33
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/relpath.h +0 -90
- data/ext/pg_query/include/common/string.h +0 -19
- data/ext/pg_query/include/common/unicode_combining_table.h +0 -196
- data/ext/pg_query/include/datatype/timestamp.h +0 -197
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -620
- data/ext/pg_query/include/executor/functions.h +0 -41
- data/ext/pg_query/include/executor/instrument.h +0 -101
- data/ext/pg_query/include/executor/spi.h +0 -175
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -487
- data/ext/pg_query/include/fmgr.h +0 -775
- data/ext/pg_query/include/funcapi.h +0 -348
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/jit/jit.h +0 -105
- data/ext/pg_query/include/kwlist_d.h +0 -1072
- data/ext/pg_query/include/lib/ilist.h +0 -727
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1059
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -29
- data/ext/pg_query/include/libpq/crypt.h +0 -46
- data/ext/pg_query/include/libpq/hba.h +0 -140
- data/ext/pg_query/include/libpq/libpq-be.h +0 -326
- data/ext/pg_query/include/libpq/libpq.h +0 -134
- data/ext/pg_query/include/libpq/pqcomm.h +0 -208
- data/ext/pg_query/include/libpq/pqformat.h +0 -210
- data/ext/pg_query/include/libpq/pqsignal.h +0 -42
- data/ext/pg_query/include/mb/pg_wchar.h +0 -673
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -489
- data/ext/pg_query/include/nodes/bitmapset.h +0 -122
- data/ext/pg_query/include/nodes/execnodes.h +0 -2523
- data/ext/pg_query/include/nodes/extensible.h +0 -160
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -108
- data/ext/pg_query/include/nodes/memnodes.h +0 -108
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
- data/ext/pg_query/include/nodes/nodes.h +0 -842
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -3580
- data/ext/pg_query/include/nodes/pathnodes.h +0 -2557
- data/ext/pg_query/include/nodes/pg_list.h +0 -606
- data/ext/pg_query/include/nodes/plannodes.h +0 -1266
- data/ext/pg_query/include/nodes/primnodes.h +0 -1541
- data/ext/pg_query/include/nodes/print.h +0 -34
- data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
- data/ext/pg_query/include/nodes/value.h +0 -61
- data/ext/pg_query/include/optimizer/cost.h +0 -206
- data/ext/pg_query/include/optimizer/geqo.h +0 -88
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -194
- data/ext/pg_query/include/optimizer/paths.h +0 -257
- data/ext/pg_query/include/optimizer/planmain.h +0 -119
- data/ext/pg_query/include/parser/analyze.h +0 -49
- data/ext/pg_query/include/parser/gram.h +0 -1067
- data/ext/pg_query/include/parser/gramparse.h +0 -75
- data/ext/pg_query/include/parser/kwlist.h +0 -477
- data/ext/pg_query/include/parser/parse_agg.h +0 -68
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_coerce.h +0 -98
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_expr.h +0 -26
- data/ext/pg_query/include/parser/parse_func.h +0 -73
- data/ext/pg_query/include/parser/parse_node.h +0 -327
- data/ext/pg_query/include/parser/parse_oper.h +0 -67
- data/ext/pg_query/include/parser/parse_relation.h +0 -123
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/include/parser/parse_type.h +0 -60
- data/ext/pg_query/include/parser/parser.h +0 -41
- data/ext/pg_query/include/parser/parsetree.h +0 -61
- data/ext/pg_query/include/parser/scanner.h +0 -152
- data/ext/pg_query/include/parser/scansup.h +0 -30
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -995
- data/ext/pg_query/include/pg_config_manual.h +0 -357
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/pg_getopt.h +0 -56
- data/ext/pg_query/include/pg_trace.h +0 -17
- data/ext/pg_query/include/pgstat.h +0 -1488
- data/ext/pg_query/include/pgtime.h +0 -84
- data/ext/pg_query/include/pl_gram.h +0 -385
- data/ext/pg_query/include/pl_reserved_kwlist.h +0 -52
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +0 -114
- data/ext/pg_query/include/pl_unreserved_kwlist.h +0 -112
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -246
- data/ext/pg_query/include/plerrcodes.h +0 -990
- data/ext/pg_query/include/plpgsql.h +0 -1347
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -26
- data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
- data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
- data/ext/pg_query/include/port/atomics/fallback.h +0 -170
- data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
- data/ext/pg_query/include/port/atomics/generic.h +0 -401
- data/ext/pg_query/include/port/atomics.h +0 -524
- data/ext/pg_query/include/port/pg_bitutils.h +0 -272
- data/ext/pg_query/include/port/pg_bswap.h +0 -161
- data/ext/pg_query/include/port/pg_crc32c.h +0 -101
- data/ext/pg_query/include/port.h +0 -528
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postgres.h +0 -764
- data/ext/pg_query/include/postgres_ext.h +0 -74
- data/ext/pg_query/include/postmaster/autovacuum.h +0 -83
- data/ext/pg_query/include/postmaster/bgworker.h +0 -161
- data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
- data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/interrupt.h +0 -32
- data/ext/pg_query/include/postmaster/pgarch.h +0 -39
- data/ext/pg_query/include/postmaster/postmaster.h +0 -77
- data/ext/pg_query/include/postmaster/syslogger.h +0 -98
- data/ext/pg_query/include/postmaster/walwriter.h +0 -21
- data/ext/pg_query/include/regex/regex.h +0 -184
- data/ext/pg_query/include/replication/logicallauncher.h +0 -31
- data/ext/pg_query/include/replication/logicalproto.h +0 -110
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/replication/origin.h +0 -73
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -468
- data/ext/pg_query/include/replication/slot.h +0 -219
- data/ext/pg_query/include/replication/syncrep.h +0 -115
- data/ext/pg_query/include/replication/walreceiver.h +0 -340
- data/ext/pg_query/include/replication/walsender.h +0 -74
- data/ext/pg_query/include/rewrite/prs2lock.h +0 -46
- data/ext/pg_query/include/rewrite/rewriteHandler.h +0 -40
- data/ext/pg_query/include/rewrite/rewriteManip.h +0 -87
- data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
- data/ext/pg_query/include/storage/backendid.h +0 -37
- data/ext/pg_query/include/storage/block.h +0 -121
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -292
- data/ext/pg_query/include/storage/bufpage.h +0 -459
- data/ext/pg_query/include/storage/condition_variable.h +0 -62
- data/ext/pg_query/include/storage/dsm.h +0 -61
- data/ext/pg_query/include/storage/dsm_impl.h +0 -75
- data/ext/pg_query/include/storage/fd.h +0 -168
- data/ext/pg_query/include/storage/ipc.h +0 -81
- data/ext/pg_query/include/storage/item.h +0 -19
- data/ext/pg_query/include/storage/itemid.h +0 -184
- data/ext/pg_query/include/storage/itemptr.h +0 -206
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -190
- data/ext/pg_query/include/storage/lmgr.h +0 -114
- data/ext/pg_query/include/storage/lock.h +0 -613
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -233
- data/ext/pg_query/include/storage/lwlocknames.h +0 -51
- data/ext/pg_query/include/storage/off.h +0 -57
- data/ext/pg_query/include/storage/pg_sema.h +0 -61
- data/ext/pg_query/include/storage/pg_shmem.h +0 -90
- data/ext/pg_query/include/storage/pmsignal.h +0 -94
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -347
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -75
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -1071
- data/ext/pg_query/include/storage/sharedfileset.h +0 -45
- data/ext/pg_query/include/storage/shm_mq.h +0 -85
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -81
- data/ext/pg_query/include/storage/sinval.h +0 -153
- data/ext/pg_query/include/storage/sinvaladt.h +0 -43
- data/ext/pg_query/include/storage/smgr.h +0 -109
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -91
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -62
- data/ext/pg_query/include/tcop/cmdtag.h +0 -58
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -217
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -149
- data/ext/pg_query/include/tcop/fastpath.h +0 -21
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -89
- data/ext/pg_query/include/tcop/utility.h +0 -108
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
- data/ext/pg_query/include/utils/acl.h +0 -312
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -459
- data/ext/pg_query/include/utils/builtins.h +0 -128
- data/ext/pg_query/include/utils/bytea.h +0 -27
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -90
- data/ext/pg_query/include/utils/datetime.h +0 -343
- data/ext/pg_query/include/utils/datum.h +0 -68
- data/ext/pg_query/include/utils/dsa.h +0 -123
- data/ext/pg_query/include/utils/dynahash.h +0 -19
- data/ext/pg_query/include/utils/elog.h +0 -439
- data/ext/pg_query/include/utils/errcodes.h +0 -352
- data/ext/pg_query/include/utils/expandeddatum.h +0 -159
- data/ext/pg_query/include/utils/expandedrecord.h +0 -231
- data/ext/pg_query/include/utils/float.h +0 -356
- data/ext/pg_query/include/utils/fmgroids.h +0 -2657
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2646
- data/ext/pg_query/include/utils/fmgrtab.h +0 -48
- data/ext/pg_query/include/utils/guc.h +0 -443
- data/ext/pg_query/include/utils/guc_tables.h +0 -272
- data/ext/pg_query/include/utils/hsearch.h +0 -149
- data/ext/pg_query/include/utils/inval.h +0 -65
- data/ext/pg_query/include/utils/lsyscache.h +0 -198
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -225
- data/ext/pg_query/include/utils/numeric.h +0 -76
- data/ext/pg_query/include/utils/palloc.h +0 -136
- data/ext/pg_query/include/utils/partcache.h +0 -102
- data/ext/pg_query/include/utils/pg_locale.h +0 -119
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/plancache.h +0 -235
- data/ext/pg_query/include/utils/portal.h +0 -254
- data/ext/pg_query/include/utils/probes.h +0 -114
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/queryenvironment.h +0 -74
- data/ext/pg_query/include/utils/regproc.h +0 -28
- data/ext/pg_query/include/utils/rel.h +0 -643
- data/ext/pg_query/include/utils/relcache.h +0 -150
- data/ext/pg_query/include/utils/reltrigger.h +0 -81
- data/ext/pg_query/include/utils/resowner.h +0 -86
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/ruleutils.h +0 -44
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -159
- data/ext/pg_query/include/utils/snapshot.h +0 -206
- data/ext/pg_query/include/utils/sortsupport.h +0 -276
- data/ext/pg_query/include/utils/syscache.h +0 -219
- data/ext/pg_query/include/utils/timeout.h +0 -88
- data/ext/pg_query/include/utils/timestamp.h +0 -116
- data/ext/pg_query/include/utils/tuplesort.h +0 -277
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -202
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/include/utils/varlena.h +0 -39
- data/ext/pg_query/include/utils/xml.h +0 -84
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1832
- data/ext/pg_query/src_common_string.c +0 -86
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_random.c +0 -31
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -0,0 +1,245 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* itemptr.h
|
4
|
+
* POSTGRES disk item pointer definitions.
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
+
*
|
10
|
+
* src/include/storage/itemptr.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef ITEMPTR_H
|
15
|
+
#define ITEMPTR_H
|
16
|
+
|
17
|
+
#include "storage/block.h"
|
18
|
+
#include "storage/off.h"
|
19
|
+
|
20
|
+
/*
|
21
|
+
* ItemPointer:
|
22
|
+
*
|
23
|
+
* This is a pointer to an item within a disk page of a known file
|
24
|
+
* (for example, a cross-link from an index to its parent table).
|
25
|
+
* ip_blkid tells us which block, ip_posid tells us which entry in
|
26
|
+
* the linp (ItemIdData) array we want.
|
27
|
+
*
|
28
|
+
* Note: because there is an item pointer in each tuple header and index
|
29
|
+
* tuple header on disk, it's very important not to waste space with
|
30
|
+
* structure padding bytes. The struct is designed to be six bytes long
|
31
|
+
* (it contains three int16 fields) but a few compilers will pad it to
|
32
|
+
* eight bytes unless coerced. We apply appropriate persuasion where
|
33
|
+
* possible. If your compiler can't be made to play along, you'll waste
|
34
|
+
* lots of space.
|
35
|
+
*/
|
36
|
+
typedef struct ItemPointerData
|
37
|
+
{
|
38
|
+
BlockIdData ip_blkid;
|
39
|
+
OffsetNumber ip_posid;
|
40
|
+
}
|
41
|
+
|
42
|
+
/* If compiler understands packed and aligned pragmas, use those */
|
43
|
+
#if defined(pg_attribute_packed) && defined(pg_attribute_aligned)
|
44
|
+
pg_attribute_packed()
|
45
|
+
pg_attribute_aligned(2)
|
46
|
+
#endif
|
47
|
+
ItemPointerData;
|
48
|
+
|
49
|
+
typedef ItemPointerData *ItemPointer;
|
50
|
+
|
51
|
+
/* ----------------
|
52
|
+
* special values used in heap tuples (t_ctid)
|
53
|
+
* ----------------
|
54
|
+
*/
|
55
|
+
|
56
|
+
/*
|
57
|
+
* If a heap tuple holds a speculative insertion token rather than a real
|
58
|
+
* TID, ip_posid is set to SpecTokenOffsetNumber, and the token is stored in
|
59
|
+
* ip_blkid. SpecTokenOffsetNumber must be higher than MaxOffsetNumber, so
|
60
|
+
* that it can be distinguished from a valid offset number in a regular item
|
61
|
+
* pointer.
|
62
|
+
*/
|
63
|
+
#define SpecTokenOffsetNumber 0xfffe
|
64
|
+
|
65
|
+
/*
|
66
|
+
* When a tuple is moved to a different partition by UPDATE, the t_ctid of
|
67
|
+
* the old tuple version is set to this magic value.
|
68
|
+
*/
|
69
|
+
#define MovedPartitionsOffsetNumber 0xfffd
|
70
|
+
#define MovedPartitionsBlockNumber InvalidBlockNumber
|
71
|
+
|
72
|
+
|
73
|
+
/* ----------------
|
74
|
+
* support functions
|
75
|
+
* ----------------
|
76
|
+
*/
|
77
|
+
|
78
|
+
/*
|
79
|
+
* ItemPointerIsValid
|
80
|
+
* True iff the disk item pointer is not NULL.
|
81
|
+
*/
|
82
|
+
static inline bool
|
83
|
+
ItemPointerIsValid(const ItemPointerData *pointer)
|
84
|
+
{
|
85
|
+
return PointerIsValid(pointer) && pointer->ip_posid != 0;
|
86
|
+
}
|
87
|
+
|
88
|
+
/*
|
89
|
+
* ItemPointerGetBlockNumberNoCheck
|
90
|
+
* Returns the block number of a disk item pointer.
|
91
|
+
*/
|
92
|
+
static inline BlockNumber
|
93
|
+
ItemPointerGetBlockNumberNoCheck(const ItemPointerData *pointer)
|
94
|
+
{
|
95
|
+
return BlockIdGetBlockNumber(&pointer->ip_blkid);
|
96
|
+
}
|
97
|
+
|
98
|
+
/*
|
99
|
+
* ItemPointerGetBlockNumber
|
100
|
+
* As above, but verifies that the item pointer looks valid.
|
101
|
+
*/
|
102
|
+
static inline BlockNumber
|
103
|
+
ItemPointerGetBlockNumber(const ItemPointerData *pointer)
|
104
|
+
{
|
105
|
+
Assert(ItemPointerIsValid(pointer));
|
106
|
+
return ItemPointerGetBlockNumberNoCheck(pointer);
|
107
|
+
}
|
108
|
+
|
109
|
+
/*
|
110
|
+
* ItemPointerGetOffsetNumberNoCheck
|
111
|
+
* Returns the offset number of a disk item pointer.
|
112
|
+
*/
|
113
|
+
static inline OffsetNumber
|
114
|
+
ItemPointerGetOffsetNumberNoCheck(const ItemPointerData *pointer)
|
115
|
+
{
|
116
|
+
return pointer->ip_posid;
|
117
|
+
}
|
118
|
+
|
119
|
+
/*
|
120
|
+
* ItemPointerGetOffsetNumber
|
121
|
+
* As above, but verifies that the item pointer looks valid.
|
122
|
+
*/
|
123
|
+
static inline OffsetNumber
|
124
|
+
ItemPointerGetOffsetNumber(const ItemPointerData *pointer)
|
125
|
+
{
|
126
|
+
Assert(ItemPointerIsValid(pointer));
|
127
|
+
return ItemPointerGetOffsetNumberNoCheck(pointer);
|
128
|
+
}
|
129
|
+
|
130
|
+
/*
|
131
|
+
* ItemPointerSet
|
132
|
+
* Sets a disk item pointer to the specified block and offset.
|
133
|
+
*/
|
134
|
+
static inline void
|
135
|
+
ItemPointerSet(ItemPointerData *pointer, BlockNumber blockNumber, OffsetNumber offNum)
|
136
|
+
{
|
137
|
+
Assert(PointerIsValid(pointer));
|
138
|
+
BlockIdSet(&pointer->ip_blkid, blockNumber);
|
139
|
+
pointer->ip_posid = offNum;
|
140
|
+
}
|
141
|
+
|
142
|
+
/*
|
143
|
+
* ItemPointerSetBlockNumber
|
144
|
+
* Sets a disk item pointer to the specified block.
|
145
|
+
*/
|
146
|
+
static inline void
|
147
|
+
ItemPointerSetBlockNumber(ItemPointerData *pointer, BlockNumber blockNumber)
|
148
|
+
{
|
149
|
+
Assert(PointerIsValid(pointer));
|
150
|
+
BlockIdSet(&pointer->ip_blkid, blockNumber);
|
151
|
+
}
|
152
|
+
|
153
|
+
/*
|
154
|
+
* ItemPointerSetOffsetNumber
|
155
|
+
* Sets a disk item pointer to the specified offset.
|
156
|
+
*/
|
157
|
+
static inline void
|
158
|
+
ItemPointerSetOffsetNumber(ItemPointerData *pointer, OffsetNumber offsetNumber)
|
159
|
+
{
|
160
|
+
Assert(PointerIsValid(pointer));
|
161
|
+
pointer->ip_posid = offsetNumber;
|
162
|
+
}
|
163
|
+
|
164
|
+
/*
|
165
|
+
* ItemPointerCopy
|
166
|
+
* Copies the contents of one disk item pointer to another.
|
167
|
+
*
|
168
|
+
* Should there ever be padding in an ItemPointer this would need to be handled
|
169
|
+
* differently as it's used as hash key.
|
170
|
+
*/
|
171
|
+
static inline void
|
172
|
+
ItemPointerCopy(const ItemPointerData *fromPointer, ItemPointerData *toPointer)
|
173
|
+
{
|
174
|
+
Assert(PointerIsValid(toPointer));
|
175
|
+
Assert(PointerIsValid(fromPointer));
|
176
|
+
*toPointer = *fromPointer;
|
177
|
+
}
|
178
|
+
|
179
|
+
/*
|
180
|
+
* ItemPointerSetInvalid
|
181
|
+
* Sets a disk item pointer to be invalid.
|
182
|
+
*/
|
183
|
+
static inline void
|
184
|
+
ItemPointerSetInvalid(ItemPointerData *pointer)
|
185
|
+
{
|
186
|
+
Assert(PointerIsValid(pointer));
|
187
|
+
BlockIdSet(&pointer->ip_blkid, InvalidBlockNumber);
|
188
|
+
pointer->ip_posid = InvalidOffsetNumber;
|
189
|
+
}
|
190
|
+
|
191
|
+
/*
|
192
|
+
* ItemPointerIndicatesMovedPartitions
|
193
|
+
* True iff the block number indicates the tuple has moved to another
|
194
|
+
* partition.
|
195
|
+
*/
|
196
|
+
static inline bool
|
197
|
+
ItemPointerIndicatesMovedPartitions(const ItemPointerData *pointer)
|
198
|
+
{
|
199
|
+
return
|
200
|
+
ItemPointerGetOffsetNumber(pointer) == MovedPartitionsOffsetNumber &&
|
201
|
+
ItemPointerGetBlockNumberNoCheck(pointer) == MovedPartitionsBlockNumber;
|
202
|
+
}
|
203
|
+
|
204
|
+
/*
|
205
|
+
* ItemPointerSetMovedPartitions
|
206
|
+
* Indicate that the item referenced by the itempointer has moved into a
|
207
|
+
* different partition.
|
208
|
+
*/
|
209
|
+
static inline void
|
210
|
+
ItemPointerSetMovedPartitions(ItemPointerData *pointer)
|
211
|
+
{
|
212
|
+
ItemPointerSet(pointer, MovedPartitionsBlockNumber, MovedPartitionsOffsetNumber);
|
213
|
+
}
|
214
|
+
|
215
|
+
/* ----------------
|
216
|
+
* externs
|
217
|
+
* ----------------
|
218
|
+
*/
|
219
|
+
|
220
|
+
extern bool ItemPointerEquals(ItemPointer pointer1, ItemPointer pointer2);
|
221
|
+
extern int32 ItemPointerCompare(ItemPointer arg1, ItemPointer arg2);
|
222
|
+
extern void ItemPointerInc(ItemPointer pointer);
|
223
|
+
extern void ItemPointerDec(ItemPointer pointer);
|
224
|
+
|
225
|
+
/* ----------------
|
226
|
+
* Datum conversion functions
|
227
|
+
* ----------------
|
228
|
+
*/
|
229
|
+
|
230
|
+
static inline ItemPointer
|
231
|
+
DatumGetItemPointer(Datum X)
|
232
|
+
{
|
233
|
+
return (ItemPointer) DatumGetPointer(X);
|
234
|
+
}
|
235
|
+
|
236
|
+
static inline Datum
|
237
|
+
ItemPointerGetDatum(const ItemPointerData *X)
|
238
|
+
{
|
239
|
+
return PointerGetDatum(X);
|
240
|
+
}
|
241
|
+
|
242
|
+
#define PG_GETARG_ITEMPOINTER(n) DatumGetItemPointer(PG_GETARG_DATUM(n))
|
243
|
+
#define PG_RETURN_ITEMPOINTER(x) return ItemPointerGetDatum(x)
|
244
|
+
|
245
|
+
#endif /* ITEMPTR_H */
|
@@ -0,0 +1,100 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* large_object.h
|
4
|
+
* Declarations for PostgreSQL large objects. POSTGRES 4.2 supported
|
5
|
+
* zillions of large objects (internal, external, jaquith, inversion).
|
6
|
+
* Now we only support inversion.
|
7
|
+
*
|
8
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
9
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
10
|
+
*
|
11
|
+
* src/include/storage/large_object.h
|
12
|
+
*
|
13
|
+
*-------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
#ifndef LARGE_OBJECT_H
|
16
|
+
#define LARGE_OBJECT_H
|
17
|
+
|
18
|
+
#include "utils/snapshot.h"
|
19
|
+
|
20
|
+
|
21
|
+
/*----------
|
22
|
+
* Data about a currently-open large object.
|
23
|
+
*
|
24
|
+
* id is the logical OID of the large object
|
25
|
+
* snapshot is the snapshot to use for read/write operations
|
26
|
+
* subid is the subtransaction that opened the desc (or currently owns it)
|
27
|
+
* offset is the current seek offset within the LO
|
28
|
+
* flags contains some flag bits
|
29
|
+
*
|
30
|
+
* NOTE: as of v11, permission checks are made when the large object is
|
31
|
+
* opened; therefore IFS_RDLOCK/IFS_WRLOCK indicate that read or write mode
|
32
|
+
* has been requested *and* the corresponding permission has been checked.
|
33
|
+
*
|
34
|
+
* NOTE: before 7.1, we also had to store references to the separate table
|
35
|
+
* and index of a specific large object. Now they all live in pg_largeobject
|
36
|
+
* and are accessed via a common relation descriptor.
|
37
|
+
*----------
|
38
|
+
*/
|
39
|
+
typedef struct LargeObjectDesc
|
40
|
+
{
|
41
|
+
Oid id; /* LO's identifier */
|
42
|
+
Snapshot snapshot; /* snapshot to use */
|
43
|
+
SubTransactionId subid; /* owning subtransaction ID */
|
44
|
+
uint64 offset; /* current seek pointer */
|
45
|
+
int flags; /* see flag bits below */
|
46
|
+
|
47
|
+
/* bits in flags: */
|
48
|
+
#define IFS_RDLOCK (1 << 0) /* LO was opened for reading */
|
49
|
+
#define IFS_WRLOCK (1 << 1) /* LO was opened for writing */
|
50
|
+
|
51
|
+
} LargeObjectDesc;
|
52
|
+
|
53
|
+
|
54
|
+
/*
|
55
|
+
* Each "page" (tuple) of a large object can hold this much data
|
56
|
+
*
|
57
|
+
* We could set this as high as BLCKSZ less some overhead, but it seems
|
58
|
+
* better to make it a smaller value, so that not as much space is used
|
59
|
+
* up when a page-tuple is updated. Note that the value is deliberately
|
60
|
+
* chosen large enough to trigger the tuple toaster, so that we will
|
61
|
+
* attempt to compress page tuples in-line. (But they won't be moved off
|
62
|
+
* unless the user creates a toast-table for pg_largeobject...)
|
63
|
+
*
|
64
|
+
* Also, it seems to be a smart move to make the page size be a power of 2,
|
65
|
+
* since clients will often be written to send data in power-of-2 blocks.
|
66
|
+
* This avoids unnecessary tuple updates caused by partial-page writes.
|
67
|
+
*
|
68
|
+
* NB: Changing LOBLKSIZE requires an initdb.
|
69
|
+
*/
|
70
|
+
#define LOBLKSIZE (BLCKSZ / 4)
|
71
|
+
|
72
|
+
/*
|
73
|
+
* Maximum length in bytes for a large object. To make this larger, we'd
|
74
|
+
* have to widen pg_largeobject.pageno as well as various internal variables.
|
75
|
+
*/
|
76
|
+
#define MAX_LARGE_OBJECT_SIZE ((int64) INT_MAX * LOBLKSIZE)
|
77
|
+
|
78
|
+
|
79
|
+
/*
|
80
|
+
* GUC: backwards-compatibility flag to suppress LO permission checks
|
81
|
+
*/
|
82
|
+
extern PGDLLIMPORT bool lo_compat_privileges;
|
83
|
+
|
84
|
+
/*
|
85
|
+
* Function definitions...
|
86
|
+
*/
|
87
|
+
|
88
|
+
/* inversion stuff in inv_api.c */
|
89
|
+
extern void close_lo_relation(bool isCommit);
|
90
|
+
extern Oid inv_create(Oid lobjId);
|
91
|
+
extern LargeObjectDesc *inv_open(Oid lobjId, int flags, MemoryContext mcxt);
|
92
|
+
extern void inv_close(LargeObjectDesc *obj_desc);
|
93
|
+
extern int inv_drop(Oid lobjId);
|
94
|
+
extern int64 inv_seek(LargeObjectDesc *obj_desc, int64 offset, int whence);
|
95
|
+
extern int64 inv_tell(LargeObjectDesc *obj_desc);
|
96
|
+
extern int inv_read(LargeObjectDesc *obj_desc, char *buf, int nbytes);
|
97
|
+
extern int inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes);
|
98
|
+
extern void inv_truncate(LargeObjectDesc *obj_desc, int64 len);
|
99
|
+
|
100
|
+
#endif /* LARGE_OBJECT_H */
|
@@ -0,0 +1,196 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* latch.h
|
4
|
+
* Routines for interprocess latches
|
5
|
+
*
|
6
|
+
* A latch is a boolean variable, with operations that let processes sleep
|
7
|
+
* until it is set. A latch can be set from another process, or a signal
|
8
|
+
* handler within the same process.
|
9
|
+
*
|
10
|
+
* The latch interface is a reliable replacement for the common pattern of
|
11
|
+
* using pg_usleep() or select() to wait until a signal arrives, where the
|
12
|
+
* signal handler sets a flag variable. Because on some platforms an
|
13
|
+
* incoming signal doesn't interrupt sleep, and even on platforms where it
|
14
|
+
* does there is a race condition if the signal arrives just before
|
15
|
+
* entering the sleep, the common pattern must periodically wake up and
|
16
|
+
* poll the flag variable. The pselect() system call was invented to solve
|
17
|
+
* this problem, but it is not portable enough. Latches are designed to
|
18
|
+
* overcome these limitations, allowing you to sleep without polling and
|
19
|
+
* ensuring quick response to signals from other processes.
|
20
|
+
*
|
21
|
+
* There are two kinds of latches: local and shared. A local latch is
|
22
|
+
* initialized by InitLatch, and can only be set from the same process.
|
23
|
+
* A local latch can be used to wait for a signal to arrive, by calling
|
24
|
+
* SetLatch in the signal handler. A shared latch resides in shared memory,
|
25
|
+
* and must be initialized at postmaster startup by InitSharedLatch. Before
|
26
|
+
* a shared latch can be waited on, it must be associated with a process
|
27
|
+
* with OwnLatch. Only the process owning the latch can wait on it, but any
|
28
|
+
* process can set it.
|
29
|
+
*
|
30
|
+
* There are three basic operations on a latch:
|
31
|
+
*
|
32
|
+
* SetLatch - Sets the latch
|
33
|
+
* ResetLatch - Clears the latch, allowing it to be set again
|
34
|
+
* WaitLatch - Waits for the latch to become set
|
35
|
+
*
|
36
|
+
* WaitLatch includes a provision for timeouts (which should be avoided
|
37
|
+
* when possible, as they incur extra overhead) and a provision for
|
38
|
+
* postmaster child processes to wake up immediately on postmaster death.
|
39
|
+
* See latch.c for detailed specifications for the exported functions.
|
40
|
+
*
|
41
|
+
* The correct pattern to wait for event(s) is:
|
42
|
+
*
|
43
|
+
* for (;;)
|
44
|
+
* {
|
45
|
+
* ResetLatch();
|
46
|
+
* if (work to do)
|
47
|
+
* Do Stuff();
|
48
|
+
* WaitLatch();
|
49
|
+
* }
|
50
|
+
*
|
51
|
+
* It's important to reset the latch *before* checking if there's work to
|
52
|
+
* do. Otherwise, if someone sets the latch between the check and the
|
53
|
+
* ResetLatch call, you will miss it and Wait will incorrectly block.
|
54
|
+
*
|
55
|
+
* Another valid coding pattern looks like:
|
56
|
+
*
|
57
|
+
* for (;;)
|
58
|
+
* {
|
59
|
+
* if (work to do)
|
60
|
+
* Do Stuff(); // in particular, exit loop if some condition satisfied
|
61
|
+
* WaitLatch();
|
62
|
+
* ResetLatch();
|
63
|
+
* }
|
64
|
+
*
|
65
|
+
* This is useful to reduce latch traffic if it's expected that the loop's
|
66
|
+
* termination condition will often be satisfied in the first iteration;
|
67
|
+
* the cost is an extra loop iteration before blocking when it is not.
|
68
|
+
* What must be avoided is placing any checks for asynchronous events after
|
69
|
+
* WaitLatch and before ResetLatch, as that creates a race condition.
|
70
|
+
*
|
71
|
+
* To wake up the waiter, you must first set a global flag or something
|
72
|
+
* else that the wait loop tests in the "if (work to do)" part, and call
|
73
|
+
* SetLatch *after* that. SetLatch is designed to return quickly if the
|
74
|
+
* latch is already set.
|
75
|
+
*
|
76
|
+
* On some platforms, signals will not interrupt the latch wait primitive
|
77
|
+
* by themselves. Therefore, it is critical that any signal handler that
|
78
|
+
* is meant to terminate a WaitLatch wait calls SetLatch.
|
79
|
+
*
|
80
|
+
* Note that use of the process latch (PGPROC.procLatch) is generally better
|
81
|
+
* than an ad-hoc shared latch for signaling auxiliary processes. This is
|
82
|
+
* because generic signal handlers will call SetLatch on the process latch
|
83
|
+
* only, so using any latch other than the process latch effectively precludes
|
84
|
+
* use of any generic handler.
|
85
|
+
*
|
86
|
+
*
|
87
|
+
* WaitEventSets allow to wait for latches being set and additional events -
|
88
|
+
* postmaster dying and socket readiness of several sockets currently - at the
|
89
|
+
* same time. On many platforms using a long lived event set is more
|
90
|
+
* efficient than using WaitLatch or WaitLatchOrSocket.
|
91
|
+
*
|
92
|
+
*
|
93
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
94
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
95
|
+
*
|
96
|
+
* src/include/storage/latch.h
|
97
|
+
*
|
98
|
+
*-------------------------------------------------------------------------
|
99
|
+
*/
|
100
|
+
#ifndef LATCH_H
|
101
|
+
#define LATCH_H
|
102
|
+
|
103
|
+
#include <signal.h>
|
104
|
+
|
105
|
+
#include "utils/resowner.h"
|
106
|
+
|
107
|
+
/*
|
108
|
+
* Latch structure should be treated as opaque and only accessed through
|
109
|
+
* the public functions. It is defined here to allow embedding Latches as
|
110
|
+
* part of bigger structs.
|
111
|
+
*/
|
112
|
+
typedef struct Latch
|
113
|
+
{
|
114
|
+
sig_atomic_t is_set;
|
115
|
+
sig_atomic_t maybe_sleeping;
|
116
|
+
bool is_shared;
|
117
|
+
int owner_pid;
|
118
|
+
#ifdef WIN32
|
119
|
+
HANDLE event;
|
120
|
+
#endif
|
121
|
+
} Latch;
|
122
|
+
|
123
|
+
/*
|
124
|
+
* Bitmasks for events that may wake-up WaitLatch(), WaitLatchOrSocket(), or
|
125
|
+
* WaitEventSetWait().
|
126
|
+
*/
|
127
|
+
#define WL_LATCH_SET (1 << 0)
|
128
|
+
#define WL_SOCKET_READABLE (1 << 1)
|
129
|
+
#define WL_SOCKET_WRITEABLE (1 << 2)
|
130
|
+
#define WL_TIMEOUT (1 << 3) /* not for WaitEventSetWait() */
|
131
|
+
#define WL_POSTMASTER_DEATH (1 << 4)
|
132
|
+
#define WL_EXIT_ON_PM_DEATH (1 << 5)
|
133
|
+
#ifdef WIN32
|
134
|
+
#define WL_SOCKET_CONNECTED (1 << 6)
|
135
|
+
#else
|
136
|
+
/* avoid having to deal with case on platforms not requiring it */
|
137
|
+
#define WL_SOCKET_CONNECTED WL_SOCKET_WRITEABLE
|
138
|
+
#endif
|
139
|
+
#define WL_SOCKET_CLOSED (1 << 7)
|
140
|
+
#ifdef WIN32
|
141
|
+
#define WL_SOCKET_ACCEPT (1 << 8)
|
142
|
+
#else
|
143
|
+
/* avoid having to deal with case on platforms not requiring it */
|
144
|
+
#define WL_SOCKET_ACCEPT WL_SOCKET_READABLE
|
145
|
+
#endif
|
146
|
+
#define WL_SOCKET_MASK (WL_SOCKET_READABLE | \
|
147
|
+
WL_SOCKET_WRITEABLE | \
|
148
|
+
WL_SOCKET_CONNECTED | \
|
149
|
+
WL_SOCKET_ACCEPT | \
|
150
|
+
WL_SOCKET_CLOSED)
|
151
|
+
|
152
|
+
typedef struct WaitEvent
|
153
|
+
{
|
154
|
+
int pos; /* position in the event data structure */
|
155
|
+
uint32 events; /* triggered events */
|
156
|
+
pgsocket fd; /* socket fd associated with event */
|
157
|
+
void *user_data; /* pointer provided in AddWaitEventToSet */
|
158
|
+
#ifdef WIN32
|
159
|
+
bool reset; /* Is reset of the event required? */
|
160
|
+
#endif
|
161
|
+
} WaitEvent;
|
162
|
+
|
163
|
+
/* forward declaration to avoid exposing latch.c implementation details */
|
164
|
+
typedef struct WaitEventSet WaitEventSet;
|
165
|
+
|
166
|
+
/*
|
167
|
+
* prototypes for functions in latch.c
|
168
|
+
*/
|
169
|
+
extern void InitializeLatchSupport(void);
|
170
|
+
extern void InitLatch(Latch *latch);
|
171
|
+
extern void InitSharedLatch(Latch *latch);
|
172
|
+
extern void OwnLatch(Latch *latch);
|
173
|
+
extern void DisownLatch(Latch *latch);
|
174
|
+
extern void SetLatch(Latch *latch);
|
175
|
+
extern void ResetLatch(Latch *latch);
|
176
|
+
extern void ShutdownLatchSupport(void);
|
177
|
+
|
178
|
+
extern WaitEventSet *CreateWaitEventSet(ResourceOwner resowner, int nevents);
|
179
|
+
extern void FreeWaitEventSet(WaitEventSet *set);
|
180
|
+
extern void FreeWaitEventSetAfterFork(WaitEventSet *set);
|
181
|
+
extern int AddWaitEventToSet(WaitEventSet *set, uint32 events, pgsocket fd,
|
182
|
+
Latch *latch, void *user_data);
|
183
|
+
extern void ModifyWaitEvent(WaitEventSet *set, int pos, uint32 events, Latch *latch);
|
184
|
+
|
185
|
+
extern int WaitEventSetWait(WaitEventSet *set, long timeout,
|
186
|
+
WaitEvent *occurred_events, int nevents,
|
187
|
+
uint32 wait_event_info);
|
188
|
+
extern int WaitLatch(Latch *latch, int wakeEvents, long timeout,
|
189
|
+
uint32 wait_event_info);
|
190
|
+
extern int WaitLatchOrSocket(Latch *latch, int wakeEvents,
|
191
|
+
pgsocket sock, long timeout, uint32 wait_event_info);
|
192
|
+
extern void InitializeLatchWaitSet(void);
|
193
|
+
extern int GetNumRegisteredWaitEvents(WaitEventSet *set);
|
194
|
+
extern bool WaitEventSetCanReportClosed(void);
|
195
|
+
|
196
|
+
#endif /* LATCH_H */
|
@@ -0,0 +1,126 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* lmgr.h
|
4
|
+
* POSTGRES lock manager definitions.
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
+
*
|
10
|
+
* src/include/storage/lmgr.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef LMGR_H
|
15
|
+
#define LMGR_H
|
16
|
+
|
17
|
+
#include "lib/stringinfo.h"
|
18
|
+
#include "storage/itemptr.h"
|
19
|
+
#include "storage/lock.h"
|
20
|
+
#include "utils/rel.h"
|
21
|
+
|
22
|
+
|
23
|
+
/* XactLockTableWait operations */
|
24
|
+
typedef enum XLTW_Oper
|
25
|
+
{
|
26
|
+
XLTW_None,
|
27
|
+
XLTW_Update,
|
28
|
+
XLTW_Delete,
|
29
|
+
XLTW_Lock,
|
30
|
+
XLTW_LockUpdated,
|
31
|
+
XLTW_InsertIndex,
|
32
|
+
XLTW_InsertIndexUnique,
|
33
|
+
XLTW_FetchUpdated,
|
34
|
+
XLTW_RecheckExclusionConstr,
|
35
|
+
} XLTW_Oper;
|
36
|
+
|
37
|
+
extern void RelationInitLockInfo(Relation relation);
|
38
|
+
|
39
|
+
/* Lock a relation */
|
40
|
+
extern void LockRelationOid(Oid relid, LOCKMODE lockmode);
|
41
|
+
extern void LockRelationId(LockRelId *relid, LOCKMODE lockmode);
|
42
|
+
extern bool ConditionalLockRelationOid(Oid relid, LOCKMODE lockmode);
|
43
|
+
extern void UnlockRelationId(LockRelId *relid, LOCKMODE lockmode);
|
44
|
+
extern void UnlockRelationOid(Oid relid, LOCKMODE lockmode);
|
45
|
+
|
46
|
+
extern void LockRelation(Relation relation, LOCKMODE lockmode);
|
47
|
+
extern bool ConditionalLockRelation(Relation relation, LOCKMODE lockmode);
|
48
|
+
extern void UnlockRelation(Relation relation, LOCKMODE lockmode);
|
49
|
+
extern bool CheckRelationLockedByMe(Relation relation, LOCKMODE lockmode,
|
50
|
+
bool orstronger);
|
51
|
+
extern bool CheckRelationOidLockedByMe(Oid relid, LOCKMODE lockmode,
|
52
|
+
bool orstronger);
|
53
|
+
extern bool LockHasWaitersRelation(Relation relation, LOCKMODE lockmode);
|
54
|
+
|
55
|
+
extern void LockRelationIdForSession(LockRelId *relid, LOCKMODE lockmode);
|
56
|
+
extern void UnlockRelationIdForSession(LockRelId *relid, LOCKMODE lockmode);
|
57
|
+
|
58
|
+
/* Lock a relation for extension */
|
59
|
+
extern void LockRelationForExtension(Relation relation, LOCKMODE lockmode);
|
60
|
+
extern void UnlockRelationForExtension(Relation relation, LOCKMODE lockmode);
|
61
|
+
extern bool ConditionalLockRelationForExtension(Relation relation,
|
62
|
+
LOCKMODE lockmode);
|
63
|
+
extern int RelationExtensionLockWaiterCount(Relation relation);
|
64
|
+
|
65
|
+
/* Lock to recompute pg_database.datfrozenxid in the current database */
|
66
|
+
extern void LockDatabaseFrozenIds(LOCKMODE lockmode);
|
67
|
+
|
68
|
+
/* Lock a page (currently only used within indexes) */
|
69
|
+
extern void LockPage(Relation relation, BlockNumber blkno, LOCKMODE lockmode);
|
70
|
+
extern bool ConditionalLockPage(Relation relation, BlockNumber blkno, LOCKMODE lockmode);
|
71
|
+
extern void UnlockPage(Relation relation, BlockNumber blkno, LOCKMODE lockmode);
|
72
|
+
|
73
|
+
/* Lock a tuple (see heap_lock_tuple before assuming you understand this) */
|
74
|
+
extern void LockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode);
|
75
|
+
extern bool ConditionalLockTuple(Relation relation, ItemPointer tid,
|
76
|
+
LOCKMODE lockmode);
|
77
|
+
extern void UnlockTuple(Relation relation, ItemPointer tid, LOCKMODE lockmode);
|
78
|
+
|
79
|
+
/* Lock an XID (used to wait for a transaction to finish) */
|
80
|
+
extern void XactLockTableInsert(TransactionId xid);
|
81
|
+
extern void XactLockTableDelete(TransactionId xid);
|
82
|
+
extern void XactLockTableWait(TransactionId xid, Relation rel,
|
83
|
+
ItemPointer ctid, XLTW_Oper oper);
|
84
|
+
extern bool ConditionalXactLockTableWait(TransactionId xid);
|
85
|
+
|
86
|
+
/* Lock VXIDs, specified by conflicting locktags */
|
87
|
+
extern void WaitForLockers(LOCKTAG heaplocktag, LOCKMODE lockmode, bool progress);
|
88
|
+
extern void WaitForLockersMultiple(List *locktags, LOCKMODE lockmode, bool progress);
|
89
|
+
|
90
|
+
/* Lock an XID for tuple insertion (used to wait for an insertion to finish) */
|
91
|
+
extern uint32 SpeculativeInsertionLockAcquire(TransactionId xid);
|
92
|
+
extern void SpeculativeInsertionLockRelease(TransactionId xid);
|
93
|
+
extern void SpeculativeInsertionWait(TransactionId xid, uint32 token);
|
94
|
+
|
95
|
+
/* Lock a general object (other than a relation) of the current database */
|
96
|
+
extern void LockDatabaseObject(Oid classid, Oid objid, uint16 objsubid,
|
97
|
+
LOCKMODE lockmode);
|
98
|
+
extern bool ConditionalLockDatabaseObject(Oid classid, Oid objid,
|
99
|
+
uint16 objsubid, LOCKMODE lockmode);
|
100
|
+
extern void UnlockDatabaseObject(Oid classid, Oid objid, uint16 objsubid,
|
101
|
+
LOCKMODE lockmode);
|
102
|
+
|
103
|
+
/* Lock a shared-across-databases object (other than a relation) */
|
104
|
+
extern void LockSharedObject(Oid classid, Oid objid, uint16 objsubid,
|
105
|
+
LOCKMODE lockmode);
|
106
|
+
extern bool ConditionalLockSharedObject(Oid classid, Oid objid, uint16 objsubid,
|
107
|
+
LOCKMODE lockmode);
|
108
|
+
extern void UnlockSharedObject(Oid classid, Oid objid, uint16 objsubid,
|
109
|
+
LOCKMODE lockmode);
|
110
|
+
|
111
|
+
extern void LockSharedObjectForSession(Oid classid, Oid objid, uint16 objsubid,
|
112
|
+
LOCKMODE lockmode);
|
113
|
+
extern void UnlockSharedObjectForSession(Oid classid, Oid objid, uint16 objsubid,
|
114
|
+
LOCKMODE lockmode);
|
115
|
+
|
116
|
+
extern void LockApplyTransactionForSession(Oid suboid, TransactionId xid, uint16 objid,
|
117
|
+
LOCKMODE lockmode);
|
118
|
+
extern void UnlockApplyTransactionForSession(Oid suboid, TransactionId xid, uint16 objid,
|
119
|
+
LOCKMODE lockmode);
|
120
|
+
|
121
|
+
/* Describe a locktag for error messages */
|
122
|
+
extern void DescribeLockTag(StringInfo buf, const LOCKTAG *tag);
|
123
|
+
|
124
|
+
extern const char *GetLockNameFromTagType(uint16 locktag_type);
|
125
|
+
|
126
|
+
#endif /* LMGR_H */
|