pg_query 2.0.3 → 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 +165 -0
- data/README.md +67 -29
- data/Rakefile +8 -23
- data/ext/pg_query/extconf.rb +21 -3
- data/ext/pg_query/include/pg_query.h +29 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +551 -272
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +563 -470
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5403 -3945
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +402 -330
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1319 -1059
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +141 -118
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1685 -1379
- data/ext/pg_query/include/{access → postgres/access}/amapi.h +47 -1
- data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
- data/ext/pg_query/include/{access → postgres/access}/attnum.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/clog.h +4 -2
- data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +6 -9
- data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -11
- data/ext/pg_query/include/{access → postgres/access}/genam.h +21 -16
- data/ext/pg_query/include/{access → postgres/access}/gin.h +17 -4
- data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/htup_details.h +80 -88
- data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -52
- 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 +17 -2
- data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
- data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +24 -24
- 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 +4 -2
- data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/table.h +2 -1
- data/ext/pg_query/include/{access → postgres/access}/tableam.h +337 -62
- data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
- data/ext/pg_query/include/{access → postgres/access}/transam.h +123 -13
- 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 +60 -100
- data/ext/pg_query/include/{access → postgres/access}/twophase.h +5 -1
- data/ext/pg_query/include/{access → postgres/access}/xact.h +99 -32
- data/ext/pg_query/include/{access → postgres/access}/xlog.h +69 -165
- data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +147 -73
- data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +13 -40
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +154 -37
- data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +34 -13
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
- data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
- data/ext/pg_query/include/{c.h → postgres/c.h} +245 -188
- data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +14 -19
- data/ext/pg_query/include/postgres/catalog/genbki.h +143 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +20 -5
- data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +5 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +73 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +12 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +14 -10
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +4 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +45 -26
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -16
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +19 -9
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +45 -15
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +31 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +35 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +21 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +39 -13
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +10 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +13 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +4 -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 +11 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +9 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +17 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +20 -17
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +10 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +21 -16
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +37 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +8 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +20 -9
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +20 -11
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +10 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +49 -6
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +6 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +5 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +19 -12
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +19 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +24 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +4 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +8 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +56 -24
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +70 -31
- data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +9 -7
- data/ext/pg_query/include/{commands → postgres/commands}/async.h +4 -5
- data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +12 -24
- data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +2 -2
- 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 +6 -4
- data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +36 -25
- data/ext/pg_query/include/{commands → postgres/commands}/user.h +10 -4
- data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +140 -47
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/{common → postgres/common}/file_perm.h +4 -4
- 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 +2 -6
- data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
- data/ext/pg_query/include/postgres/common/pg_prng.h +61 -0
- data/ext/pg_query/include/{common → postgres/common}/relpath.h +21 -14
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/postgres/common/string.h +44 -0
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +125 -0
- data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +138 -8
- 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 +50 -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 +98 -32
- data/ext/pg_query/include/{executor → postgres/executor}/functions.h +17 -3
- data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +33 -16
- data/ext/pg_query/include/{executor → postgres/executor}/spi.h +42 -4
- 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} +33 -8
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +22 -10
- 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 +12 -12
- data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
- data/ext/pg_query/include/postgres/lib/dshash.h +115 -0
- data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +454 -22
- data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +158 -33
- data/ext/pg_query/include/postgres/lib/sort_template.h +432 -0
- data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
- data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +12 -4
- data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +5 -4
- data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +54 -8
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +45 -17
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +31 -20
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +26 -71
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +25 -13
- 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 +125 -25
- data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +96 -65
- data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +351 -103
- data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +8 -4
- data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +19 -6
- data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +11 -6
- 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 +100 -496
- 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 +678 -207
- data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1282 -454
- data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +103 -73
- data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +474 -133
- data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +754 -254
- data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
- 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/postgres/nodes/value.h +90 -0
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +14 -5
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +9 -7
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +31 -28
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +29 -12
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +15 -17
- data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +20 -5
- data/ext/pg_query/include/postgres/parser/kwlist.h +498 -0
- data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +5 -8
- data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +6 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +2 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +2 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +41 -11
- data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -5
- data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +11 -5
- data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
- data/ext/pg_query/include/postgres/parser/parser.h +68 -0
- 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 +2 -5
- data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
- data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +216 -228
- data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +80 -58
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +6 -6
- data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
- data/ext/pg_query/include/postgres/pgstat.h +778 -0
- data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +16 -6
- data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +116 -116
- 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} +10 -10
- data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +3 -3
- data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +60 -60
- data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +9 -1
- data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +79 -86
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +9 -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 +3 -3
- 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 +129 -16
- 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} +107 -111
- 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 +17 -20
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +3 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +6 -6
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/pgarch.h +7 -10
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +21 -17
- data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +16 -11
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +5 -3
- data/ext/pg_query/include/{regex → postgres/regex}/regex.h +27 -22
- data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +8 -5
- data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
- data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
- data/ext/pg_query/include/{replication → postgres/replication}/origin.h +8 -8
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +753 -0
- data/ext/pg_query/include/{replication → postgres/replication}/slot.h +42 -12
- data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +6 -12
- data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +158 -20
- data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +20 -20
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -6
- 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 +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -37
- data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +196 -95
- data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +152 -101
- data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +14 -3
- data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +6 -6
- data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +6 -2
- data/ext/pg_query/include/{storage → postgres/storage}/fd.h +48 -14
- data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
- data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +5 -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 +96 -57
- data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/latch.h +17 -13
- data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +7 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lock.h +37 -25
- data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +4 -4
- data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +21 -33
- data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -1
- 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 +9 -7
- data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +15 -4
- data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +5 -5
- data/ext/pg_query/include/{storage → postgres/storage}/proc.h +200 -67
- data/ext/pg_query/include/postgres/storage/procarray.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +5 -7
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +118 -298
- data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +3 -11
- data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +5 -4
- 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 +5 -5
- data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
- data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +21 -17
- data/ext/pg_query/include/{storage → postgres/storage}/spin.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/standby.h +17 -9
- data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/sync.h +9 -5
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +3 -2
- 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 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +7 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +19 -14
- data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +7 -3
- data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +3 -5
- data/ext/pg_query/include/{utils → postgres/utils}/acl.h +37 -71
- data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/array.h +26 -2
- data/ext/pg_query/include/postgres/utils/backend_progress.h +45 -0
- data/ext/pg_query/include/postgres/utils/backend_status.h +342 -0
- data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +20 -11
- data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +3 -2
- 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 +48 -27
- data/ext/pg_query/include/{utils → postgres/utils}/datum.h +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/elog.h +154 -48
- data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +2 -0
- 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 +13 -12
- data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +1353 -696
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +243 -18
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +6 -5
- data/ext/pg_query/include/{utils → postgres/utils}/guc.h +120 -121
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +71 -21
- data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +15 -11
- data/ext/pg_query/include/{utils → postgres/utils}/inval.h +7 -3
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +16 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +14 -53
- 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 +38 -9
- data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +33 -4
- data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +37 -21
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +814 -0
- data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +6 -5
- data/ext/pg_query/include/{utils → postgres/utils}/portal.h +12 -1
- data/ext/pg_query/include/{utils → postgres/utils}/probes.h +59 -59
- 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/postgres/utils/regproc.h +39 -0
- data/ext/pg_query/include/{utils → postgres/utils}/rel.h +129 -61
- data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +21 -14
- 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 +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +38 -15
- data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +14 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +117 -2
- data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +11 -4
- data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +46 -15
- data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +209 -41
- data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +2 -2
- data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +24 -17
- data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +17 -3
- data/ext/pg_query/include/postgres/utils/wait_event.h +294 -0
- data/ext/pg_query/include/{utils → postgres/utils}/xml.h +18 -8
- data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +65 -471
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7494 -6382
- data/ext/pg_query/include/protobuf/pg_query.pb.h +116922 -84792
- data/ext/pg_query/include/protobuf-c/protobuf-c.h +7 -3
- data/ext/pg_query/include/protobuf-c.h +7 -3
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +21026 -17002
- data/ext/pg_query/pg_query_deparse.c +1 -9896
- data/ext/pg_query/pg_query_fingerprint.c +162 -50
- data/ext/pg_query/pg_query_fingerprint.h +3 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +56 -12
- data/ext/pg_query/pg_query_normalize.c +259 -64
- data/ext/pg_query/pg_query_outfuncs.h +1 -0
- data/ext/pg_query/pg_query_outfuncs_json.c +71 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +86 -21
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +43 -8
- data/ext/pg_query/pg_query_ruby.c +6 -1
- data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
- data/ext/pg_query/pg_query_scan.c +3 -2
- data/ext/pg_query/pg_query_split.c +6 -5
- data/ext/pg_query/postgres_deparse.c +11067 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/protobuf-c.c +34 -27
- data/ext/pg_query/src_backend_catalog_namespace.c +27 -10
- data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
- data/ext/pg_query/src_backend_commands_define.c +11 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +13 -70
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +103 -5894
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3830
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +99 -12
- data/ext/pg_query/src_backend_nodes_makefuncs.c +99 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +325 -131
- data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +36104 -32074
- data/ext/pg_query/src_backend_parser_parser.c +53 -8
- data/ext/pg_query/src_backend_parser_scan.c +4893 -3701
- data/ext/pg_query/src_backend_parser_scansup.c +4 -28
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +133 -105
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +17 -7
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
- data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +187 -19
- data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
- data/ext/pg_query/src_backend_utils_error_elog.c +513 -318
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +44 -17
- data/ext/pg_query/src_backend_utils_init_globals.c +9 -6
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +74 -131
- 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 +453 -314
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +549 -76
- 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 +420 -0
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +545 -498
- 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 +717 -113
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1136 -1195
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
- data/ext/pg_query/src_port_pg_bitutils.c +103 -40
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +51 -29
- data/ext/pg_query/src_port_strerror.c +9 -19
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/deparse.rb +7 -1
- data/lib/pg_query/filter_columns.rb +7 -5
- data/lib/pg_query/fingerprint.rb +21 -9
- data/lib/pg_query/node.rb +18 -13
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +141 -50
- data/lib/pg_query/pg_query_pb.rb +175 -3031
- data/lib/pg_query/treewalker.rb +26 -2
- data/lib/pg_query/truncate.rb +54 -8
- data/lib/pg_query/version.rb +1 -1
- data/lib/pg_query.rb +0 -1
- metadata +443 -380
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/rmgr.h +0 -35
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/catalog/genbki.h +0 -64
- data/ext/pg_query/include/catalog/indexing.h +0 -366
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/ip.h +0 -37
- data/ext/pg_query/include/common/string.h +0 -19
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/kwlist_d.h +0 -1072
- data/ext/pg_query/include/nodes/value.h +0 -61
- data/ext/pg_query/include/parser/gram.h +0 -1067
- data/ext/pg_query/include/parser/kwlist.h +0 -477
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/include/parser/parser.h +0 -41
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/pgstat.h +0 -1487
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/replication/logicalproto.h +0 -110
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -467
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -19
- 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/regproc.h +0 -28
- 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_libpq_pqcomm.c +0 -651
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1831
- data/ext/pg_query/src_common_string.c +0 -86
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_random.c +0 -31
- data/ext/pg_query/src_port_strnlen.c +0 -39
- data/lib/pg_query/json_field_names.rb +0 -1402
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* See src/backend/utils/misc/README for design notes.
|
|
7
7
|
*
|
|
8
|
-
* Portions Copyright (c) 1996-
|
|
8
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
9
9
|
*
|
|
10
10
|
* src/include/utils/guc_tables.h
|
|
11
11
|
*
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#ifndef GUC_TABLES_H
|
|
15
15
|
#define GUC_TABLES_H 1
|
|
16
16
|
|
|
17
|
+
#include "lib/ilist.h"
|
|
17
18
|
#include "utils/guc.h"
|
|
18
19
|
|
|
19
20
|
/*
|
|
@@ -48,55 +49,49 @@ typedef struct config_var_value
|
|
|
48
49
|
} config_var_value;
|
|
49
50
|
|
|
50
51
|
/*
|
|
51
|
-
* Groupings to help organize all the run-time options for display
|
|
52
|
+
* Groupings to help organize all the run-time options for display.
|
|
53
|
+
* Be sure this agrees with the way the options are categorized in config.sgml!
|
|
52
54
|
*/
|
|
53
55
|
enum config_group
|
|
54
56
|
{
|
|
55
|
-
UNGROUPED,
|
|
57
|
+
UNGROUPED, /* use for options not shown in pg_settings */
|
|
56
58
|
FILE_LOCATIONS,
|
|
57
|
-
CONN_AUTH,
|
|
58
59
|
CONN_AUTH_SETTINGS,
|
|
60
|
+
CONN_AUTH_TCP,
|
|
59
61
|
CONN_AUTH_AUTH,
|
|
60
62
|
CONN_AUTH_SSL,
|
|
61
|
-
RESOURCES,
|
|
62
63
|
RESOURCES_MEM,
|
|
63
64
|
RESOURCES_DISK,
|
|
64
65
|
RESOURCES_KERNEL,
|
|
65
66
|
RESOURCES_VACUUM_DELAY,
|
|
66
67
|
RESOURCES_BGWRITER,
|
|
67
68
|
RESOURCES_ASYNCHRONOUS,
|
|
68
|
-
WAL,
|
|
69
69
|
WAL_SETTINGS,
|
|
70
70
|
WAL_CHECKPOINTS,
|
|
71
71
|
WAL_ARCHIVING,
|
|
72
|
+
WAL_RECOVERY,
|
|
72
73
|
WAL_ARCHIVE_RECOVERY,
|
|
73
74
|
WAL_RECOVERY_TARGET,
|
|
74
|
-
REPLICATION,
|
|
75
75
|
REPLICATION_SENDING,
|
|
76
|
-
|
|
76
|
+
REPLICATION_PRIMARY,
|
|
77
77
|
REPLICATION_STANDBY,
|
|
78
78
|
REPLICATION_SUBSCRIBERS,
|
|
79
|
-
QUERY_TUNING,
|
|
80
79
|
QUERY_TUNING_METHOD,
|
|
81
80
|
QUERY_TUNING_COST,
|
|
82
81
|
QUERY_TUNING_GEQO,
|
|
83
82
|
QUERY_TUNING_OTHER,
|
|
84
|
-
LOGGING,
|
|
85
83
|
LOGGING_WHERE,
|
|
86
84
|
LOGGING_WHEN,
|
|
87
85
|
LOGGING_WHAT,
|
|
88
86
|
PROCESS_TITLE,
|
|
89
|
-
STATS,
|
|
90
87
|
STATS_MONITORING,
|
|
91
|
-
|
|
88
|
+
STATS_CUMULATIVE,
|
|
92
89
|
AUTOVACUUM,
|
|
93
|
-
CLIENT_CONN,
|
|
94
90
|
CLIENT_CONN_STATEMENT,
|
|
95
91
|
CLIENT_CONN_LOCALE,
|
|
96
92
|
CLIENT_CONN_PRELOAD,
|
|
97
93
|
CLIENT_CONN_OTHER,
|
|
98
94
|
LOCK_MANAGEMENT,
|
|
99
|
-
COMPAT_OPTIONS,
|
|
100
95
|
COMPAT_OPTIONS_PREVIOUS,
|
|
101
96
|
COMPAT_OPTIONS_CLIENT,
|
|
102
97
|
ERROR_HANDLING_OPTIONS,
|
|
@@ -127,6 +122,8 @@ typedef struct guc_stack
|
|
|
127
122
|
/* masked value's source must be PGC_S_SESSION, so no need to store it */
|
|
128
123
|
GucContext scontext; /* context that set the prior value */
|
|
129
124
|
GucContext masked_scontext; /* context that set the masked value */
|
|
125
|
+
Oid srole; /* role that set the prior value */
|
|
126
|
+
Oid masked_srole; /* role that set the masked value */
|
|
130
127
|
config_var_value prior; /* previous value of variable */
|
|
131
128
|
config_var_value masked; /* SET value in a GUC_SET_LOCAL entry */
|
|
132
129
|
} GucStack;
|
|
@@ -138,6 +135,15 @@ typedef struct guc_stack
|
|
|
138
135
|
* applications may use the long description as well, and will append
|
|
139
136
|
* it to the short description. (separated by a newline or '. ')
|
|
140
137
|
*
|
|
138
|
+
* srole is the role that set the current value, or BOOTSTRAP_SUPERUSERID
|
|
139
|
+
* if the value came from an internal source or the config file. Similarly
|
|
140
|
+
* for reset_srole (which is usually BOOTSTRAP_SUPERUSERID, but not always).
|
|
141
|
+
*
|
|
142
|
+
* Variables that are currently of active interest for maintenance
|
|
143
|
+
* operations are linked into various lists using the xxx_link fields.
|
|
144
|
+
* The link fields are unused/garbage in variables not currently having
|
|
145
|
+
* the specified properties.
|
|
146
|
+
*
|
|
141
147
|
* Note that sourcefile/sourceline are kept here, and not pushed into stacked
|
|
142
148
|
* values, although in principle they belong with some stacked value if the
|
|
143
149
|
* active value is session- or transaction-local. This is to avoid bloating
|
|
@@ -159,8 +165,18 @@ struct config_generic
|
|
|
159
165
|
GucSource reset_source; /* source of the reset_value */
|
|
160
166
|
GucContext scontext; /* context that set the current value */
|
|
161
167
|
GucContext reset_scontext; /* context that set the reset value */
|
|
168
|
+
Oid srole; /* role that set the current value */
|
|
169
|
+
Oid reset_srole; /* role that set the reset value */
|
|
162
170
|
GucStack *stack; /* stacked prior values */
|
|
163
171
|
void *extra; /* "extra" pointer for current actual value */
|
|
172
|
+
dlist_node nondef_link; /* list link for variables that have source
|
|
173
|
+
* different from PGC_S_DEFAULT */
|
|
174
|
+
slist_node stack_link; /* list link for variables that have non-NULL
|
|
175
|
+
* stack */
|
|
176
|
+
slist_node report_link; /* list link for variables that have the
|
|
177
|
+
* GUC_NEEDS_REPORT bit set in status */
|
|
178
|
+
char *last_reported; /* if variable is GUC_REPORT, value last sent
|
|
179
|
+
* to client (NULL if not yet sent) */
|
|
164
180
|
char *sourcefile; /* file current setting is from (NULL if not
|
|
165
181
|
* set in config file) */
|
|
166
182
|
int sourceline; /* line in source file */
|
|
@@ -172,7 +188,8 @@ struct config_generic
|
|
|
172
188
|
* Caution: the GUC_IS_IN_FILE bit is transient state for ProcessConfigFile.
|
|
173
189
|
* Do not assume that its value represents useful information elsewhere.
|
|
174
190
|
*/
|
|
175
|
-
#define GUC_PENDING_RESTART 0x0002
|
|
191
|
+
#define GUC_PENDING_RESTART 0x0002 /* changed value cannot be applied yet */
|
|
192
|
+
#define GUC_NEEDS_REPORT 0x0004 /* new value must be reported to client */
|
|
176
193
|
|
|
177
194
|
|
|
178
195
|
/* GUC records for specific variable types */
|
|
@@ -223,6 +240,16 @@ struct config_real
|
|
|
223
240
|
void *reset_extra;
|
|
224
241
|
};
|
|
225
242
|
|
|
243
|
+
/*
|
|
244
|
+
* A note about string GUCs: the boot_val is allowed to be NULL, which leads
|
|
245
|
+
* to the reset_val and the actual variable value (*variable) also being NULL.
|
|
246
|
+
* However, there is no way to set a NULL value subsequently using
|
|
247
|
+
* set_config_option or any other GUC API. Also, GUC APIs such as SHOW will
|
|
248
|
+
* display a NULL value as an empty string. Callers that choose to use a NULL
|
|
249
|
+
* boot_val should overwrite the setting later in startup, or else be careful
|
|
250
|
+
* that NULL doesn't have semantics that are visibly different from an empty
|
|
251
|
+
* string.
|
|
252
|
+
*/
|
|
226
253
|
struct config_string
|
|
227
254
|
{
|
|
228
255
|
struct config_generic gen;
|
|
@@ -253,13 +280,33 @@ struct config_enum
|
|
|
253
280
|
};
|
|
254
281
|
|
|
255
282
|
/* constant tables corresponding to enums above and in guc.h */
|
|
256
|
-
extern const char *const config_group_names[];
|
|
257
|
-
extern const char *const config_type_names[];
|
|
258
|
-
extern const char *const GucContext_Names[];
|
|
259
|
-
extern const char *const GucSource_Names[];
|
|
283
|
+
extern PGDLLIMPORT const char *const config_group_names[];
|
|
284
|
+
extern PGDLLIMPORT const char *const config_type_names[];
|
|
285
|
+
extern PGDLLIMPORT const char *const GucContext_Names[];
|
|
286
|
+
extern PGDLLIMPORT const char *const GucSource_Names[];
|
|
287
|
+
|
|
288
|
+
/* data arrays defining all the built-in GUC variables */
|
|
289
|
+
extern PGDLLIMPORT struct config_bool ConfigureNamesBool[];
|
|
290
|
+
extern PGDLLIMPORT struct config_int ConfigureNamesInt[];
|
|
291
|
+
extern PGDLLIMPORT struct config_real ConfigureNamesReal[];
|
|
292
|
+
extern PGDLLIMPORT struct config_string ConfigureNamesString[];
|
|
293
|
+
extern PGDLLIMPORT struct config_enum ConfigureNamesEnum[];
|
|
294
|
+
|
|
295
|
+
/* lookup GUC variables, returning config_generic pointers */
|
|
296
|
+
extern struct config_generic *find_option(const char *name,
|
|
297
|
+
bool create_placeholders,
|
|
298
|
+
bool skip_errors,
|
|
299
|
+
int elevel);
|
|
300
|
+
extern struct config_generic **get_explain_guc_options(int *num);
|
|
301
|
+
|
|
302
|
+
/* get string value of variable */
|
|
303
|
+
extern char *ShowGUCOption(struct config_generic *record, bool use_units);
|
|
304
|
+
|
|
305
|
+
/* get whether or not the GUC variable is visible to current user */
|
|
306
|
+
extern bool ConfigOptionIsVisible(struct config_generic *conf);
|
|
260
307
|
|
|
261
308
|
/* get the current set of variables */
|
|
262
|
-
extern struct config_generic **get_guc_variables(
|
|
309
|
+
extern struct config_generic **get_guc_variables(int *num_vars);
|
|
263
310
|
|
|
264
311
|
extern void build_guc_variables(void);
|
|
265
312
|
|
|
@@ -267,6 +314,9 @@ extern void build_guc_variables(void);
|
|
|
267
314
|
extern const char *config_enum_lookup_by_value(struct config_enum *record, int val);
|
|
268
315
|
extern bool config_enum_lookup_by_name(struct config_enum *record,
|
|
269
316
|
const char *value, int *retval);
|
|
270
|
-
extern struct
|
|
317
|
+
extern char *config_enum_get_options(struct config_enum *record,
|
|
318
|
+
const char *prefix,
|
|
319
|
+
const char *suffix,
|
|
320
|
+
const char *separator);
|
|
271
321
|
|
|
272
322
|
#endif /* GUC_TABLES_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* exported definitions for utils/hash/dynahash.c; see notes therein
|
|
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/hsearch.h
|
|
@@ -64,27 +64,36 @@ typedef struct HTAB HTAB;
|
|
|
64
64
|
/* Only those fields indicated by hash_flags need be set */
|
|
65
65
|
typedef struct HASHCTL
|
|
66
66
|
{
|
|
67
|
+
/* Used if HASH_PARTITION flag is set: */
|
|
67
68
|
long num_partitions; /* # partitions (must be power of 2) */
|
|
69
|
+
/* Used if HASH_SEGMENT flag is set: */
|
|
68
70
|
long ssize; /* segment size */
|
|
71
|
+
/* Used if HASH_DIRSIZE flag is set: */
|
|
69
72
|
long dsize; /* (initial) directory size */
|
|
70
73
|
long max_dsize; /* limit to dsize if dir size is limited */
|
|
71
|
-
|
|
74
|
+
/* Used if HASH_ELEM flag is set (which is now required): */
|
|
72
75
|
Size keysize; /* hash key length in bytes */
|
|
73
76
|
Size entrysize; /* total user element size in bytes */
|
|
77
|
+
/* Used if HASH_FUNCTION flag is set: */
|
|
74
78
|
HashValueFunc hash; /* hash function */
|
|
79
|
+
/* Used if HASH_COMPARE flag is set: */
|
|
75
80
|
HashCompareFunc match; /* key comparison function */
|
|
81
|
+
/* Used if HASH_KEYCOPY flag is set: */
|
|
76
82
|
HashCopyFunc keycopy; /* key copying function */
|
|
83
|
+
/* Used if HASH_ALLOC flag is set: */
|
|
77
84
|
HashAllocFunc alloc; /* memory allocator */
|
|
85
|
+
/* Used if HASH_CONTEXT flag is set: */
|
|
78
86
|
MemoryContext hcxt; /* memory context to use for allocations */
|
|
87
|
+
/* Used if HASH_SHARED_MEM flag is set: */
|
|
79
88
|
HASHHDR *hctl; /* location of header in shared mem */
|
|
80
89
|
} HASHCTL;
|
|
81
90
|
|
|
82
|
-
/*
|
|
91
|
+
/* Flag bits for hash_create; most indicate which parameters are supplied */
|
|
83
92
|
#define HASH_PARTITION 0x0001 /* Hashtable is used w/partitioned locking */
|
|
84
93
|
#define HASH_SEGMENT 0x0002 /* Set segment size */
|
|
85
94
|
#define HASH_DIRSIZE 0x0004 /* Set directory size (initial and max) */
|
|
86
|
-
#define
|
|
87
|
-
#define
|
|
95
|
+
#define HASH_ELEM 0x0008 /* Set keysize and entrysize (now required!) */
|
|
96
|
+
#define HASH_STRINGS 0x0010 /* Select support functions for string keys */
|
|
88
97
|
#define HASH_BLOBS 0x0020 /* Select support functions for binary keys */
|
|
89
98
|
#define HASH_FUNCTION 0x0040 /* Set user defined hash function */
|
|
90
99
|
#define HASH_COMPARE 0x0080 /* Set user defined comparison function */
|
|
@@ -95,7 +104,6 @@ typedef struct HASHCTL
|
|
|
95
104
|
#define HASH_ATTACH 0x1000 /* Do not initialize hctl */
|
|
96
105
|
#define HASH_FIXED_SIZE 0x2000 /* Initial size is a hard limit */
|
|
97
106
|
|
|
98
|
-
|
|
99
107
|
/* max_dsize value to indicate expansible directory */
|
|
100
108
|
#define NO_MAX_DSIZE (-1)
|
|
101
109
|
|
|
@@ -118,13 +126,9 @@ typedef struct
|
|
|
118
126
|
|
|
119
127
|
/*
|
|
120
128
|
* prototypes for functions in dynahash.c
|
|
121
|
-
*
|
|
122
|
-
* Note: It is deprecated for callers of hash_create to explicitly specify
|
|
123
|
-
* string_hash, tag_hash, uint32_hash, or oid_hash. Just set HASH_BLOBS or
|
|
124
|
-
* not. Use HASH_FUNCTION only when you want something other than those.
|
|
125
129
|
*/
|
|
126
130
|
extern HTAB *hash_create(const char *tabname, long nelem,
|
|
127
|
-
HASHCTL *info, int flags);
|
|
131
|
+
const HASHCTL *info, int flags);
|
|
128
132
|
extern void hash_destroy(HTAB *hashp);
|
|
129
133
|
extern void hash_stats(const char *where, HTAB *hashp);
|
|
130
134
|
extern void *hash_search(HTAB *hashp, const void *keyPtr, HASHACTION action,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES cache invalidation dispatcher 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/utils/inval.h
|
|
@@ -15,9 +15,10 @@
|
|
|
15
15
|
#define INVAL_H
|
|
16
16
|
|
|
17
17
|
#include "access/htup.h"
|
|
18
|
-
#include "storage/
|
|
18
|
+
#include "storage/relfilelocator.h"
|
|
19
19
|
#include "utils/relcache.h"
|
|
20
20
|
|
|
21
|
+
extern PGDLLIMPORT int debug_discard_caches;
|
|
21
22
|
|
|
22
23
|
typedef void (*SyscacheCallbackFunction) (Datum arg, int cacheid, uint32 hashvalue);
|
|
23
24
|
typedef void (*RelcacheCallbackFunction) (Datum arg, Oid relid);
|
|
@@ -47,7 +48,7 @@ extern void CacheInvalidateRelcacheByTuple(HeapTuple classTuple);
|
|
|
47
48
|
|
|
48
49
|
extern void CacheInvalidateRelcacheByRelid(Oid relid);
|
|
49
50
|
|
|
50
|
-
extern void CacheInvalidateSmgr(
|
|
51
|
+
extern void CacheInvalidateSmgr(RelFileLocatorBackend rlocator);
|
|
51
52
|
|
|
52
53
|
extern void CacheInvalidateRelmap(Oid databaseId);
|
|
53
54
|
|
|
@@ -61,4 +62,7 @@ extern void CacheRegisterRelcacheCallback(RelcacheCallbackFunction func,
|
|
|
61
62
|
extern void CallSyscacheCallbacks(int cacheid, uint32 hashvalue);
|
|
62
63
|
|
|
63
64
|
extern void InvalidateSystemCaches(void);
|
|
65
|
+
extern void InvalidateSystemCachesExtended(bool debug_discard);
|
|
66
|
+
|
|
67
|
+
extern void LogLogicalInvalidations(void);
|
|
64
68
|
#endif /* INVAL_H */
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* logtape.h
|
|
4
|
+
* Management of "logical tapes" within temporary files.
|
|
5
|
+
*
|
|
6
|
+
* See logtape.c for explanations.
|
|
7
|
+
*
|
|
8
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
9
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
10
|
+
*
|
|
11
|
+
* src/include/utils/logtape.h
|
|
12
|
+
*
|
|
13
|
+
*-------------------------------------------------------------------------
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
#ifndef LOGTAPE_H
|
|
17
|
+
#define LOGTAPE_H
|
|
18
|
+
|
|
19
|
+
#include "storage/sharedfileset.h"
|
|
20
|
+
|
|
21
|
+
/*
|
|
22
|
+
* LogicalTapeSet and LogicalTape are opaque types whose details are not
|
|
23
|
+
* known outside logtape.c.
|
|
24
|
+
*/
|
|
25
|
+
typedef struct LogicalTapeSet LogicalTapeSet;
|
|
26
|
+
typedef struct LogicalTape LogicalTape;
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
/*
|
|
30
|
+
* The approach tuplesort.c takes to parallel external sorts is that workers,
|
|
31
|
+
* whose state is almost the same as independent serial sorts, are made to
|
|
32
|
+
* produce a final materialized tape of sorted output in all cases. This is
|
|
33
|
+
* frozen, just like any case requiring a final materialized tape. However,
|
|
34
|
+
* there is one difference, which is that freezing will also export an
|
|
35
|
+
* underlying shared fileset BufFile for sharing. Freezing produces TapeShare
|
|
36
|
+
* metadata for the worker when this happens, which is passed along through
|
|
37
|
+
* shared memory to leader.
|
|
38
|
+
*
|
|
39
|
+
* The leader process can then pass an array of TapeShare metadata (one per
|
|
40
|
+
* worker participant) to LogicalTapeSetCreate(), alongside a handle to a
|
|
41
|
+
* shared fileset, which is sufficient to construct a new logical tapeset that
|
|
42
|
+
* consists of each of the tapes materialized by workers.
|
|
43
|
+
*
|
|
44
|
+
* Note that while logtape.c does create an empty leader tape at the end of the
|
|
45
|
+
* tapeset in the leader case, it can never be written to due to a restriction
|
|
46
|
+
* in the shared buffile infrastructure.
|
|
47
|
+
*/
|
|
48
|
+
typedef struct TapeShare
|
|
49
|
+
{
|
|
50
|
+
/*
|
|
51
|
+
* Currently, all the leader process needs is the location of the
|
|
52
|
+
* materialized tape's first block.
|
|
53
|
+
*/
|
|
54
|
+
long firstblocknumber;
|
|
55
|
+
} TapeShare;
|
|
56
|
+
|
|
57
|
+
/*
|
|
58
|
+
* prototypes for functions in logtape.c
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
extern LogicalTapeSet *LogicalTapeSetCreate(bool preallocate,
|
|
62
|
+
SharedFileSet *fileset, int worker);
|
|
63
|
+
extern void LogicalTapeClose(LogicalTape *lt);
|
|
64
|
+
extern void LogicalTapeSetClose(LogicalTapeSet *lts);
|
|
65
|
+
extern LogicalTape *LogicalTapeCreate(LogicalTapeSet *lts);
|
|
66
|
+
extern LogicalTape *LogicalTapeImport(LogicalTapeSet *lts, int worker, TapeShare *shared);
|
|
67
|
+
extern void LogicalTapeSetForgetFreeSpace(LogicalTapeSet *lts);
|
|
68
|
+
extern size_t LogicalTapeRead(LogicalTape *lt, void *ptr, size_t size);
|
|
69
|
+
extern void LogicalTapeWrite(LogicalTape *lt, const void *ptr, size_t size);
|
|
70
|
+
extern void LogicalTapeRewindForRead(LogicalTape *lt, size_t buffer_size);
|
|
71
|
+
extern void LogicalTapeFreeze(LogicalTape *lt, TapeShare *share);
|
|
72
|
+
extern size_t LogicalTapeBackspace(LogicalTape *lt, size_t size);
|
|
73
|
+
extern void LogicalTapeSeek(LogicalTape *lt, long blocknum, int offset);
|
|
74
|
+
extern void LogicalTapeTell(LogicalTape *lt, long *blocknum, int *offset);
|
|
75
|
+
extern long LogicalTapeSetBlocks(LogicalTapeSet *lts);
|
|
76
|
+
|
|
77
|
+
#endif /* LOGTAPE_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* lsyscache.h
|
|
4
4
|
* Convenience routines for common queries in the system catalog cache.
|
|
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/utils/lsyscache.h
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
#include "access/htup.h"
|
|
18
18
|
#include "nodes/pg_list.h"
|
|
19
19
|
|
|
20
|
+
/* avoid including subscripting.h here */
|
|
21
|
+
struct SubscriptRoutines;
|
|
22
|
+
|
|
20
23
|
/* Result list element for get_op_btree_interpretation */
|
|
21
24
|
typedef struct OpBtreeInterpretation
|
|
22
25
|
{
|
|
@@ -87,6 +90,7 @@ extern Oid get_opfamily_proc(Oid opfamily, Oid lefttype, Oid righttype,
|
|
|
87
90
|
int16 procnum);
|
|
88
91
|
extern char *get_attname(Oid relid, AttrNumber attnum, bool missing_ok);
|
|
89
92
|
extern AttrNumber get_attnum(Oid relid, const char *attname);
|
|
93
|
+
extern int get_attstattarget(Oid relid, AttrNumber attnum);
|
|
90
94
|
extern char get_attgenerated(Oid relid, AttrNumber attnum);
|
|
91
95
|
extern Oid get_atttype(Oid relid, AttrNumber attnum);
|
|
92
96
|
extern void get_atttypetypmodcoll(Oid relid, AttrNumber attnum,
|
|
@@ -96,6 +100,7 @@ extern Oid get_cast_oid(Oid sourcetypeid, Oid targettypeid, bool missing_ok);
|
|
|
96
100
|
extern char *get_collation_name(Oid colloid);
|
|
97
101
|
extern bool get_collation_isdeterministic(Oid colloid);
|
|
98
102
|
extern char *get_constraint_name(Oid conoid);
|
|
103
|
+
extern Oid get_constraint_index(Oid conoid);
|
|
99
104
|
extern char *get_language_name(Oid langoid, bool missing_ok);
|
|
100
105
|
extern Oid get_opclass_family(Oid opclass);
|
|
101
106
|
extern Oid get_opclass_input_type(Oid opclass);
|
|
@@ -157,6 +162,7 @@ extern char get_typtype(Oid typid);
|
|
|
157
162
|
extern bool type_is_rowtype(Oid typid);
|
|
158
163
|
extern bool type_is_enum(Oid typid);
|
|
159
164
|
extern bool type_is_range(Oid typid);
|
|
165
|
+
extern bool type_is_multirange(Oid typid);
|
|
160
166
|
extern void get_type_category_preferred(Oid typid,
|
|
161
167
|
char *typcategory,
|
|
162
168
|
bool *typispreferred);
|
|
@@ -172,6 +178,9 @@ extern void getTypeBinaryOutputInfo(Oid type, Oid *typSend, bool *typIsVarlena);
|
|
|
172
178
|
extern Oid get_typmodin(Oid typid);
|
|
173
179
|
extern Oid get_typcollation(Oid typid);
|
|
174
180
|
extern bool type_is_collatable(Oid typid);
|
|
181
|
+
extern RegProcedure get_typsubscript(Oid typid, Oid *typelemp);
|
|
182
|
+
extern const struct SubscriptRoutines *getSubscriptingRoutines(Oid typid,
|
|
183
|
+
Oid *typelemp);
|
|
175
184
|
extern Oid getBaseType(Oid typid);
|
|
176
185
|
extern Oid getBaseTypeAndTypmod(Oid typid, int32 *typmod);
|
|
177
186
|
extern int32 get_typavgwidth(Oid typid, int32 typmod);
|
|
@@ -183,10 +192,16 @@ extern char *get_namespace_name(Oid nspid);
|
|
|
183
192
|
extern char *get_namespace_name_or_temp(Oid nspid);
|
|
184
193
|
extern Oid get_range_subtype(Oid rangeOid);
|
|
185
194
|
extern Oid get_range_collation(Oid rangeOid);
|
|
195
|
+
extern Oid get_range_multirange(Oid rangeOid);
|
|
196
|
+
extern Oid get_multirange_range(Oid multirangeOid);
|
|
186
197
|
extern Oid get_index_column_opclass(Oid index_oid, int attno);
|
|
187
198
|
extern bool get_index_isreplident(Oid index_oid);
|
|
188
199
|
extern bool get_index_isvalid(Oid index_oid);
|
|
189
200
|
extern bool get_index_isclustered(Oid index_oid);
|
|
201
|
+
extern Oid get_publication_oid(const char *pubname, bool missing_ok);
|
|
202
|
+
extern char *get_publication_name(Oid pubid, bool missing_ok);
|
|
203
|
+
extern Oid get_subscription_oid(const char *subname, bool missing_ok);
|
|
204
|
+
extern char *get_subscription_name(Oid subid, bool missing_ok);
|
|
190
205
|
|
|
191
206
|
#define type_is_array(typid) (get_element_type(typid) != InvalidOid)
|
|
192
207
|
/* type_is_array_domain accepts both plain arrays and domains over arrays */
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* empty definitions for Valgrind client request macros we use.
|
|
8
8
|
*
|
|
9
9
|
*
|
|
10
|
-
* Portions Copyright (c) 1996-
|
|
10
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
12
12
|
*
|
|
13
13
|
* src/include/utils/memdebug.h
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* of the API of the memory management subsystem.
|
|
8
8
|
*
|
|
9
9
|
*
|
|
10
|
-
* Portions Copyright (c) 1996-
|
|
10
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
12
12
|
*
|
|
13
13
|
* src/include/utils/memutils.h
|
|
@@ -41,8 +41,11 @@
|
|
|
41
41
|
|
|
42
42
|
#define AllocSizeIsValid(size) ((Size) (size) <= MaxAllocSize)
|
|
43
43
|
|
|
44
|
+
/* Must be less than SIZE_MAX */
|
|
44
45
|
#define MaxAllocHugeSize (SIZE_MAX / 2)
|
|
45
46
|
|
|
47
|
+
#define InvalidAllocSize SIZE_MAX
|
|
48
|
+
|
|
46
49
|
#define AllocHugeSizeIsValid(size) ((Size) (size) <= MaxAllocHugeSize)
|
|
47
50
|
|
|
48
51
|
|
|
@@ -52,8 +55,8 @@
|
|
|
52
55
|
* Only TopMemoryContext and ErrorContext are initialized by
|
|
53
56
|
* MemoryContextInit() itself.
|
|
54
57
|
*/
|
|
55
|
-
extern PGDLLIMPORT __thread
|
|
56
|
-
extern PGDLLIMPORT __thread
|
|
58
|
+
extern PGDLLIMPORT __thread MemoryContext TopMemoryContext;
|
|
59
|
+
extern PGDLLIMPORT __thread MemoryContext ErrorContext;
|
|
57
60
|
extern PGDLLIMPORT MemoryContext PostmasterContext;
|
|
58
61
|
extern PGDLLIMPORT MemoryContext CacheMemoryContext;
|
|
59
62
|
extern PGDLLIMPORT MemoryContext MessageContext;
|
|
@@ -79,71 +82,27 @@ extern void MemoryContextDeleteChildren(MemoryContext context);
|
|
|
79
82
|
extern void MemoryContextSetIdentifier(MemoryContext context, const char *id);
|
|
80
83
|
extern void MemoryContextSetParent(MemoryContext context,
|
|
81
84
|
MemoryContext new_parent);
|
|
85
|
+
extern MemoryContext GetMemoryChunkContext(void *pointer);
|
|
82
86
|
extern Size GetMemoryChunkSpace(void *pointer);
|
|
83
87
|
extern MemoryContext MemoryContextGetParent(MemoryContext context);
|
|
84
88
|
extern bool MemoryContextIsEmpty(MemoryContext context);
|
|
85
89
|
extern Size MemoryContextMemAllocated(MemoryContext context, bool recurse);
|
|
86
90
|
extern void MemoryContextStats(MemoryContext context);
|
|
87
|
-
extern void MemoryContextStatsDetail(MemoryContext context, int max_children
|
|
91
|
+
extern void MemoryContextStatsDetail(MemoryContext context, int max_children,
|
|
92
|
+
bool print_to_stderr);
|
|
88
93
|
extern void MemoryContextAllowInCriticalSection(MemoryContext context,
|
|
89
94
|
bool allow);
|
|
90
95
|
|
|
91
96
|
#ifdef MEMORY_CONTEXT_CHECKING
|
|
92
97
|
extern void MemoryContextCheck(MemoryContext context);
|
|
93
98
|
#endif
|
|
94
|
-
extern bool MemoryContextContains(MemoryContext context, void *pointer);
|
|
95
99
|
|
|
96
100
|
/* Handy macro for copying and assigning context ID ... but note double eval */
|
|
97
101
|
#define MemoryContextCopyAndSetIdentifier(cxt, id) \
|
|
98
102
|
MemoryContextSetIdentifier(cxt, MemoryContextStrdup(cxt, id))
|
|
99
103
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
* Given a currently-allocated chunk, determine the context
|
|
103
|
-
* it belongs to.
|
|
104
|
-
*
|
|
105
|
-
* All chunks allocated by any memory context manager are required to be
|
|
106
|
-
* preceded by the corresponding MemoryContext stored, without padding, in the
|
|
107
|
-
* preceding sizeof(void*) bytes. A currently-allocated chunk must contain a
|
|
108
|
-
* backpointer to its owning context. The backpointer is used by pfree() and
|
|
109
|
-
* repalloc() to find the context to call.
|
|
110
|
-
*/
|
|
111
|
-
#ifndef FRONTEND
|
|
112
|
-
static inline MemoryContext
|
|
113
|
-
GetMemoryChunkContext(void *pointer)
|
|
114
|
-
{
|
|
115
|
-
MemoryContext context;
|
|
116
|
-
|
|
117
|
-
/*
|
|
118
|
-
* Try to detect bogus pointers handed to us, poorly though we can.
|
|
119
|
-
* Presumably, a pointer that isn't MAXALIGNED isn't pointing at an
|
|
120
|
-
* allocated chunk.
|
|
121
|
-
*/
|
|
122
|
-
Assert(pointer != NULL);
|
|
123
|
-
Assert(pointer == (void *) MAXALIGN(pointer));
|
|
124
|
-
|
|
125
|
-
/*
|
|
126
|
-
* OK, it's probably safe to look at the context.
|
|
127
|
-
*/
|
|
128
|
-
context = *(MemoryContext *) (((char *) pointer) - sizeof(void *));
|
|
129
|
-
|
|
130
|
-
AssertArg(MemoryContextIsValid(context));
|
|
131
|
-
|
|
132
|
-
return context;
|
|
133
|
-
}
|
|
134
|
-
#endif
|
|
135
|
-
|
|
136
|
-
/*
|
|
137
|
-
* This routine handles the context-type-independent part of memory
|
|
138
|
-
* context creation. It's intended to be called from context-type-
|
|
139
|
-
* specific creation routines, and noplace else.
|
|
140
|
-
*/
|
|
141
|
-
extern void MemoryContextCreate(MemoryContext node,
|
|
142
|
-
NodeTag tag,
|
|
143
|
-
const MemoryContextMethods *methods,
|
|
144
|
-
MemoryContext parent,
|
|
145
|
-
const char *name);
|
|
146
|
-
|
|
104
|
+
extern void HandleLogMemoryContextInterrupt(void);
|
|
105
|
+
extern void ProcessLogMemoryContextInterrupt(void);
|
|
147
106
|
|
|
148
107
|
/*
|
|
149
108
|
* Memory-context-type-specific functions
|
|
@@ -181,7 +140,9 @@ extern MemoryContext SlabContextCreate(MemoryContext parent,
|
|
|
181
140
|
/* generation.c */
|
|
182
141
|
extern MemoryContext GenerationContextCreate(MemoryContext parent,
|
|
183
142
|
const char *name,
|
|
184
|
-
Size
|
|
143
|
+
Size minContextSize,
|
|
144
|
+
Size initBlockSize,
|
|
145
|
+
Size maxBlockSize);
|
|
185
146
|
|
|
186
147
|
/*
|
|
187
148
|
* Recommended default alloc parameters, suitable for "ordinary" contexts
|