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
|
@@ -32,9 +32,13 @@
|
|
|
32
32
|
* include/catalog is the most common kind of initdb-forcing change.
|
|
33
33
|
* But it could be used to protect any kind of incompatible change in
|
|
34
34
|
* database contents or layout, such as altering tuple headers.
|
|
35
|
+
* Another common reason for a catversion update is a change in parsetree
|
|
36
|
+
* external representation, since serialized parsetrees appear in stored
|
|
37
|
+
* rules and new-style SQL functions. Almost any change in primnodes.h or
|
|
38
|
+
* parsenodes.h will warrant a catversion update.
|
|
35
39
|
*
|
|
36
40
|
*
|
|
37
|
-
* Portions Copyright (c) 1996-
|
|
41
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
38
42
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
39
43
|
*
|
|
40
44
|
* src/include/catalog/catversion.h
|
|
@@ -53,6 +57,6 @@
|
|
|
53
57
|
*/
|
|
54
58
|
|
|
55
59
|
/* yyyymmddN */
|
|
56
|
-
#define CATALOG_VERSION_NO
|
|
60
|
+
#define CATALOG_VERSION_NO 202307071
|
|
57
61
|
|
|
58
62
|
#endif
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Routines to support inter-object dependencies.
|
|
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/catalog/dependency.h
|
|
@@ -36,8 +36,7 @@ typedef enum DependencyType
|
|
|
36
36
|
DEPENDENCY_PARTITION_PRI = 'P',
|
|
37
37
|
DEPENDENCY_PARTITION_SEC = 'S',
|
|
38
38
|
DEPENDENCY_EXTENSION = 'e',
|
|
39
|
-
DEPENDENCY_AUTO_EXTENSION = 'x'
|
|
40
|
-
DEPENDENCY_PIN = 'p'
|
|
39
|
+
DEPENDENCY_AUTO_EXTENSION = 'x'
|
|
41
40
|
} DependencyType;
|
|
42
41
|
|
|
43
42
|
/*
|
|
@@ -47,27 +46,21 @@ typedef enum DependencyType
|
|
|
47
46
|
* unless the dependent object is dropped at the same time. There are some
|
|
48
47
|
* additional rules however:
|
|
49
48
|
*
|
|
50
|
-
* (a)
|
|
51
|
-
* rather, the referenced object is an essential part of the system. This
|
|
52
|
-
* applies to the initdb-created superuser. Entries of this type are only
|
|
53
|
-
* created by initdb; objects in this category don't need further pg_shdepend
|
|
54
|
-
* entries if more objects come to depend on them.
|
|
55
|
-
*
|
|
56
|
-
* (b) a SHARED_DEPENDENCY_OWNER entry means that the referenced object is
|
|
49
|
+
* (a) a SHARED_DEPENDENCY_OWNER entry means that the referenced object is
|
|
57
50
|
* the role owning the dependent object. The referenced object must be
|
|
58
51
|
* a pg_authid entry.
|
|
59
52
|
*
|
|
60
|
-
* (
|
|
53
|
+
* (b) a SHARED_DEPENDENCY_ACL entry means that the referenced object is
|
|
61
54
|
* a role mentioned in the ACL field of the dependent object. The referenced
|
|
62
55
|
* object must be a pg_authid entry. (SHARED_DEPENDENCY_ACL entries are not
|
|
63
56
|
* created for the owner of an object; hence two objects may be linked by
|
|
64
57
|
* one or the other, but not both, of these dependency types.)
|
|
65
58
|
*
|
|
66
|
-
* (
|
|
59
|
+
* (c) a SHARED_DEPENDENCY_POLICY entry means that the referenced object is
|
|
67
60
|
* a role mentioned in a policy object. The referenced object must be a
|
|
68
61
|
* pg_authid entry.
|
|
69
62
|
*
|
|
70
|
-
* (
|
|
63
|
+
* (d) a SHARED_DEPENDENCY_TABLESPACE entry means that the referenced
|
|
71
64
|
* object is a tablespace mentioned in a relation without storage. The
|
|
72
65
|
* referenced object must be a pg_tablespace entry. (Relations that have
|
|
73
66
|
* storage don't need this: they are protected by the existence of a physical
|
|
@@ -78,7 +71,6 @@ typedef enum DependencyType
|
|
|
78
71
|
*/
|
|
79
72
|
typedef enum SharedDependencyType
|
|
80
73
|
{
|
|
81
|
-
SHARED_DEPENDENCY_PIN = 'p',
|
|
82
74
|
SHARED_DEPENDENCY_OWNER = 'o',
|
|
83
75
|
SHARED_DEPENDENCY_ACL = 'a',
|
|
84
76
|
SHARED_DEPENDENCY_POLICY = 'r',
|
|
@@ -120,6 +112,7 @@ typedef enum ObjectClass
|
|
|
120
112
|
OCLASS_TSTEMPLATE, /* pg_ts_template */
|
|
121
113
|
OCLASS_TSCONFIG, /* pg_ts_config */
|
|
122
114
|
OCLASS_ROLE, /* pg_authid */
|
|
115
|
+
OCLASS_ROLE_MEMBERSHIP, /* pg_auth_members */
|
|
123
116
|
OCLASS_DATABASE, /* pg_database */
|
|
124
117
|
OCLASS_TBLSPACE, /* pg_tablespace */
|
|
125
118
|
OCLASS_FDW, /* pg_foreign_data_wrapper */
|
|
@@ -128,8 +121,10 @@ typedef enum ObjectClass
|
|
|
128
121
|
OCLASS_DEFACL, /* pg_default_acl */
|
|
129
122
|
OCLASS_EXTENSION, /* pg_extension */
|
|
130
123
|
OCLASS_EVENT_TRIGGER, /* pg_event_trigger */
|
|
124
|
+
OCLASS_PARAMETER_ACL, /* pg_parameter_acl */
|
|
131
125
|
OCLASS_POLICY, /* pg_policy */
|
|
132
126
|
OCLASS_PUBLICATION, /* pg_publication */
|
|
127
|
+
OCLASS_PUBLICATION_NAMESPACE, /* pg_publication_namespace */
|
|
133
128
|
OCLASS_PUBLICATION_REL, /* pg_publication_rel */
|
|
134
129
|
OCLASS_SUBSCRIPTION, /* pg_subscription */
|
|
135
130
|
OCLASS_TRANSFORM /* pg_transform */
|
|
@@ -201,6 +196,8 @@ extern void recordMultipleDependencies(const ObjectAddress *depender,
|
|
|
201
196
|
extern void recordDependencyOnCurrentExtension(const ObjectAddress *object,
|
|
202
197
|
bool isReplace);
|
|
203
198
|
|
|
199
|
+
extern void checkMembershipInCurrentExtension(const ObjectAddress *object);
|
|
200
|
+
|
|
204
201
|
extern long deleteDependencyRecordsFor(Oid classId, Oid objectId,
|
|
205
202
|
bool skipExtensionDeps);
|
|
206
203
|
|
|
@@ -228,8 +225,6 @@ extern bool sequenceIsOwned(Oid seqId, char deptype, Oid *tableId, int32 *colId)
|
|
|
228
225
|
extern List *getOwnedSequences(Oid relid);
|
|
229
226
|
extern Oid getIdentitySequence(Oid relid, AttrNumber attnum, bool missing_ok);
|
|
230
227
|
|
|
231
|
-
extern Oid get_constraint_index(Oid constraintId);
|
|
232
|
-
|
|
233
228
|
extern Oid get_index_constraint(Oid indexId);
|
|
234
229
|
|
|
235
230
|
extern List *get_index_ref_constraints(Oid indexId);
|
|
@@ -254,7 +249,7 @@ extern void recordDependencyOnTablespace(Oid classId, Oid objectId,
|
|
|
254
249
|
extern void changeDependencyOnTablespace(Oid classId, Oid objectId,
|
|
255
250
|
Oid newTablespaceId);
|
|
256
251
|
|
|
257
|
-
extern void updateAclDependencies(Oid classId, Oid objectId, int32
|
|
252
|
+
extern void updateAclDependencies(Oid classId, Oid objectId, int32 objsubId,
|
|
258
253
|
Oid ownerId,
|
|
259
254
|
int noldmembers, Oid *oldmembers,
|
|
260
255
|
int nnewmembers, Oid *newmembers);
|
|
@@ -268,8 +263,8 @@ extern void copyTemplateDependencies(Oid templateDbId, Oid newDbId);
|
|
|
268
263
|
|
|
269
264
|
extern void dropDatabaseDependencies(Oid databaseId);
|
|
270
265
|
|
|
271
|
-
extern void shdepDropOwned(List *
|
|
266
|
+
extern void shdepDropOwned(List *roleids, DropBehavior behavior);
|
|
272
267
|
|
|
273
|
-
extern void shdepReassignOwned(List *
|
|
268
|
+
extern void shdepReassignOwned(List *roleids, Oid newrole);
|
|
274
269
|
|
|
275
270
|
#endif /* DEPENDENCY_H */
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* genbki.h
|
|
4
|
+
* Required include file for all POSTGRES catalog header files
|
|
5
|
+
*
|
|
6
|
+
* genbki.h defines CATALOG(), BKI_BOOTSTRAP and related macros
|
|
7
|
+
* so that the catalog header files can be read by the C compiler.
|
|
8
|
+
* (These same words are recognized by genbki.pl to build the BKI
|
|
9
|
+
* bootstrap file from these header files.)
|
|
10
|
+
*
|
|
11
|
+
*
|
|
12
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
13
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
14
|
+
*
|
|
15
|
+
* src/include/catalog/genbki.h
|
|
16
|
+
*
|
|
17
|
+
*-------------------------------------------------------------------------
|
|
18
|
+
*/
|
|
19
|
+
#ifndef GENBKI_H
|
|
20
|
+
#define GENBKI_H
|
|
21
|
+
|
|
22
|
+
/* Introduces a catalog's structure definition */
|
|
23
|
+
#define CATALOG(name,oid,oidmacro) typedef struct CppConcat(FormData_,name)
|
|
24
|
+
|
|
25
|
+
/* Options that may appear after CATALOG (on the same line) */
|
|
26
|
+
#define BKI_BOOTSTRAP
|
|
27
|
+
#define BKI_SHARED_RELATION
|
|
28
|
+
#define BKI_ROWTYPE_OID(oid,oidmacro)
|
|
29
|
+
#define BKI_SCHEMA_MACRO
|
|
30
|
+
|
|
31
|
+
/* Options that may appear after an attribute (on the same line) */
|
|
32
|
+
#define BKI_FORCE_NULL
|
|
33
|
+
#define BKI_FORCE_NOT_NULL
|
|
34
|
+
/* Specifies a default value for a catalog field */
|
|
35
|
+
#define BKI_DEFAULT(value)
|
|
36
|
+
/* Specifies a default value for auto-generated array types */
|
|
37
|
+
#define BKI_ARRAY_DEFAULT(value)
|
|
38
|
+
/*
|
|
39
|
+
* Indicates that the attribute contains OIDs referencing the named catalog;
|
|
40
|
+
* can be applied to columns of oid, regproc, oid[], or oidvector type.
|
|
41
|
+
* genbki.pl uses this to know how to perform name lookups in the initial
|
|
42
|
+
* data (if any), and it also feeds into regression-test validity checks.
|
|
43
|
+
* The _OPT suffix indicates that values can be zero instead of
|
|
44
|
+
* a valid OID reference.
|
|
45
|
+
*/
|
|
46
|
+
#define BKI_LOOKUP(catalog)
|
|
47
|
+
#define BKI_LOOKUP_OPT(catalog)
|
|
48
|
+
|
|
49
|
+
/*
|
|
50
|
+
* These lines are processed by genbki.pl to create the statements
|
|
51
|
+
* the bootstrap parser will turn into BootstrapToastTable commands.
|
|
52
|
+
* Each line specifies the system catalog that needs a toast table,
|
|
53
|
+
* the OID to assign to the toast table, and the OID to assign to the
|
|
54
|
+
* toast table's index. The reason we hard-wire these OIDs is that we
|
|
55
|
+
* need stable OIDs for shared relations, and that includes toast tables
|
|
56
|
+
* of shared relations.
|
|
57
|
+
*
|
|
58
|
+
* The DECLARE_TOAST_WITH_MACRO variant is used when C macros are needed
|
|
59
|
+
* for the toast table/index OIDs (usually only for shared catalogs).
|
|
60
|
+
*
|
|
61
|
+
* The macro definitions are just to keep the C compiler from spitting up.
|
|
62
|
+
*/
|
|
63
|
+
#define DECLARE_TOAST(name,toastoid,indexoid) extern int no_such_variable
|
|
64
|
+
#define DECLARE_TOAST_WITH_MACRO(name,toastoid,indexoid,toastoidmacro,indexoidmacro) extern int no_such_variable
|
|
65
|
+
|
|
66
|
+
/*
|
|
67
|
+
* These lines are processed by genbki.pl to create the statements
|
|
68
|
+
* the bootstrap parser will turn into DefineIndex calls.
|
|
69
|
+
*
|
|
70
|
+
* The keyword is DECLARE_INDEX or DECLARE_UNIQUE_INDEX or
|
|
71
|
+
* DECLARE_UNIQUE_INDEX_PKEY. ("PKEY" marks the index as being the catalog's
|
|
72
|
+
* primary key; currently this is only cosmetically different from a regular
|
|
73
|
+
* unique index. By convention, we usually make a catalog's OID column its
|
|
74
|
+
* pkey, if it has one.)
|
|
75
|
+
*
|
|
76
|
+
* The first two arguments are the index's name and OID. The third argument
|
|
77
|
+
* is the name of a #define to generate for its OID. References to the index
|
|
78
|
+
* in the C code should always use these #defines, not the actual index name
|
|
79
|
+
* (much less the numeric OID). The rest is much like a standard 'create
|
|
80
|
+
* index' SQL command.
|
|
81
|
+
*
|
|
82
|
+
* The macro definitions are just to keep the C compiler from spitting up.
|
|
83
|
+
*/
|
|
84
|
+
#define DECLARE_INDEX(name,oid,oidmacro,decl) extern int no_such_variable
|
|
85
|
+
#define DECLARE_UNIQUE_INDEX(name,oid,oidmacro,decl) extern int no_such_variable
|
|
86
|
+
#define DECLARE_UNIQUE_INDEX_PKEY(name,oid,oidmacro,decl) extern int no_such_variable
|
|
87
|
+
|
|
88
|
+
/*
|
|
89
|
+
* These lines inform genbki.pl about manually-assigned OIDs that do not
|
|
90
|
+
* correspond to any entry in the catalog *.dat files, but should be subject
|
|
91
|
+
* to uniqueness verification and renumber_oids.pl renumbering. A C macro
|
|
92
|
+
* to #define the given name is emitted into the corresponding *_d.h file.
|
|
93
|
+
*/
|
|
94
|
+
#define DECLARE_OID_DEFINING_MACRO(name,oid) extern int no_such_variable
|
|
95
|
+
|
|
96
|
+
/*
|
|
97
|
+
* These lines are processed by genbki.pl to create a table for use
|
|
98
|
+
* by the pg_get_catalog_foreign_keys() function. We do not have any
|
|
99
|
+
* mechanism that actually enforces foreign-key relationships in the
|
|
100
|
+
* system catalogs, but it is still useful to record the intended
|
|
101
|
+
* relationships in a machine-readable form.
|
|
102
|
+
*
|
|
103
|
+
* The keyword is DECLARE_FOREIGN_KEY[_OPT] or DECLARE_ARRAY_FOREIGN_KEY[_OPT].
|
|
104
|
+
* The first argument is a parenthesized list of the referencing columns;
|
|
105
|
+
* the second, the name of the referenced table; the third, a parenthesized
|
|
106
|
+
* list of the referenced columns. Use of the ARRAY macros means that the
|
|
107
|
+
* last referencing column is an array, each of whose elements is supposed
|
|
108
|
+
* to match some entry in the last referenced column. Use of the OPT suffix
|
|
109
|
+
* indicates that the referencing column(s) can be zero instead of a valid
|
|
110
|
+
* reference.
|
|
111
|
+
*
|
|
112
|
+
* Columns that are marked with a BKI_LOOKUP rule do not need an explicit
|
|
113
|
+
* DECLARE_FOREIGN_KEY macro, as genbki.pl can infer the FK relationship
|
|
114
|
+
* from that. Thus, these macros are only needed in special cases.
|
|
115
|
+
*
|
|
116
|
+
* The macro definitions are just to keep the C compiler from spitting up.
|
|
117
|
+
*/
|
|
118
|
+
#define DECLARE_FOREIGN_KEY(cols,reftbl,refcols) extern int no_such_variable
|
|
119
|
+
#define DECLARE_FOREIGN_KEY_OPT(cols,reftbl,refcols) extern int no_such_variable
|
|
120
|
+
#define DECLARE_ARRAY_FOREIGN_KEY(cols,reftbl,refcols) extern int no_such_variable
|
|
121
|
+
#define DECLARE_ARRAY_FOREIGN_KEY_OPT(cols,reftbl,refcols) extern int no_such_variable
|
|
122
|
+
|
|
123
|
+
/* The following are never defined; they are here only for documentation. */
|
|
124
|
+
|
|
125
|
+
/*
|
|
126
|
+
* Variable-length catalog fields (except possibly the first not nullable one)
|
|
127
|
+
* should not be visible in C structures, so they are made invisible by #ifdefs
|
|
128
|
+
* of an undefined symbol. See also the BOOTCOL_NULL_AUTO code in bootstrap.c
|
|
129
|
+
* for how this is handled.
|
|
130
|
+
*/
|
|
131
|
+
#undef CATALOG_VARLEN
|
|
132
|
+
|
|
133
|
+
/*
|
|
134
|
+
* There is code in some catalog headers that needs to be visible to clients,
|
|
135
|
+
* but we don't want clients to include the full header because of safety
|
|
136
|
+
* issues with other code in the header. To handle that, surround code that
|
|
137
|
+
* should be visible to clients with "#ifdef EXPOSE_TO_CLIENT_CODE". That
|
|
138
|
+
* instructs genbki.pl to copy the section when generating the corresponding
|
|
139
|
+
* "_d" header, which can be included by both client and backend code.
|
|
140
|
+
*/
|
|
141
|
+
#undef EXPOSE_TO_CLIENT_CODE
|
|
142
|
+
|
|
143
|
+
#endif /* GENBKI_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for catalog/index.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/catalog/index.h
|
|
@@ -29,6 +29,20 @@ typedef enum
|
|
|
29
29
|
INDEX_DROP_SET_DEAD
|
|
30
30
|
} IndexStateFlagsAction;
|
|
31
31
|
|
|
32
|
+
/* options for REINDEX */
|
|
33
|
+
typedef struct ReindexParams
|
|
34
|
+
{
|
|
35
|
+
bits32 options; /* bitmask of REINDEXOPT_* */
|
|
36
|
+
Oid tablespaceOid; /* New tablespace to move indexes to.
|
|
37
|
+
* InvalidOid to do nothing. */
|
|
38
|
+
} ReindexParams;
|
|
39
|
+
|
|
40
|
+
/* flag bits for ReindexParams->flags */
|
|
41
|
+
#define REINDEXOPT_VERBOSE 0x01 /* print progress info */
|
|
42
|
+
#define REINDEXOPT_REPORT_PROGRESS 0x02 /* report pgstat progress */
|
|
43
|
+
#define REINDEXOPT_MISSING_OK 0x04 /* skip missing relations */
|
|
44
|
+
#define REINDEXOPT_CONCURRENTLY 0x08 /* concurrent mode */
|
|
45
|
+
|
|
32
46
|
/* state info for validate_index bulkdelete callback */
|
|
33
47
|
typedef struct ValidateIndexState
|
|
34
48
|
{
|
|
@@ -57,7 +71,7 @@ extern Oid index_create(Relation heapRelation,
|
|
|
57
71
|
Oid indexRelationId,
|
|
58
72
|
Oid parentIndexRelid,
|
|
59
73
|
Oid parentConstraintId,
|
|
60
|
-
|
|
74
|
+
RelFileNumber relFileNumber,
|
|
61
75
|
IndexInfo *indexInfo,
|
|
62
76
|
List *indexColNames,
|
|
63
77
|
Oid accessMethodObjectId,
|
|
@@ -80,6 +94,7 @@ extern Oid index_create(Relation heapRelation,
|
|
|
80
94
|
|
|
81
95
|
extern Oid index_concurrently_create_copy(Relation heapRelation,
|
|
82
96
|
Oid oldIndexId,
|
|
97
|
+
Oid tablespaceOid,
|
|
83
98
|
const char *newName);
|
|
84
99
|
|
|
85
100
|
extern void index_concurrently_build(Oid heapRelationId,
|
|
@@ -134,7 +149,7 @@ extern void index_set_state_flags(Oid indexId, IndexStateFlagsAction action);
|
|
|
134
149
|
extern Oid IndexGetRelation(Oid indexId, bool missing_ok);
|
|
135
150
|
|
|
136
151
|
extern void reindex_index(Oid indexId, bool skip_constraint_checks,
|
|
137
|
-
char
|
|
152
|
+
char persistence, ReindexParams *params);
|
|
138
153
|
|
|
139
154
|
/* Flag bits for reindex_relation(): */
|
|
140
155
|
#define REINDEX_REL_PROCESS_TOAST 0x01
|
|
@@ -143,7 +158,7 @@ extern void reindex_index(Oid indexId, bool skip_constraint_checks,
|
|
|
143
158
|
#define REINDEX_REL_FORCE_INDEXES_UNLOGGED 0x08
|
|
144
159
|
#define REINDEX_REL_FORCE_INDEXES_PERMANENT 0x10
|
|
145
160
|
|
|
146
|
-
extern bool reindex_relation(Oid relid, int flags,
|
|
161
|
+
extern bool reindex_relation(Oid relid, int flags, ReindexParams *params);
|
|
147
162
|
|
|
148
163
|
extern bool ReindexIsProcessingHeap(Oid heapOid);
|
|
149
164
|
extern bool ReindexIsProcessingIndex(Oid indexOid);
|
|
@@ -153,7 +168,7 @@ extern Size EstimateReindexStateSpace(void);
|
|
|
153
168
|
extern void SerializeReindexState(Size maxsize, char *start_address);
|
|
154
169
|
extern void RestoreReindexState(void *reindexstate);
|
|
155
170
|
|
|
156
|
-
extern void IndexSetParentIndex(Relation
|
|
171
|
+
extern void IndexSetParentIndex(Relation partitionIdx, Oid parentOid);
|
|
157
172
|
|
|
158
173
|
|
|
159
174
|
/*
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* indexing.h
|
|
4
|
+
* This file provides some definitions to support indexing
|
|
5
|
+
* on system catalogs
|
|
6
|
+
*
|
|
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/catalog/indexing.h
|
|
12
|
+
*
|
|
13
|
+
*-------------------------------------------------------------------------
|
|
14
|
+
*/
|
|
15
|
+
#ifndef INDEXING_H
|
|
16
|
+
#define INDEXING_H
|
|
17
|
+
|
|
18
|
+
#include "access/htup.h"
|
|
19
|
+
#include "nodes/execnodes.h"
|
|
20
|
+
#include "utils/relcache.h"
|
|
21
|
+
|
|
22
|
+
/*
|
|
23
|
+
* The state object used by CatalogOpenIndexes and friends is actually the
|
|
24
|
+
* same as the executor's ResultRelInfo, but we give it another type name
|
|
25
|
+
* to decouple callers from that fact.
|
|
26
|
+
*/
|
|
27
|
+
typedef struct ResultRelInfo *CatalogIndexState;
|
|
28
|
+
|
|
29
|
+
/*
|
|
30
|
+
* Cap the maximum amount of bytes allocated for multi-inserts with system
|
|
31
|
+
* catalogs, limiting the number of slots used.
|
|
32
|
+
*/
|
|
33
|
+
#define MAX_CATALOG_MULTI_INSERT_BYTES 65535
|
|
34
|
+
|
|
35
|
+
/*
|
|
36
|
+
* indexing.c prototypes
|
|
37
|
+
*/
|
|
38
|
+
extern CatalogIndexState CatalogOpenIndexes(Relation heapRel);
|
|
39
|
+
extern void CatalogCloseIndexes(CatalogIndexState indstate);
|
|
40
|
+
extern void CatalogTupleInsert(Relation heapRel, HeapTuple tup);
|
|
41
|
+
extern void CatalogTupleInsertWithInfo(Relation heapRel, HeapTuple tup,
|
|
42
|
+
CatalogIndexState indstate);
|
|
43
|
+
extern void CatalogTuplesMultiInsertWithInfo(Relation heapRel,
|
|
44
|
+
TupleTableSlot **slot,
|
|
45
|
+
int ntuples,
|
|
46
|
+
CatalogIndexState indstate);
|
|
47
|
+
extern void CatalogTupleUpdate(Relation heapRel, ItemPointer otid,
|
|
48
|
+
HeapTuple tup);
|
|
49
|
+
extern void CatalogTupleUpdateWithInfo(Relation heapRel,
|
|
50
|
+
ItemPointer otid, HeapTuple tup,
|
|
51
|
+
CatalogIndexState indstate);
|
|
52
|
+
extern void CatalogTupleDelete(Relation heapRel, ItemPointer tid);
|
|
53
|
+
|
|
54
|
+
#endif /* INDEXING_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for functions in backend/catalog/namespace.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/catalog/namespace.h
|
|
@@ -30,6 +30,7 @@ typedef struct _FuncCandidateList
|
|
|
30
30
|
struct _FuncCandidateList *next;
|
|
31
31
|
int pathpos; /* for internal use of namespace lookup */
|
|
32
32
|
Oid oid; /* the function or operator's OID */
|
|
33
|
+
int nominalnargs; /* either pronargs or length(proallargtypes) */
|
|
33
34
|
int nargs; /* number of arg types returned */
|
|
34
35
|
int nvargs; /* number of args to become variadic array */
|
|
35
36
|
int ndargs; /* number of defaulted args */
|
|
@@ -84,7 +85,7 @@ extern Oid RangeVarGetRelidExtended(const RangeVar *relation,
|
|
|
84
85
|
RangeVarGetRelidCallback callback,
|
|
85
86
|
void *callback_arg);
|
|
86
87
|
extern Oid RangeVarGetCreationNamespace(const RangeVar *newRelation);
|
|
87
|
-
extern Oid RangeVarGetAndCheckCreationNamespace(RangeVar *
|
|
88
|
+
extern Oid RangeVarGetAndCheckCreationNamespace(RangeVar *relation,
|
|
88
89
|
LOCKMODE lockmode,
|
|
89
90
|
Oid *existing_relation_id);
|
|
90
91
|
extern void RangeVarAdjustRelationPersistence(RangeVar *newRelation, Oid nspid);
|
|
@@ -99,6 +100,7 @@ extern FuncCandidateList FuncnameGetCandidates(List *names,
|
|
|
99
100
|
int nargs, List *argnames,
|
|
100
101
|
bool expand_variadic,
|
|
101
102
|
bool expand_defaults,
|
|
103
|
+
bool include_out_arguments,
|
|
102
104
|
bool missing_ok);
|
|
103
105
|
extern bool FunctionIsVisible(Oid funcid);
|
|
104
106
|
|
|
@@ -180,7 +182,7 @@ extern void AtEOSubXact_Namespace(bool isCommit, SubTransactionId mySubid,
|
|
|
180
182
|
SubTransactionId parentSubid);
|
|
181
183
|
|
|
182
184
|
/* stuff for search_path GUC variable */
|
|
183
|
-
extern char *namespace_search_path;
|
|
185
|
+
extern PGDLLIMPORT char *namespace_search_path;
|
|
184
186
|
|
|
185
187
|
extern List *fetch_search_path(bool includeImplicit);
|
|
186
188
|
extern int fetch_search_path_array(Oid *sarray, int sarray_len);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Object access hooks.
|
|
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
|
|
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
*
|
|
18
18
|
* OAT_POST_CREATE should be invoked just after the object is created.
|
|
19
19
|
* Typically, this is done after inserting the primary catalog records and
|
|
20
|
-
* associated dependencies.
|
|
20
|
+
* associated dependencies. The command counter may or may not be incremented
|
|
21
|
+
* at the time the hook is invoked; if not, the extension can use SnapshotSelf
|
|
22
|
+
* to get the new version of the tuple.
|
|
21
23
|
*
|
|
22
24
|
* OAT_DROP should be invoked just before deletion of objects; typically
|
|
23
25
|
* deleteOneObject(). Its arguments are packed within ObjectAccessDrop.
|
|
@@ -121,15 +123,23 @@ typedef struct
|
|
|
121
123
|
bool result;
|
|
122
124
|
} ObjectAccessNamespaceSearch;
|
|
123
125
|
|
|
124
|
-
/* Plugin provides a hook function matching
|
|
126
|
+
/* Plugin provides a hook function matching one or both of these signatures. */
|
|
125
127
|
typedef void (*object_access_hook_type) (ObjectAccessType access,
|
|
126
128
|
Oid classId,
|
|
127
129
|
Oid objectId,
|
|
128
130
|
int subId,
|
|
129
131
|
void *arg);
|
|
130
132
|
|
|
133
|
+
typedef void (*object_access_hook_type_str) (ObjectAccessType access,
|
|
134
|
+
Oid classId,
|
|
135
|
+
const char *objectStr,
|
|
136
|
+
int subId,
|
|
137
|
+
void *arg);
|
|
138
|
+
|
|
131
139
|
/* Plugin sets this variable to a suitable hook function. */
|
|
132
140
|
extern PGDLLIMPORT object_access_hook_type object_access_hook;
|
|
141
|
+
extern PGDLLIMPORT object_access_hook_type_str object_access_hook_str;
|
|
142
|
+
|
|
133
143
|
|
|
134
144
|
/* Core code uses these functions to call the hook (see macros below). */
|
|
135
145
|
extern void RunObjectPostCreateHook(Oid classId, Oid objectId, int subId,
|
|
@@ -142,6 +152,18 @@ extern void RunObjectPostAlterHook(Oid classId, Oid objectId, int subId,
|
|
|
142
152
|
extern bool RunNamespaceSearchHook(Oid objectId, bool ereport_on_violation);
|
|
143
153
|
extern void RunFunctionExecuteHook(Oid objectId);
|
|
144
154
|
|
|
155
|
+
/* String versions */
|
|
156
|
+
extern void RunObjectPostCreateHookStr(Oid classId, const char *objectName, int subId,
|
|
157
|
+
bool is_internal);
|
|
158
|
+
extern void RunObjectDropHookStr(Oid classId, const char *objectName, int subId,
|
|
159
|
+
int dropflags);
|
|
160
|
+
extern void RunObjectTruncateHookStr(const char *objectName);
|
|
161
|
+
extern void RunObjectPostAlterHookStr(Oid classId, const char *objectName, int subId,
|
|
162
|
+
Oid auxiliaryId, bool is_internal);
|
|
163
|
+
extern bool RunNamespaceSearchHookStr(const char *objectName, bool ereport_on_violation);
|
|
164
|
+
extern void RunFunctionExecuteHookStr(const char *objectName);
|
|
165
|
+
|
|
166
|
+
|
|
145
167
|
/*
|
|
146
168
|
* The following macros are wrappers around the functions above; these should
|
|
147
169
|
* normally be used to invoke the hook in lieu of calling the above functions
|
|
@@ -194,4 +216,52 @@ extern void RunFunctionExecuteHook(Oid objectId);
|
|
|
194
216
|
RunFunctionExecuteHook(objectId); \
|
|
195
217
|
} while(0)
|
|
196
218
|
|
|
219
|
+
|
|
220
|
+
#define InvokeObjectPostCreateHookStr(classId,objectName,subId) \
|
|
221
|
+
InvokeObjectPostCreateHookArgStr((classId),(objectName),(subId),false)
|
|
222
|
+
#define InvokeObjectPostCreateHookArgStr(classId,objectName,subId,is_internal) \
|
|
223
|
+
do { \
|
|
224
|
+
if (object_access_hook_str) \
|
|
225
|
+
RunObjectPostCreateHookStr((classId),(objectName),(subId), \
|
|
226
|
+
(is_internal)); \
|
|
227
|
+
} while(0)
|
|
228
|
+
|
|
229
|
+
#define InvokeObjectDropHookStr(classId,objectName,subId) \
|
|
230
|
+
InvokeObjectDropHookArgStr((classId),(objectName),(subId),0)
|
|
231
|
+
#define InvokeObjectDropHookArgStr(classId,objectName,subId,dropflags) \
|
|
232
|
+
do { \
|
|
233
|
+
if (object_access_hook_str) \
|
|
234
|
+
RunObjectDropHookStr((classId),(objectName),(subId), \
|
|
235
|
+
(dropflags)); \
|
|
236
|
+
} while(0)
|
|
237
|
+
|
|
238
|
+
#define InvokeObjectTruncateHookStr(objectName) \
|
|
239
|
+
do { \
|
|
240
|
+
if (object_access_hook_str) \
|
|
241
|
+
RunObjectTruncateHookStr(objectName); \
|
|
242
|
+
} while(0)
|
|
243
|
+
|
|
244
|
+
#define InvokeObjectPostAlterHookStr(classId,objectName,subId) \
|
|
245
|
+
InvokeObjectPostAlterHookArgStr((classId),(objectName),(subId), \
|
|
246
|
+
InvalidOid,false)
|
|
247
|
+
#define InvokeObjectPostAlterHookArgStr(classId,objectName,subId, \
|
|
248
|
+
auxiliaryId,is_internal) \
|
|
249
|
+
do { \
|
|
250
|
+
if (object_access_hook_str) \
|
|
251
|
+
RunObjectPostAlterHookStr((classId),(objectName),(subId), \
|
|
252
|
+
(auxiliaryId),(is_internal)); \
|
|
253
|
+
} while(0)
|
|
254
|
+
|
|
255
|
+
#define InvokeNamespaceSearchHookStr(objectName, ereport_on_violation) \
|
|
256
|
+
(!object_access_hook_str \
|
|
257
|
+
? true \
|
|
258
|
+
: RunNamespaceSearchHookStr((objectName), (ereport_on_violation)))
|
|
259
|
+
|
|
260
|
+
#define InvokeFunctionExecuteHookStr(objectName) \
|
|
261
|
+
do { \
|
|
262
|
+
if (object_access_hook_str) \
|
|
263
|
+
RunFunctionExecuteHookStr(objectName); \
|
|
264
|
+
} while(0)
|
|
265
|
+
|
|
266
|
+
|
|
197
267
|
#endif /* OBJECTACCESS_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* objectaddress.h
|
|
4
4
|
* functions for working with object addresses
|
|
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/catalog/objectaddress.h
|
|
@@ -28,7 +28,7 @@ typedef struct ObjectAddress
|
|
|
28
28
|
int32 objectSubId; /* Subitem within object (eg column), or 0 */
|
|
29
29
|
} ObjectAddress;
|
|
30
30
|
|
|
31
|
-
extern const ObjectAddress InvalidObjectAddress;
|
|
31
|
+
extern PGDLLIMPORT const ObjectAddress InvalidObjectAddress;
|
|
32
32
|
|
|
33
33
|
#define ObjectAddressSubSet(addr, class_id, object_id, object_sub_id) \
|
|
34
34
|
do { \
|
|
@@ -55,6 +55,7 @@ extern void check_object_ownership(Oid roleid,
|
|
|
55
55
|
extern Oid get_object_namespace(const ObjectAddress *address);
|
|
56
56
|
|
|
57
57
|
extern bool is_objectclass_supported(Oid class_id);
|
|
58
|
+
extern const char *get_object_class_descr(Oid class_id);
|
|
58
59
|
extern Oid get_object_oid_index(Oid class_id);
|
|
59
60
|
extern int get_object_catcache_oid(Oid class_id);
|
|
60
61
|
extern int get_object_catcache_name(Oid class_id);
|
|
@@ -69,14 +70,18 @@ extern bool get_object_namensp_unique(Oid class_id);
|
|
|
69
70
|
extern HeapTuple get_catalog_object_by_oid(Relation catalog,
|
|
70
71
|
AttrNumber oidcol, Oid objectId);
|
|
71
72
|
|
|
72
|
-
extern char *getObjectDescription(const ObjectAddress *object
|
|
73
|
+
extern char *getObjectDescription(const ObjectAddress *object,
|
|
74
|
+
bool missing_ok);
|
|
73
75
|
extern char *getObjectDescriptionOids(Oid classid, Oid objid);
|
|
74
76
|
|
|
75
77
|
extern int read_objtype_from_string(const char *objtype);
|
|
76
|
-
extern char *getObjectTypeDescription(const ObjectAddress *object
|
|
77
|
-
|
|
78
|
-
extern char *
|
|
79
|
-
|
|
78
|
+
extern char *getObjectTypeDescription(const ObjectAddress *object,
|
|
79
|
+
bool missing_ok);
|
|
80
|
+
extern char *getObjectIdentity(const ObjectAddress *object,
|
|
81
|
+
bool missing_ok);
|
|
82
|
+
extern char *getObjectIdentityParts(const ObjectAddress *object,
|
|
83
|
+
List **objname, List **objargs,
|
|
84
|
+
bool missing_ok);
|
|
80
85
|
extern struct ArrayType *strlist_to_textarray(List *list);
|
|
81
86
|
|
|
82
87
|
extern ObjectType get_relkind_objtype(char relkind);
|