pg_query 4.2.1 → 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 +61 -0
- data/README.md +7 -9
- 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 +28 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +599 -167
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +640 -520
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +6400 -4633
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +433 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1472 -1152
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +154 -124
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1886 -1506
- 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/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 +7723 -6368
- data/ext/pg_query/include/protobuf/pg_query.pb.h +120022 -87031
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +22595 -17738
- data/ext/pg_query/pg_query_deparse.c +1 -10635
- data/ext/pg_query/pg_query_fingerprint.c +12 -8
- 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 -0
- data/ext/pg_query/pg_query_normalize.c +43 -2
- data/ext/pg_query/pg_query_outfuncs_json.c +9 -1
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
- 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 +3 -2
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_scan.c +2 -2
- data/ext/pg_query/pg_query_split.c +3 -3
- 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 +243 -63
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +140 -156
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +16 -8
- data/ext/pg_query/src_backend_nodes_makefuncs.c +134 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +391 -133
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +43710 -39953
- data/ext/pg_query/src_backend_parser_parser.c +34 -8
- data/ext/pg_query/src_backend_parser_scan.c +6971 -3373
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +99 -96
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +488 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +177 -30
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +397 -270
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +36 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +20 -5
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +31 -84
- 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 +704 -497
- 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 +637 -233
- 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 +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +586 -517
- 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 +100 -116
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +829 -763
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +251 -32
- data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
- data/ext/pg_query/src_port_snprintf.c +20 -27
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +5 -8
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/param_refs.rb +2 -2
- data/lib/pg_query/parse.rb +6 -8
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +173 -3196
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +52 -11
- data/lib/pg_query/truncate.rb +18 -20
- data/lib/pg_query/version.rb +1 -1
- metadata +443 -442
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -290
- 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 -63
- data/ext/pg_query/include/access/commit_ts.h +0 -74
- data/ext/pg_query/include/access/detoast.h +0 -82
- data/ext/pg_query/include/access/genam.h +0 -231
- 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 -807
- data/ext/pg_query/include/access/itup.h +0 -167
- data/ext/pg_query/include/access/parallel.h +0 -82
- data/ext/pg_query/include/access/printtup.h +0 -35
- data/ext/pg_query/include/access/relation.h +0 -28
- data/ext/pg_query/include/access/relscan.h +0 -191
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -58
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -85
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -28
- data/ext/pg_query/include/access/tableam.h +0 -2077
- data/ext/pg_query/include/access/toast_compression.h +0 -73
- data/ext/pg_query/include/access/transam.h +0 -375
- data/ext/pg_query/include/access/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 -65
- data/ext/pg_query/include/access/xact.h +0 -523
- data/ext/pg_query/include/access/xlog.h +0 -303
- data/ext/pg_query/include/access/xlog_internal.h +0 -366
- data/ext/pg_query/include/access/xlogdefs.h +0 -101
- data/ext/pg_query/include/access/xlogprefetcher.h +0 -55
- data/ext/pg_query/include/access/xlogreader.h +0 -443
- data/ext/pg_query/include/access/xlogrecord.h +0 -236
- data/ext/pg_query/include/access/xlogrecovery.h +0 -157
- data/ext/pg_query/include/c.h +0 -1391
- data/ext/pg_query/include/catalog/catalog.h +0 -44
- data/ext/pg_query/include/catalog/catversion.h +0 -58
- data/ext/pg_query/include/catalog/dependency.h +0 -269
- data/ext/pg_query/include/catalog/genbki.h +0 -142
- data/ext/pg_query/include/catalog/index.h +0 -214
- data/ext/pg_query/include/catalog/indexing.h +0 -54
- data/ext/pg_query/include/catalog/namespace.h +0 -190
- data/ext/pg_query/include/catalog/objectaccess.h +0 -265
- data/ext/pg_query/include/catalog/objectaddress.h +0 -89
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -180
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -78
- data/ext/pg_query/include/catalog/pg_am.h +0 -63
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -221
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -62
- data/ext/pg_query/include/catalog/pg_authid.h +0 -63
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -57
- data/ext/pg_query/include/catalog/pg_class.h +0 -230
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -132
- data/ext/pg_query/include/catalog/pg_collation.h +0 -98
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -62
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -273
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -73
- data/ext/pg_query/include/catalog/pg_control.h +0 -250
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -75
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_depend.h +0 -77
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -57
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_index.h +0 -90
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_language.h +0 -72
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -41
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -64
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -88
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -51
- data/ext/pg_query/include/catalog/pg_operator.h +0 -107
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -142
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -63
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -74
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_proc.h +0 -220
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -101
- data/ext/pg_query/include/catalog/pg_publication.h +0 -161
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -62
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -282
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -195
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -88
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform.h +0 -48
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -153
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -109
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -53
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -59
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -60
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -37
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -51
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_type.h +0 -404
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -324
- data/ext/pg_query/include/catalog/storage.h +0 -50
- data/ext/pg_query/include/commands/async.h +0 -53
- data/ext/pg_query/include/commands/dbcommands.h +0 -36
- data/ext/pg_query/include/commands/defrem.h +0 -160
- 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 -287
- data/ext/pg_query/include/commands/user.h +0 -37
- data/ext/pg_query/include/commands/vacuum.h +0 -340
- 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 -31
- data/ext/pg_query/include/common/keywords.h +0 -29
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/pg_prng.h +0 -60
- data/ext/pg_query/include/common/relpath.h +0 -90
- data/ext/pg_query/include/common/string.h +0 -42
- data/ext/pg_query/include/common/unicode_combining_table.h +0 -308
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +0 -125
- data/ext/pg_query/include/datatype/timestamp.h +0 -236
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -663
- data/ext/pg_query/include/executor/functions.h +0 -55
- data/ext/pg_query/include/executor/instrument.h +0 -118
- data/ext/pg_query/include/executor/spi.h +0 -213
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -487
- data/ext/pg_query/include/fmgr.h +0 -781
- data/ext/pg_query/include/funcapi.h +0 -360
- 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 -1095
- data/ext/pg_query/include/lib/dshash.h +0 -112
- data/ext/pg_query/include/lib/ilist.h +0 -746
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1184
- data/ext/pg_query/include/lib/sort_template.h +0 -432
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -31
- data/ext/pg_query/include/libpq/crypt.h +0 -47
- data/ext/pg_query/include/libpq/hba.h +0 -179
- data/ext/pg_query/include/libpq/libpq-be.h +0 -343
- data/ext/pg_query/include/libpq/libpq.h +0 -144
- data/ext/pg_query/include/libpq/pqcomm.h +0 -194
- 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 -755
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -495
- data/ext/pg_query/include/nodes/bitmapset.h +0 -122
- data/ext/pg_query/include/nodes/execnodes.h +0 -2715
- data/ext/pg_query/include/nodes/extensible.h +0 -162
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -109
- data/ext/pg_query/include/nodes/memnodes.h +0 -110
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
- data/ext/pg_query/include/nodes/nodes.h +0 -861
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -3812
- data/ext/pg_query/include/nodes/pathnodes.h +0 -2734
- data/ext/pg_query/include/nodes/pg_list.h +0 -612
- data/ext/pg_query/include/nodes/plannodes.h +0 -1349
- data/ext/pg_query/include/nodes/primnodes.h +0 -1593
- 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 -80
- data/ext/pg_query/include/optimizer/cost.h +0 -213
- data/ext/pg_query/include/optimizer/geqo.h +0 -90
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -202
- data/ext/pg_query/include/optimizer/paths.h +0 -257
- data/ext/pg_query/include/optimizer/planmain.h +0 -120
- data/ext/pg_query/include/parser/analyze.h +0 -63
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/parser/gramparse.h +0 -75
- data/ext/pg_query/include/parser/kwlist.h +0 -487
- data/ext/pg_query/include/parser/parse_agg.h +0 -63
- data/ext/pg_query/include/parser/parse_coerce.h +0 -100
- data/ext/pg_query/include/parser/parse_expr.h +0 -25
- data/ext/pg_query/include/parser/parse_func.h +0 -74
- data/ext/pg_query/include/parser/parse_node.h +0 -339
- data/ext/pg_query/include/parser/parse_oper.h +0 -65
- data/ext/pg_query/include/parser/parse_relation.h +0 -124
- data/ext/pg_query/include/parser/parse_type.h +0 -60
- data/ext/pg_query/include/parser/parser.h +0 -68
- data/ext/pg_query/include/parser/parsetree.h +0 -61
- data/ext/pg_query/include/parser/scanner.h +0 -152
- data/ext/pg_query/include/parser/scansup.h +0 -27
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -1037
- data/ext/pg_query/include/pg_config_manual.h +0 -410
- 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 -699
- data/ext/pg_query/include/pgtime.h +0 -94
- data/ext/pg_query/include/pl_gram.h +0 -383
- 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 -111
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -244
- data/ext/pg_query/include/plerrcodes.h +0 -998
- data/ext/pg_query/include/plpgsql.h +0 -1345
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -32
- data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
- data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
- data/ext/pg_query/include/port/atomics/fallback.h +0 -170
- data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
- data/ext/pg_query/include/port/atomics/generic.h +0 -401
- data/ext/pg_query/include/port/atomics.h +0 -524
- data/ext/pg_query/include/port/pg_bitutils.h +0 -302
- 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 -553
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postgres.h +0 -808
- 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/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/bgworker.h +0 -162
- data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
- data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/interrupt.h +0 -32
- data/ext/pg_query/include/postmaster/pgarch.h +0 -73
- data/ext/pg_query/include/postmaster/postmaster.h +0 -78
- data/ext/pg_query/include/postmaster/startup.h +0 -39
- data/ext/pg_query/include/postmaster/syslogger.h +0 -103
- data/ext/pg_query/include/postmaster/walwriter.h +0 -21
- data/ext/pg_query/include/regex/regex.h +0 -186
- data/ext/pg_query/include/replication/logicallauncher.h +0 -29
- data/ext/pg_query/include/replication/logicalproto.h +0 -254
- 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 -685
- data/ext/pg_query/include/replication/slot.h +0 -230
- data/ext/pg_query/include/replication/syncrep.h +0 -115
- data/ext/pg_query/include/replication/walreceiver.h +0 -472
- 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 -38
- 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 -115
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -297
- data/ext/pg_query/include/storage/bufpage.h +0 -457
- data/ext/pg_query/include/storage/condition_variable.h +0 -73
- data/ext/pg_query/include/storage/dsm.h +0 -64
- data/ext/pg_query/include/storage/dsm_impl.h +0 -76
- data/ext/pg_query/include/storage/fd.h +0 -198
- data/ext/pg_query/include/storage/fileset.h +0 -40
- data/ext/pg_query/include/storage/ipc.h +0 -84
- data/ext/pg_query/include/storage/item.h +0 -19
- data/ext/pg_query/include/storage/itemid.h +0 -184
- data/ext/pg_query/include/storage/itemptr.h +0 -208
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -186
- data/ext/pg_query/include/storage/lmgr.h +0 -115
- data/ext/pg_query/include/storage/lock.h +0 -616
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -206
- data/ext/pg_query/include/storage/lwlocknames.h +0 -50
- data/ext/pg_query/include/storage/off.h +0 -57
- data/ext/pg_query/include/storage/pg_sema.h +0 -61
- data/ext/pg_query/include/storage/pg_shmem.h +0 -92
- data/ext/pg_query/include/storage/pmsignal.h +0 -105
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -461
- data/ext/pg_query/include/storage/procarray.h +0 -98
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -71
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -1110
- data/ext/pg_query/include/storage/sharedfileset.h +0 -37
- data/ext/pg_query/include/storage/shm_mq.h +0 -86
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -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 -111
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -98
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -66
- data/ext/pg_query/include/tcop/cmdtag.h +0 -58
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -218
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -149
- data/ext/pg_query/include/tcop/fastpath.h +0 -20
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -97
- data/ext/pg_query/include/tcop/utility.h +0 -112
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
- data/ext/pg_query/include/utils/acl.h +0 -333
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -464
- data/ext/pg_query/include/utils/backend_progress.h +0 -44
- data/ext/pg_query/include/utils/backend_status.h +0 -321
- data/ext/pg_query/include/utils/builtins.h +0 -127
- data/ext/pg_query/include/utils/bytea.h +0 -28
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -90
- data/ext/pg_query/include/utils/datetime.h +0 -344
- data/ext/pg_query/include/utils/datum.h +0 -76
- data/ext/pg_query/include/utils/dsa.h +0 -123
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/elog.h +0 -470
- data/ext/pg_query/include/utils/errcodes.h +0 -354
- 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 -3261
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2829
- data/ext/pg_query/include/utils/fmgrtab.h +0 -49
- data/ext/pg_query/include/utils/guc.h +0 -469
- data/ext/pg_query/include/utils/guc_tables.h +0 -276
- data/ext/pg_query/include/utils/hsearch.h +0 -153
- data/ext/pg_query/include/utils/inval.h +0 -68
- data/ext/pg_query/include/utils/lsyscache.h +0 -208
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -230
- data/ext/pg_query/include/utils/numeric.h +0 -90
- data/ext/pg_query/include/utils/palloc.h +0 -158
- data/ext/pg_query/include/utils/partcache.h +0 -102
- data/ext/pg_query/include/utils/pg_locale.h +0 -127
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pgstat_internal.h +0 -784
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/plancache.h +0 -236
- data/ext/pg_query/include/utils/portal.h +0 -252
- data/ext/pg_query/include/utils/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/queryjumble.h +0 -88
- data/ext/pg_query/include/utils/regproc.h +0 -39
- data/ext/pg_query/include/utils/rel.h +0 -695
- data/ext/pg_query/include/utils/relcache.h +0 -153
- 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 -47
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -179
- data/ext/pg_query/include/utils/snapshot.h +0 -219
- data/ext/pg_query/include/utils/sortsupport.h +0 -391
- data/ext/pg_query/include/utils/syscache.h +0 -224
- data/ext/pg_query/include/utils/timeout.h +0 -95
- data/ext/pg_query/include/utils/timestamp.h +0 -117
- data/ext/pg_query/include/utils/tuplesort.h +0 -291
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -209
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/include/utils/varlena.h +0 -41
- data/ext/pg_query/include/utils/wait_event.h +0 -289
- data/ext/pg_query/include/utils/xml.h +0 -84
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
- data/ext/pg_query/src_common_pg_prng.c +0 -152
- data/ext/pg_query/src_common_string.c +0 -92
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- 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/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* sharedfileset.h
|
4
|
+
* Shared temporary file management.
|
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/sharedfileset.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
|
15
|
+
#ifndef SHAREDFILESET_H
|
16
|
+
#define SHAREDFILESET_H
|
17
|
+
|
18
|
+
#include "storage/dsm.h"
|
19
|
+
#include "storage/fd.h"
|
20
|
+
#include "storage/fileset.h"
|
21
|
+
#include "storage/spin.h"
|
22
|
+
|
23
|
+
/*
|
24
|
+
* A set of temporary files that can be shared by multiple backends.
|
25
|
+
*/
|
26
|
+
typedef struct SharedFileSet
|
27
|
+
{
|
28
|
+
FileSet fs;
|
29
|
+
slock_t mutex; /* mutex protecting the reference count */
|
30
|
+
int refcnt; /* number of attached backends */
|
31
|
+
} SharedFileSet;
|
32
|
+
|
33
|
+
extern void SharedFileSetInit(SharedFileSet *fileset, dsm_segment *seg);
|
34
|
+
extern void SharedFileSetAttach(SharedFileSet *fileset, dsm_segment *seg);
|
35
|
+
extern void SharedFileSetDeleteAll(SharedFileSet *fileset);
|
36
|
+
|
37
|
+
#endif
|
@@ -0,0 +1,86 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* shm_mq.h
|
4
|
+
* single-reader, single-writer shared memory message queue
|
5
|
+
*
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
8
|
+
*
|
9
|
+
* src/include/storage/shm_mq.h
|
10
|
+
*
|
11
|
+
*-------------------------------------------------------------------------
|
12
|
+
*/
|
13
|
+
#ifndef SHM_MQ_H
|
14
|
+
#define SHM_MQ_H
|
15
|
+
|
16
|
+
#include "postmaster/bgworker.h"
|
17
|
+
#include "storage/dsm.h"
|
18
|
+
#include "storage/proc.h"
|
19
|
+
|
20
|
+
/* The queue itself, in shared memory. */
|
21
|
+
struct shm_mq;
|
22
|
+
typedef struct shm_mq shm_mq;
|
23
|
+
|
24
|
+
/* Backend-private state. */
|
25
|
+
struct shm_mq_handle;
|
26
|
+
typedef struct shm_mq_handle shm_mq_handle;
|
27
|
+
|
28
|
+
/* Descriptors for a single write spanning multiple locations. */
|
29
|
+
typedef struct
|
30
|
+
{
|
31
|
+
const char *data;
|
32
|
+
Size len;
|
33
|
+
} shm_mq_iovec;
|
34
|
+
|
35
|
+
/* Possible results of a send or receive operation. */
|
36
|
+
typedef enum
|
37
|
+
{
|
38
|
+
SHM_MQ_SUCCESS, /* Sent or received a message. */
|
39
|
+
SHM_MQ_WOULD_BLOCK, /* Not completed; retry later. */
|
40
|
+
SHM_MQ_DETACHED, /* Other process has detached queue. */
|
41
|
+
} shm_mq_result;
|
42
|
+
|
43
|
+
/*
|
44
|
+
* Primitives to create a queue and set the sender and receiver.
|
45
|
+
*
|
46
|
+
* Both the sender and the receiver must be set before any messages are read
|
47
|
+
* or written, but they need not be set by the same process. Each must be
|
48
|
+
* set exactly once.
|
49
|
+
*/
|
50
|
+
extern shm_mq *shm_mq_create(void *address, Size size);
|
51
|
+
extern void shm_mq_set_receiver(shm_mq *mq, PGPROC *);
|
52
|
+
extern void shm_mq_set_sender(shm_mq *mq, PGPROC *);
|
53
|
+
|
54
|
+
/* Accessor methods for sender and receiver. */
|
55
|
+
extern PGPROC *shm_mq_get_receiver(shm_mq *);
|
56
|
+
extern PGPROC *shm_mq_get_sender(shm_mq *);
|
57
|
+
|
58
|
+
/* Set up backend-local queue state. */
|
59
|
+
extern shm_mq_handle *shm_mq_attach(shm_mq *mq, dsm_segment *seg,
|
60
|
+
BackgroundWorkerHandle *handle);
|
61
|
+
|
62
|
+
/* Associate worker handle with shm_mq. */
|
63
|
+
extern void shm_mq_set_handle(shm_mq_handle *, BackgroundWorkerHandle *);
|
64
|
+
|
65
|
+
/* Break connection, release handle resources. */
|
66
|
+
extern void shm_mq_detach(shm_mq_handle *mqh);
|
67
|
+
|
68
|
+
/* Get the shm_mq from handle. */
|
69
|
+
extern shm_mq *shm_mq_get_queue(shm_mq_handle *mqh);
|
70
|
+
|
71
|
+
/* Send or receive messages. */
|
72
|
+
extern shm_mq_result shm_mq_send(shm_mq_handle *mqh,
|
73
|
+
Size nbytes, const void *data, bool nowait,
|
74
|
+
bool force_flush);
|
75
|
+
extern shm_mq_result shm_mq_sendv(shm_mq_handle *mqh, shm_mq_iovec *iov,
|
76
|
+
int iovcnt, bool nowait, bool force_flush);
|
77
|
+
extern shm_mq_result shm_mq_receive(shm_mq_handle *mqh,
|
78
|
+
Size *nbytesp, void **datap, bool nowait);
|
79
|
+
|
80
|
+
/* Wait for our counterparty to attach to the queue. */
|
81
|
+
extern shm_mq_result shm_mq_wait_for_attach(shm_mq_handle *mqh);
|
82
|
+
|
83
|
+
/* Smallest possible queue. */
|
84
|
+
extern PGDLLIMPORT const Size shm_mq_minimum_size;
|
85
|
+
|
86
|
+
#endif /* SHM_MQ_H */
|
@@ -0,0 +1,58 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* shm_toc.h
|
4
|
+
* shared memory segment table of contents
|
5
|
+
*
|
6
|
+
* This is intended to provide a simple way to divide a chunk of shared
|
7
|
+
* memory (probably dynamic shared memory allocated via dsm_create) into
|
8
|
+
* a number of regions and keep track of the addresses of those regions or
|
9
|
+
* key data structures within those regions. This is not intended to
|
10
|
+
* scale to a large number of keys and will perform poorly if used that
|
11
|
+
* way; if you need a large number of pointers, store them within some
|
12
|
+
* other data structure within the segment and only put the pointer to
|
13
|
+
* the data structure itself in the table of contents.
|
14
|
+
*
|
15
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
16
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
17
|
+
*
|
18
|
+
* src/include/storage/shm_toc.h
|
19
|
+
*
|
20
|
+
*-------------------------------------------------------------------------
|
21
|
+
*/
|
22
|
+
#ifndef SHM_TOC_H
|
23
|
+
#define SHM_TOC_H
|
24
|
+
|
25
|
+
#include "storage/shmem.h" /* for add_size() */
|
26
|
+
|
27
|
+
/* shm_toc is an opaque type known only within shm_toc.c */
|
28
|
+
typedef struct shm_toc shm_toc;
|
29
|
+
|
30
|
+
extern shm_toc *shm_toc_create(uint64 magic, void *address, Size nbytes);
|
31
|
+
extern shm_toc *shm_toc_attach(uint64 magic, void *address);
|
32
|
+
extern void *shm_toc_allocate(shm_toc *toc, Size nbytes);
|
33
|
+
extern Size shm_toc_freespace(shm_toc *toc);
|
34
|
+
extern void shm_toc_insert(shm_toc *toc, uint64 key, void *address);
|
35
|
+
extern void *shm_toc_lookup(shm_toc *toc, uint64 key, bool noError);
|
36
|
+
|
37
|
+
/*
|
38
|
+
* Tools for estimating how large a chunk of shared memory will be needed
|
39
|
+
* to store a TOC and its dependent objects. Note: we don't really support
|
40
|
+
* large numbers of keys, but it's convenient to declare number_of_keys
|
41
|
+
* as a Size anyway.
|
42
|
+
*/
|
43
|
+
typedef struct
|
44
|
+
{
|
45
|
+
Size space_for_chunks;
|
46
|
+
Size number_of_keys;
|
47
|
+
} shm_toc_estimator;
|
48
|
+
|
49
|
+
#define shm_toc_initialize_estimator(e) \
|
50
|
+
((e)->space_for_chunks = 0, (e)->number_of_keys = 0)
|
51
|
+
#define shm_toc_estimate_chunk(e, sz) \
|
52
|
+
((e)->space_for_chunks = add_size((e)->space_for_chunks, BUFFERALIGN(sz)))
|
53
|
+
#define shm_toc_estimate_keys(e, cnt) \
|
54
|
+
((e)->number_of_keys = add_size((e)->number_of_keys, cnt))
|
55
|
+
|
56
|
+
extern Size shm_toc_estimate(shm_toc_estimator *e);
|
57
|
+
|
58
|
+
#endif /* SHM_TOC_H */
|
@@ -0,0 +1,59 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* shmem.h
|
4
|
+
* shared memory management structures
|
5
|
+
*
|
6
|
+
* Historical note:
|
7
|
+
* A long time ago, Postgres' shared memory region was allowed to be mapped
|
8
|
+
* at a different address in each process, and shared memory "pointers" were
|
9
|
+
* passed around as offsets relative to the start of the shared memory region.
|
10
|
+
* That is no longer the case: each process must map the shared memory region
|
11
|
+
* at the same address. This means shared memory pointers can be passed
|
12
|
+
* around directly between different processes.
|
13
|
+
*
|
14
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
15
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
16
|
+
*
|
17
|
+
* src/include/storage/shmem.h
|
18
|
+
*
|
19
|
+
*-------------------------------------------------------------------------
|
20
|
+
*/
|
21
|
+
#ifndef SHMEM_H
|
22
|
+
#define SHMEM_H
|
23
|
+
|
24
|
+
#include "utils/hsearch.h"
|
25
|
+
|
26
|
+
|
27
|
+
/* shmem.c */
|
28
|
+
extern void InitShmemAccess(void *seghdr);
|
29
|
+
extern void InitShmemAllocation(void);
|
30
|
+
extern void *ShmemAlloc(Size size);
|
31
|
+
extern void *ShmemAllocNoError(Size size);
|
32
|
+
extern void *ShmemAllocUnlocked(Size size);
|
33
|
+
extern bool ShmemAddrIsValid(const void *addr);
|
34
|
+
extern void InitShmemIndex(void);
|
35
|
+
extern HTAB *ShmemInitHash(const char *name, long init_size, long max_size,
|
36
|
+
HASHCTL *infoP, int hash_flags);
|
37
|
+
extern void *ShmemInitStruct(const char *name, Size size, bool *foundPtr);
|
38
|
+
extern Size add_size(Size s1, Size s2);
|
39
|
+
extern Size mul_size(Size s1, Size s2);
|
40
|
+
|
41
|
+
/* ipci.c */
|
42
|
+
extern void RequestAddinShmemSpace(Size size);
|
43
|
+
|
44
|
+
/* size constants for the shmem index table */
|
45
|
+
/* max size of data structure string name */
|
46
|
+
#define SHMEM_INDEX_KEYSIZE (48)
|
47
|
+
/* estimated size of the shmem index table (not a hard limit) */
|
48
|
+
#define SHMEM_INDEX_SIZE (64)
|
49
|
+
|
50
|
+
/* this is a hash bucket in the shmem index table */
|
51
|
+
typedef struct
|
52
|
+
{
|
53
|
+
char key[SHMEM_INDEX_KEYSIZE]; /* string name */
|
54
|
+
void *location; /* location in shared mem */
|
55
|
+
Size size; /* # bytes requested for the structure */
|
56
|
+
Size allocated_size; /* # bytes actually allocated */
|
57
|
+
} ShmemIndexEnt;
|
58
|
+
|
59
|
+
#endif /* SHMEM_H */
|
@@ -0,0 +1,153 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* sinval.h
|
4
|
+
* POSTGRES shared cache invalidation communication 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/sinval.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef SINVAL_H
|
15
|
+
#define SINVAL_H
|
16
|
+
|
17
|
+
#include <signal.h>
|
18
|
+
|
19
|
+
#include "storage/relfilelocator.h"
|
20
|
+
|
21
|
+
/*
|
22
|
+
* We support several types of shared-invalidation messages:
|
23
|
+
* * invalidate a specific tuple in a specific catcache
|
24
|
+
* * invalidate all catcache entries from a given system catalog
|
25
|
+
* * invalidate a relcache entry for a specific logical relation
|
26
|
+
* * invalidate all relcache entries
|
27
|
+
* * invalidate an smgr cache entry for a specific physical relation
|
28
|
+
* * invalidate the mapped-relation mapping for a given database
|
29
|
+
* * invalidate any saved snapshot that might be used to scan a given relation
|
30
|
+
* More types could be added if needed. The message type is identified by
|
31
|
+
* the first "int8" field of the message struct. Zero or positive means a
|
32
|
+
* specific-catcache inval message (and also serves as the catcache ID field).
|
33
|
+
* Negative values identify the other message types, as per codes below.
|
34
|
+
*
|
35
|
+
* Catcache inval events are initially driven by detecting tuple inserts,
|
36
|
+
* updates and deletions in system catalogs (see CacheInvalidateHeapTuple).
|
37
|
+
* An update can generate two inval events, one for the old tuple and one for
|
38
|
+
* the new, but this is reduced to one event if the tuple's hash key doesn't
|
39
|
+
* change. Note that the inval events themselves don't actually say whether
|
40
|
+
* the tuple is being inserted or deleted. Also, since we transmit only a
|
41
|
+
* hash key, there is a small risk of unnecessary invalidations due to chance
|
42
|
+
* matches of hash keys.
|
43
|
+
*
|
44
|
+
* Note that some system catalogs have multiple caches on them (with different
|
45
|
+
* indexes). On detecting a tuple invalidation in such a catalog, separate
|
46
|
+
* catcache inval messages must be generated for each of its caches, since
|
47
|
+
* the hash keys will generally be different.
|
48
|
+
*
|
49
|
+
* Catcache, relcache, and snapshot invalidations are transactional, and so
|
50
|
+
* are sent to other backends upon commit. Internally to the generating
|
51
|
+
* backend, they are also processed at CommandCounterIncrement so that later
|
52
|
+
* commands in the same transaction see the new state. The generating backend
|
53
|
+
* also has to process them at abort, to flush out any cache state it's loaded
|
54
|
+
* from no-longer-valid entries.
|
55
|
+
*
|
56
|
+
* smgr and relation mapping invalidations are non-transactional: they are
|
57
|
+
* sent immediately when the underlying file change is made.
|
58
|
+
*/
|
59
|
+
|
60
|
+
typedef struct
|
61
|
+
{
|
62
|
+
int8 id; /* cache ID --- must be first */
|
63
|
+
Oid dbId; /* database ID, or 0 if a shared relation */
|
64
|
+
uint32 hashValue; /* hash value of key for this catcache */
|
65
|
+
} SharedInvalCatcacheMsg;
|
66
|
+
|
67
|
+
#define SHAREDINVALCATALOG_ID (-1)
|
68
|
+
|
69
|
+
typedef struct
|
70
|
+
{
|
71
|
+
int8 id; /* type field --- must be first */
|
72
|
+
Oid dbId; /* database ID, or 0 if a shared catalog */
|
73
|
+
Oid catId; /* ID of catalog whose contents are invalid */
|
74
|
+
} SharedInvalCatalogMsg;
|
75
|
+
|
76
|
+
#define SHAREDINVALRELCACHE_ID (-2)
|
77
|
+
|
78
|
+
typedef struct
|
79
|
+
{
|
80
|
+
int8 id; /* type field --- must be first */
|
81
|
+
Oid dbId; /* database ID, or 0 if a shared relation */
|
82
|
+
Oid relId; /* relation ID, or 0 if whole relcache */
|
83
|
+
} SharedInvalRelcacheMsg;
|
84
|
+
|
85
|
+
#define SHAREDINVALSMGR_ID (-3)
|
86
|
+
|
87
|
+
typedef struct
|
88
|
+
{
|
89
|
+
/* note: field layout chosen to pack into 16 bytes */
|
90
|
+
int8 id; /* type field --- must be first */
|
91
|
+
int8 backend_hi; /* high bits of backend procno, if temprel */
|
92
|
+
uint16 backend_lo; /* low bits of backend procno, if temprel */
|
93
|
+
RelFileLocator rlocator; /* spcOid, dbOid, relNumber */
|
94
|
+
} SharedInvalSmgrMsg;
|
95
|
+
|
96
|
+
#define SHAREDINVALRELMAP_ID (-4)
|
97
|
+
|
98
|
+
typedef struct
|
99
|
+
{
|
100
|
+
int8 id; /* type field --- must be first */
|
101
|
+
Oid dbId; /* database ID, or 0 for shared catalogs */
|
102
|
+
} SharedInvalRelmapMsg;
|
103
|
+
|
104
|
+
#define SHAREDINVALSNAPSHOT_ID (-5)
|
105
|
+
|
106
|
+
typedef struct
|
107
|
+
{
|
108
|
+
int8 id; /* type field --- must be first */
|
109
|
+
Oid dbId; /* database ID, or 0 if a shared relation */
|
110
|
+
Oid relId; /* relation ID */
|
111
|
+
} SharedInvalSnapshotMsg;
|
112
|
+
|
113
|
+
typedef union
|
114
|
+
{
|
115
|
+
int8 id; /* type field --- must be first */
|
116
|
+
SharedInvalCatcacheMsg cc;
|
117
|
+
SharedInvalCatalogMsg cat;
|
118
|
+
SharedInvalRelcacheMsg rc;
|
119
|
+
SharedInvalSmgrMsg sm;
|
120
|
+
SharedInvalRelmapMsg rm;
|
121
|
+
SharedInvalSnapshotMsg sn;
|
122
|
+
} SharedInvalidationMessage;
|
123
|
+
|
124
|
+
|
125
|
+
/* Counter of messages processed; don't worry about overflow. */
|
126
|
+
extern PGDLLIMPORT uint64 SharedInvalidMessageCounter;
|
127
|
+
|
128
|
+
extern PGDLLIMPORT volatile sig_atomic_t catchupInterruptPending;
|
129
|
+
|
130
|
+
extern void SendSharedInvalidMessages(const SharedInvalidationMessage *msgs,
|
131
|
+
int n);
|
132
|
+
extern void ReceiveSharedInvalidMessages(void (*invalFunction) (SharedInvalidationMessage *msg),
|
133
|
+
void (*resetFunction) (void));
|
134
|
+
|
135
|
+
/* signal handler for catchup events (PROCSIG_CATCHUP_INTERRUPT) */
|
136
|
+
extern void HandleCatchupInterrupt(void);
|
137
|
+
|
138
|
+
/*
|
139
|
+
* enable/disable processing of catchup events directly from signal handler.
|
140
|
+
* The enable routine first performs processing of any catchup events that
|
141
|
+
* have occurred since the last disable.
|
142
|
+
*/
|
143
|
+
extern void ProcessCatchupInterrupt(void);
|
144
|
+
|
145
|
+
extern int xactGetCommittedInvalidationMessages(SharedInvalidationMessage **msgs,
|
146
|
+
bool *RelcacheInitFileInval);
|
147
|
+
extern void ProcessCommittedInvalidationMessages(SharedInvalidationMessage *msgs,
|
148
|
+
int nmsgs, bool RelcacheInitFileInval,
|
149
|
+
Oid dbid, Oid tsid);
|
150
|
+
|
151
|
+
extern void LocalExecuteInvalidationMessage(SharedInvalidationMessage *msg);
|
152
|
+
|
153
|
+
#endif /* SINVAL_H */
|
@@ -0,0 +1,130 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* smgr.h
|
4
|
+
* storage manager switch public interface declarations.
|
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/smgr.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef SMGR_H
|
15
|
+
#define SMGR_H
|
16
|
+
|
17
|
+
#include "lib/ilist.h"
|
18
|
+
#include "storage/block.h"
|
19
|
+
#include "storage/relfilelocator.h"
|
20
|
+
|
21
|
+
/*
|
22
|
+
* smgr.c maintains a table of SMgrRelation objects, which are essentially
|
23
|
+
* cached file handles. An SMgrRelation is created (if not already present)
|
24
|
+
* by smgropen(), and destroyed by smgrdestroy(). Note that neither of these
|
25
|
+
* operations imply I/O, they just create or destroy a hashtable entry. (But
|
26
|
+
* smgrdestroy() may release associated resources, such as OS-level file
|
27
|
+
* descriptors.)
|
28
|
+
*
|
29
|
+
* An SMgrRelation may be "pinned", to prevent it from being destroyed while
|
30
|
+
* it's in use. We use this to prevent pointers relcache to smgr from being
|
31
|
+
* invalidated. SMgrRelations that are not pinned are deleted at end of
|
32
|
+
* transaction.
|
33
|
+
*/
|
34
|
+
typedef struct SMgrRelationData
|
35
|
+
{
|
36
|
+
/* rlocator is the hashtable lookup key, so it must be first! */
|
37
|
+
RelFileLocatorBackend smgr_rlocator; /* relation physical identifier */
|
38
|
+
|
39
|
+
/*
|
40
|
+
* The following fields are reset to InvalidBlockNumber upon a cache flush
|
41
|
+
* event, and hold the last known size for each fork. This information is
|
42
|
+
* currently only reliable during recovery, since there is no cache
|
43
|
+
* invalidation for fork extension.
|
44
|
+
*/
|
45
|
+
BlockNumber smgr_targblock; /* current insertion target block */
|
46
|
+
BlockNumber smgr_cached_nblocks[MAX_FORKNUM + 1]; /* last known size */
|
47
|
+
|
48
|
+
/* additional public fields may someday exist here */
|
49
|
+
|
50
|
+
/*
|
51
|
+
* Fields below here are intended to be private to smgr.c and its
|
52
|
+
* submodules. Do not touch them from elsewhere.
|
53
|
+
*/
|
54
|
+
int smgr_which; /* storage manager selector */
|
55
|
+
|
56
|
+
/*
|
57
|
+
* for md.c; per-fork arrays of the number of open segments
|
58
|
+
* (md_num_open_segs) and the segments themselves (md_seg_fds).
|
59
|
+
*/
|
60
|
+
int md_num_open_segs[MAX_FORKNUM + 1];
|
61
|
+
struct _MdfdVec *md_seg_fds[MAX_FORKNUM + 1];
|
62
|
+
|
63
|
+
/*
|
64
|
+
* Pinning support. If unpinned (ie. pincount == 0), 'node' is a list
|
65
|
+
* link in list of all unpinned SMgrRelations.
|
66
|
+
*/
|
67
|
+
int pincount;
|
68
|
+
dlist_node node;
|
69
|
+
} SMgrRelationData;
|
70
|
+
|
71
|
+
typedef SMgrRelationData *SMgrRelation;
|
72
|
+
|
73
|
+
#define SmgrIsTemp(smgr) \
|
74
|
+
RelFileLocatorBackendIsTemp((smgr)->smgr_rlocator)
|
75
|
+
|
76
|
+
extern void smgrinit(void);
|
77
|
+
extern SMgrRelation smgropen(RelFileLocator rlocator, ProcNumber backend);
|
78
|
+
extern bool smgrexists(SMgrRelation reln, ForkNumber forknum);
|
79
|
+
extern void smgrpin(SMgrRelation reln);
|
80
|
+
extern void smgrunpin(SMgrRelation reln);
|
81
|
+
extern void smgrclose(SMgrRelation reln);
|
82
|
+
extern void smgrdestroyall(void);
|
83
|
+
extern void smgrrelease(SMgrRelation reln);
|
84
|
+
extern void smgrreleaseall(void);
|
85
|
+
extern void smgrreleaserellocator(RelFileLocatorBackend rlocator);
|
86
|
+
extern void smgrcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo);
|
87
|
+
extern void smgrdosyncall(SMgrRelation *rels, int nrels);
|
88
|
+
extern void smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo);
|
89
|
+
extern void smgrextend(SMgrRelation reln, ForkNumber forknum,
|
90
|
+
BlockNumber blocknum, const void *buffer, bool skipFsync);
|
91
|
+
extern void smgrzeroextend(SMgrRelation reln, ForkNumber forknum,
|
92
|
+
BlockNumber blocknum, int nblocks, bool skipFsync);
|
93
|
+
extern bool smgrprefetch(SMgrRelation reln, ForkNumber forknum,
|
94
|
+
BlockNumber blocknum, int nblocks);
|
95
|
+
extern void smgrreadv(SMgrRelation reln, ForkNumber forknum,
|
96
|
+
BlockNumber blocknum,
|
97
|
+
void **buffers, BlockNumber nblocks);
|
98
|
+
extern void smgrwritev(SMgrRelation reln, ForkNumber forknum,
|
99
|
+
BlockNumber blocknum,
|
100
|
+
const void **buffers, BlockNumber nblocks,
|
101
|
+
bool skipFsync);
|
102
|
+
extern void smgrwriteback(SMgrRelation reln, ForkNumber forknum,
|
103
|
+
BlockNumber blocknum, BlockNumber nblocks);
|
104
|
+
extern BlockNumber smgrnblocks(SMgrRelation reln, ForkNumber forknum);
|
105
|
+
extern BlockNumber smgrnblocks_cached(SMgrRelation reln, ForkNumber forknum);
|
106
|
+
extern void smgrtruncate(SMgrRelation reln, ForkNumber *forknum, int nforks,
|
107
|
+
BlockNumber *nblocks);
|
108
|
+
extern void smgrtruncate2(SMgrRelation reln, ForkNumber *forknum, int nforks,
|
109
|
+
BlockNumber *old_nblocks,
|
110
|
+
BlockNumber *nblocks);
|
111
|
+
extern void smgrimmedsync(SMgrRelation reln, ForkNumber forknum);
|
112
|
+
extern void smgrregistersync(SMgrRelation reln, ForkNumber forknum);
|
113
|
+
extern void AtEOXact_SMgr(void);
|
114
|
+
extern bool ProcessBarrierSmgrRelease(void);
|
115
|
+
|
116
|
+
static inline void
|
117
|
+
smgrread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
|
118
|
+
void *buffer)
|
119
|
+
{
|
120
|
+
smgrreadv(reln, forknum, blocknum, &buffer, 1);
|
121
|
+
}
|
122
|
+
|
123
|
+
static inline void
|
124
|
+
smgrwrite(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
|
125
|
+
const void *buffer, bool skipFsync)
|
126
|
+
{
|
127
|
+
smgrwritev(reln, forknum, blocknum, &buffer, 1, skipFsync);
|
128
|
+
}
|
129
|
+
|
130
|
+
#endif /* SMGR_H */
|
@@ -0,0 +1,77 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* spin.h
|
4
|
+
* Hardware-independent implementation of spinlocks.
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* The hardware-independent interface to spinlocks is defined by the
|
8
|
+
* typedef "slock_t" and these macros:
|
9
|
+
*
|
10
|
+
* void SpinLockInit(volatile slock_t *lock)
|
11
|
+
* Initialize a spinlock (to the unlocked state).
|
12
|
+
*
|
13
|
+
* void SpinLockAcquire(volatile slock_t *lock)
|
14
|
+
* Acquire a spinlock, waiting if necessary.
|
15
|
+
* Time out and abort() if unable to acquire the lock in a
|
16
|
+
* "reasonable" amount of time --- typically ~ 1 minute.
|
17
|
+
*
|
18
|
+
* void SpinLockRelease(volatile slock_t *lock)
|
19
|
+
* Unlock a previously acquired lock.
|
20
|
+
*
|
21
|
+
* bool SpinLockFree(slock_t *lock)
|
22
|
+
* Tests if the lock is free. Returns true if free, false if locked.
|
23
|
+
* This does *not* change the state of the lock.
|
24
|
+
*
|
25
|
+
* Callers must beware that the macro argument may be evaluated multiple
|
26
|
+
* times!
|
27
|
+
*
|
28
|
+
* Load and store operations in calling code are guaranteed not to be
|
29
|
+
* reordered with respect to these operations, because they include a
|
30
|
+
* compiler barrier. (Before PostgreSQL 9.5, callers needed to use a
|
31
|
+
* volatile qualifier to access data protected by spinlocks.)
|
32
|
+
*
|
33
|
+
* Keep in mind the coding rule that spinlocks must not be held for more
|
34
|
+
* than a few instructions. In particular, we assume it is not possible
|
35
|
+
* for a CHECK_FOR_INTERRUPTS() to occur while holding a spinlock, and so
|
36
|
+
* it is not necessary to do HOLD/RESUME_INTERRUPTS() in these macros.
|
37
|
+
*
|
38
|
+
* These macros are implemented in terms of hardware-dependent macros
|
39
|
+
* supplied by s_lock.h. There is not currently any extra functionality
|
40
|
+
* added by this header, but there has been in the past and may someday
|
41
|
+
* be again.
|
42
|
+
*
|
43
|
+
*
|
44
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
45
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
46
|
+
*
|
47
|
+
* src/include/storage/spin.h
|
48
|
+
*
|
49
|
+
*-------------------------------------------------------------------------
|
50
|
+
*/
|
51
|
+
#ifndef SPIN_H
|
52
|
+
#define SPIN_H
|
53
|
+
|
54
|
+
#include "storage/s_lock.h"
|
55
|
+
#ifndef HAVE_SPINLOCKS
|
56
|
+
#include "storage/pg_sema.h"
|
57
|
+
#endif
|
58
|
+
|
59
|
+
|
60
|
+
#define SpinLockInit(lock) S_INIT_LOCK(lock)
|
61
|
+
|
62
|
+
#define SpinLockAcquire(lock) S_LOCK(lock)
|
63
|
+
|
64
|
+
#define SpinLockRelease(lock) S_UNLOCK(lock)
|
65
|
+
|
66
|
+
#define SpinLockFree(lock) S_LOCK_FREE(lock)
|
67
|
+
|
68
|
+
|
69
|
+
extern int SpinlockSemas(void);
|
70
|
+
extern Size SpinlockSemaSize(void);
|
71
|
+
|
72
|
+
#ifndef HAVE_SPINLOCKS
|
73
|
+
extern void SpinlockSemaInit(void);
|
74
|
+
extern PGDLLIMPORT PGSemaphore *SpinlockSemaArray;
|
75
|
+
#endif
|
76
|
+
|
77
|
+
#endif /* SPIN_H */
|