pg_query 4.2.1 → 5.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 +31 -0
- data/README.md +6 -8
- data/Rakefile +5 -6
- data/ext/pg_query/extconf.rb +14 -4
- data/ext/pg_query/include/pg_query.h +27 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
- data/ext/pg_query/include/{access → postgres/access}/amapi.h +3 -1
- data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
- data/ext/pg_query/include/{access → postgres/access}/attnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/clog.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/genam.h +7 -5
- data/ext/pg_query/include/{access → postgres/access}/gin.h +16 -3
- data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/htup_details.h +6 -2
- data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -58
- data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relscan.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
- data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/stratnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/table.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/tableam.h +68 -45
- data/ext/pg_query/include/{access → postgres/access}/toast_compression.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/transam.h +1 -1
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
- data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +58 -98
- data/ext/pg_query/include/{access → postgres/access}/twophase.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/xact.h +25 -18
- data/ext/pg_query/include/{access → postgres/access}/xlog.h +15 -16
- data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +100 -62
- data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +6 -25
- data/ext/pg_query/include/{access → postgres/access}/xlogprefetcher.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +7 -6
- data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +17 -5
- data/ext/pg_query/include/{access → postgres/access}/xlogrecovery.h +4 -3
- data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
- data/ext/pg_query/include/{c.h → postgres/c.h} +144 -156
- data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +5 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/genbki.h +7 -6
- data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +4 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/indexing.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +10 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +3 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +19 -17
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -19
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +9 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +3 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +4 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +2 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +6 -6
- data/ext/pg_query/include/{commands → postgres/commands}/async.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +4 -4
- data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +15 -14
- data/ext/pg_query/include/{commands → postgres/commands}/user.h +9 -3
- data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +60 -14
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/{common → postgres/common}/file_perm.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
- data/ext/pg_query/include/postgres/common/int.h +437 -0
- data/ext/pg_query/include/{common → postgres/common}/keywords.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
- data/ext/pg_query/include/{common → postgres/common}/pg_prng.h +3 -2
- data/ext/pg_query/include/{common → postgres/common}/relpath.h +20 -13
- 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/{common → postgres/common}/string.h +5 -3
- data/ext/pg_query/include/{common → postgres/common}/unicode_east_asian_fw_table.h +10 -10
- data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +31 -13
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
- data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +11 -4
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
- data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/executor.h +34 -17
- data/ext/pg_query/include/{executor → postgres/executor}/functions.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/spi.h +2 -2
- data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
- data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +21 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +12 -12
- data/ext/pg_query/include/postgres/gram.h +1127 -0
- data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
- data/ext/pg_query/include/{jit → postgres/jit}/jit.h +2 -2
- data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
- data/ext/pg_query/include/{lib → postgres/lib}/dshash.h +4 -1
- data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +435 -22
- data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +9 -9
- data/ext/pg_query/include/{lib → postgres/lib}/sort_template.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
- data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +8 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +24 -17
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +36 -25
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +10 -41
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +22 -10
- 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/{mb → postgres/mb}/pg_wchar.h +35 -18
- data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +27 -15
- data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +83 -30
- data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +5 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +14 -2
- data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +7 -4
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +96 -511
- data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +377 -139
- data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1090 -440
- data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +30 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +367 -124
- data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +670 -222
- data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
- data/ext/pg_query/include/{utils → postgres/nodes}/queryjumble.h +5 -7
- data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/value.h +12 -2
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +6 -4
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +8 -8
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +16 -7
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +3 -6
- data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/kwlist.h +12 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +4 -2
- data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +3 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +22 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +8 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parser.h +4 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
- data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +1 -1
- data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
- data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +158 -218
- data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +8 -46
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +1 -1
- data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
- data/ext/pg_query/include/{pgstat.h → postgres/pgstat.h} +173 -94
- data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +3 -3
- data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +66 -64
- data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
- data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +1 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +2 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +48 -46
- data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +28 -33
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +3 -3
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
- data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
- data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +62 -25
- data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
- data/ext/pg_query/include/postgres/port/simd.h +375 -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 +26 -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 +594 -0
- data/ext/pg_query/include/{port.h → postgres/port.h} +42 -75
- 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_ext.h → postgres/postgres_ext.h} +0 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +1 -4
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +1 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +6 -3
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/startup.h +3 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +3 -1
- data/ext/pg_query/include/{regex → postgres/regex}/regex.h +9 -6
- data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +6 -1
- data/ext/pg_query/include/{replication → postgres/replication}/logicalproto.h +30 -10
- data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
- data/ext/pg_query/include/{replication → postgres/replication}/origin.h +4 -4
- data/ext/pg_query/include/{replication → postgres/replication}/reorderbuffer.h +113 -45
- data/ext/pg_query/include/{replication → postgres/replication}/slot.h +25 -6
- data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +2 -8
- data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +15 -9
- data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +13 -13
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -4
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -31
- data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +183 -87
- data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +146 -93
- data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +3 -6
- data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +4 -1
- data/ext/pg_query/include/{storage → postgres/storage}/fd.h +24 -20
- data/ext/pg_query/include/{storage → postgres/storage}/fileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +94 -57
- data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/latch.h +9 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +6 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lock.h +21 -13
- data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +16 -2
- data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proc.h +22 -17
- data/ext/pg_query/include/{storage → postgres/storage}/procarray.h +3 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +3 -1
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +66 -309
- data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
- data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
- data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +12 -10
- data/ext/pg_query/include/{storage → postgres/storage}/spin.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/standby.h +9 -8
- data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/sync.h +3 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +3 -6
- data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +1 -1
- data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +2 -4
- data/ext/pg_query/include/{utils → postgres/utils}/acl.h +26 -81
- data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/array.h +19 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_progress.h +2 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_status.h +24 -3
- data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +15 -6
- data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
- data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +41 -21
- data/ext/pg_query/include/{utils → postgres/utils}/datum.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/elog.h +104 -29
- data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
- data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
- data/ext/pg_query/include/{utils → postgres/utils}/float.h +7 -6
- data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +54 -1
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +45 -3
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/guc.h +59 -86
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +49 -3
- data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/inval.h +3 -3
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +7 -51
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
- data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +20 -5
- data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +9 -2
- data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +22 -14
- data/ext/pg_query/include/{utils → postgres/utils}/pgstat_internal.h +37 -7
- data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/portal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/probes.h +6 -6
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/regproc.h +3 -3
- data/ext/pg_query/include/{utils → postgres/utils}/rel.h +60 -43
- data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +13 -8
- data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +6 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +4 -2
- data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +2 -2
- data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +4 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +41 -11
- data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +189 -35
- data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +13 -1
- data/ext/pg_query/include/{utils → postgres/utils}/wait_event.h +9 -4
- data/ext/pg_query/include/{utils → postgres/utils}/xml.h +15 -5
- data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +7 -457
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
- data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +19755 -17757
- 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 +1 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +6 -0
- 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 +7 -5
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +3 -3
- data/ext/pg_query/postgres_deparse.c +11067 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
- data/ext/pg_query/src_backend_commands_define.c +1 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
- 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 +14 -2
- data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
- data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
- data/ext/pg_query/src_backend_parser_parser.c +28 -2
- data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
- data/ext/pg_query/src_backend_parser_scansup.c +1 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
- 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 +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +371 -249
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
- data/ext/pg_query/src_backend_utils_init_globals.c +6 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +21 -67
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
- data/ext/pg_query/src_common_encnames.c +4 -1
- 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 +534 -510
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_stringinfo.c +4 -4
- data/ext/pg_query/src_common_wchar.c +9 -8
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
- 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 +1 -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 +79 -5
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +6 -10
- data/ext/pg_query/src_port_strerror.c +1 -1
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +2 -3
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/parse.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +166 -3191
- data/lib/pg_query/treewalker.rb +23 -5
- data/lib/pg_query/version.rb +1 -1
- metadata +432 -380
- data/ext/pg_query/guc-file.c +0 -0
- 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/commands/variable.h +0 -38
- data/ext/pg_query/include/common/ip.h +0 -31
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/kwlist_d.h +0 -1095
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/pgarch.h +0 -73
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- 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/include/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
- /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
- /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +0 -0
|
@@ -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-2023, 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
|
|
@@ -24,13 +24,6 @@
|
|
|
24
24
|
#include "utils/hsearch.h"
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
/* shmqueue.c */
|
|
28
|
-
typedef struct SHM_QUEUE
|
|
29
|
-
{
|
|
30
|
-
struct SHM_QUEUE *prev;
|
|
31
|
-
struct SHM_QUEUE *next;
|
|
32
|
-
} SHM_QUEUE;
|
|
33
|
-
|
|
34
27
|
/* shmem.c */
|
|
35
28
|
extern void InitShmemAccess(void *seghdr);
|
|
36
29
|
extern void InitShmemAllocation(void);
|
|
@@ -63,19 +56,4 @@ typedef struct
|
|
|
63
56
|
Size allocated_size; /* # bytes actually allocated */
|
|
64
57
|
} ShmemIndexEnt;
|
|
65
58
|
|
|
66
|
-
/*
|
|
67
|
-
* prototypes for functions in shmqueue.c
|
|
68
|
-
*/
|
|
69
|
-
extern void SHMQueueInit(SHM_QUEUE *queue);
|
|
70
|
-
extern void SHMQueueElemInit(SHM_QUEUE *queue);
|
|
71
|
-
extern void SHMQueueDelete(SHM_QUEUE *queue);
|
|
72
|
-
extern void SHMQueueInsertBefore(SHM_QUEUE *queue, SHM_QUEUE *elem);
|
|
73
|
-
extern void SHMQueueInsertAfter(SHM_QUEUE *queue, SHM_QUEUE *elem);
|
|
74
|
-
extern Pointer SHMQueueNext(const SHM_QUEUE *queue, const SHM_QUEUE *curElem,
|
|
75
|
-
Size linkOffset);
|
|
76
|
-
extern Pointer SHMQueuePrev(const SHM_QUEUE *queue, const SHM_QUEUE *curElem,
|
|
77
|
-
Size linkOffset);
|
|
78
|
-
extern bool SHMQueueEmpty(const SHM_QUEUE *queue);
|
|
79
|
-
extern bool SHMQueueIsDetached(const SHM_QUEUE *queue);
|
|
80
|
-
|
|
81
59
|
#endif /* 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-2023, 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
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
#include <signal.h>
|
|
18
18
|
|
|
19
|
-
#include "storage/
|
|
19
|
+
#include "storage/relfilelocator.h"
|
|
20
20
|
|
|
21
21
|
/*
|
|
22
22
|
* We support several types of shared-invalidation messages:
|
|
@@ -90,7 +90,7 @@ typedef struct
|
|
|
90
90
|
int8 id; /* type field --- must be first */
|
|
91
91
|
int8 backend_hi; /* high bits of backend ID, if temprel */
|
|
92
92
|
uint16 backend_lo; /* low bits of backend ID, if temprel */
|
|
93
|
-
|
|
93
|
+
RelFileLocator rlocator; /* spcOid, dbOid, relNumber */
|
|
94
94
|
} SharedInvalSmgrMsg;
|
|
95
95
|
|
|
96
96
|
#define SHAREDINVALRELMAP_ID (-4)
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* The struct type SharedInvalidationMessage, defining the contents of
|
|
13
13
|
* a single message, is defined in sinval.h.
|
|
14
14
|
*
|
|
15
|
-
* Portions Copyright (c) 1996-
|
|
15
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
16
16
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
17
17
|
*
|
|
18
18
|
* src/include/storage/sinvaladt.h
|
|
@@ -32,7 +32,9 @@ extern Size SInvalShmemSize(void);
|
|
|
32
32
|
extern void CreateSharedInvalidationState(void);
|
|
33
33
|
extern void SharedInvalBackendInit(bool sendOnly);
|
|
34
34
|
extern PGPROC *BackendIdGetProc(int backendID);
|
|
35
|
-
extern void BackendIdGetTransactionIds(int backendID, TransactionId *xid,
|
|
35
|
+
extern void BackendIdGetTransactionIds(int backendID, TransactionId *xid,
|
|
36
|
+
TransactionId *xmin, int *nsubxid,
|
|
37
|
+
bool *overflowed);
|
|
36
38
|
|
|
37
39
|
extern void SIInsertDataEntries(const SharedInvalidationMessage *data, int n);
|
|
38
40
|
extern int SIGetDataEntries(SharedInvalidationMessage *data, int datasize);
|
|
@@ -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-2023, 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
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
#include "lib/ilist.h"
|
|
18
18
|
#include "storage/block.h"
|
|
19
|
-
#include "storage/
|
|
19
|
+
#include "storage/relfilelocator.h"
|
|
20
20
|
|
|
21
21
|
/*
|
|
22
22
|
* smgr.c maintains a table of SMgrRelation objects, which are essentially
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
*/
|
|
39
39
|
typedef struct SMgrRelationData
|
|
40
40
|
{
|
|
41
|
-
/*
|
|
42
|
-
|
|
41
|
+
/* rlocator is the hashtable lookup key, so it must be first! */
|
|
42
|
+
RelFileLocatorBackend smgr_rlocator; /* relation physical identifier */
|
|
43
43
|
|
|
44
44
|
/* pointer to owning pointer, or NULL if none */
|
|
45
45
|
struct SMgrRelationData **smgr_owner;
|
|
@@ -75,29 +75,31 @@ typedef struct SMgrRelationData
|
|
|
75
75
|
typedef SMgrRelationData *SMgrRelation;
|
|
76
76
|
|
|
77
77
|
#define SmgrIsTemp(smgr) \
|
|
78
|
-
|
|
78
|
+
RelFileLocatorBackendIsTemp((smgr)->smgr_rlocator)
|
|
79
79
|
|
|
80
80
|
extern void smgrinit(void);
|
|
81
|
-
extern SMgrRelation smgropen(
|
|
81
|
+
extern SMgrRelation smgropen(RelFileLocator rlocator, BackendId backend);
|
|
82
82
|
extern bool smgrexists(SMgrRelation reln, ForkNumber forknum);
|
|
83
83
|
extern void smgrsetowner(SMgrRelation *owner, SMgrRelation reln);
|
|
84
84
|
extern void smgrclearowner(SMgrRelation *owner, SMgrRelation reln);
|
|
85
85
|
extern void smgrclose(SMgrRelation reln);
|
|
86
86
|
extern void smgrcloseall(void);
|
|
87
|
-
extern void
|
|
87
|
+
extern void smgrcloserellocator(RelFileLocatorBackend rlocator);
|
|
88
88
|
extern void smgrrelease(SMgrRelation reln);
|
|
89
89
|
extern void smgrreleaseall(void);
|
|
90
90
|
extern void smgrcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo);
|
|
91
91
|
extern void smgrdosyncall(SMgrRelation *rels, int nrels);
|
|
92
92
|
extern void smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo);
|
|
93
93
|
extern void smgrextend(SMgrRelation reln, ForkNumber forknum,
|
|
94
|
-
BlockNumber blocknum,
|
|
94
|
+
BlockNumber blocknum, const void *buffer, bool skipFsync);
|
|
95
|
+
extern void smgrzeroextend(SMgrRelation reln, ForkNumber forknum,
|
|
96
|
+
BlockNumber blocknum, int nblocks, bool skipFsync);
|
|
95
97
|
extern bool smgrprefetch(SMgrRelation reln, ForkNumber forknum,
|
|
96
98
|
BlockNumber blocknum);
|
|
97
99
|
extern void smgrread(SMgrRelation reln, ForkNumber forknum,
|
|
98
|
-
BlockNumber blocknum,
|
|
100
|
+
BlockNumber blocknum, void *buffer);
|
|
99
101
|
extern void smgrwrite(SMgrRelation reln, ForkNumber forknum,
|
|
100
|
-
BlockNumber blocknum,
|
|
102
|
+
BlockNumber blocknum, const void *buffer, bool skipFsync);
|
|
101
103
|
extern void smgrwriteback(SMgrRelation reln, ForkNumber forknum,
|
|
102
104
|
BlockNumber blocknum, BlockNumber nblocks);
|
|
103
105
|
extern BlockNumber smgrnblocks(SMgrRelation reln, ForkNumber forknum);
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
* be again.
|
|
42
42
|
*
|
|
43
43
|
*
|
|
44
|
-
* Portions Copyright (c) 1996-
|
|
44
|
+
* Portions Copyright (c) 1996-2023, 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-2023, 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
|
|
@@ -17,11 +17,10 @@
|
|
|
17
17
|
#include "datatype/timestamp.h"
|
|
18
18
|
#include "storage/lock.h"
|
|
19
19
|
#include "storage/procsignal.h"
|
|
20
|
-
#include "storage/
|
|
20
|
+
#include "storage/relfilelocator.h"
|
|
21
21
|
#include "storage/standbydefs.h"
|
|
22
22
|
|
|
23
23
|
/* User-settable GUC parameters */
|
|
24
|
-
extern PGDLLIMPORT int vacuum_defer_cleanup_age;
|
|
25
24
|
extern PGDLLIMPORT int max_standby_archive_delay;
|
|
26
25
|
extern PGDLLIMPORT int max_standby_streaming_delay;
|
|
27
26
|
extern PGDLLIMPORT bool log_recovery_conflict_waits;
|
|
@@ -29,10 +28,12 @@ extern PGDLLIMPORT bool log_recovery_conflict_waits;
|
|
|
29
28
|
extern void InitRecoveryTransactionEnvironment(void);
|
|
30
29
|
extern void ShutdownRecoveryTransactionEnvironment(void);
|
|
31
30
|
|
|
32
|
-
extern void ResolveRecoveryConflictWithSnapshot(TransactionId
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
extern void ResolveRecoveryConflictWithSnapshot(TransactionId snapshotConflictHorizon,
|
|
32
|
+
bool isCatalogRel,
|
|
33
|
+
RelFileLocator locator);
|
|
34
|
+
extern void ResolveRecoveryConflictWithSnapshotFullXid(FullTransactionId snapshotConflictHorizon,
|
|
35
|
+
bool isCatalogRel,
|
|
36
|
+
RelFileLocator locator);
|
|
36
37
|
extern void ResolveRecoveryConflictWithTablespace(Oid tsid);
|
|
37
38
|
extern void ResolveRecoveryConflictWithDatabase(Oid dbid);
|
|
38
39
|
|
|
@@ -43,7 +44,7 @@ extern void StandbyDeadLockHandler(void);
|
|
|
43
44
|
extern void StandbyTimeoutHandler(void);
|
|
44
45
|
extern void StandbyLockTimeoutHandler(void);
|
|
45
46
|
extern void LogRecoveryConflict(ProcSignalReason reason, TimestampTz wait_start,
|
|
46
|
-
TimestampTz
|
|
47
|
+
TimestampTz now, VirtualTransactionId *wait_list,
|
|
47
48
|
bool still_waiting);
|
|
48
49
|
|
|
49
50
|
/*
|
|
@@ -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-2023, 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
|
|
@@ -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-2023, 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
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
#ifndef SYNC_H
|
|
14
14
|
#define SYNC_H
|
|
15
15
|
|
|
16
|
-
#include "storage/
|
|
16
|
+
#include "storage/relfilelocator.h"
|
|
17
17
|
|
|
18
18
|
/*
|
|
19
19
|
* Type of sync request. These are used to manage the set of pending
|
|
@@ -51,7 +51,7 @@ typedef struct FileTag
|
|
|
51
51
|
{
|
|
52
52
|
int16 handler; /* SyncRequestHandler value, saving space */
|
|
53
53
|
int16 forknum; /* ForkNumber, saving space */
|
|
54
|
-
|
|
54
|
+
RelFileLocator rlocator;
|
|
55
55
|
uint32 segno;
|
|
56
56
|
} FileTag;
|
|
57
57
|
|
|
@@ -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-2023, 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
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
#ifndef CMDTAG_H
|
|
14
14
|
#define CMDTAG_H
|
|
15
15
|
|
|
16
|
+
/* buffer size required for command completion tags */
|
|
17
|
+
#define COMPLETION_TAG_BUFSIZE 64
|
|
16
18
|
|
|
17
19
|
#define PG_CMDTAG(tag, name, evtrgok, rwrok, rowcnt) \
|
|
18
20
|
tag,
|
|
@@ -50,9 +52,12 @@ CopyQueryCompletion(QueryCompletion *dst, const QueryCompletion *src)
|
|
|
50
52
|
|
|
51
53
|
extern void InitializeQueryCompletion(QueryCompletion *qc);
|
|
52
54
|
extern const char *GetCommandTagName(CommandTag commandTag);
|
|
55
|
+
extern const char *GetCommandTagNameAndLen(CommandTag commandTag, Size *len);
|
|
53
56
|
extern bool command_tag_display_rowcount(CommandTag commandTag);
|
|
54
57
|
extern bool command_tag_event_trigger_ok(CommandTag commandTag);
|
|
55
58
|
extern bool command_tag_table_rewrite_ok(CommandTag commandTag);
|
|
56
|
-
extern CommandTag GetCommandTagEnum(const char *
|
|
59
|
+
extern CommandTag GetCommandTagEnum(const char *commandname);
|
|
60
|
+
extern Size BuildQueryCompletionString(char *buff, const QueryCompletion *qc,
|
|
61
|
+
bool nameonly);
|
|
57
62
|
|
|
58
63
|
#endif /* CMDTAG_H */
|
|
@@ -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-2023, 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
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
*
|
|
3
3
|
* deparse_utility.h
|
|
4
4
|
*
|
|
5
|
-
* Portions Copyright (c) 1996-
|
|
5
|
+
* Portions Copyright (c) 1996-2023, 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
|
|
@@ -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-2023, 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
|
|
@@ -71,8 +71,6 @@
|
|
|
71
71
|
#include "tcop/cmdtag.h"
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
/* buffer size to use for command completion tags */
|
|
75
|
-
#define COMPLETION_TAG_BUFSIZE 64
|
|
76
74
|
|
|
77
75
|
|
|
78
76
|
/* ----------------
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* fastpath.h
|
|
4
4
|
*
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, 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-2023, 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-2023, 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
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
/* Required daylight between max_stack_depth and the kernel limit, in bytes */
|
|
26
26
|
#define STACK_DEPTH_SLOP (512 * 1024L)
|
|
27
27
|
|
|
28
|
-
extern PGDLLIMPORT __thread
|
|
28
|
+
extern PGDLLIMPORT __thread CommandDest whereToSendOutput;
|
|
29
29
|
extern PGDLLIMPORT __thread const char *debug_query_string;
|
|
30
|
-
extern PGDLLIMPORT __thread
|
|
30
|
+
extern PGDLLIMPORT __thread int max_stack_depth;
|
|
31
31
|
extern PGDLLIMPORT int PostAuthDelay;
|
|
32
32
|
extern PGDLLIMPORT int client_connection_check_interval;
|
|
33
33
|
|
|
@@ -66,9 +66,6 @@ extern List *pg_plan_queries(List *querytrees, const char *query_string,
|
|
|
66
66
|
int cursorOptions,
|
|
67
67
|
ParamListInfo boundParams);
|
|
68
68
|
|
|
69
|
-
extern bool check_max_stack_depth(int *newval, void **extra, GucSource source);
|
|
70
|
-
extern void assign_max_stack_depth(int newval, void *extra);
|
|
71
|
-
|
|
72
69
|
extern void die(SIGNAL_ARGS);
|
|
73
70
|
extern void quickdie(SIGNAL_ARGS) pg_attribute_noreturn();
|
|
74
71
|
extern void StatementCancelHandler(SIGNAL_ARGS);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for utility.c.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, 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
|
|
@@ -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-2023, 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
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
#ifndef TS_CACHE_H
|
|
14
14
|
#define TS_CACHE_H
|
|
15
15
|
|
|
16
|
-
#include "
|
|
16
|
+
#include "fmgr.h"
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
/*
|
|
@@ -92,7 +92,5 @@ extern TSDictionaryCacheEntry *lookup_ts_dictionary_cache(Oid dictId);
|
|
|
92
92
|
extern TSConfigCacheEntry *lookup_ts_config_cache(Oid cfgId);
|
|
93
93
|
|
|
94
94
|
extern Oid getTSCurrentConfig(bool emitError);
|
|
95
|
-
extern bool check_TSCurrentConfig(char **newval, void **extra, GucSource source);
|
|
96
|
-
extern void assign_TSCurrentConfig(const char *newval, void *extra);
|
|
97
95
|
|
|
98
96
|
#endif /* 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-2023, 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
|
|
@@ -59,33 +59,33 @@ typedef struct AclItem
|
|
|
59
59
|
} AclItem;
|
|
60
60
|
|
|
61
61
|
/*
|
|
62
|
-
* The upper
|
|
63
|
-
* bits, and the lower
|
|
62
|
+
* The upper 32 bits of the ai_privs field of an AclItem are the grant option
|
|
63
|
+
* bits, and the lower 32 bits are the actual privileges. We use "rights"
|
|
64
64
|
* to mean the combined grant option and privilege bits fields.
|
|
65
65
|
*/
|
|
66
|
-
#define ACLITEM_GET_PRIVS(item) ((item).ai_privs &
|
|
67
|
-
#define ACLITEM_GET_GOPTIONS(item) (((item).ai_privs >>
|
|
66
|
+
#define ACLITEM_GET_PRIVS(item) ((item).ai_privs & 0xFFFFFFFF)
|
|
67
|
+
#define ACLITEM_GET_GOPTIONS(item) (((item).ai_privs >> 32) & 0xFFFFFFFF)
|
|
68
68
|
#define ACLITEM_GET_RIGHTS(item) ((item).ai_privs)
|
|
69
69
|
|
|
70
|
-
#define ACL_GRANT_OPTION_FOR(privs) (((AclMode) (privs) &
|
|
71
|
-
#define ACL_OPTION_TO_PRIVS(privs) (((AclMode) (privs) >>
|
|
70
|
+
#define ACL_GRANT_OPTION_FOR(privs) (((AclMode) (privs) & 0xFFFFFFFF) << 32)
|
|
71
|
+
#define ACL_OPTION_TO_PRIVS(privs) (((AclMode) (privs) >> 32) & 0xFFFFFFFF)
|
|
72
72
|
|
|
73
73
|
#define ACLITEM_SET_PRIVS(item,privs) \
|
|
74
|
-
((item).ai_privs = ((item).ai_privs & ~((AclMode)
|
|
75
|
-
((AclMode) (privs) &
|
|
74
|
+
((item).ai_privs = ((item).ai_privs & ~((AclMode) 0xFFFFFFFF)) | \
|
|
75
|
+
((AclMode) (privs) & 0xFFFFFFFF))
|
|
76
76
|
#define ACLITEM_SET_GOPTIONS(item,goptions) \
|
|
77
|
-
((item).ai_privs = ((item).ai_privs & ~(((AclMode)
|
|
78
|
-
(((AclMode) (goptions) &
|
|
77
|
+
((item).ai_privs = ((item).ai_privs & ~(((AclMode) 0xFFFFFFFF) << 32)) | \
|
|
78
|
+
(((AclMode) (goptions) & 0xFFFFFFFF) << 32))
|
|
79
79
|
#define ACLITEM_SET_RIGHTS(item,rights) \
|
|
80
80
|
((item).ai_privs = (AclMode) (rights))
|
|
81
81
|
|
|
82
82
|
#define ACLITEM_SET_PRIVS_GOPTIONS(item,privs,goptions) \
|
|
83
|
-
((item).ai_privs = ((AclMode) (privs) &
|
|
84
|
-
(((AclMode) (goptions) &
|
|
83
|
+
((item).ai_privs = ((AclMode) (privs) & 0xFFFFFFFF) | \
|
|
84
|
+
(((AclMode) (goptions) & 0xFFFFFFFF) << 32))
|
|
85
85
|
|
|
86
86
|
|
|
87
|
-
#define ACLITEM_ALL_PRIV_BITS ((AclMode)
|
|
88
|
-
#define ACLITEM_ALL_GOPTION_BITS ((AclMode)
|
|
87
|
+
#define ACLITEM_ALL_PRIV_BITS ((AclMode) 0xFFFFFFFF)
|
|
88
|
+
#define ACLITEM_ALL_GOPTION_BITS ((AclMode) 0xFFFFFFFF << 32)
|
|
89
89
|
|
|
90
90
|
/*
|
|
91
91
|
* Definitions for convenient access to Acl (array of AclItem).
|
|
@@ -209,12 +209,14 @@ extern AclMode aclmask(const Acl *acl, Oid roleid, Oid ownerId,
|
|
|
209
209
|
extern int aclmembers(const Acl *acl, Oid **roleids);
|
|
210
210
|
|
|
211
211
|
extern bool has_privs_of_role(Oid member, Oid role);
|
|
212
|
+
extern bool member_can_set_role(Oid member, Oid role);
|
|
213
|
+
extern void check_can_set_role(Oid member, Oid role);
|
|
212
214
|
extern bool is_member_of_role(Oid member, Oid role);
|
|
213
215
|
extern bool is_member_of_role_nosuper(Oid member, Oid role);
|
|
214
216
|
extern bool is_admin_of_role(Oid member, Oid role);
|
|
215
|
-
extern
|
|
216
|
-
extern Oid get_role_oid(const char *
|
|
217
|
-
extern Oid get_role_oid_or_public(const char *
|
|
217
|
+
extern Oid select_best_admin(Oid member, Oid role);
|
|
218
|
+
extern Oid get_role_oid(const char *rolname, bool missing_ok);
|
|
219
|
+
extern Oid get_role_oid_or_public(const char *rolname);
|
|
218
220
|
extern Oid get_rolespec_oid(const RoleSpec *role, bool missing_ok);
|
|
219
221
|
extern void check_rolespec_name(const RoleSpec *role, const char *detail_msg);
|
|
220
222
|
extern HeapTuple get_rolespec_tuple(const RoleSpec *role);
|
|
@@ -234,39 +236,13 @@ extern void ExecAlterDefaultPrivilegesStmt(ParseState *pstate, AlterDefaultPrivi
|
|
|
234
236
|
|
|
235
237
|
extern void RemoveRoleFromObjectACL(Oid roleid, Oid classid, Oid objid);
|
|
236
238
|
|
|
237
|
-
extern AclMode pg_attribute_aclmask(Oid table_oid, AttrNumber attnum,
|
|
238
|
-
Oid roleid, AclMode mask, AclMaskHow how);
|
|
239
|
-
extern AclMode pg_attribute_aclmask_ext(Oid table_oid, AttrNumber attnum,
|
|
240
|
-
Oid roleid, AclMode mask,
|
|
241
|
-
AclMaskHow how, bool *is_missing);
|
|
242
239
|
extern AclMode pg_class_aclmask(Oid table_oid, Oid roleid,
|
|
243
240
|
AclMode mask, AclMaskHow how);
|
|
244
|
-
extern AclMode pg_class_aclmask_ext(Oid table_oid, Oid roleid,
|
|
245
|
-
AclMode mask, AclMaskHow how,
|
|
246
|
-
bool *is_missing);
|
|
247
|
-
extern AclMode pg_database_aclmask(Oid db_oid, Oid roleid,
|
|
248
|
-
AclMode mask, AclMaskHow how);
|
|
249
|
-
extern AclMode pg_parameter_aclmask(const char *name, Oid roleid,
|
|
250
|
-
AclMode mask, AclMaskHow how);
|
|
251
|
-
extern AclMode pg_parameter_acl_aclmask(Oid acl_oid, Oid roleid,
|
|
252
|
-
AclMode mask, AclMaskHow how);
|
|
253
|
-
extern AclMode pg_proc_aclmask(Oid proc_oid, Oid roleid,
|
|
254
|
-
AclMode mask, AclMaskHow how);
|
|
255
|
-
extern AclMode pg_language_aclmask(Oid lang_oid, Oid roleid,
|
|
256
|
-
AclMode mask, AclMaskHow how);
|
|
257
|
-
extern AclMode pg_largeobject_aclmask_snapshot(Oid lobj_oid, Oid roleid,
|
|
258
|
-
AclMode mask, AclMaskHow how, Snapshot snapshot);
|
|
259
|
-
extern AclMode pg_namespace_aclmask(Oid nsp_oid, Oid roleid,
|
|
260
|
-
AclMode mask, AclMaskHow how);
|
|
261
|
-
extern AclMode pg_tablespace_aclmask(Oid spc_oid, Oid roleid,
|
|
262
|
-
AclMode mask, AclMaskHow how);
|
|
263
|
-
extern AclMode pg_foreign_data_wrapper_aclmask(Oid fdw_oid, Oid roleid,
|
|
264
|
-
AclMode mask, AclMaskHow how);
|
|
265
|
-
extern AclMode pg_foreign_server_aclmask(Oid srv_oid, Oid roleid,
|
|
266
|
-
AclMode mask, AclMaskHow how);
|
|
267
|
-
extern AclMode pg_type_aclmask(Oid type_oid, Oid roleid,
|
|
268
|
-
AclMode mask, AclMaskHow how);
|
|
269
241
|
|
|
242
|
+
/* generic function */
|
|
243
|
+
extern AclResult object_aclcheck(Oid classid, Oid objectid, Oid roleid, AclMode mode);
|
|
244
|
+
|
|
245
|
+
/* special cases */
|
|
270
246
|
extern AclResult pg_attribute_aclcheck(Oid table_oid, AttrNumber attnum,
|
|
271
247
|
Oid roleid, AclMode mode);
|
|
272
248
|
extern AclResult pg_attribute_aclcheck_ext(Oid table_oid, AttrNumber attnum,
|
|
@@ -277,20 +253,10 @@ extern AclResult pg_attribute_aclcheck_all(Oid table_oid, Oid roleid,
|
|
|
277
253
|
extern AclResult pg_class_aclcheck(Oid table_oid, Oid roleid, AclMode mode);
|
|
278
254
|
extern AclResult pg_class_aclcheck_ext(Oid table_oid, Oid roleid,
|
|
279
255
|
AclMode mode, bool *is_missing);
|
|
280
|
-
extern AclResult pg_database_aclcheck(Oid db_oid, Oid roleid, AclMode mode);
|
|
281
256
|
extern AclResult pg_parameter_aclcheck(const char *name, Oid roleid,
|
|
282
257
|
AclMode mode);
|
|
283
|
-
extern AclResult
|
|
284
|
-
AclMode mode);
|
|
285
|
-
extern AclResult pg_proc_aclcheck(Oid proc_oid, Oid roleid, AclMode mode);
|
|
286
|
-
extern AclResult pg_language_aclcheck(Oid lang_oid, Oid roleid, AclMode mode);
|
|
287
|
-
extern AclResult pg_largeobject_aclcheck_snapshot(Oid lang_oid, Oid roleid,
|
|
258
|
+
extern AclResult pg_largeobject_aclcheck_snapshot(Oid lobj_oid, Oid roleid,
|
|
288
259
|
AclMode mode, Snapshot snapshot);
|
|
289
|
-
extern AclResult pg_namespace_aclcheck(Oid nsp_oid, Oid roleid, AclMode mode);
|
|
290
|
-
extern AclResult pg_tablespace_aclcheck(Oid spc_oid, Oid roleid, AclMode mode);
|
|
291
|
-
extern AclResult pg_foreign_data_wrapper_aclcheck(Oid fdw_oid, Oid roleid, AclMode mode);
|
|
292
|
-
extern AclResult pg_foreign_server_aclcheck(Oid srv_oid, Oid roleid, AclMode mode);
|
|
293
|
-
extern AclResult pg_type_aclcheck(Oid type_oid, Oid roleid, AclMode mode);
|
|
294
260
|
|
|
295
261
|
extern void aclcheck_error(AclResult aclerr, ObjectType objtype,
|
|
296
262
|
const char *objectname);
|
|
@@ -305,28 +271,7 @@ extern void removeExtObjInitPriv(Oid objoid, Oid classoid);
|
|
|
305
271
|
|
|
306
272
|
|
|
307
273
|
/* ownercheck routines just return true (owner) or false (not) */
|
|
308
|
-
extern bool
|
|
309
|
-
extern bool pg_type_ownercheck(Oid type_oid, Oid roleid);
|
|
310
|
-
extern bool pg_oper_ownercheck(Oid oper_oid, Oid roleid);
|
|
311
|
-
extern bool pg_proc_ownercheck(Oid proc_oid, Oid roleid);
|
|
312
|
-
extern bool pg_language_ownercheck(Oid lan_oid, Oid roleid);
|
|
313
|
-
extern bool pg_largeobject_ownercheck(Oid lobj_oid, Oid roleid);
|
|
314
|
-
extern bool pg_namespace_ownercheck(Oid nsp_oid, Oid roleid);
|
|
315
|
-
extern bool pg_tablespace_ownercheck(Oid spc_oid, Oid roleid);
|
|
316
|
-
extern bool pg_opclass_ownercheck(Oid opc_oid, Oid roleid);
|
|
317
|
-
extern bool pg_opfamily_ownercheck(Oid opf_oid, Oid roleid);
|
|
318
|
-
extern bool pg_database_ownercheck(Oid db_oid, Oid roleid);
|
|
319
|
-
extern bool pg_collation_ownercheck(Oid coll_oid, Oid roleid);
|
|
320
|
-
extern bool pg_conversion_ownercheck(Oid conv_oid, Oid roleid);
|
|
321
|
-
extern bool pg_ts_dict_ownercheck(Oid dict_oid, Oid roleid);
|
|
322
|
-
extern bool pg_ts_config_ownercheck(Oid cfg_oid, Oid roleid);
|
|
323
|
-
extern bool pg_foreign_data_wrapper_ownercheck(Oid srv_oid, Oid roleid);
|
|
324
|
-
extern bool pg_foreign_server_ownercheck(Oid srv_oid, Oid roleid);
|
|
325
|
-
extern bool pg_event_trigger_ownercheck(Oid et_oid, Oid roleid);
|
|
326
|
-
extern bool pg_extension_ownercheck(Oid ext_oid, Oid roleid);
|
|
327
|
-
extern bool pg_publication_ownercheck(Oid pub_oid, Oid roleid);
|
|
328
|
-
extern bool pg_subscription_ownercheck(Oid sub_oid, Oid roleid);
|
|
329
|
-
extern bool pg_statistics_object_ownercheck(Oid stat_oid, Oid roleid);
|
|
274
|
+
extern bool object_ownercheck(Oid classid, Oid objectid, Oid roleid);
|
|
330
275
|
extern bool has_createrole_privilege(Oid roleid);
|
|
331
276
|
extern bool has_bypassrls_privilege(Oid roleid);
|
|
332
277
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
*
|
|
3
3
|
* aclchk_internal.h
|
|
4
4
|
*
|
|
5
|
-
* Portions Copyright (c) 1996-
|
|
5
|
+
* Portions Copyright (c) 1996-2023, 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-2023, 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
|
|
@@ -74,6 +74,13 @@ struct ExprContext;
|
|
|
74
74
|
*/
|
|
75
75
|
#define MAXDIM 6
|
|
76
76
|
|
|
77
|
+
/*
|
|
78
|
+
* Maximum number of elements in an array. We limit this to at most about a
|
|
79
|
+
* quarter billion elements, so that it's not necessary to check for overflow
|
|
80
|
+
* in quite so many places --- for instance when palloc'ing Datum arrays.
|
|
81
|
+
*/
|
|
82
|
+
#define MaxArraySize ((Size) (MaxAllocSize / sizeof(Datum)))
|
|
83
|
+
|
|
77
84
|
/*
|
|
78
85
|
* Arrays are varlena objects, so must meet the varlena convention that
|
|
79
86
|
* the first int32 of the object contains the total object size in bytes.
|
|
@@ -387,6 +394,7 @@ extern void array_bitmap_copy(bits8 *destbitmap, int destoffset,
|
|
|
387
394
|
extern ArrayType *construct_array(Datum *elems, int nelems,
|
|
388
395
|
Oid elmtype,
|
|
389
396
|
int elmlen, bool elmbyval, char elmalign);
|
|
397
|
+
extern ArrayType *construct_array_builtin(Datum *elems, int nelems, Oid elmtype);
|
|
390
398
|
extern ArrayType *construct_md_array(Datum *elems,
|
|
391
399
|
bool *nulls,
|
|
392
400
|
int ndims,
|
|
@@ -401,10 +409,16 @@ extern void deconstruct_array(ArrayType *array,
|
|
|
401
409
|
Oid elmtype,
|
|
402
410
|
int elmlen, bool elmbyval, char elmalign,
|
|
403
411
|
Datum **elemsp, bool **nullsp, int *nelemsp);
|
|
412
|
+
extern void deconstruct_array_builtin(ArrayType *array,
|
|
413
|
+
Oid elmtype,
|
|
414
|
+
Datum **elemsp, bool **nullsp, int *nelemsp);
|
|
404
415
|
extern bool array_contains_nulls(ArrayType *array);
|
|
405
416
|
|
|
406
417
|
extern ArrayBuildState *initArrayResult(Oid element_type,
|
|
407
418
|
MemoryContext rcontext, bool subcontext);
|
|
419
|
+
extern ArrayBuildState *initArrayResultWithSize(Oid element_type,
|
|
420
|
+
MemoryContext rcontext,
|
|
421
|
+
bool subcontext, int initsize);
|
|
408
422
|
extern ArrayBuildState *accumArrayResult(ArrayBuildState *astate,
|
|
409
423
|
Datum dvalue, bool disnull,
|
|
410
424
|
Oid element_type,
|
|
@@ -443,7 +457,11 @@ extern void array_free_iterator(ArrayIterator iterator);
|
|
|
443
457
|
extern int ArrayGetOffset(int n, const int *dim, const int *lb, const int *indx);
|
|
444
458
|
extern int ArrayGetOffset0(int n, const int *tup, const int *scale);
|
|
445
459
|
extern int ArrayGetNItems(int ndim, const int *dims);
|
|
460
|
+
extern int ArrayGetNItemsSafe(int ndim, const int *dims,
|
|
461
|
+
struct Node *escontext);
|
|
446
462
|
extern void ArrayCheckBounds(int ndim, const int *dims, const int *lb);
|
|
463
|
+
extern bool ArrayCheckBoundsSafe(int ndim, const int *dims, const int *lb,
|
|
464
|
+
struct Node *escontext);
|
|
447
465
|
extern void mda_get_range(int n, int *span, const int *st, const int *endp);
|
|
448
466
|
extern void mda_get_prod(int n, const int *range, int *prod);
|
|
449
467
|
extern void mda_get_offset_values(int n, int *dist, const int *prod, const int *span);
|