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
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES define and remove utility 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/commands/defrem.h
|
|
@@ -29,15 +29,13 @@ extern ObjectAddress DefineIndex(Oid relationId,
|
|
|
29
29
|
Oid indexRelationId,
|
|
30
30
|
Oid parentIndexId,
|
|
31
31
|
Oid parentConstraintId,
|
|
32
|
+
int total_parts,
|
|
32
33
|
bool is_alter_table,
|
|
33
34
|
bool check_rights,
|
|
34
35
|
bool check_not_in_use,
|
|
35
36
|
bool skip_build,
|
|
36
37
|
bool quiet);
|
|
37
|
-
extern void
|
|
38
|
-
extern Oid ReindexTable(RangeVar *relation, int options, bool concurrent);
|
|
39
|
-
extern void ReindexMultipleTables(const char *objectName, ReindexObjectType objectKind,
|
|
40
|
-
int options, bool concurrent);
|
|
38
|
+
extern void ExecReindex(ParseState *pstate, ReindexStmt *stmt, bool isTopLevel);
|
|
41
39
|
extern char *makeObjectName(const char *name1, const char *name2,
|
|
42
40
|
const char *label);
|
|
43
41
|
extern char *ChooseRelationName(const char *name1, const char *name2,
|
|
@@ -56,12 +54,10 @@ extern ObjectAddress CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt
|
|
|
56
54
|
extern void RemoveFunctionById(Oid funcOid);
|
|
57
55
|
extern ObjectAddress AlterFunction(ParseState *pstate, AlterFunctionStmt *stmt);
|
|
58
56
|
extern ObjectAddress CreateCast(CreateCastStmt *stmt);
|
|
59
|
-
extern void DropCastById(Oid castOid);
|
|
60
57
|
extern ObjectAddress CreateTransform(CreateTransformStmt *stmt);
|
|
61
|
-
extern void DropTransformById(Oid transformOid);
|
|
62
58
|
extern void IsThereFunctionInNamespace(const char *proname, int pronargs,
|
|
63
59
|
oidvector *proargtypes, Oid nspOid);
|
|
64
|
-
extern void ExecuteDoStmt(DoStmt *stmt, bool atomic);
|
|
60
|
+
extern void ExecuteDoStmt(ParseState *pstate, DoStmt *stmt, bool atomic);
|
|
65
61
|
extern void ExecuteCallStmt(CallStmt *stmt, ParamListInfo params, bool atomic, DestReceiver *dest);
|
|
66
62
|
extern TupleDesc CallStmtResultDesc(CallStmt *stmt);
|
|
67
63
|
extern Oid get_transform_oid(Oid type_id, Oid lang_id, bool missing_ok);
|
|
@@ -70,9 +66,11 @@ extern void interpret_function_parameter_list(ParseState *pstate,
|
|
|
70
66
|
Oid languageOid,
|
|
71
67
|
ObjectType objtype,
|
|
72
68
|
oidvector **parameterTypes,
|
|
69
|
+
List **parameterTypes_list,
|
|
73
70
|
ArrayType **allParameterTypes,
|
|
74
71
|
ArrayType **parameterModes,
|
|
75
72
|
ArrayType **parameterNames,
|
|
73
|
+
List **inParameterNames_list,
|
|
76
74
|
List **parameterDefaults,
|
|
77
75
|
Oid *variadicArgType,
|
|
78
76
|
Oid *requiredResultType);
|
|
@@ -86,9 +84,8 @@ extern ObjectAddress AlterOperator(AlterOperatorStmt *stmt);
|
|
|
86
84
|
extern ObjectAddress CreateStatistics(CreateStatsStmt *stmt);
|
|
87
85
|
extern ObjectAddress AlterStatistics(AlterStatsStmt *stmt);
|
|
88
86
|
extern void RemoveStatisticsById(Oid statsOid);
|
|
89
|
-
extern void
|
|
90
|
-
|
|
91
|
-
Oid oldColumnType, Oid newColumnType);
|
|
87
|
+
extern void RemoveStatisticsDataById(Oid statsOid, bool inh);
|
|
88
|
+
extern Oid StatisticsGetRelation(Oid statId, bool missing_ok);
|
|
92
89
|
|
|
93
90
|
/* commands/aggregatecmds.c */
|
|
94
91
|
extern ObjectAddress DefineAggregate(ParseState *pstate, List *name, List *args, bool oldstyle,
|
|
@@ -98,10 +95,6 @@ extern ObjectAddress DefineAggregate(ParseState *pstate, List *name, List *args,
|
|
|
98
95
|
extern ObjectAddress DefineOpClass(CreateOpClassStmt *stmt);
|
|
99
96
|
extern ObjectAddress DefineOpFamily(CreateOpFamilyStmt *stmt);
|
|
100
97
|
extern Oid AlterOpFamily(AlterOpFamilyStmt *stmt);
|
|
101
|
-
extern void RemoveOpClassById(Oid opclassOid);
|
|
102
|
-
extern void RemoveOpFamilyById(Oid opfamilyOid);
|
|
103
|
-
extern void RemoveAmOpEntryById(Oid entryOid);
|
|
104
|
-
extern void RemoveAmProcEntryById(Oid entryOid);
|
|
105
98
|
extern void IsThereOpClassInNamespace(const char *opcname, Oid opcmethod,
|
|
106
99
|
Oid opcnamespace);
|
|
107
100
|
extern void IsThereOpFamilyInNamespace(const char *opfname, Oid opfmethod,
|
|
@@ -111,14 +104,11 @@ extern Oid get_opfamily_oid(Oid amID, List *opfamilyname, bool missing_ok);
|
|
|
111
104
|
|
|
112
105
|
/* commands/tsearchcmds.c */
|
|
113
106
|
extern ObjectAddress DefineTSParser(List *names, List *parameters);
|
|
114
|
-
extern void RemoveTSParserById(Oid prsId);
|
|
115
107
|
|
|
116
108
|
extern ObjectAddress DefineTSDictionary(List *names, List *parameters);
|
|
117
|
-
extern void RemoveTSDictionaryById(Oid dictId);
|
|
118
109
|
extern ObjectAddress AlterTSDictionary(AlterTSDictionaryStmt *stmt);
|
|
119
110
|
|
|
120
111
|
extern ObjectAddress DefineTSTemplate(List *names, List *parameters);
|
|
121
|
-
extern void RemoveTSTemplateById(Oid tmplId);
|
|
122
112
|
|
|
123
113
|
extern ObjectAddress DefineTSConfiguration(List *names, List *parameters,
|
|
124
114
|
ObjectAddress *copied);
|
|
@@ -133,16 +123,13 @@ extern ObjectAddress AlterForeignServerOwner(const char *name, Oid newOwnerId);
|
|
|
133
123
|
extern void AlterForeignServerOwner_oid(Oid, Oid newOwnerId);
|
|
134
124
|
extern ObjectAddress AlterForeignDataWrapperOwner(const char *name, Oid newOwnerId);
|
|
135
125
|
extern void AlterForeignDataWrapperOwner_oid(Oid fwdId, Oid newOwnerId);
|
|
136
|
-
extern ObjectAddress CreateForeignDataWrapper(CreateFdwStmt *stmt);
|
|
137
|
-
extern ObjectAddress AlterForeignDataWrapper(AlterFdwStmt *stmt);
|
|
138
|
-
extern void RemoveForeignDataWrapperById(Oid fdwId);
|
|
126
|
+
extern ObjectAddress CreateForeignDataWrapper(ParseState *pstate, CreateFdwStmt *stmt);
|
|
127
|
+
extern ObjectAddress AlterForeignDataWrapper(ParseState *pstate, AlterFdwStmt *stmt);
|
|
139
128
|
extern ObjectAddress CreateForeignServer(CreateForeignServerStmt *stmt);
|
|
140
129
|
extern ObjectAddress AlterForeignServer(AlterForeignServerStmt *stmt);
|
|
141
|
-
extern void RemoveForeignServerById(Oid srvId);
|
|
142
130
|
extern ObjectAddress CreateUserMapping(CreateUserMappingStmt *stmt);
|
|
143
131
|
extern ObjectAddress AlterUserMapping(AlterUserMappingStmt *stmt);
|
|
144
132
|
extern Oid RemoveUserMapping(DropUserMappingStmt *stmt);
|
|
145
|
-
extern void RemoveUserMappingById(Oid umId);
|
|
146
133
|
extern void CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid);
|
|
147
134
|
extern void ImportForeignSchema(ImportForeignSchemaStmt *stmt);
|
|
148
135
|
extern Datum transformGenericOptions(Oid catalogId,
|
|
@@ -152,7 +139,6 @@ extern Datum transformGenericOptions(Oid catalogId,
|
|
|
152
139
|
|
|
153
140
|
/* commands/amcmds.c */
|
|
154
141
|
extern ObjectAddress CreateAccessMethod(CreateAmStmt *stmt);
|
|
155
|
-
extern void RemoveAccessMethodById(Oid amOid);
|
|
156
142
|
extern Oid get_index_am_oid(const char *amname, bool missing_ok);
|
|
157
143
|
extern Oid get_table_am_oid(const char *amname, bool missing_ok);
|
|
158
144
|
extern Oid get_am_oid(const char *amname, bool missing_ok);
|
|
@@ -165,9 +151,11 @@ extern double defGetNumeric(DefElem *def);
|
|
|
165
151
|
extern bool defGetBoolean(DefElem *def);
|
|
166
152
|
extern int32 defGetInt32(DefElem *def);
|
|
167
153
|
extern int64 defGetInt64(DefElem *def);
|
|
154
|
+
extern Oid defGetObjectId(DefElem *def);
|
|
168
155
|
extern List *defGetQualifiedName(DefElem *def);
|
|
169
156
|
extern TypeName *defGetTypeName(DefElem *def);
|
|
170
157
|
extern int defGetTypeLength(DefElem *def);
|
|
171
158
|
extern List *defGetStringList(DefElem *def);
|
|
159
|
+
extern void errorConflictingDefElem(DefElem *defel, ParseState *pstate) pg_attribute_noreturn();
|
|
172
160
|
|
|
173
161
|
#endif /* DEFREM_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* event_trigger.h
|
|
4
4
|
* Declarations for command trigger handling.
|
|
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/commands/event_trigger.h
|
|
@@ -32,6 +32,7 @@ typedef struct EventTriggerData
|
|
|
32
32
|
#define AT_REWRITE_ALTER_PERSISTENCE 0x01
|
|
33
33
|
#define AT_REWRITE_DEFAULT_VAL 0x02
|
|
34
34
|
#define AT_REWRITE_COLUMN_REWRITE 0x04
|
|
35
|
+
#define AT_REWRITE_ACCESS_METHOD 0x08
|
|
35
36
|
|
|
36
37
|
/*
|
|
37
38
|
* EventTriggerData is the node type that is passed as fmgr "context" info
|
|
@@ -41,7 +42,6 @@ typedef struct EventTriggerData
|
|
|
41
42
|
((fcinfo)->context != NULL && IsA((fcinfo)->context, EventTriggerData))
|
|
42
43
|
|
|
43
44
|
extern Oid CreateEventTrigger(CreateEventTrigStmt *stmt);
|
|
44
|
-
extern void RemoveEventTriggerById(Oid trigOid);
|
|
45
45
|
extern Oid get_event_trigger_oid(const char *trigname, bool missing_ok);
|
|
46
46
|
|
|
47
47
|
extern Oid AlterEventTrigger(AlterEventTrigStmt *stmt);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* explain.h
|
|
4
4
|
* prototypes for explain.c
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994-5, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/commands/explain.h
|
|
@@ -46,6 +46,7 @@ typedef struct ExplainState
|
|
|
46
46
|
bool timing; /* print detailed node timing */
|
|
47
47
|
bool summary; /* print total planning and execution timing */
|
|
48
48
|
bool settings; /* print modified settings */
|
|
49
|
+
bool generic; /* generate a generic plan */
|
|
49
50
|
ExplainFormat format; /* output format */
|
|
50
51
|
/* state for output formatting --- not reset for each new plan tree */
|
|
51
52
|
int indent; /* current indentation level */
|
|
@@ -99,6 +100,7 @@ extern void ExplainPrintTriggers(ExplainState *es, QueryDesc *queryDesc);
|
|
|
99
100
|
extern void ExplainPrintJITSummary(ExplainState *es, QueryDesc *queryDesc);
|
|
100
101
|
|
|
101
102
|
extern void ExplainQueryText(ExplainState *es, QueryDesc *queryDesc);
|
|
103
|
+
extern void ExplainQueryParameters(ExplainState *es, ParamListInfo params, int maxlen);
|
|
102
104
|
|
|
103
105
|
extern void ExplainBeginOutput(ExplainState *es);
|
|
104
106
|
extern void ExplainEndOutput(ExplainState *es);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Tablespace management commands (create/drop tablespace).
|
|
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/commands/tablespace.h
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
#include "lib/stringinfo.h"
|
|
20
20
|
#include "nodes/parsenodes.h"
|
|
21
21
|
|
|
22
|
+
extern PGDLLIMPORT bool allow_in_place_tablespaces;
|
|
23
|
+
|
|
22
24
|
/* XLOG stuff */
|
|
23
25
|
#define XLOG_TBLSPC_CREATE 0x00
|
|
24
26
|
#define XLOG_TBLSPC_DROP 0x10
|
|
@@ -48,7 +50,7 @@ extern void DropTableSpace(DropTableSpaceStmt *stmt);
|
|
|
48
50
|
extern ObjectAddress RenameTableSpace(const char *oldname, const char *newname);
|
|
49
51
|
extern Oid AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt);
|
|
50
52
|
|
|
51
|
-
extern void TablespaceCreateDbspace(Oid
|
|
53
|
+
extern void TablespaceCreateDbspace(Oid spcOid, Oid dbOid, bool isRedo);
|
|
52
54
|
|
|
53
55
|
extern Oid GetDefaultTablespace(char relpersistence, bool partitioned);
|
|
54
56
|
|
|
@@ -60,8 +62,8 @@ extern char *get_tablespace_name(Oid spc_oid);
|
|
|
60
62
|
extern bool directory_is_empty(const char *path);
|
|
61
63
|
extern void remove_tablespace_symlink(const char *linkloc);
|
|
62
64
|
|
|
63
|
-
extern void tblspc_redo(XLogReaderState *
|
|
64
|
-
extern void tblspc_desc(StringInfo buf, XLogReaderState *
|
|
65
|
+
extern void tblspc_redo(XLogReaderState *record);
|
|
66
|
+
extern void tblspc_desc(StringInfo buf, XLogReaderState *record);
|
|
65
67
|
extern const char *tblspc_identify(uint8 info);
|
|
66
68
|
|
|
67
69
|
#endif /* TABLESPACE_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* trigger.h
|
|
4
4
|
* Declarations for trigger handling.
|
|
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/commands/trigger.h
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
#ifndef TRIGGER_H
|
|
14
14
|
#define TRIGGER_H
|
|
15
15
|
|
|
16
|
+
#include "access/tableam.h"
|
|
16
17
|
#include "catalog/objectaddress.h"
|
|
17
18
|
#include "nodes/execnodes.h"
|
|
18
19
|
#include "nodes/parsenodes.h"
|
|
@@ -44,9 +45,9 @@ typedef struct TriggerData
|
|
|
44
45
|
|
|
45
46
|
/*
|
|
46
47
|
* The state for capturing old and new tuples into transition tables for a
|
|
47
|
-
* single ModifyTable node (or other operation source, e.g.
|
|
48
|
+
* single ModifyTable node (or other operation source, e.g. copyfrom.c).
|
|
48
49
|
*
|
|
49
|
-
* This is per-caller to avoid conflicts in setting
|
|
50
|
+
* This is per-caller to avoid conflicts in setting
|
|
50
51
|
* tcs_original_insert_tuple. Note, however, that the pointed-to
|
|
51
52
|
* private data may be shared across multiple callers.
|
|
52
53
|
*/
|
|
@@ -65,20 +66,12 @@ typedef struct TransitionCaptureState
|
|
|
65
66
|
bool tcs_update_new_table;
|
|
66
67
|
bool tcs_insert_new_table;
|
|
67
68
|
|
|
68
|
-
/*
|
|
69
|
-
* For UPDATE and DELETE, AfterTriggerSaveEvent may need to convert the
|
|
70
|
-
* new and old tuples from a child table's format to the format of the
|
|
71
|
-
* relation named in a query so that it is compatible with the transition
|
|
72
|
-
* tuplestores. The caller must store the conversion map here if so.
|
|
73
|
-
*/
|
|
74
|
-
TupleConversionMap *tcs_map;
|
|
75
|
-
|
|
76
69
|
/*
|
|
77
70
|
* For INSERT and COPY, it would be wasteful to convert tuples from child
|
|
78
71
|
* format to parent format after they have already been converted in the
|
|
79
72
|
* opposite direction during routing. In that case we bypass conversion
|
|
80
|
-
* and allow the inserting code (
|
|
81
|
-
* a slot containing the original tuple directly.
|
|
73
|
+
* and allow the inserting code (copyfrom.c and nodeModifyTable.c) to
|
|
74
|
+
* provide a slot containing the original tuple directly.
|
|
82
75
|
*/
|
|
83
76
|
TupleTableSlot *tcs_original_insert_tuple;
|
|
84
77
|
|
|
@@ -162,14 +155,24 @@ extern ObjectAddress CreateTrigger(CreateTrigStmt *stmt, const char *queryString
|
|
|
162
155
|
Oid relOid, Oid refRelOid, Oid constraintOid, Oid indexOid,
|
|
163
156
|
Oid funcoid, Oid parentTriggerOid, Node *whenClause,
|
|
164
157
|
bool isInternal, bool in_partition);
|
|
165
|
-
|
|
158
|
+
extern ObjectAddress CreateTriggerFiringOn(CreateTrigStmt *stmt, const char *queryString,
|
|
159
|
+
Oid relOid, Oid refRelOid, Oid constraintOid,
|
|
160
|
+
Oid indexOid, Oid funcoid, Oid parentTriggerOid,
|
|
161
|
+
Node *whenClause, bool isInternal, bool in_partition,
|
|
162
|
+
char trigger_fires_when);
|
|
163
|
+
|
|
164
|
+
extern void TriggerSetParentTrigger(Relation trigRel,
|
|
165
|
+
Oid childTrigId,
|
|
166
|
+
Oid parentTrigId,
|
|
167
|
+
Oid childTableId);
|
|
166
168
|
extern void RemoveTriggerById(Oid trigOid);
|
|
167
|
-
extern Oid get_trigger_oid(Oid relid, const char *
|
|
169
|
+
extern Oid get_trigger_oid(Oid relid, const char *trigname, bool missing_ok);
|
|
168
170
|
|
|
169
171
|
extern ObjectAddress renametrig(RenameStmt *stmt);
|
|
170
172
|
|
|
171
|
-
extern void EnableDisableTrigger(Relation rel, const char *tgname,
|
|
172
|
-
char fires_when, bool skip_system,
|
|
173
|
+
extern void EnableDisableTrigger(Relation rel, const char *tgname, Oid tgparent,
|
|
174
|
+
char fires_when, bool skip_system, bool recurse,
|
|
175
|
+
LOCKMODE lockmode);
|
|
173
176
|
|
|
174
177
|
extern void RelationBuildTriggers(Relation relation);
|
|
175
178
|
|
|
@@ -208,12 +211,15 @@ extern bool ExecBRDeleteTriggers(EState *estate,
|
|
|
208
211
|
ResultRelInfo *relinfo,
|
|
209
212
|
ItemPointer tupleid,
|
|
210
213
|
HeapTuple fdw_trigtuple,
|
|
211
|
-
TupleTableSlot **epqslot
|
|
214
|
+
TupleTableSlot **epqslot,
|
|
215
|
+
TM_Result *tmresult,
|
|
216
|
+
TM_FailureData *tmfd);
|
|
212
217
|
extern void ExecARDeleteTriggers(EState *estate,
|
|
213
218
|
ResultRelInfo *relinfo,
|
|
214
219
|
ItemPointer tupleid,
|
|
215
220
|
HeapTuple fdw_trigtuple,
|
|
216
|
-
TransitionCaptureState *transition_capture
|
|
221
|
+
TransitionCaptureState *transition_capture,
|
|
222
|
+
bool is_crosspart_update);
|
|
217
223
|
extern bool ExecIRDeleteTriggers(EState *estate,
|
|
218
224
|
ResultRelInfo *relinfo,
|
|
219
225
|
HeapTuple trigtuple);
|
|
@@ -227,18 +233,23 @@ extern bool ExecBRUpdateTriggers(EState *estate,
|
|
|
227
233
|
ResultRelInfo *relinfo,
|
|
228
234
|
ItemPointer tupleid,
|
|
229
235
|
HeapTuple fdw_trigtuple,
|
|
230
|
-
TupleTableSlot *
|
|
236
|
+
TupleTableSlot *newslot,
|
|
237
|
+
TM_Result *tmresult,
|
|
238
|
+
TM_FailureData *tmfd);
|
|
231
239
|
extern void ExecARUpdateTriggers(EState *estate,
|
|
232
240
|
ResultRelInfo *relinfo,
|
|
241
|
+
ResultRelInfo *src_partinfo,
|
|
242
|
+
ResultRelInfo *dst_partinfo,
|
|
233
243
|
ItemPointer tupleid,
|
|
234
244
|
HeapTuple fdw_trigtuple,
|
|
235
|
-
TupleTableSlot *
|
|
245
|
+
TupleTableSlot *newslot,
|
|
236
246
|
List *recheckIndexes,
|
|
237
|
-
TransitionCaptureState *transition_capture
|
|
247
|
+
TransitionCaptureState *transition_capture,
|
|
248
|
+
bool is_crosspart_update);
|
|
238
249
|
extern bool ExecIRUpdateTriggers(EState *estate,
|
|
239
250
|
ResultRelInfo *relinfo,
|
|
240
251
|
HeapTuple trigtuple,
|
|
241
|
-
TupleTableSlot *
|
|
252
|
+
TupleTableSlot *newslot);
|
|
242
253
|
extern void ExecBSTruncateTriggers(EState *estate,
|
|
243
254
|
ResultRelInfo *relinfo);
|
|
244
255
|
extern void ExecASTruncateTriggers(EState *estate,
|
|
@@ -259,9 +270,9 @@ extern bool AfterTriggerPendingOnRel(Oid relid);
|
|
|
259
270
|
* in utils/adt/ri_triggers.c
|
|
260
271
|
*/
|
|
261
272
|
extern bool RI_FKey_pk_upd_check_required(Trigger *trigger, Relation pk_rel,
|
|
262
|
-
TupleTableSlot *
|
|
273
|
+
TupleTableSlot *oldslot, TupleTableSlot *newslot);
|
|
263
274
|
extern bool RI_FKey_fk_upd_check_required(Trigger *trigger, Relation fk_rel,
|
|
264
|
-
TupleTableSlot *
|
|
275
|
+
TupleTableSlot *oldslot, TupleTableSlot *newslot);
|
|
265
276
|
extern bool RI_Initial_Check(Trigger *trigger,
|
|
266
277
|
Relation fk_rel, Relation pk_rel);
|
|
267
278
|
extern void RI_PartitionRemove_Check(Trigger *trigger, Relation fk_rel,
|
|
@@ -15,9 +15,11 @@
|
|
|
15
15
|
#include "libpq/crypt.h"
|
|
16
16
|
#include "nodes/parsenodes.h"
|
|
17
17
|
#include "parser/parse_node.h"
|
|
18
|
+
#include "utils/guc.h"
|
|
18
19
|
|
|
19
|
-
/*
|
|
20
|
-
extern int
|
|
20
|
+
/* GUCs */
|
|
21
|
+
extern PGDLLIMPORT int Password_encryption; /* values from enum PasswordType */
|
|
22
|
+
extern PGDLLIMPORT char *createrole_self_grant;
|
|
21
23
|
|
|
22
24
|
/* Hook to check passwords in CreateRole() and AlterRole() */
|
|
23
25
|
typedef void (*check_password_hook_type) (const char *username, const char *shadow_pass, PasswordType password_type, Datum validuntil_time, bool validuntil_null);
|
|
@@ -25,13 +27,17 @@ typedef void (*check_password_hook_type) (const char *username, const char *shad
|
|
|
25
27
|
extern PGDLLIMPORT check_password_hook_type check_password_hook;
|
|
26
28
|
|
|
27
29
|
extern Oid CreateRole(ParseState *pstate, CreateRoleStmt *stmt);
|
|
28
|
-
extern Oid AlterRole(AlterRoleStmt *stmt);
|
|
30
|
+
extern Oid AlterRole(ParseState *pstate, AlterRoleStmt *stmt);
|
|
29
31
|
extern Oid AlterRoleSet(AlterRoleSetStmt *stmt);
|
|
30
32
|
extern void DropRole(DropRoleStmt *stmt);
|
|
31
|
-
extern void GrantRole(GrantRoleStmt *stmt);
|
|
33
|
+
extern void GrantRole(ParseState *pstate, GrantRoleStmt *stmt);
|
|
32
34
|
extern ObjectAddress RenameRole(const char *oldname, const char *newname);
|
|
33
35
|
extern void DropOwnedObjects(DropOwnedStmt *stmt);
|
|
34
36
|
extern void ReassignOwnedObjects(ReassignOwnedStmt *stmt);
|
|
35
37
|
extern List *roleSpecsToIds(List *memberNames);
|
|
36
38
|
|
|
39
|
+
extern bool check_createrole_self_grant(char **newval, void **extra,
|
|
40
|
+
GucSource source);
|
|
41
|
+
extern void assign_createrole_self_grant(const char *newval, void *extra);
|
|
42
|
+
|
|
37
43
|
#endif /* USER_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* header file for postgres vacuum cleaner and statistics analyzer
|
|
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/commands/vacuum.h
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
#define VACUUM_H
|
|
16
16
|
|
|
17
17
|
#include "access/htup.h"
|
|
18
|
+
#include "access/genam.h"
|
|
19
|
+
#include "access/parallel.h"
|
|
18
20
|
#include "catalog/pg_class.h"
|
|
19
21
|
#include "catalog/pg_statistic.h"
|
|
20
22
|
#include "catalog/pg_type.h"
|
|
@@ -40,7 +42,7 @@
|
|
|
40
42
|
|
|
41
43
|
/*
|
|
42
44
|
* bulkdelete can be performed in parallel. This option can be used by
|
|
43
|
-
*
|
|
45
|
+
* index AMs that need to scan indexes to delete tuples.
|
|
44
46
|
*/
|
|
45
47
|
#define VACUUM_OPTION_PARALLEL_BULKDEL (1 << 0)
|
|
46
48
|
|
|
@@ -62,6 +64,9 @@
|
|
|
62
64
|
/* value for checking vacuum flags */
|
|
63
65
|
#define VACUUM_OPTION_MAX_VALID_VALUE ((1 << 3) - 1)
|
|
64
66
|
|
|
67
|
+
/* Abstract type for parallel vacuum state */
|
|
68
|
+
typedef struct ParallelVacuumState ParallelVacuumState;
|
|
69
|
+
|
|
65
70
|
/*----------
|
|
66
71
|
* ANALYZE builds one of these structs for each attribute (column) that is
|
|
67
72
|
* to be analyzed. The struct and subsidiary data are in anl_context,
|
|
@@ -174,40 +179,47 @@ typedef struct VacAttrStats
|
|
|
174
179
|
int rowstride;
|
|
175
180
|
} VacAttrStats;
|
|
176
181
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
182
|
+
/* flag bits for VacuumParams->options */
|
|
183
|
+
#define VACOPT_VACUUM 0x01 /* do VACUUM */
|
|
184
|
+
#define VACOPT_ANALYZE 0x02 /* do ANALYZE */
|
|
185
|
+
#define VACOPT_VERBOSE 0x04 /* output INFO instrumentation messages */
|
|
186
|
+
#define VACOPT_FREEZE 0x08 /* FREEZE option */
|
|
187
|
+
#define VACOPT_FULL 0x10 /* FULL (non-concurrent) vacuum */
|
|
188
|
+
#define VACOPT_SKIP_LOCKED 0x20 /* skip if cannot get lock */
|
|
189
|
+
#define VACOPT_PROCESS_MAIN 0x40 /* process main relation */
|
|
190
|
+
#define VACOPT_PROCESS_TOAST 0x80 /* process the TOAST table, if any */
|
|
191
|
+
#define VACOPT_DISABLE_PAGE_SKIPPING 0x100 /* don't skip any pages */
|
|
192
|
+
#define VACOPT_SKIP_DATABASE_STATS 0x200 /* skip vac_update_datfrozenxid() */
|
|
193
|
+
#define VACOPT_ONLY_DATABASE_STATS 0x400 /* only vac_update_datfrozenxid() */
|
|
188
194
|
|
|
189
195
|
/*
|
|
190
|
-
*
|
|
196
|
+
* Values used by index_cleanup and truncate params.
|
|
191
197
|
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
198
|
+
* VACOPTVALUE_UNSPECIFIED is used as an initial placeholder when VACUUM
|
|
199
|
+
* command has no explicit value. When that happens the final usable value
|
|
200
|
+
* comes from the corresponding reloption (though the reloption default is
|
|
201
|
+
* usually used).
|
|
194
202
|
*/
|
|
195
|
-
typedef enum
|
|
203
|
+
typedef enum VacOptValue
|
|
196
204
|
{
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
205
|
+
VACOPTVALUE_UNSPECIFIED = 0,
|
|
206
|
+
VACOPTVALUE_AUTO,
|
|
207
|
+
VACOPTVALUE_DISABLED,
|
|
208
|
+
VACOPTVALUE_ENABLED,
|
|
209
|
+
} VacOptValue;
|
|
201
210
|
|
|
202
211
|
/*
|
|
203
212
|
* Parameters customizing behavior of VACUUM and ANALYZE.
|
|
204
213
|
*
|
|
205
214
|
* Note that at least one of VACOPT_VACUUM and VACOPT_ANALYZE must be set
|
|
206
215
|
* in options.
|
|
216
|
+
*
|
|
217
|
+
* When adding a new VacuumParam member, consider adding it to vacuumdb as
|
|
218
|
+
* well.
|
|
207
219
|
*/
|
|
208
220
|
typedef struct VacuumParams
|
|
209
221
|
{
|
|
210
|
-
|
|
222
|
+
bits32 options; /* bitmask of VACOPT_* */
|
|
211
223
|
int freeze_min_age; /* min freeze age, -1 to use default */
|
|
212
224
|
int freeze_table_age; /* age at which to scan whole table */
|
|
213
225
|
int multixact_freeze_min_age; /* min multixact freeze age, -1 to
|
|
@@ -216,12 +228,10 @@ typedef struct VacuumParams
|
|
|
216
228
|
* whole table */
|
|
217
229
|
bool is_wraparound; /* force a for-wraparound vacuum */
|
|
218
230
|
int log_min_duration; /* minimum execution threshold in ms at
|
|
219
|
-
* which
|
|
220
|
-
*
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
VacOptTernaryValue truncate; /* Truncate empty pages at the end,
|
|
224
|
-
* default value depends on reloptions */
|
|
231
|
+
* which autovacuum is logged, -1 to use
|
|
232
|
+
* default */
|
|
233
|
+
VacOptValue index_cleanup; /* Do index vacuum and cleanup */
|
|
234
|
+
VacOptValue truncate; /* Truncate empty pages at the end */
|
|
225
235
|
|
|
226
236
|
/*
|
|
227
237
|
* The number of parallel vacuum workers. 0 by default which means choose
|
|
@@ -231,23 +241,83 @@ typedef struct VacuumParams
|
|
|
231
241
|
int nworkers;
|
|
232
242
|
} VacuumParams;
|
|
233
243
|
|
|
244
|
+
/*
|
|
245
|
+
* VacuumCutoffs is immutable state that describes the cutoffs used by VACUUM.
|
|
246
|
+
* Established at the beginning of each VACUUM operation.
|
|
247
|
+
*/
|
|
248
|
+
struct VacuumCutoffs
|
|
249
|
+
{
|
|
250
|
+
/*
|
|
251
|
+
* Existing pg_class fields at start of VACUUM
|
|
252
|
+
*/
|
|
253
|
+
TransactionId relfrozenxid;
|
|
254
|
+
MultiXactId relminmxid;
|
|
255
|
+
|
|
256
|
+
/*
|
|
257
|
+
* OldestXmin is the Xid below which tuples deleted by any xact (that
|
|
258
|
+
* committed) should be considered DEAD, not just RECENTLY_DEAD.
|
|
259
|
+
*
|
|
260
|
+
* OldestMxact is the Mxid below which MultiXacts are definitely not seen
|
|
261
|
+
* as visible by any running transaction.
|
|
262
|
+
*
|
|
263
|
+
* OldestXmin and OldestMxact are also the most recent values that can
|
|
264
|
+
* ever be passed to vac_update_relstats() as frozenxid and minmulti
|
|
265
|
+
* arguments at the end of VACUUM. These same values should be passed
|
|
266
|
+
* when it turns out that VACUUM will leave no unfrozen XIDs/MXIDs behind
|
|
267
|
+
* in the table.
|
|
268
|
+
*/
|
|
269
|
+
TransactionId OldestXmin;
|
|
270
|
+
MultiXactId OldestMxact;
|
|
271
|
+
|
|
272
|
+
/*
|
|
273
|
+
* FreezeLimit is the Xid below which all Xids are definitely frozen or
|
|
274
|
+
* removed in pages VACUUM scans and cleanup locks.
|
|
275
|
+
*
|
|
276
|
+
* MultiXactCutoff is the value below which all MultiXactIds are
|
|
277
|
+
* definitely removed from Xmax in pages VACUUM scans and cleanup locks.
|
|
278
|
+
*/
|
|
279
|
+
TransactionId FreezeLimit;
|
|
280
|
+
MultiXactId MultiXactCutoff;
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
/*
|
|
284
|
+
* VacDeadItems stores TIDs whose index tuples are deleted by index vacuuming.
|
|
285
|
+
*/
|
|
286
|
+
typedef struct VacDeadItems
|
|
287
|
+
{
|
|
288
|
+
int max_items; /* # slots allocated in array */
|
|
289
|
+
int num_items; /* current # of entries */
|
|
290
|
+
|
|
291
|
+
/* Sorted array of TIDs to delete from indexes */
|
|
292
|
+
ItemPointerData items[FLEXIBLE_ARRAY_MEMBER];
|
|
293
|
+
} VacDeadItems;
|
|
294
|
+
|
|
295
|
+
#define MAXDEADITEMS(avail_mem) \
|
|
296
|
+
(((avail_mem) - offsetof(VacDeadItems, items)) / sizeof(ItemPointerData))
|
|
297
|
+
|
|
234
298
|
/* GUC parameters */
|
|
235
299
|
extern PGDLLIMPORT int default_statistics_target; /* PGDLLIMPORT for PostGIS */
|
|
236
|
-
extern int
|
|
237
|
-
extern int
|
|
238
|
-
extern int
|
|
239
|
-
extern int
|
|
300
|
+
extern PGDLLIMPORT int vacuum_freeze_min_age;
|
|
301
|
+
extern PGDLLIMPORT int vacuum_freeze_table_age;
|
|
302
|
+
extern PGDLLIMPORT int vacuum_multixact_freeze_min_age;
|
|
303
|
+
extern PGDLLIMPORT int vacuum_multixact_freeze_table_age;
|
|
304
|
+
extern PGDLLIMPORT int vacuum_failsafe_age;
|
|
305
|
+
extern PGDLLIMPORT int vacuum_multixact_failsafe_age;
|
|
240
306
|
|
|
241
307
|
/* Variables for cost-based parallel vacuum */
|
|
242
|
-
extern pg_atomic_uint32 *VacuumSharedCostBalance;
|
|
243
|
-
extern pg_atomic_uint32 *VacuumActiveNWorkers;
|
|
244
|
-
extern int
|
|
308
|
+
extern PGDLLIMPORT pg_atomic_uint32 *VacuumSharedCostBalance;
|
|
309
|
+
extern PGDLLIMPORT pg_atomic_uint32 *VacuumActiveNWorkers;
|
|
310
|
+
extern PGDLLIMPORT int VacuumCostBalanceLocal;
|
|
245
311
|
|
|
312
|
+
extern PGDLLIMPORT bool VacuumFailsafeActive;
|
|
313
|
+
extern PGDLLIMPORT double vacuum_cost_delay;
|
|
314
|
+
extern PGDLLIMPORT int vacuum_cost_limit;
|
|
246
315
|
|
|
247
316
|
/* in commands/vacuum.c */
|
|
248
317
|
extern void ExecVacuum(ParseState *pstate, VacuumStmt *vacstmt, bool isTopLevel);
|
|
249
318
|
extern void vacuum(List *relations, VacuumParams *params,
|
|
250
|
-
BufferAccessStrategy bstrategy,
|
|
319
|
+
BufferAccessStrategy bstrategy, MemoryContext vac_context,
|
|
320
|
+
bool isTopLevel);
|
|
251
321
|
extern void vac_open_indexes(Relation relation, LOCKMODE lockmode,
|
|
252
322
|
int *nindexes, Relation **Irel);
|
|
253
323
|
extern void vac_close_indexes(int nindexes, Relation *Irel, LOCKMODE lockmode);
|
|
@@ -262,22 +332,45 @@ extern void vac_update_relstats(Relation relation,
|
|
|
262
332
|
bool hasindex,
|
|
263
333
|
TransactionId frozenxid,
|
|
264
334
|
MultiXactId minmulti,
|
|
335
|
+
bool *frozenxid_updated,
|
|
336
|
+
bool *minmulti_updated,
|
|
265
337
|
bool in_outer_xact);
|
|
266
|
-
extern
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
int multixact_freeze_table_age,
|
|
270
|
-
TransactionId *oldestXmin,
|
|
271
|
-
TransactionId *freezeLimit,
|
|
272
|
-
TransactionId *xidFullScanLimit,
|
|
273
|
-
MultiXactId *multiXactCutoff,
|
|
274
|
-
MultiXactId *mxactFullScanLimit);
|
|
338
|
+
extern bool vacuum_get_cutoffs(Relation rel, const VacuumParams *params,
|
|
339
|
+
struct VacuumCutoffs *cutoffs);
|
|
340
|
+
extern bool vacuum_xid_failsafe_check(const struct VacuumCutoffs *cutoffs);
|
|
275
341
|
extern void vac_update_datfrozenxid(void);
|
|
276
342
|
extern void vacuum_delay_point(void);
|
|
277
343
|
extern bool vacuum_is_relation_owner(Oid relid, Form_pg_class reltuple,
|
|
278
|
-
|
|
344
|
+
bits32 options);
|
|
279
345
|
extern Relation vacuum_open_relation(Oid relid, RangeVar *relation,
|
|
280
|
-
|
|
346
|
+
bits32 options, bool verbose,
|
|
347
|
+
LOCKMODE lmode);
|
|
348
|
+
extern IndexBulkDeleteResult *vac_bulkdel_one_index(IndexVacuumInfo *ivinfo,
|
|
349
|
+
IndexBulkDeleteResult *istat,
|
|
350
|
+
VacDeadItems *dead_items);
|
|
351
|
+
extern IndexBulkDeleteResult *vac_cleanup_one_index(IndexVacuumInfo *ivinfo,
|
|
352
|
+
IndexBulkDeleteResult *istat);
|
|
353
|
+
extern Size vac_max_items_to_alloc_size(int max_items);
|
|
354
|
+
|
|
355
|
+
/* In postmaster/autovacuum.c */
|
|
356
|
+
extern void AutoVacuumUpdateCostLimit(void);
|
|
357
|
+
extern void VacuumUpdateCosts(void);
|
|
358
|
+
|
|
359
|
+
/* in commands/vacuumparallel.c */
|
|
360
|
+
extern ParallelVacuumState *parallel_vacuum_init(Relation rel, Relation *indrels,
|
|
361
|
+
int nindexes, int nrequested_workers,
|
|
362
|
+
int max_items, int elevel,
|
|
363
|
+
BufferAccessStrategy bstrategy);
|
|
364
|
+
extern void parallel_vacuum_end(ParallelVacuumState *pvs, IndexBulkDeleteResult **istats);
|
|
365
|
+
extern VacDeadItems *parallel_vacuum_get_dead_items(ParallelVacuumState *pvs);
|
|
366
|
+
extern void parallel_vacuum_bulkdel_all_indexes(ParallelVacuumState *pvs,
|
|
367
|
+
long num_table_tuples,
|
|
368
|
+
int num_index_scans);
|
|
369
|
+
extern void parallel_vacuum_cleanup_all_indexes(ParallelVacuumState *pvs,
|
|
370
|
+
long num_table_tuples,
|
|
371
|
+
int num_index_scans,
|
|
372
|
+
bool estimated_count);
|
|
373
|
+
extern void parallel_vacuum_main(dsm_segment *seg, shm_toc *toc);
|
|
281
374
|
|
|
282
375
|
/* in commands/analyze.c */
|
|
283
376
|
extern void analyze_rel(Oid relid, RangeVar *relation,
|