pg_query 5.1.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/README.md +1 -1
- data/Rakefile +2 -2
- data/ext/pg_query/include/pg_query.h +4 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +2952 -1845
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +210 -23
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +271 -52
- data/ext/pg_query/include/postgres/access/amapi.h +10 -3
- data/ext/pg_query/include/postgres/access/attmap.h +1 -1
- data/ext/pg_query/include/postgres/access/attnum.h +1 -1
- 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 +2 -3
- data/ext/pg_query/include/postgres/access/commit_ts.h +2 -3
- data/ext/pg_query/include/postgres/access/detoast.h +1 -1
- data/ext/pg_query/include/postgres/access/genam.h +8 -4
- data/ext/pg_query/include/postgres/access/gin.h +1 -1
- data/ext/pg_query/include/postgres/access/htup.h +1 -1
- data/ext/pg_query/include/postgres/access/htup_details.h +11 -11
- data/ext/pg_query/include/postgres/access/itup.h +3 -3
- data/ext/pg_query/include/postgres/access/parallel.h +1 -2
- data/ext/pg_query/include/postgres/access/printtup.h +1 -1
- data/ext/pg_query/include/postgres/access/relation.h +1 -1
- data/ext/pg_query/include/postgres/access/relscan.h +1 -1
- data/ext/pg_query/include/postgres/access/rmgrlist.h +1 -1
- data/ext/pg_query/include/postgres/access/sdir.h +1 -1
- data/ext/pg_query/include/postgres/access/skey.h +1 -1
- data/ext/pg_query/include/postgres/access/slru.h +221 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +1 -1
- data/ext/pg_query/include/postgres/access/sysattr.h +1 -1
- data/ext/pg_query/include/postgres/access/table.h +1 -1
- data/ext/pg_query/include/postgres/access/tableam.h +33 -24
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +2 -2
- data/ext/pg_query/include/postgres/access/transam.h +7 -7
- data/ext/pg_query/include/postgres/access/tsmapi.h +1 -1
- data/ext/pg_query/include/postgres/access/tupconvert.h +1 -1
- data/ext/pg_query/include/postgres/access/tupdesc.h +5 -5
- data/ext/pg_query/include/postgres/access/tupmacs.h +1 -1
- data/ext/pg_query/include/postgres/access/twophase.h +2 -2
- data/ext/pg_query/include/postgres/access/xact.h +5 -5
- data/ext/pg_query/include/postgres/access/xlog.h +20 -12
- data/ext/pg_query/include/postgres/access/xlog_internal.h +4 -3
- data/ext/pg_query/include/postgres/access/xlogbackup.h +3 -1
- data/ext/pg_query/include/postgres/access/xlogdefs.h +5 -5
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +2 -2
- data/ext/pg_query/include/postgres/access/xlogreader.h +2 -2
- data/ext/pg_query/include/postgres/access/xlogrecord.h +3 -3
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +4 -4
- data/ext/pg_query/include/postgres/archive/archive_module.h +9 -1
- data/ext/pg_query/include/postgres/c.h +31 -36
- data/ext/pg_query/include/postgres/catalog/catalog.h +3 -1
- data/ext/pg_query/include/postgres/catalog/catversion.h +2 -2
- data/ext/pg_query/include/postgres/catalog/dependency.h +17 -59
- data/ext/pg_query/include/postgres/catalog/genbki.h +12 -6
- data/ext/pg_query/include/postgres/catalog/index.h +22 -18
- data/ext/pg_query/include/postgres/catalog/indexing.h +1 -1
- data/ext/pg_query/include/postgres/catalog/namespace.h +18 -19
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +2 -2
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_am.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +31 -14
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +2 -1
- data/ext/pg_query/include/postgres/catalog/pg_class.h +10 -5
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +11 -5
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +5 -2
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +15 -10
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +2 -1
- data/ext/pg_query/include/postgres/catalog/pg_control.h +5 -3
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +8 -4
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +9 -4
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +13 -12
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_index.h +5 -3
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_language.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +20 -3
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +10 -4
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +7 -3
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +10 -7
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +4 -4
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_type.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/storage.h +1 -1
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +2 -6
- data/ext/pg_query/include/postgres/commands/dbcommands.h +1 -1
- data/ext/pg_query/include/postgres/commands/defrem.h +6 -6
- data/ext/pg_query/include/postgres/commands/event_trigger.h +5 -2
- data/ext/pg_query/include/postgres/commands/explain.h +19 -3
- data/ext/pg_query/include/postgres/commands/prepare.h +1 -1
- data/ext/pg_query/include/postgres/commands/tablespace.h +1 -1
- data/ext/pg_query/include/postgres/commands/trigger.h +1 -1
- data/ext/pg_query/include/postgres/commands/vacuum.h +28 -26
- data/ext/pg_query/include/postgres/common/cryptohash.h +2 -2
- data/ext/pg_query/include/postgres/common/file_perm.h +1 -1
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +16 -1
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +453 -0
- data/ext/pg_query/include/postgres/common/int.h +79 -4
- data/ext/pg_query/include/postgres/common/keywords.h +1 -1
- data/ext/pg_query/include/postgres/common/kwlookup.h +1 -1
- data/ext/pg_query/include/postgres/common/pg_prng.h +2 -1
- data/ext/pg_query/include/postgres/common/relpath.h +4 -4
- data/ext/pg_query/include/postgres/common/scram-common.h +1 -1
- data/ext/pg_query/include/postgres/common/sha2.h +1 -1
- data/ext/pg_query/include/postgres/common/string.h +1 -1
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +2 -3
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +278 -30
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +55 -4
- data/ext/pg_query/include/postgres/datatype/timestamp.h +28 -2
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +239 -26
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +55 -4
- data/ext/pg_query/include/postgres/executor/execdesc.h +1 -1
- data/ext/pg_query/include/postgres/executor/executor.h +6 -5
- data/ext/pg_query/include/postgres/executor/functions.h +2 -1
- data/ext/pg_query/include/postgres/executor/instrument.h +5 -3
- data/ext/pg_query/include/postgres/executor/spi.h +2 -8
- data/ext/pg_query/include/postgres/executor/tablefunc.h +1 -1
- data/ext/pg_query/include/postgres/executor/tuptable.h +31 -2
- data/ext/pg_query/include/postgres/fmgr.h +2 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +1 -1
- data/ext/pg_query/include/postgres/funcapi.h +2 -2
- data/ext/pg_query/include/postgres/gram.h +871 -830
- data/ext/pg_query/include/postgres/gramparse.h +1 -1
- data/ext/pg_query/include/postgres/jit/jit.h +4 -3
- data/ext/pg_query/include/postgres/kwlist_d.h +511 -466
- data/ext/pg_query/include/postgres/lib/dshash.h +25 -10
- data/ext/pg_query/include/postgres/lib/ilist.h +1 -1
- data/ext/pg_query/include/postgres/lib/pairingheap.h +1 -1
- data/ext/pg_query/include/postgres/lib/simplehash.h +40 -18
- data/ext/pg_query/include/postgres/lib/sort_template.h +14 -1
- data/ext/pg_query/include/postgres/lib/stringinfo.h +93 -11
- data/ext/pg_query/include/postgres/libpq/auth.h +1 -1
- data/ext/pg_query/include/postgres/libpq/crypt.h +2 -2
- data/ext/pg_query/include/postgres/libpq/hba.h +4 -4
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +29 -25
- data/ext/pg_query/include/postgres/libpq/libpq.h +6 -7
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +26 -20
- data/ext/pg_query/include/postgres/libpq/pqformat.h +2 -3
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +1 -1
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- data/ext/pg_query/include/postgres/libpq/sasl.h +1 -1
- data/ext/pg_query/include/postgres/libpq/scram.h +1 -1
- data/ext/pg_query/include/postgres/mb/pg_wchar.h +102 -82
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/postgres/miscadmin.h +64 -52
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
- data/ext/pg_query/include/postgres/nodes/execnodes.h +109 -25
- data/ext/pg_query/include/postgres/nodes/extensible.h +1 -1
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +4 -4
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +8 -2
- data/ext/pg_query/include/postgres/nodes/memnodes.h +43 -4
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +1 -1
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +1 -1
- data/ext/pg_query/include/postgres/nodes/nodes.h +30 -41
- data/ext/pg_query/include/postgres/nodes/nodetags.h +464 -444
- data/ext/pg_query/include/postgres/nodes/params.h +1 -1
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +358 -175
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +60 -9
- data/ext/pg_query/include/postgres/nodes/pg_list.h +62 -11
- data/ext/pg_query/include/postgres/nodes/plannodes.h +11 -10
- data/ext/pg_query/include/postgres/nodes/primnodes.h +344 -50
- data/ext/pg_query/include/postgres/nodes/print.h +1 -1
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +2 -2
- data/ext/pg_query/include/postgres/nodes/replnodes.h +23 -2
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +1 -1
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +1 -1
- data/ext/pg_query/include/postgres/nodes/value.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/cost.h +5 -4
- data/ext/pg_query/include/postgres/optimizer/geqo.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +5 -2
- data/ext/pg_query/include/postgres/optimizer/paths.h +13 -8
- data/ext/pg_query/include/postgres/optimizer/planmain.h +7 -1
- data/ext/pg_query/include/postgres/parser/analyze.h +3 -1
- data/ext/pg_query/include/postgres/parser/kwlist.h +22 -2
- data/ext/pg_query/include/postgres/parser/parse_agg.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +2 -2
- data/ext/pg_query/include/postgres/parser/parse_expr.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_func.h +2 -2
- data/ext/pg_query/include/postgres/parser/parse_node.h +3 -2
- data/ext/pg_query/include/postgres/parser/parse_oper.h +4 -1
- data/ext/pg_query/include/postgres/parser/parse_relation.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_type.h +2 -2
- data/ext/pg_query/include/postgres/parser/parser.h +3 -3
- data/ext/pg_query/include/postgres/parser/parsetree.h +1 -1
- data/ext/pg_query/include/postgres/parser/scanner.h +1 -1
- data/ext/pg_query/include/postgres/parser/scansup.h +1 -1
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +1 -1
- data/ext/pg_query/include/postgres/pg_config.h +34 -34
- data/ext/pg_query/include/postgres/pg_config_manual.h +21 -8
- data/ext/pg_query/include/postgres/pg_getopt.h +1 -1
- data/ext/pg_query/include/postgres/pg_trace.h +1 -1
- data/ext/pg_query/include/postgres/pgstat.h +13 -11
- data/ext/pg_query/include/postgres/pgtime.h +1 -1
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +1 -1
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +1 -1
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/postgres/plerrcodes.h +4 -4
- data/ext/pg_query/include/postgres/plpgsql.h +15 -13
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +3 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +3 -1
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +38 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +19 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +16 -1
- data/ext/pg_query/include/postgres/port/atomics/generic.h +38 -2
- data/ext/pg_query/include/postgres/port/atomics.h +93 -6
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +91 -9
- data/ext/pg_query/include/postgres/port/pg_bswap.h +1 -1
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +10 -1
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +48 -1
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +8 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +1 -11
- data/ext/pg_query/include/postgres/port.h +7 -3
- data/ext/pg_query/include/postgres/portability/instr_time.h +1 -1
- data/ext/pg_query/include/postgres/postgres.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/autovacuum.h +5 -16
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +8 -6
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +3 -7
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +3 -3
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +2 -2
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +25 -5
- data/ext/pg_query/include/postgres/postmaster/startup.h +2 -2
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +2 -4
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +2 -2
- data/ext/pg_query/include/postgres/regex/regex.h +92 -9
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +1 -1
- data/ext/pg_query/include/postgres/replication/logicalproto.h +2 -2
- data/ext/pg_query/include/postgres/replication/logicalworker.h +2 -1
- data/ext/pg_query/include/postgres/replication/origin.h +1 -1
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +18 -28
- data/ext/pg_query/include/postgres/replication/slot.h +41 -5
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +1 -1
- data/ext/pg_query/include/postgres/replication/walreceiver.h +37 -11
- data/ext/pg_query/include/postgres/replication/walsender.h +5 -3
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +1 -1
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +7 -1
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +2 -2
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +1 -1
- data/ext/pg_query/include/postgres/storage/block.h +1 -1
- data/ext/pg_query/include/postgres/storage/buf.h +1 -1
- data/ext/pg_query/include/postgres/storage/bufmgr.h +59 -41
- data/ext/pg_query/include/postgres/storage/bufpage.h +1 -1
- data/ext/pg_query/include/postgres/storage/condition_variable.h +1 -1
- data/ext/pg_query/include/postgres/storage/dsm.h +1 -1
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +2 -2
- data/ext/pg_query/include/postgres/storage/fd.h +30 -13
- data/ext/pg_query/include/postgres/storage/fileset.h +1 -1
- data/ext/pg_query/include/postgres/storage/ipc.h +4 -1
- data/ext/pg_query/include/postgres/storage/item.h +1 -1
- data/ext/pg_query/include/postgres/storage/itemid.h +1 -1
- data/ext/pg_query/include/postgres/storage/itemptr.h +1 -1
- data/ext/pg_query/include/postgres/storage/large_object.h +1 -1
- data/ext/pg_query/include/postgres/storage/latch.h +4 -2
- data/ext/pg_query/include/postgres/storage/lmgr.h +8 -2
- data/ext/pg_query/include/postgres/storage/lock.h +19 -19
- data/ext/pg_query/include/postgres/storage/lockdefs.h +1 -1
- data/ext/pg_query/include/postgres/storage/lwlock.h +17 -9
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +7 -10
- data/ext/pg_query/include/postgres/storage/off.h +1 -1
- data/ext/pg_query/include/postgres/storage/pg_sema.h +1 -1
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +5 -4
- data/ext/pg_query/include/postgres/storage/pmsignal.h +2 -2
- data/ext/pg_query/include/postgres/storage/predicate.h +1 -5
- data/ext/pg_query/include/postgres/storage/proc.h +48 -23
- data/ext/pg_query/include/postgres/storage/procarray.h +5 -1
- data/ext/pg_query/include/postgres/storage/proclist_types.h +11 -9
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +8 -6
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +16 -15
- data/ext/pg_query/include/postgres/storage/s_lock.h +7 -27
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +1 -1
- data/ext/pg_query/include/postgres/storage/shm_mq.h +2 -2
- data/ext/pg_query/include/postgres/storage/shm_toc.h +1 -1
- data/ext/pg_query/include/postgres/storage/shmem.h +1 -1
- data/ext/pg_query/include/postgres/storage/sinval.h +3 -3
- data/ext/pg_query/include/postgres/storage/smgr.h +41 -27
- data/ext/pg_query/include/postgres/storage/spin.h +1 -1
- data/ext/pg_query/include/postgres/storage/standby.h +13 -3
- data/ext/pg_query/include/postgres/storage/standbydefs.h +2 -2
- data/ext/pg_query/include/postgres/storage/sync.h +4 -4
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +1 -2
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +3 -2
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +2 -2
- data/ext/pg_query/include/postgres/tcop/dest.h +3 -2
- data/ext/pg_query/include/postgres/tcop/fastpath.h +1 -1
- data/ext/pg_query/include/postgres/tcop/pquery.h +1 -1
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +9 -5
- data/ext/pg_query/include/postgres/tcop/utility.h +2 -2
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +1 -1
- data/ext/pg_query/include/postgres/utils/acl.h +19 -7
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +1 -1
- data/ext/pg_query/include/postgres/utils/array.h +1 -2
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +3 -2
- data/ext/pg_query/include/postgres/utils/backend_status.h +8 -10
- data/ext/pg_query/include/postgres/utils/builtins.h +4 -1
- data/ext/pg_query/include/postgres/utils/bytea.h +2 -2
- data/ext/pg_query/include/postgres/utils/catcache.h +5 -6
- data/ext/pg_query/include/postgres/utils/date.h +1 -1
- data/ext/pg_query/include/postgres/utils/datetime.h +4 -1
- data/ext/pg_query/include/postgres/utils/datum.h +1 -1
- data/ext/pg_query/include/postgres/utils/dsa.h +44 -5
- data/ext/pg_query/include/postgres/utils/elog.h +3 -8
- data/ext/pg_query/include/postgres/utils/errcodes.h +1 -3
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +1 -1
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +1 -1
- data/ext/pg_query/include/postgres/utils/float.h +1 -1
- data/ext/pg_query/include/postgres/utils/fmgroids.h +49 -16
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +47 -14
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +1 -1
- data/ext/pg_query/include/postgres/utils/guc.h +20 -6
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +23 -2
- data/ext/pg_query/include/postgres/utils/guc_tables.h +6 -5
- data/ext/pg_query/include/postgres/utils/hsearch.h +2 -2
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +1 -1
- data/ext/pg_query/include/postgres/utils/logtape.h +5 -5
- data/ext/pg_query/include/postgres/utils/lsyscache.h +6 -3
- data/ext/pg_query/include/postgres/utils/memdebug.h +1 -1
- data/ext/pg_query/include/postgres/utils/memutils.h +12 -5
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +53 -13
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +25 -9
- data/ext/pg_query/include/postgres/utils/numeric.h +6 -1
- data/ext/pg_query/include/postgres/utils/palloc.h +1 -15
- data/ext/pg_query/include/postgres/utils/partcache.h +1 -1
- data/ext/pg_query/include/postgres/utils/pg_locale.h +8 -7
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +11 -17
- data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
- data/ext/pg_query/include/postgres/utils/portal.h +9 -9
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +2 -2
- data/ext/pg_query/include/postgres/utils/regproc.h +1 -1
- data/ext/pg_query/include/postgres/utils/rel.h +14 -15
- data/ext/pg_query/include/postgres/utils/relcache.h +2 -5
- data/ext/pg_query/include/postgres/utils/reltrigger.h +1 -1
- data/ext/pg_query/include/postgres/utils/resowner.h +90 -9
- data/ext/pg_query/include/postgres/utils/ruleutils.h +1 -1
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/postgres/utils/snapmgr.h +1 -52
- data/ext/pg_query/include/postgres/utils/snapshot.h +2 -2
- data/ext/pg_query/include/postgres/utils/sortsupport.h +1 -1
- data/ext/pg_query/include/postgres/utils/syscache.h +2 -98
- data/ext/pg_query/include/postgres/utils/timeout.h +3 -2
- data/ext/pg_query/include/postgres/utils/timestamp.h +1 -1
- data/ext/pg_query/include/postgres/utils/tuplesort.h +36 -9
- data/ext/pg_query/include/postgres/utils/tuplestore.h +2 -5
- data/ext/pg_query/include/postgres/utils/typcache.h +2 -1
- data/ext/pg_query/include/postgres/utils/varlena.h +1 -1
- data/ext/pg_query/include/postgres/utils/wait_event.h +28 -214
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +4 -4
- data/ext/pg_query/include/postgres/varatt.h +1 -1
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
- data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
- data/ext/pg_query/pg_query.pb-c.c +6598 -3739
- data/ext/pg_query/pg_query_normalize.c +42 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +3 -1
- data/ext/pg_query/pg_query_parse_plpgsql.c +12 -13
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +2 -2
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -1
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/postgres_deparse.c +409 -21
- data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +3 -7
- data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +34490 -32135
- data/ext/pg_query/src_backend_parser_parser.c +8 -8
- data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
- data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
- data/ext/pg_query/src_backend_utils_error_elog.c +47 -42
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +15 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +11 -18
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -6
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
- data/ext/pg_query/src_common_encnames.c +43 -44
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +511 -466
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +3 -3
- data/ext/pg_query/src_common_stringinfo.c +18 -1
- data/ext/pg_query/src_common_wchar.c +45 -108
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_port_pg_bitutils.c +173 -28
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +1 -1
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +1 -1
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +26 -3
- data/lib/pg_query/treewalker.rb +38 -11
- data/lib/pg_query/truncate.rb +1 -1
- data/lib/pg_query/version.rb +1 -1
- metadata +25 -11
- data/ext/pg_query/include/postgres/storage/backendid.h +0 -37
- data/ext/pg_query/include/postgres/storage/sinvaladt.h +0 -45
- data/ext/pg_query/src_backend_nodes_nodes.c +0 -38
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
* when using the SysV semaphore code.
|
|
87
87
|
*
|
|
88
88
|
*
|
|
89
|
-
* Portions Copyright (c) 1996-
|
|
89
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
90
90
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
91
91
|
*
|
|
92
92
|
* src/include/storage/s_lock.h
|
|
@@ -414,12 +414,6 @@ typedef unsigned int slock_t;
|
|
|
414
414
|
* an isync is a sufficient synchronization barrier after a lwarx/stwcx loop.
|
|
415
415
|
* But if the spinlock is in ordinary memory, we can use lwsync instead for
|
|
416
416
|
* better performance.
|
|
417
|
-
*
|
|
418
|
-
* Ordinarily, we'd code the branches here using GNU-style local symbols, that
|
|
419
|
-
* is "1f" referencing "1:" and so on. But some people run gcc on AIX with
|
|
420
|
-
* IBM's assembler as backend, and IBM's assembler doesn't do local symbols.
|
|
421
|
-
* So hand-code the branch offsets; fortunately, all PPC instructions are
|
|
422
|
-
* exactly 4 bytes each, so it's not too hard to count.
|
|
423
417
|
*/
|
|
424
418
|
static __inline__ int
|
|
425
419
|
tas(volatile slock_t *lock)
|
|
@@ -430,15 +424,17 @@ tas(volatile slock_t *lock)
|
|
|
430
424
|
__asm__ __volatile__(
|
|
431
425
|
" lwarx %0,0,%3,1 \n"
|
|
432
426
|
" cmpwi %0,0 \n"
|
|
433
|
-
" bne
|
|
427
|
+
" bne 1f \n"
|
|
434
428
|
" addi %0,%0,1 \n"
|
|
435
429
|
" stwcx. %0,0,%3 \n"
|
|
436
|
-
" beq
|
|
430
|
+
" beq 2f \n"
|
|
431
|
+
"1: \n"
|
|
437
432
|
" li %1,1 \n"
|
|
438
|
-
" b
|
|
433
|
+
" b 3f \n"
|
|
434
|
+
"2: \n"
|
|
439
435
|
" lwsync \n"
|
|
440
436
|
" li %1,0 \n"
|
|
441
|
-
|
|
437
|
+
"3: \n"
|
|
442
438
|
: "=&b"(_t), "=r"(_res), "+m"(*lock)
|
|
443
439
|
: "r"(lock)
|
|
444
440
|
: "memory", "cc");
|
|
@@ -666,21 +662,6 @@ tas(volatile slock_t *lock)
|
|
|
666
662
|
|
|
667
663
|
#if !defined(HAS_TEST_AND_SET) /* We didn't trigger above, let's try here */
|
|
668
664
|
|
|
669
|
-
#if defined(_AIX) /* AIX */
|
|
670
|
-
/*
|
|
671
|
-
* AIX (POWER)
|
|
672
|
-
*/
|
|
673
|
-
#define HAS_TEST_AND_SET
|
|
674
|
-
|
|
675
|
-
#include <sys/atomic_op.h>
|
|
676
|
-
|
|
677
|
-
typedef int slock_t;
|
|
678
|
-
|
|
679
|
-
#define TAS(lock) _check_lock((slock_t *) (lock), 0, 1)
|
|
680
|
-
#define S_UNLOCK(lock) _clear_lock((slock_t *) (lock), 0)
|
|
681
|
-
#endif /* _AIX */
|
|
682
|
-
|
|
683
|
-
|
|
684
665
|
/* These are in sunstudio_(sparc|x86).s */
|
|
685
666
|
|
|
686
667
|
#if defined(__SUNPRO_C) && (defined(__i386) || defined(__x86_64__) || defined(__sparc__) || defined(__sparc))
|
|
@@ -821,7 +802,6 @@ extern int tas(volatile slock_t *lock); /* in port/.../tas.s, or
|
|
|
821
802
|
#define TAS_SPIN(lock) TAS(lock)
|
|
822
803
|
#endif /* TAS_SPIN */
|
|
823
804
|
|
|
824
|
-
extern PGDLLIMPORT slock_t dummy_spinlock;
|
|
825
805
|
|
|
826
806
|
/*
|
|
827
807
|
* Platform-independent out-of-line support routines
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Shared temporary file management.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/storage/sharedfileset.h
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* shm_mq.h
|
|
4
4
|
* single-reader, single-writer shared memory message queue
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/storage/shm_mq.h
|
|
@@ -37,7 +37,7 @@ typedef enum
|
|
|
37
37
|
{
|
|
38
38
|
SHM_MQ_SUCCESS, /* Sent or received a message. */
|
|
39
39
|
SHM_MQ_WOULD_BLOCK, /* Not completed; retry later. */
|
|
40
|
-
SHM_MQ_DETACHED
|
|
40
|
+
SHM_MQ_DETACHED, /* Other process has detached queue. */
|
|
41
41
|
} shm_mq_result;
|
|
42
42
|
|
|
43
43
|
/*
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* other data structure within the segment and only put the pointer to
|
|
13
13
|
* the data structure itself in the table of contents.
|
|
14
14
|
*
|
|
15
|
-
* Portions Copyright (c) 1996-
|
|
15
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
16
16
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
17
17
|
*
|
|
18
18
|
* src/include/storage/shm_toc.h
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* at the same address. This means shared memory pointers can be passed
|
|
12
12
|
* around directly between different processes.
|
|
13
13
|
*
|
|
14
|
-
* Portions Copyright (c) 1996-
|
|
14
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
15
15
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
16
16
|
*
|
|
17
17
|
* src/include/storage/shmem.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES shared cache invalidation communication definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/storage/sinval.h
|
|
@@ -88,8 +88,8 @@ typedef struct
|
|
|
88
88
|
{
|
|
89
89
|
/* note: field layout chosen to pack into 16 bytes */
|
|
90
90
|
int8 id; /* type field --- must be first */
|
|
91
|
-
int8 backend_hi; /* high bits of backend
|
|
92
|
-
uint16 backend_lo; /* low bits of backend
|
|
91
|
+
int8 backend_hi; /* high bits of backend procno, if temprel */
|
|
92
|
+
uint16 backend_lo; /* low bits of backend procno, if temprel */
|
|
93
93
|
RelFileLocator rlocator; /* spcOid, dbOid, relNumber */
|
|
94
94
|
} SharedInvalSmgrMsg;
|
|
95
95
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* storage manager switch public interface declarations.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/storage/smgr.h
|
|
@@ -21,29 +21,21 @@
|
|
|
21
21
|
/*
|
|
22
22
|
* smgr.c maintains a table of SMgrRelation objects, which are essentially
|
|
23
23
|
* cached file handles. An SMgrRelation is created (if not already present)
|
|
24
|
-
* by smgropen(), and destroyed by
|
|
25
|
-
* operations imply I/O, they just create or destroy a hashtable entry.
|
|
26
|
-
* (
|
|
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
27
|
* descriptors.)
|
|
28
28
|
*
|
|
29
|
-
* An SMgrRelation may
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* can't be more than one "owner" pointer per SMgrRelation, but that's
|
|
34
|
-
* all we need.
|
|
35
|
-
*
|
|
36
|
-
* SMgrRelations that do not have an "owner" are considered to be transient,
|
|
37
|
-
* and are deleted at end of transaction.
|
|
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.
|
|
38
33
|
*/
|
|
39
34
|
typedef struct SMgrRelationData
|
|
40
35
|
{
|
|
41
36
|
/* rlocator is the hashtable lookup key, so it must be first! */
|
|
42
37
|
RelFileLocatorBackend smgr_rlocator; /* relation physical identifier */
|
|
43
38
|
|
|
44
|
-
/* pointer to owning pointer, or NULL if none */
|
|
45
|
-
struct SMgrRelationData **smgr_owner;
|
|
46
|
-
|
|
47
39
|
/*
|
|
48
40
|
* The following fields are reset to InvalidBlockNumber upon a cache flush
|
|
49
41
|
* event, and hold the last known size for each fork. This information is
|
|
@@ -68,7 +60,11 @@ typedef struct SMgrRelationData
|
|
|
68
60
|
int md_num_open_segs[MAX_FORKNUM + 1];
|
|
69
61
|
struct _MdfdVec *md_seg_fds[MAX_FORKNUM + 1];
|
|
70
62
|
|
|
71
|
-
/*
|
|
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;
|
|
72
68
|
dlist_node node;
|
|
73
69
|
} SMgrRelationData;
|
|
74
70
|
|
|
@@ -78,15 +74,15 @@ typedef SMgrRelationData *SMgrRelation;
|
|
|
78
74
|
RelFileLocatorBackendIsTemp((smgr)->smgr_rlocator)
|
|
79
75
|
|
|
80
76
|
extern void smgrinit(void);
|
|
81
|
-
extern SMgrRelation smgropen(RelFileLocator rlocator,
|
|
77
|
+
extern SMgrRelation smgropen(RelFileLocator rlocator, ProcNumber backend);
|
|
82
78
|
extern bool smgrexists(SMgrRelation reln, ForkNumber forknum);
|
|
83
|
-
extern void
|
|
84
|
-
extern void
|
|
79
|
+
extern void smgrpin(SMgrRelation reln);
|
|
80
|
+
extern void smgrunpin(SMgrRelation reln);
|
|
85
81
|
extern void smgrclose(SMgrRelation reln);
|
|
86
|
-
extern void
|
|
87
|
-
extern void smgrcloserellocator(RelFileLocatorBackend rlocator);
|
|
82
|
+
extern void smgrdestroyall(void);
|
|
88
83
|
extern void smgrrelease(SMgrRelation reln);
|
|
89
84
|
extern void smgrreleaseall(void);
|
|
85
|
+
extern void smgrreleaserellocator(RelFileLocatorBackend rlocator);
|
|
90
86
|
extern void smgrcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo);
|
|
91
87
|
extern void smgrdosyncall(SMgrRelation *rels, int nrels);
|
|
92
88
|
extern void smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo);
|
|
@@ -95,11 +91,14 @@ extern void smgrextend(SMgrRelation reln, ForkNumber forknum,
|
|
|
95
91
|
extern void smgrzeroextend(SMgrRelation reln, ForkNumber forknum,
|
|
96
92
|
BlockNumber blocknum, int nblocks, bool skipFsync);
|
|
97
93
|
extern bool smgrprefetch(SMgrRelation reln, ForkNumber forknum,
|
|
98
|
-
BlockNumber blocknum);
|
|
99
|
-
extern void
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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);
|
|
103
102
|
extern void smgrwriteback(SMgrRelation reln, ForkNumber forknum,
|
|
104
103
|
BlockNumber blocknum, BlockNumber nblocks);
|
|
105
104
|
extern BlockNumber smgrnblocks(SMgrRelation reln, ForkNumber forknum);
|
|
@@ -107,7 +106,22 @@ extern BlockNumber smgrnblocks_cached(SMgrRelation reln, ForkNumber forknum);
|
|
|
107
106
|
extern void smgrtruncate(SMgrRelation reln, ForkNumber *forknum,
|
|
108
107
|
int nforks, BlockNumber *nblocks);
|
|
109
108
|
extern void smgrimmedsync(SMgrRelation reln, ForkNumber forknum);
|
|
109
|
+
extern void smgrregistersync(SMgrRelation reln, ForkNumber forknum);
|
|
110
110
|
extern void AtEOXact_SMgr(void);
|
|
111
111
|
extern bool ProcessBarrierSmgrRelease(void);
|
|
112
112
|
|
|
113
|
+
static inline void
|
|
114
|
+
smgrread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
|
|
115
|
+
void *buffer)
|
|
116
|
+
{
|
|
117
|
+
smgrreadv(reln, forknum, blocknum, &buffer, 1);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
static inline void
|
|
121
|
+
smgrwrite(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
|
|
122
|
+
const void *buffer, bool skipFsync)
|
|
123
|
+
{
|
|
124
|
+
smgrwritev(reln, forknum, blocknum, &buffer, 1, skipFsync);
|
|
125
|
+
}
|
|
126
|
+
|
|
113
127
|
#endif /* SMGR_H */
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
* be again.
|
|
42
42
|
*
|
|
43
43
|
*
|
|
44
|
-
* Portions Copyright (c) 1996-
|
|
44
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
45
45
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
46
46
|
*
|
|
47
47
|
* src/include/storage/spin.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Definitions for hot standby mode.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/storage/standby.h
|
|
@@ -75,13 +75,23 @@ extern void StandbyReleaseOldLocks(TransactionId oldxid);
|
|
|
75
75
|
* almost immediately see the data we need to begin executing queries.
|
|
76
76
|
*/
|
|
77
77
|
|
|
78
|
+
typedef enum
|
|
79
|
+
{
|
|
80
|
+
SUBXIDS_IN_ARRAY, /* xids array includes all running subxids */
|
|
81
|
+
SUBXIDS_MISSING, /* snapshot overflowed, subxids are missing */
|
|
82
|
+
SUBXIDS_IN_SUBTRANS, /* subxids are not included in 'xids', but
|
|
83
|
+
* pg_subtrans is fully up-to-date */
|
|
84
|
+
} subxids_array_status;
|
|
85
|
+
|
|
78
86
|
typedef struct RunningTransactionsData
|
|
79
87
|
{
|
|
80
88
|
int xcnt; /* # of xact ids in xids[] */
|
|
81
89
|
int subxcnt; /* # of subxact ids in xids[] */
|
|
82
|
-
|
|
83
|
-
TransactionId nextXid; /* xid from
|
|
90
|
+
subxids_array_status subxid_status;
|
|
91
|
+
TransactionId nextXid; /* xid from TransamVariables->nextXid */
|
|
84
92
|
TransactionId oldestRunningXid; /* *not* oldestXmin */
|
|
93
|
+
TransactionId oldestDatabaseRunningXid; /* same as above, but within the
|
|
94
|
+
* current database */
|
|
85
95
|
TransactionId latestCompletedXid; /* so we can set xmax */
|
|
86
96
|
|
|
87
97
|
TransactionId *xids; /* array of (sub)xids still running */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Frontend exposed definitions for hot standby mode.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/storage/standbydefs.h
|
|
@@ -49,7 +49,7 @@ typedef struct xl_running_xacts
|
|
|
49
49
|
int xcnt; /* # of xact ids in xids[] */
|
|
50
50
|
int subxcnt; /* # of subxact ids in xids[] */
|
|
51
51
|
bool subxid_overflow; /* snapshot overflowed, subxids missing */
|
|
52
|
-
TransactionId nextXid; /* xid from
|
|
52
|
+
TransactionId nextXid; /* xid from TransamVariables->nextXid */
|
|
53
53
|
TransactionId oldestRunningXid; /* *not* oldestXmin */
|
|
54
54
|
TransactionId latestCompletedXid; /* so we can set xmax */
|
|
55
55
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* sync.h
|
|
4
4
|
* File synchronization management code.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/storage/sync.h
|
|
@@ -25,7 +25,7 @@ typedef enum SyncRequestType
|
|
|
25
25
|
SYNC_REQUEST, /* schedule a call of sync function */
|
|
26
26
|
SYNC_UNLINK_REQUEST, /* schedule a call of unlink function */
|
|
27
27
|
SYNC_FORGET_REQUEST, /* forget all calls for a tag */
|
|
28
|
-
SYNC_FILTER_REQUEST
|
|
28
|
+
SYNC_FILTER_REQUEST, /* forget all calls satisfying match fn */
|
|
29
29
|
} SyncRequestType;
|
|
30
30
|
|
|
31
31
|
/*
|
|
@@ -39,7 +39,7 @@ typedef enum SyncRequestHandler
|
|
|
39
39
|
SYNC_HANDLER_COMMIT_TS,
|
|
40
40
|
SYNC_HANDLER_MULTIXACT_OFFSET,
|
|
41
41
|
SYNC_HANDLER_MULTIXACT_MEMBER,
|
|
42
|
-
SYNC_HANDLER_NONE
|
|
42
|
+
SYNC_HANDLER_NONE,
|
|
43
43
|
} SyncRequestHandler;
|
|
44
44
|
|
|
45
45
|
/*
|
|
@@ -52,7 +52,7 @@ typedef struct FileTag
|
|
|
52
52
|
int16 handler; /* SyncRequestHandler value, saving space */
|
|
53
53
|
int16 forknum; /* ForkNumber, saving space */
|
|
54
54
|
RelFileLocator rlocator;
|
|
55
|
-
|
|
55
|
+
uint64 segno;
|
|
56
56
|
} FileTag;
|
|
57
57
|
|
|
58
58
|
extern void InitSync(void);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* cmdtag.h
|
|
4
4
|
* Declarations for commandtag names and enumeration.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/tcop/cmdtag.h
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
typedef enum CommandTag
|
|
23
23
|
{
|
|
24
24
|
#include "tcop/cmdtaglist.h"
|
|
25
|
-
COMMAND_TAG_NEXTTAG
|
|
26
25
|
} CommandTag;
|
|
27
26
|
|
|
28
27
|
#undef PG_CMDTAG
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* determined by the PG_CMDTAG macro, which is not defined in this file;
|
|
9
9
|
* it can be defined by the caller for special purposes.
|
|
10
10
|
*
|
|
11
|
-
* Portions Copyright (c) 1996-
|
|
11
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
12
12
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
13
13
|
*
|
|
14
14
|
* src/include/tcop/cmdtaglist.h
|
|
@@ -186,6 +186,7 @@ PG_CMDTAG(CMDTAG_INSERT, "INSERT", false, false, true)
|
|
|
186
186
|
PG_CMDTAG(CMDTAG_LISTEN, "LISTEN", false, false, false)
|
|
187
187
|
PG_CMDTAG(CMDTAG_LOAD, "LOAD", false, false, false)
|
|
188
188
|
PG_CMDTAG(CMDTAG_LOCK_TABLE, "LOCK TABLE", false, false, false)
|
|
189
|
+
PG_CMDTAG(CMDTAG_LOGIN, "LOGIN", true, false, false)
|
|
189
190
|
PG_CMDTAG(CMDTAG_MERGE, "MERGE", false, false, true)
|
|
190
191
|
PG_CMDTAG(CMDTAG_MOVE, "MOVE", false, false, true)
|
|
191
192
|
PG_CMDTAG(CMDTAG_NOTIFY, "NOTIFY", false, false, false)
|
|
@@ -193,7 +194,7 @@ PG_CMDTAG(CMDTAG_PREPARE, "PREPARE", false, false, false)
|
|
|
193
194
|
PG_CMDTAG(CMDTAG_PREPARE_TRANSACTION, "PREPARE TRANSACTION", false, false, false)
|
|
194
195
|
PG_CMDTAG(CMDTAG_REASSIGN_OWNED, "REASSIGN OWNED", false, false, false)
|
|
195
196
|
PG_CMDTAG(CMDTAG_REFRESH_MATERIALIZED_VIEW, "REFRESH MATERIALIZED VIEW", true, false, false)
|
|
196
|
-
PG_CMDTAG(CMDTAG_REINDEX, "REINDEX",
|
|
197
|
+
PG_CMDTAG(CMDTAG_REINDEX, "REINDEX", true, false, false)
|
|
197
198
|
PG_CMDTAG(CMDTAG_RELEASE, "RELEASE", false, false, false)
|
|
198
199
|
PG_CMDTAG(CMDTAG_RESET, "RESET", false, false, false)
|
|
199
200
|
PG_CMDTAG(CMDTAG_REVOKE, "REVOKE", true, false, false)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
*
|
|
3
3
|
* deparse_utility.h
|
|
4
4
|
*
|
|
5
|
-
* Portions Copyright (c) 1996-
|
|
5
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
6
6
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
7
7
|
*
|
|
8
8
|
* src/include/tcop/deparse_utility.h
|
|
@@ -29,7 +29,7 @@ typedef enum CollectedCommandType
|
|
|
29
29
|
SCT_AlterOpFamily,
|
|
30
30
|
SCT_AlterDefaultPrivileges,
|
|
31
31
|
SCT_CreateOpClass,
|
|
32
|
-
SCT_AlterTSConfig
|
|
32
|
+
SCT_AlterTSConfig,
|
|
33
33
|
} CollectedCommandType;
|
|
34
34
|
|
|
35
35
|
/*
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
* calls in portal and cursor manipulations.
|
|
58
58
|
*
|
|
59
59
|
*
|
|
60
|
-
* Portions Copyright (c) 1996-
|
|
60
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
61
61
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
62
62
|
*
|
|
63
63
|
* src/include/tcop/dest.h
|
|
@@ -95,7 +95,8 @@ typedef enum
|
|
|
95
95
|
DestCopyOut, /* results sent to COPY TO code */
|
|
96
96
|
DestSQLFunction, /* results sent to SQL-language func mgr */
|
|
97
97
|
DestTransientRel, /* results sent to transient relation */
|
|
98
|
-
DestTupleQueue /* results sent to tuple queue */
|
|
98
|
+
DestTupleQueue, /* results sent to tuple queue */
|
|
99
|
+
DestExplainSerialize, /* results are serialized and discarded */
|
|
99
100
|
} CommandDest;
|
|
100
101
|
|
|
101
102
|
/* ----------------
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* fastpath.h
|
|
4
4
|
*
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/tcop/fastpath.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for pquery.c.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/tcop/pquery.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for postgres.c.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/tcop/tcopprot.h
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
#define TCOPPROT_H
|
|
16
16
|
|
|
17
17
|
#include "nodes/params.h"
|
|
18
|
-
#include "nodes/parsenodes.h"
|
|
19
18
|
#include "nodes/plannodes.h"
|
|
20
19
|
#include "storage/procsignal.h"
|
|
21
20
|
#include "utils/guc.h"
|
|
@@ -38,11 +37,17 @@ typedef enum
|
|
|
38
37
|
LOGSTMT_NONE, /* log no statements */
|
|
39
38
|
LOGSTMT_DDL, /* log data definition statements */
|
|
40
39
|
LOGSTMT_MOD, /* log modification statements, plus DDL */
|
|
41
|
-
LOGSTMT_ALL
|
|
40
|
+
LOGSTMT_ALL, /* log all statements */
|
|
42
41
|
} LogStmtLevel;
|
|
43
42
|
|
|
44
43
|
extern PGDLLIMPORT int log_statement;
|
|
45
44
|
|
|
45
|
+
/* Flags for restrict_nonsystem_relation_kind value */
|
|
46
|
+
#define RESTRICT_RELKIND_VIEW 0x01
|
|
47
|
+
#define RESTRICT_RELKIND_FOREIGN_TABLE 0x02
|
|
48
|
+
|
|
49
|
+
extern PGDLLIMPORT int restrict_nonsystem_relation_kind;
|
|
50
|
+
|
|
46
51
|
extern List *pg_parse_query(const char *query_string);
|
|
47
52
|
extern List *pg_rewrite_query(Query *query);
|
|
48
53
|
extern List *pg_analyze_and_rewrite_fixedparams(RawStmt *parsetree,
|
|
@@ -70,8 +75,7 @@ extern void die(SIGNAL_ARGS);
|
|
|
70
75
|
extern void quickdie(SIGNAL_ARGS) pg_attribute_noreturn();
|
|
71
76
|
extern void StatementCancelHandler(SIGNAL_ARGS);
|
|
72
77
|
extern void FloatExceptionHandler(SIGNAL_ARGS) pg_attribute_noreturn();
|
|
73
|
-
extern void
|
|
74
|
-
* handler */
|
|
78
|
+
extern void HandleRecoveryConflictInterrupt(ProcSignalReason reason);
|
|
75
79
|
extern void ProcessClientReadInterrupt(bool blocked);
|
|
76
80
|
extern void ProcessClientWriteInterrupt(bool blocked);
|
|
77
81
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for utility.c.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/tcop/utility.h
|
|
@@ -23,7 +23,7 @@ typedef enum
|
|
|
23
23
|
PROCESS_UTILITY_QUERY, /* a complete query, but not toplevel */
|
|
24
24
|
PROCESS_UTILITY_QUERY_NONATOMIC, /* a complete query, nonatomic
|
|
25
25
|
* execution context */
|
|
26
|
-
PROCESS_UTILITY_SUBCOMMAND
|
|
26
|
+
PROCESS_UTILITY_SUBCOMMAND, /* a portion of a query */
|
|
27
27
|
} ProcessUtilityContext;
|
|
28
28
|
|
|
29
29
|
/* Info needed when recursing from ALTER TABLE */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* ts_cache.h
|
|
4
4
|
* Tsearch related object caches.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/tsearch/ts_cache.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Definition of (and support for) access control list data structures.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/utils/acl.h
|
|
@@ -148,15 +148,16 @@ typedef struct ArrayType Acl;
|
|
|
148
148
|
#define ACL_CONNECT_CHR 'c'
|
|
149
149
|
#define ACL_SET_CHR 's'
|
|
150
150
|
#define ACL_ALTER_SYSTEM_CHR 'A'
|
|
151
|
+
#define ACL_MAINTAIN_CHR 'm'
|
|
151
152
|
|
|
152
153
|
/* string holding all privilege code chars, in order by bitmask position */
|
|
153
|
-
#define ACL_ALL_RIGHTS_STR "
|
|
154
|
+
#define ACL_ALL_RIGHTS_STR "arwdDxtXUCTcsAm"
|
|
154
155
|
|
|
155
156
|
/*
|
|
156
157
|
* Bitmasks defining "all rights" for each supported object type
|
|
157
158
|
*/
|
|
158
159
|
#define ACL_ALL_RIGHTS_COLUMN (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_REFERENCES)
|
|
159
|
-
#define ACL_ALL_RIGHTS_RELATION (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_TRUNCATE|ACL_REFERENCES|ACL_TRIGGER)
|
|
160
|
+
#define ACL_ALL_RIGHTS_RELATION (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_TRUNCATE|ACL_REFERENCES|ACL_TRIGGER|ACL_MAINTAIN)
|
|
160
161
|
#define ACL_ALL_RIGHTS_SEQUENCE (ACL_USAGE|ACL_SELECT|ACL_UPDATE)
|
|
161
162
|
#define ACL_ALL_RIGHTS_DATABASE (ACL_CREATE|ACL_CREATE_TEMP|ACL_CONNECT)
|
|
162
163
|
#define ACL_ALL_RIGHTS_FDW (ACL_USAGE)
|
|
@@ -173,7 +174,7 @@ typedef struct ArrayType Acl;
|
|
|
173
174
|
typedef enum
|
|
174
175
|
{
|
|
175
176
|
ACLMASK_ALL, /* normal case: compute all bits */
|
|
176
|
-
ACLMASK_ANY
|
|
177
|
+
ACLMASK_ANY, /* return when result is known nonzero */
|
|
177
178
|
} AclMaskHow;
|
|
178
179
|
|
|
179
180
|
/* result codes for pg_*_aclcheck */
|
|
@@ -181,7 +182,7 @@ typedef enum
|
|
|
181
182
|
{
|
|
182
183
|
ACLCHECK_OK = 0,
|
|
183
184
|
ACLCHECK_NO_PRIV,
|
|
184
|
-
ACLCHECK_NOT_OWNER
|
|
185
|
+
ACLCHECK_NOT_OWNER,
|
|
185
186
|
} AclResult;
|
|
186
187
|
|
|
187
188
|
|
|
@@ -239,8 +240,12 @@ extern void RemoveRoleFromObjectACL(Oid roleid, Oid classid, Oid objid);
|
|
|
239
240
|
extern AclMode pg_class_aclmask(Oid table_oid, Oid roleid,
|
|
240
241
|
AclMode mask, AclMaskHow how);
|
|
241
242
|
|
|
242
|
-
/* generic
|
|
243
|
-
extern AclResult object_aclcheck(Oid classid, Oid objectid,
|
|
243
|
+
/* generic functions */
|
|
244
|
+
extern AclResult object_aclcheck(Oid classid, Oid objectid,
|
|
245
|
+
Oid roleid, AclMode mode);
|
|
246
|
+
extern AclResult object_aclcheck_ext(Oid classid, Oid objectid,
|
|
247
|
+
Oid roleid, AclMode mode,
|
|
248
|
+
bool *is_missing);
|
|
244
249
|
|
|
245
250
|
/* special cases */
|
|
246
251
|
extern AclResult pg_attribute_aclcheck(Oid table_oid, AttrNumber attnum,
|
|
@@ -250,6 +255,9 @@ extern AclResult pg_attribute_aclcheck_ext(Oid table_oid, AttrNumber attnum,
|
|
|
250
255
|
bool *is_missing);
|
|
251
256
|
extern AclResult pg_attribute_aclcheck_all(Oid table_oid, Oid roleid,
|
|
252
257
|
AclMode mode, AclMaskHow how);
|
|
258
|
+
extern AclResult pg_attribute_aclcheck_all_ext(Oid table_oid, Oid roleid,
|
|
259
|
+
AclMode mode, AclMaskHow how,
|
|
260
|
+
bool *is_missing);
|
|
253
261
|
extern AclResult pg_class_aclcheck(Oid table_oid, Oid roleid, AclMode mode);
|
|
254
262
|
extern AclResult pg_class_aclcheck_ext(Oid table_oid, Oid roleid,
|
|
255
263
|
AclMode mode, bool *is_missing);
|
|
@@ -268,6 +276,10 @@ extern void aclcheck_error_type(AclResult aclerr, Oid typeOid);
|
|
|
268
276
|
|
|
269
277
|
extern void recordExtObjInitPriv(Oid objoid, Oid classoid);
|
|
270
278
|
extern void removeExtObjInitPriv(Oid objoid, Oid classoid);
|
|
279
|
+
extern void ReplaceRoleInInitPriv(Oid oldroleid, Oid newroleid,
|
|
280
|
+
Oid classid, Oid objid, int32 objsubid);
|
|
281
|
+
extern void RemoveRoleFromInitPriv(Oid roleid,
|
|
282
|
+
Oid classid, Oid objid, int32 objsubid);
|
|
271
283
|
|
|
272
284
|
|
|
273
285
|
/* ownercheck routines just return true (owner) or false (not) */
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
*
|
|
3
3
|
* aclchk_internal.h
|
|
4
4
|
*
|
|
5
|
-
* Portions Copyright (c) 1996-
|
|
5
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
6
6
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
7
7
|
*
|
|
8
8
|
* src/include/utils/aclchk_internal.h
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
* arrays holding the elements.
|
|
52
52
|
*
|
|
53
53
|
*
|
|
54
|
-
* Portions Copyright (c) 1996-
|
|
54
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
55
55
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
56
56
|
*
|
|
57
57
|
* src/include/utils/array.h
|
|
@@ -455,7 +455,6 @@ extern void array_free_iterator(ArrayIterator iterator);
|
|
|
455
455
|
*/
|
|
456
456
|
|
|
457
457
|
extern int ArrayGetOffset(int n, const int *dim, const int *lb, const int *indx);
|
|
458
|
-
extern int ArrayGetOffset0(int n, const int *tup, const int *scale);
|
|
459
458
|
extern int ArrayGetNItems(int ndim, const int *dims);
|
|
460
459
|
extern int ArrayGetNItemsSafe(int ndim, const int *dims,
|
|
461
460
|
struct Node *escontext);
|