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
@@ -1,233 +0,0 @@
|
|
1
|
-
/*-------------------------------------------------------------------------
|
2
|
-
*
|
3
|
-
* lwlock.h
|
4
|
-
* Lightweight lock manager
|
5
|
-
*
|
6
|
-
*
|
7
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
-
*
|
10
|
-
* src/include/storage/lwlock.h
|
11
|
-
*
|
12
|
-
*-------------------------------------------------------------------------
|
13
|
-
*/
|
14
|
-
#ifndef LWLOCK_H
|
15
|
-
#define LWLOCK_H
|
16
|
-
|
17
|
-
#ifdef FRONTEND
|
18
|
-
#error "lwlock.h may not be included from frontend code"
|
19
|
-
#endif
|
20
|
-
|
21
|
-
#include "port/atomics.h"
|
22
|
-
#include "storage/proclist_types.h"
|
23
|
-
#include "storage/s_lock.h"
|
24
|
-
|
25
|
-
struct PGPROC;
|
26
|
-
|
27
|
-
/*
|
28
|
-
* Code outside of lwlock.c should not manipulate the contents of this
|
29
|
-
* structure directly, but we have to declare it here to allow LWLocks to be
|
30
|
-
* incorporated into other data structures.
|
31
|
-
*/
|
32
|
-
typedef struct LWLock
|
33
|
-
{
|
34
|
-
uint16 tranche; /* tranche ID */
|
35
|
-
pg_atomic_uint32 state; /* state of exclusive/nonexclusive lockers */
|
36
|
-
proclist_head waiters; /* list of waiting PGPROCs */
|
37
|
-
#ifdef LOCK_DEBUG
|
38
|
-
pg_atomic_uint32 nwaiters; /* number of waiters */
|
39
|
-
struct PGPROC *owner; /* last exclusive owner of the lock */
|
40
|
-
#endif
|
41
|
-
} LWLock;
|
42
|
-
|
43
|
-
/*
|
44
|
-
* In most cases, it's desirable to force each tranche of LWLocks to be aligned
|
45
|
-
* on a cache line boundary and make the array stride a power of 2. This saves
|
46
|
-
* a few cycles in indexing, but more importantly ensures that individual
|
47
|
-
* LWLocks don't cross cache line boundaries. This reduces cache contention
|
48
|
-
* problems, especially on AMD Opterons. In some cases, it's useful to add
|
49
|
-
* even more padding so that each LWLock takes up an entire cache line; this is
|
50
|
-
* useful, for example, in the main LWLock array, where the overall number of
|
51
|
-
* locks is small but some are heavily contended.
|
52
|
-
*
|
53
|
-
* When allocating a tranche that contains data other than LWLocks, it is
|
54
|
-
* probably best to include a bare LWLock and then pad the resulting structure
|
55
|
-
* as necessary for performance. For an array that contains only LWLocks,
|
56
|
-
* LWLockMinimallyPadded can be used for cases where we just want to ensure
|
57
|
-
* that we don't cross cache line boundaries within a single lock, while
|
58
|
-
* LWLockPadded can be used for cases where we want each lock to be an entire
|
59
|
-
* cache line.
|
60
|
-
*
|
61
|
-
* An LWLockMinimallyPadded might contain more than the absolute minimum amount
|
62
|
-
* of padding required to keep a lock from crossing a cache line boundary,
|
63
|
-
* because an unpadded LWLock will normally fit into 16 bytes. We ignore that
|
64
|
-
* possibility when determining the minimal amount of padding. Older releases
|
65
|
-
* had larger LWLocks, so 32 really was the minimum, and packing them in
|
66
|
-
* tighter might hurt performance.
|
67
|
-
*
|
68
|
-
* LWLOCK_MINIMAL_SIZE should be 32 on basically all common platforms, but
|
69
|
-
* because pg_atomic_uint32 is more than 4 bytes on some obscure platforms, we
|
70
|
-
* allow for the possibility that it might be 64. Even on those platforms,
|
71
|
-
* we probably won't exceed 32 bytes unless LOCK_DEBUG is defined.
|
72
|
-
*/
|
73
|
-
#define LWLOCK_PADDED_SIZE PG_CACHE_LINE_SIZE
|
74
|
-
#define LWLOCK_MINIMAL_SIZE (sizeof(LWLock) <= 32 ? 32 : 64)
|
75
|
-
|
76
|
-
/* LWLock, padded to a full cache line size */
|
77
|
-
typedef union LWLockPadded
|
78
|
-
{
|
79
|
-
LWLock lock;
|
80
|
-
char pad[LWLOCK_PADDED_SIZE];
|
81
|
-
} LWLockPadded;
|
82
|
-
|
83
|
-
/* LWLock, minimally padded */
|
84
|
-
typedef union LWLockMinimallyPadded
|
85
|
-
{
|
86
|
-
LWLock lock;
|
87
|
-
char pad[LWLOCK_MINIMAL_SIZE];
|
88
|
-
} LWLockMinimallyPadded;
|
89
|
-
|
90
|
-
extern PGDLLIMPORT LWLockPadded *MainLWLockArray;
|
91
|
-
|
92
|
-
/* struct for storing named tranche information */
|
93
|
-
typedef struct NamedLWLockTranche
|
94
|
-
{
|
95
|
-
int trancheId;
|
96
|
-
char *trancheName;
|
97
|
-
} NamedLWLockTranche;
|
98
|
-
|
99
|
-
extern PGDLLIMPORT NamedLWLockTranche *NamedLWLockTrancheArray;
|
100
|
-
extern PGDLLIMPORT int NamedLWLockTrancheRequests;
|
101
|
-
|
102
|
-
/* Names for fixed lwlocks */
|
103
|
-
#include "storage/lwlocknames.h"
|
104
|
-
|
105
|
-
/*
|
106
|
-
* It's a bit odd to declare NUM_BUFFER_PARTITIONS and NUM_LOCK_PARTITIONS
|
107
|
-
* here, but we need them to figure out offsets within MainLWLockArray, and
|
108
|
-
* having this file include lock.h or bufmgr.h would be backwards.
|
109
|
-
*/
|
110
|
-
|
111
|
-
/* Number of partitions of the shared buffer mapping hashtable */
|
112
|
-
#define NUM_BUFFER_PARTITIONS 128
|
113
|
-
|
114
|
-
/* Number of partitions the shared lock tables are divided into */
|
115
|
-
#define LOG2_NUM_LOCK_PARTITIONS 4
|
116
|
-
#define NUM_LOCK_PARTITIONS (1 << LOG2_NUM_LOCK_PARTITIONS)
|
117
|
-
|
118
|
-
/* Number of partitions the shared predicate lock tables are divided into */
|
119
|
-
#define LOG2_NUM_PREDICATELOCK_PARTITIONS 4
|
120
|
-
#define NUM_PREDICATELOCK_PARTITIONS (1 << LOG2_NUM_PREDICATELOCK_PARTITIONS)
|
121
|
-
|
122
|
-
/* Offsets for various chunks of preallocated lwlocks. */
|
123
|
-
#define BUFFER_MAPPING_LWLOCK_OFFSET NUM_INDIVIDUAL_LWLOCKS
|
124
|
-
#define LOCK_MANAGER_LWLOCK_OFFSET \
|
125
|
-
(BUFFER_MAPPING_LWLOCK_OFFSET + NUM_BUFFER_PARTITIONS)
|
126
|
-
#define PREDICATELOCK_MANAGER_LWLOCK_OFFSET \
|
127
|
-
(LOCK_MANAGER_LWLOCK_OFFSET + NUM_LOCK_PARTITIONS)
|
128
|
-
#define NUM_FIXED_LWLOCKS \
|
129
|
-
(PREDICATELOCK_MANAGER_LWLOCK_OFFSET + NUM_PREDICATELOCK_PARTITIONS)
|
130
|
-
|
131
|
-
typedef enum LWLockMode
|
132
|
-
{
|
133
|
-
LW_EXCLUSIVE,
|
134
|
-
LW_SHARED,
|
135
|
-
LW_WAIT_UNTIL_FREE /* A special mode used in PGPROC->lwWaitMode,
|
136
|
-
* when waiting for lock to become free. Not
|
137
|
-
* to be used as LWLockAcquire argument */
|
138
|
-
} LWLockMode;
|
139
|
-
|
140
|
-
|
141
|
-
#ifdef LOCK_DEBUG
|
142
|
-
extern bool Trace_lwlocks;
|
143
|
-
#endif
|
144
|
-
|
145
|
-
extern bool LWLockAcquire(LWLock *lock, LWLockMode mode);
|
146
|
-
extern bool LWLockConditionalAcquire(LWLock *lock, LWLockMode mode);
|
147
|
-
extern bool LWLockAcquireOrWait(LWLock *lock, LWLockMode mode);
|
148
|
-
extern void LWLockRelease(LWLock *lock);
|
149
|
-
extern void LWLockReleaseClearVar(LWLock *lock, uint64 *valptr, uint64 val);
|
150
|
-
extern void LWLockReleaseAll(void);
|
151
|
-
extern bool LWLockHeldByMe(LWLock *lock);
|
152
|
-
extern bool LWLockAnyHeldByMe(LWLock *lock, int nlocks, size_t stride);
|
153
|
-
extern bool LWLockHeldByMeInMode(LWLock *lock, LWLockMode mode);
|
154
|
-
|
155
|
-
extern bool LWLockWaitForVar(LWLock *lock, uint64 *valptr, uint64 oldval, uint64 *newval);
|
156
|
-
extern void LWLockUpdateVar(LWLock *lock, uint64 *valptr, uint64 value);
|
157
|
-
|
158
|
-
extern Size LWLockShmemSize(void);
|
159
|
-
extern void CreateLWLocks(void);
|
160
|
-
extern void InitLWLockAccess(void);
|
161
|
-
|
162
|
-
extern const char *GetLWLockIdentifier(uint32 classId, uint16 eventId);
|
163
|
-
|
164
|
-
/*
|
165
|
-
* Extensions (or core code) can obtain an LWLocks by calling
|
166
|
-
* RequestNamedLWLockTranche() during postmaster startup. Subsequently,
|
167
|
-
* call GetNamedLWLockTranche() to obtain a pointer to an array containing
|
168
|
-
* the number of LWLocks requested.
|
169
|
-
*/
|
170
|
-
extern void RequestNamedLWLockTranche(const char *tranche_name, int num_lwlocks);
|
171
|
-
extern LWLockPadded *GetNamedLWLockTranche(const char *tranche_name);
|
172
|
-
|
173
|
-
/*
|
174
|
-
* There is another, more flexible method of obtaining lwlocks. First, call
|
175
|
-
* LWLockNewTrancheId just once to obtain a tranche ID; this allocates from
|
176
|
-
* a shared counter. Next, each individual process using the tranche should
|
177
|
-
* call LWLockRegisterTranche() to associate that tranche ID with a name.
|
178
|
-
* Finally, LWLockInitialize should be called just once per lwlock, passing
|
179
|
-
* the tranche ID as an argument.
|
180
|
-
*
|
181
|
-
* It may seem strange that each process using the tranche must register it
|
182
|
-
* separately, but dynamic shared memory segments aren't guaranteed to be
|
183
|
-
* mapped at the same address in all coordinating backends, so storing the
|
184
|
-
* registration in the main shared memory segment wouldn't work for that case.
|
185
|
-
*/
|
186
|
-
extern int LWLockNewTrancheId(void);
|
187
|
-
extern void LWLockRegisterTranche(int tranche_id, const char *tranche_name);
|
188
|
-
extern void LWLockInitialize(LWLock *lock, int tranche_id);
|
189
|
-
|
190
|
-
/*
|
191
|
-
* Every tranche ID less than NUM_INDIVIDUAL_LWLOCKS is reserved; also,
|
192
|
-
* we reserve additional tranche IDs for builtin tranches not included in
|
193
|
-
* the set of individual LWLocks. A call to LWLockNewTrancheId will never
|
194
|
-
* return a value less than LWTRANCHE_FIRST_USER_DEFINED.
|
195
|
-
*/
|
196
|
-
typedef enum BuiltinTrancheIds
|
197
|
-
{
|
198
|
-
LWTRANCHE_XACT_BUFFER = NUM_INDIVIDUAL_LWLOCKS,
|
199
|
-
LWTRANCHE_COMMITTS_BUFFER,
|
200
|
-
LWTRANCHE_SUBTRANS_BUFFER,
|
201
|
-
LWTRANCHE_MULTIXACTOFFSET_BUFFER,
|
202
|
-
LWTRANCHE_MULTIXACTMEMBER_BUFFER,
|
203
|
-
LWTRANCHE_NOTIFY_BUFFER,
|
204
|
-
LWTRANCHE_SERIAL_BUFFER,
|
205
|
-
LWTRANCHE_WAL_INSERT,
|
206
|
-
LWTRANCHE_BUFFER_CONTENT,
|
207
|
-
LWTRANCHE_BUFFER_IO,
|
208
|
-
LWTRANCHE_REPLICATION_ORIGIN_STATE,
|
209
|
-
LWTRANCHE_REPLICATION_SLOT_IO,
|
210
|
-
LWTRANCHE_LOCK_FASTPATH,
|
211
|
-
LWTRANCHE_BUFFER_MAPPING,
|
212
|
-
LWTRANCHE_LOCK_MANAGER,
|
213
|
-
LWTRANCHE_PREDICATE_LOCK_MANAGER,
|
214
|
-
LWTRANCHE_PARALLEL_HASH_JOIN,
|
215
|
-
LWTRANCHE_PARALLEL_QUERY_DSA,
|
216
|
-
LWTRANCHE_PER_SESSION_DSA,
|
217
|
-
LWTRANCHE_PER_SESSION_RECORD_TYPE,
|
218
|
-
LWTRANCHE_PER_SESSION_RECORD_TYPMOD,
|
219
|
-
LWTRANCHE_SHARED_TUPLESTORE,
|
220
|
-
LWTRANCHE_SHARED_TIDBITMAP,
|
221
|
-
LWTRANCHE_PARALLEL_APPEND,
|
222
|
-
LWTRANCHE_PER_XACT_PREDICATE_LIST,
|
223
|
-
LWTRANCHE_FIRST_USER_DEFINED
|
224
|
-
} BuiltinTrancheIds;
|
225
|
-
|
226
|
-
/*
|
227
|
-
* Prior to PostgreSQL 9.4, we used an enum type called LWLockId to refer
|
228
|
-
* to LWLocks. New code should instead use LWLock *. However, for the
|
229
|
-
* convenience of third-party code, we include the following typedef.
|
230
|
-
*/
|
231
|
-
typedef LWLock *LWLockId;
|
232
|
-
|
233
|
-
#endif /* LWLOCK_H */
|
@@ -1,51 +0,0 @@
|
|
1
|
-
/* autogenerated from src/backend/storage/lmgr/lwlocknames.txt, do not edit */
|
2
|
-
/* there is deliberately not an #ifndef LWLOCKNAMES_H here */
|
3
|
-
|
4
|
-
#define ShmemIndexLock (&MainLWLockArray[1].lock)
|
5
|
-
#define OidGenLock (&MainLWLockArray[2].lock)
|
6
|
-
#define XidGenLock (&MainLWLockArray[3].lock)
|
7
|
-
#define ProcArrayLock (&MainLWLockArray[4].lock)
|
8
|
-
#define SInvalReadLock (&MainLWLockArray[5].lock)
|
9
|
-
#define SInvalWriteLock (&MainLWLockArray[6].lock)
|
10
|
-
#define WALBufMappingLock (&MainLWLockArray[7].lock)
|
11
|
-
#define WALWriteLock (&MainLWLockArray[8].lock)
|
12
|
-
#define ControlFileLock (&MainLWLockArray[9].lock)
|
13
|
-
#define CheckpointLock (&MainLWLockArray[10].lock)
|
14
|
-
#define XactSLRULock (&MainLWLockArray[11].lock)
|
15
|
-
#define SubtransSLRULock (&MainLWLockArray[12].lock)
|
16
|
-
#define MultiXactGenLock (&MainLWLockArray[13].lock)
|
17
|
-
#define MultiXactOffsetSLRULock (&MainLWLockArray[14].lock)
|
18
|
-
#define MultiXactMemberSLRULock (&MainLWLockArray[15].lock)
|
19
|
-
#define RelCacheInitLock (&MainLWLockArray[16].lock)
|
20
|
-
#define CheckpointerCommLock (&MainLWLockArray[17].lock)
|
21
|
-
#define TwoPhaseStateLock (&MainLWLockArray[18].lock)
|
22
|
-
#define TablespaceCreateLock (&MainLWLockArray[19].lock)
|
23
|
-
#define BtreeVacuumLock (&MainLWLockArray[20].lock)
|
24
|
-
#define AddinShmemInitLock (&MainLWLockArray[21].lock)
|
25
|
-
#define AutovacuumLock (&MainLWLockArray[22].lock)
|
26
|
-
#define AutovacuumScheduleLock (&MainLWLockArray[23].lock)
|
27
|
-
#define SyncScanLock (&MainLWLockArray[24].lock)
|
28
|
-
#define RelationMappingLock (&MainLWLockArray[25].lock)
|
29
|
-
#define NotifySLRULock (&MainLWLockArray[26].lock)
|
30
|
-
#define NotifyQueueLock (&MainLWLockArray[27].lock)
|
31
|
-
#define SerializableXactHashLock (&MainLWLockArray[28].lock)
|
32
|
-
#define SerializableFinishedListLock (&MainLWLockArray[29].lock)
|
33
|
-
#define SerializablePredicateListLock (&MainLWLockArray[30].lock)
|
34
|
-
#define SerialSLRULock (&MainLWLockArray[31].lock)
|
35
|
-
#define SyncRepLock (&MainLWLockArray[32].lock)
|
36
|
-
#define BackgroundWorkerLock (&MainLWLockArray[33].lock)
|
37
|
-
#define DynamicSharedMemoryControlLock (&MainLWLockArray[34].lock)
|
38
|
-
#define AutoFileLock (&MainLWLockArray[35].lock)
|
39
|
-
#define ReplicationSlotAllocationLock (&MainLWLockArray[36].lock)
|
40
|
-
#define ReplicationSlotControlLock (&MainLWLockArray[37].lock)
|
41
|
-
#define CommitTsSLRULock (&MainLWLockArray[38].lock)
|
42
|
-
#define CommitTsLock (&MainLWLockArray[39].lock)
|
43
|
-
#define ReplicationOriginLock (&MainLWLockArray[40].lock)
|
44
|
-
#define MultiXactTruncationLock (&MainLWLockArray[41].lock)
|
45
|
-
#define OldSnapshotTimeMapLock (&MainLWLockArray[42].lock)
|
46
|
-
#define LogicalRepWorkerLock (&MainLWLockArray[43].lock)
|
47
|
-
#define XactTruncationLock (&MainLWLockArray[44].lock)
|
48
|
-
#define WrapLimitsVacuumLock (&MainLWLockArray[46].lock)
|
49
|
-
#define NotifyQueueTailLock (&MainLWLockArray[47].lock)
|
50
|
-
|
51
|
-
#define NUM_INDIVIDUAL_LWLOCKS 48
|
@@ -1,57 +0,0 @@
|
|
1
|
-
/*-------------------------------------------------------------------------
|
2
|
-
*
|
3
|
-
* off.h
|
4
|
-
* POSTGRES disk "offset" definitions.
|
5
|
-
*
|
6
|
-
*
|
7
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
-
*
|
10
|
-
* src/include/storage/off.h
|
11
|
-
*
|
12
|
-
*-------------------------------------------------------------------------
|
13
|
-
*/
|
14
|
-
#ifndef OFF_H
|
15
|
-
#define OFF_H
|
16
|
-
|
17
|
-
#include "storage/itemid.h"
|
18
|
-
/*
|
19
|
-
* OffsetNumber:
|
20
|
-
*
|
21
|
-
* this is a 1-based index into the linp (ItemIdData) array in the
|
22
|
-
* header of each disk page.
|
23
|
-
*/
|
24
|
-
typedef uint16 OffsetNumber;
|
25
|
-
|
26
|
-
#define InvalidOffsetNumber ((OffsetNumber) 0)
|
27
|
-
#define FirstOffsetNumber ((OffsetNumber) 1)
|
28
|
-
#define MaxOffsetNumber ((OffsetNumber) (BLCKSZ / sizeof(ItemIdData)))
|
29
|
-
|
30
|
-
/* ----------------
|
31
|
-
* support macros
|
32
|
-
* ----------------
|
33
|
-
*/
|
34
|
-
|
35
|
-
/*
|
36
|
-
* OffsetNumberIsValid
|
37
|
-
* True iff the offset number is valid.
|
38
|
-
*/
|
39
|
-
#define OffsetNumberIsValid(offsetNumber) \
|
40
|
-
((bool) ((offsetNumber != InvalidOffsetNumber) && \
|
41
|
-
(offsetNumber <= MaxOffsetNumber)))
|
42
|
-
|
43
|
-
/*
|
44
|
-
* OffsetNumberNext
|
45
|
-
* OffsetNumberPrev
|
46
|
-
* Increments/decrements the argument. These macros look pointless
|
47
|
-
* but they help us disambiguate the different manipulations on
|
48
|
-
* OffsetNumbers (e.g., sometimes we subtract one from an
|
49
|
-
* OffsetNumber to move back, and sometimes we do so to form a
|
50
|
-
* real C array index).
|
51
|
-
*/
|
52
|
-
#define OffsetNumberNext(offsetNumber) \
|
53
|
-
((OffsetNumber) (1 + (offsetNumber)))
|
54
|
-
#define OffsetNumberPrev(offsetNumber) \
|
55
|
-
((OffsetNumber) (-1 + (offsetNumber)))
|
56
|
-
|
57
|
-
#endif /* OFF_H */
|
@@ -1,61 +0,0 @@
|
|
1
|
-
/*-------------------------------------------------------------------------
|
2
|
-
*
|
3
|
-
* pg_sema.h
|
4
|
-
* Platform-independent API for semaphores.
|
5
|
-
*
|
6
|
-
* PostgreSQL requires counting semaphores (the kind that keep track of
|
7
|
-
* multiple unlock operations, and will allow an equal number of subsequent
|
8
|
-
* lock operations before blocking). The underlying implementation is
|
9
|
-
* not the same on every platform. This file defines the API that must
|
10
|
-
* be provided by each port.
|
11
|
-
*
|
12
|
-
*
|
13
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
14
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
15
|
-
*
|
16
|
-
* src/include/storage/pg_sema.h
|
17
|
-
*
|
18
|
-
*-------------------------------------------------------------------------
|
19
|
-
*/
|
20
|
-
#ifndef PG_SEMA_H
|
21
|
-
#define PG_SEMA_H
|
22
|
-
|
23
|
-
/*
|
24
|
-
* struct PGSemaphoreData and pointer type PGSemaphore are the data structure
|
25
|
-
* representing an individual semaphore. The contents of PGSemaphoreData vary
|
26
|
-
* across implementations and must never be touched by platform-independent
|
27
|
-
* code; hence, PGSemaphoreData is declared as an opaque struct here.
|
28
|
-
*
|
29
|
-
* However, Windows is sufficiently unlike our other ports that it doesn't
|
30
|
-
* seem worth insisting on ABI compatibility for Windows too. Hence, on
|
31
|
-
* that platform just define PGSemaphore as HANDLE.
|
32
|
-
*/
|
33
|
-
#ifndef USE_WIN32_SEMAPHORES
|
34
|
-
typedef struct PGSemaphoreData *PGSemaphore;
|
35
|
-
#else
|
36
|
-
typedef HANDLE PGSemaphore;
|
37
|
-
#endif
|
38
|
-
|
39
|
-
|
40
|
-
/* Report amount of shared memory needed */
|
41
|
-
extern Size PGSemaphoreShmemSize(int maxSemas);
|
42
|
-
|
43
|
-
/* Module initialization (called during postmaster start or shmem reinit) */
|
44
|
-
extern void PGReserveSemaphores(int maxSemas);
|
45
|
-
|
46
|
-
/* Allocate a PGSemaphore structure with initial count 1 */
|
47
|
-
extern PGSemaphore PGSemaphoreCreate(void);
|
48
|
-
|
49
|
-
/* Reset a previously-initialized PGSemaphore to have count 0 */
|
50
|
-
extern void PGSemaphoreReset(PGSemaphore sema);
|
51
|
-
|
52
|
-
/* Lock a semaphore (decrement count), blocking if count would be < 0 */
|
53
|
-
extern void PGSemaphoreLock(PGSemaphore sema);
|
54
|
-
|
55
|
-
/* Unlock a semaphore (increment count) */
|
56
|
-
extern void PGSemaphoreUnlock(PGSemaphore sema);
|
57
|
-
|
58
|
-
/* Lock a semaphore only if able to do so without blocking */
|
59
|
-
extern bool PGSemaphoreTryLock(PGSemaphore sema);
|
60
|
-
|
61
|
-
#endif /* PG_SEMA_H */
|
@@ -1,90 +0,0 @@
|
|
1
|
-
/*-------------------------------------------------------------------------
|
2
|
-
*
|
3
|
-
* pg_shmem.h
|
4
|
-
* Platform-independent API for shared memory support.
|
5
|
-
*
|
6
|
-
* Every port is expected to support shared memory with approximately
|
7
|
-
* SysV-ish semantics; in particular, a memory block is not anonymous
|
8
|
-
* but has an ID, and we must be able to tell whether there are any
|
9
|
-
* remaining processes attached to a block of a specified ID.
|
10
|
-
*
|
11
|
-
* To simplify life for the SysV implementation, the ID is assumed to
|
12
|
-
* consist of two unsigned long values (these are key and ID in SysV
|
13
|
-
* terms). Other platforms may ignore the second value if they need
|
14
|
-
* only one ID number.
|
15
|
-
*
|
16
|
-
*
|
17
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
18
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
19
|
-
*
|
20
|
-
* src/include/storage/pg_shmem.h
|
21
|
-
*
|
22
|
-
*-------------------------------------------------------------------------
|
23
|
-
*/
|
24
|
-
#ifndef PG_SHMEM_H
|
25
|
-
#define PG_SHMEM_H
|
26
|
-
|
27
|
-
#include "storage/dsm_impl.h"
|
28
|
-
|
29
|
-
typedef struct PGShmemHeader /* standard header for all Postgres shmem */
|
30
|
-
{
|
31
|
-
int32 magic; /* magic # to identify Postgres segments */
|
32
|
-
#define PGShmemMagic 679834894
|
33
|
-
pid_t creatorPID; /* PID of creating process (set but unread) */
|
34
|
-
Size totalsize; /* total size of segment */
|
35
|
-
Size freeoffset; /* offset to first free space */
|
36
|
-
dsm_handle dsm_control; /* ID of dynamic shared memory control seg */
|
37
|
-
void *index; /* pointer to ShmemIndex table */
|
38
|
-
#ifndef WIN32 /* Windows doesn't have useful inode#s */
|
39
|
-
dev_t device; /* device data directory is on */
|
40
|
-
ino_t inode; /* inode number of data directory */
|
41
|
-
#endif
|
42
|
-
} PGShmemHeader;
|
43
|
-
|
44
|
-
/* GUC variables */
|
45
|
-
extern int shared_memory_type;
|
46
|
-
extern int huge_pages;
|
47
|
-
|
48
|
-
/* Possible values for huge_pages */
|
49
|
-
typedef enum
|
50
|
-
{
|
51
|
-
HUGE_PAGES_OFF,
|
52
|
-
HUGE_PAGES_ON,
|
53
|
-
HUGE_PAGES_TRY
|
54
|
-
} HugePagesType;
|
55
|
-
|
56
|
-
/* Possible values for shared_memory_type */
|
57
|
-
typedef enum
|
58
|
-
{
|
59
|
-
SHMEM_TYPE_WINDOWS,
|
60
|
-
SHMEM_TYPE_SYSV,
|
61
|
-
SHMEM_TYPE_MMAP
|
62
|
-
} PGShmemType;
|
63
|
-
|
64
|
-
#ifndef WIN32
|
65
|
-
extern unsigned long UsedShmemSegID;
|
66
|
-
#else
|
67
|
-
extern HANDLE UsedShmemSegID;
|
68
|
-
extern void *ShmemProtectiveRegion;
|
69
|
-
#endif
|
70
|
-
extern void *UsedShmemSegAddr;
|
71
|
-
|
72
|
-
#if !defined(WIN32) && !defined(EXEC_BACKEND)
|
73
|
-
#define DEFAULT_SHARED_MEMORY_TYPE SHMEM_TYPE_MMAP
|
74
|
-
#elif !defined(WIN32)
|
75
|
-
#define DEFAULT_SHARED_MEMORY_TYPE SHMEM_TYPE_SYSV
|
76
|
-
#else
|
77
|
-
#define DEFAULT_SHARED_MEMORY_TYPE SHMEM_TYPE_WINDOWS
|
78
|
-
#endif
|
79
|
-
|
80
|
-
#ifdef EXEC_BACKEND
|
81
|
-
extern void PGSharedMemoryReAttach(void);
|
82
|
-
extern void PGSharedMemoryNoReAttach(void);
|
83
|
-
#endif
|
84
|
-
|
85
|
-
extern PGShmemHeader *PGSharedMemoryCreate(Size size,
|
86
|
-
PGShmemHeader **shim);
|
87
|
-
extern bool PGSharedMemoryIsInUse(unsigned long id1, unsigned long id2);
|
88
|
-
extern void PGSharedMemoryDetach(void);
|
89
|
-
|
90
|
-
#endif /* PG_SHMEM_H */
|
@@ -1,94 +0,0 @@
|
|
1
|
-
/*-------------------------------------------------------------------------
|
2
|
-
*
|
3
|
-
* pmsignal.h
|
4
|
-
* routines for signaling the postmaster from its child processes
|
5
|
-
*
|
6
|
-
*
|
7
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
-
*
|
10
|
-
* src/include/storage/pmsignal.h
|
11
|
-
*
|
12
|
-
*-------------------------------------------------------------------------
|
13
|
-
*/
|
14
|
-
#ifndef PMSIGNAL_H
|
15
|
-
#define PMSIGNAL_H
|
16
|
-
|
17
|
-
#include <signal.h>
|
18
|
-
|
19
|
-
#ifdef HAVE_SYS_PRCTL_H
|
20
|
-
#include "sys/prctl.h"
|
21
|
-
#endif
|
22
|
-
|
23
|
-
#ifdef HAVE_SYS_PROCCTL_H
|
24
|
-
#include "sys/procctl.h"
|
25
|
-
#endif
|
26
|
-
|
27
|
-
/*
|
28
|
-
* Reasons for signaling the postmaster. We can cope with simultaneous
|
29
|
-
* signals for different reasons. If the same reason is signaled multiple
|
30
|
-
* times in quick succession, however, the postmaster is likely to observe
|
31
|
-
* only one notification of it. This is okay for the present uses.
|
32
|
-
*/
|
33
|
-
typedef enum
|
34
|
-
{
|
35
|
-
PMSIGNAL_RECOVERY_STARTED, /* recovery has started */
|
36
|
-
PMSIGNAL_BEGIN_HOT_STANDBY, /* begin Hot Standby */
|
37
|
-
PMSIGNAL_WAKEN_ARCHIVER, /* send a NOTIFY signal to xlog archiver */
|
38
|
-
PMSIGNAL_ROTATE_LOGFILE, /* send SIGUSR1 to syslogger to rotate logfile */
|
39
|
-
PMSIGNAL_START_AUTOVAC_LAUNCHER, /* start an autovacuum launcher */
|
40
|
-
PMSIGNAL_START_AUTOVAC_WORKER, /* start an autovacuum worker */
|
41
|
-
PMSIGNAL_BACKGROUND_WORKER_CHANGE, /* background worker state change */
|
42
|
-
PMSIGNAL_START_WALRECEIVER, /* start a walreceiver */
|
43
|
-
PMSIGNAL_ADVANCE_STATE_MACHINE, /* advance postmaster's state machine */
|
44
|
-
|
45
|
-
NUM_PMSIGNALS /* Must be last value of enum! */
|
46
|
-
} PMSignalReason;
|
47
|
-
|
48
|
-
/* PMSignalData is an opaque struct, details known only within pmsignal.c */
|
49
|
-
typedef struct PMSignalData PMSignalData;
|
50
|
-
|
51
|
-
/*
|
52
|
-
* prototypes for functions in pmsignal.c
|
53
|
-
*/
|
54
|
-
extern Size PMSignalShmemSize(void);
|
55
|
-
extern void PMSignalShmemInit(void);
|
56
|
-
extern void SendPostmasterSignal(PMSignalReason reason);
|
57
|
-
extern bool CheckPostmasterSignal(PMSignalReason reason);
|
58
|
-
extern int AssignPostmasterChildSlot(void);
|
59
|
-
extern bool ReleasePostmasterChildSlot(int slot);
|
60
|
-
extern bool IsPostmasterChildWalSender(int slot);
|
61
|
-
extern void MarkPostmasterChildActive(void);
|
62
|
-
extern void MarkPostmasterChildInactive(void);
|
63
|
-
extern void MarkPostmasterChildWalSender(void);
|
64
|
-
extern bool PostmasterIsAliveInternal(void);
|
65
|
-
extern void PostmasterDeathSignalInit(void);
|
66
|
-
|
67
|
-
|
68
|
-
/*
|
69
|
-
* Do we have a way to ask for a signal on parent death?
|
70
|
-
*
|
71
|
-
* If we do, pmsignal.c will set up a signal handler, that sets a flag when
|
72
|
-
* the parent dies. Checking the flag first makes PostmasterIsAlive() a lot
|
73
|
-
* cheaper in usual case that the postmaster is alive.
|
74
|
-
*/
|
75
|
-
#if (defined(HAVE_SYS_PRCTL_H) && defined(PR_SET_PDEATHSIG)) || \
|
76
|
-
(defined(HAVE_SYS_PROCCTL_H) && defined(PROC_PDEATHSIG_CTL))
|
77
|
-
#define USE_POSTMASTER_DEATH_SIGNAL
|
78
|
-
#endif
|
79
|
-
|
80
|
-
#ifdef USE_POSTMASTER_DEATH_SIGNAL
|
81
|
-
extern volatile sig_atomic_t postmaster_possibly_dead;
|
82
|
-
|
83
|
-
static inline bool
|
84
|
-
PostmasterIsAlive(void)
|
85
|
-
{
|
86
|
-
if (likely(!postmaster_possibly_dead))
|
87
|
-
return true;
|
88
|
-
return PostmasterIsAliveInternal();
|
89
|
-
}
|
90
|
-
#else
|
91
|
-
#define PostmasterIsAlive() PostmasterIsAliveInternal()
|
92
|
-
#endif
|
93
|
-
|
94
|
-
#endif /* PMSIGNAL_H */
|
@@ -1,87 +0,0 @@
|
|
1
|
-
/*-------------------------------------------------------------------------
|
2
|
-
*
|
3
|
-
* predicate.h
|
4
|
-
* POSTGRES public predicate locking definitions.
|
5
|
-
*
|
6
|
-
*
|
7
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
-
*
|
10
|
-
* src/include/storage/predicate.h
|
11
|
-
*
|
12
|
-
*-------------------------------------------------------------------------
|
13
|
-
*/
|
14
|
-
#ifndef PREDICATE_H
|
15
|
-
#define PREDICATE_H
|
16
|
-
|
17
|
-
#include "storage/lock.h"
|
18
|
-
#include "utils/relcache.h"
|
19
|
-
#include "utils/snapshot.h"
|
20
|
-
|
21
|
-
|
22
|
-
/*
|
23
|
-
* GUC variables
|
24
|
-
*/
|
25
|
-
extern int max_predicate_locks_per_xact;
|
26
|
-
extern int max_predicate_locks_per_relation;
|
27
|
-
extern int max_predicate_locks_per_page;
|
28
|
-
|
29
|
-
|
30
|
-
/* Number of SLRU buffers to use for Serial SLRU */
|
31
|
-
#define NUM_SERIAL_BUFFERS 16
|
32
|
-
|
33
|
-
/*
|
34
|
-
* A handle used for sharing SERIALIZABLEXACT objects between the participants
|
35
|
-
* in a parallel query.
|
36
|
-
*/
|
37
|
-
typedef void *SerializableXactHandle;
|
38
|
-
|
39
|
-
/*
|
40
|
-
* function prototypes
|
41
|
-
*/
|
42
|
-
|
43
|
-
/* housekeeping for shared memory predicate lock structures */
|
44
|
-
extern void InitPredicateLocks(void);
|
45
|
-
extern Size PredicateLockShmemSize(void);
|
46
|
-
|
47
|
-
extern void CheckPointPredicate(void);
|
48
|
-
|
49
|
-
/* predicate lock reporting */
|
50
|
-
extern bool PageIsPredicateLocked(Relation relation, BlockNumber blkno);
|
51
|
-
|
52
|
-
/* predicate lock maintenance */
|
53
|
-
extern Snapshot GetSerializableTransactionSnapshot(Snapshot snapshot);
|
54
|
-
extern void SetSerializableTransactionSnapshot(Snapshot snapshot,
|
55
|
-
VirtualTransactionId *sourcevxid,
|
56
|
-
int sourcepid);
|
57
|
-
extern void RegisterPredicateLockingXid(TransactionId xid);
|
58
|
-
extern void PredicateLockRelation(Relation relation, Snapshot snapshot);
|
59
|
-
extern void PredicateLockPage(Relation relation, BlockNumber blkno, Snapshot snapshot);
|
60
|
-
extern void PredicateLockTID(Relation relation, ItemPointer tid, Snapshot snapshot,
|
61
|
-
TransactionId insert_xid);
|
62
|
-
extern void PredicateLockPageSplit(Relation relation, BlockNumber oldblkno, BlockNumber newblkno);
|
63
|
-
extern void PredicateLockPageCombine(Relation relation, BlockNumber oldblkno, BlockNumber newblkno);
|
64
|
-
extern void TransferPredicateLocksToHeapRelation(Relation relation);
|
65
|
-
extern void ReleasePredicateLocks(bool isCommit, bool isReadOnlySafe);
|
66
|
-
|
67
|
-
/* conflict detection (may also trigger rollback) */
|
68
|
-
extern bool CheckForSerializableConflictOutNeeded(Relation relation, Snapshot snapshot);
|
69
|
-
extern void CheckForSerializableConflictOut(Relation relation, TransactionId xid, Snapshot snapshot);
|
70
|
-
extern void CheckForSerializableConflictIn(Relation relation, ItemPointer tid, BlockNumber blkno);
|
71
|
-
extern void CheckTableForSerializableConflictIn(Relation relation);
|
72
|
-
|
73
|
-
/* final rollback checking */
|
74
|
-
extern void PreCommit_CheckForSerializationFailure(void);
|
75
|
-
|
76
|
-
/* two-phase commit support */
|
77
|
-
extern void AtPrepare_PredicateLocks(void);
|
78
|
-
extern void PostPrepare_PredicateLocks(TransactionId xid);
|
79
|
-
extern void PredicateLockTwoPhaseFinish(TransactionId xid, bool isCommit);
|
80
|
-
extern void predicatelock_twophase_recover(TransactionId xid, uint16 info,
|
81
|
-
void *recdata, uint32 len);
|
82
|
-
|
83
|
-
/* parallel query support */
|
84
|
-
extern SerializableXactHandle ShareSerializableXact(void);
|
85
|
-
extern void AttachSerializableXact(SerializableXactHandle handle);
|
86
|
-
|
87
|
-
#endif /* PREDICATE_H */
|