pg_query 4.2.1 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +31 -0
- data/README.md +6 -8
- data/Rakefile +5 -6
- data/ext/pg_query/extconf.rb +14 -4
- data/ext/pg_query/include/pg_query.h +27 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
- data/ext/pg_query/include/{access → postgres/access}/amapi.h +3 -1
- data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
- data/ext/pg_query/include/{access → postgres/access}/attnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/clog.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/genam.h +7 -5
- data/ext/pg_query/include/{access → postgres/access}/gin.h +16 -3
- data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/htup_details.h +6 -2
- data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -58
- data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relscan.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
- data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/stratnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/table.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/tableam.h +68 -45
- data/ext/pg_query/include/{access → postgres/access}/toast_compression.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/transam.h +1 -1
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
- data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +58 -98
- data/ext/pg_query/include/{access → postgres/access}/twophase.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/xact.h +25 -18
- data/ext/pg_query/include/{access → postgres/access}/xlog.h +15 -16
- data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +100 -62
- data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +6 -25
- data/ext/pg_query/include/{access → postgres/access}/xlogprefetcher.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +7 -6
- data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +17 -5
- data/ext/pg_query/include/{access → postgres/access}/xlogrecovery.h +4 -3
- data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
- data/ext/pg_query/include/{c.h → postgres/c.h} +144 -156
- data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +5 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/genbki.h +7 -6
- data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +4 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/indexing.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +10 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +3 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +19 -17
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -19
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +9 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +3 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +4 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +2 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +6 -6
- data/ext/pg_query/include/{commands → postgres/commands}/async.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +4 -4
- data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +15 -14
- data/ext/pg_query/include/{commands → postgres/commands}/user.h +9 -3
- data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +60 -14
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/{common → postgres/common}/file_perm.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
- data/ext/pg_query/include/postgres/common/int.h +437 -0
- data/ext/pg_query/include/{common → postgres/common}/keywords.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
- data/ext/pg_query/include/{common → postgres/common}/pg_prng.h +3 -2
- data/ext/pg_query/include/{common → postgres/common}/relpath.h +20 -13
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/{common → postgres/common}/string.h +5 -3
- data/ext/pg_query/include/{common → postgres/common}/unicode_east_asian_fw_table.h +10 -10
- data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +31 -13
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
- data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +11 -4
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
- data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/executor.h +34 -17
- data/ext/pg_query/include/{executor → postgres/executor}/functions.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/spi.h +2 -2
- data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
- data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +21 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +12 -12
- data/ext/pg_query/include/postgres/gram.h +1127 -0
- data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
- data/ext/pg_query/include/{jit → postgres/jit}/jit.h +2 -2
- data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
- data/ext/pg_query/include/{lib → postgres/lib}/dshash.h +4 -1
- data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +435 -22
- data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +9 -9
- data/ext/pg_query/include/{lib → postgres/lib}/sort_template.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
- data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +8 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +24 -17
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +36 -25
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +10 -41
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +22 -10
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +35 -18
- data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +27 -15
- data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +83 -30
- data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +5 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +14 -2
- data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +7 -4
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +96 -511
- data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +377 -139
- data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1090 -440
- data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +30 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +367 -124
- data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +670 -222
- data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
- data/ext/pg_query/include/{utils → postgres/nodes}/queryjumble.h +5 -7
- data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/value.h +12 -2
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +6 -4
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +8 -8
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +16 -7
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +3 -6
- data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/kwlist.h +12 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +4 -2
- data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +3 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +22 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +8 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parser.h +4 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
- data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +1 -1
- data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
- data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +158 -218
- data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +8 -46
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +1 -1
- data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
- data/ext/pg_query/include/{pgstat.h → postgres/pgstat.h} +173 -94
- data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +3 -3
- data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +66 -64
- data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
- data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +1 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +2 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +48 -46
- data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +28 -33
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +3 -3
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
- data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
- data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +62 -25
- data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
- data/ext/pg_query/include/postgres/port/simd.h +375 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
- data/ext/pg_query/include/{port.h → postgres/port.h} +42 -75
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +1 -4
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +1 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +6 -3
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/startup.h +3 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +3 -1
- data/ext/pg_query/include/{regex → postgres/regex}/regex.h +9 -6
- data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +6 -1
- data/ext/pg_query/include/{replication → postgres/replication}/logicalproto.h +30 -10
- data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
- data/ext/pg_query/include/{replication → postgres/replication}/origin.h +4 -4
- data/ext/pg_query/include/{replication → postgres/replication}/reorderbuffer.h +113 -45
- data/ext/pg_query/include/{replication → postgres/replication}/slot.h +25 -6
- data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +2 -8
- data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +15 -9
- data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +13 -13
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -4
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -31
- data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +183 -87
- data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +146 -93
- data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +3 -6
- data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +4 -1
- data/ext/pg_query/include/{storage → postgres/storage}/fd.h +24 -20
- data/ext/pg_query/include/{storage → postgres/storage}/fileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +94 -57
- data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/latch.h +9 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +6 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lock.h +21 -13
- data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +16 -2
- data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proc.h +22 -17
- data/ext/pg_query/include/{storage → postgres/storage}/procarray.h +3 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +3 -1
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +66 -309
- data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
- data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
- data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +12 -10
- data/ext/pg_query/include/{storage → postgres/storage}/spin.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/standby.h +9 -8
- data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/sync.h +3 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +3 -6
- data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +1 -1
- data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +2 -4
- data/ext/pg_query/include/{utils → postgres/utils}/acl.h +26 -81
- data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/array.h +19 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_progress.h +2 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_status.h +24 -3
- data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +15 -6
- data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
- data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +41 -21
- data/ext/pg_query/include/{utils → postgres/utils}/datum.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/elog.h +104 -29
- data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
- data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
- data/ext/pg_query/include/{utils → postgres/utils}/float.h +7 -6
- data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +54 -1
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +45 -3
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/guc.h +59 -86
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +49 -3
- data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/inval.h +3 -3
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +7 -51
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
- data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +20 -5
- data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +9 -2
- data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +22 -14
- data/ext/pg_query/include/{utils → postgres/utils}/pgstat_internal.h +37 -7
- data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/portal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/probes.h +6 -6
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/regproc.h +3 -3
- data/ext/pg_query/include/{utils → postgres/utils}/rel.h +60 -43
- data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +13 -8
- data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +6 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +4 -2
- data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +2 -2
- data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +4 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +41 -11
- data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +189 -35
- data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +13 -1
- data/ext/pg_query/include/{utils → postgres/utils}/wait_event.h +9 -4
- data/ext/pg_query/include/{utils → postgres/utils}/xml.h +15 -5
- data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +7 -457
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
- data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +19755 -17757
- data/ext/pg_query/pg_query_deparse.c +1 -10635
- data/ext/pg_query/pg_query_fingerprint.c +12 -8
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
- data/ext/pg_query/pg_query_normalize.c +1 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +6 -0
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +7 -5
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +3 -3
- data/ext/pg_query/postgres_deparse.c +11067 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
- data/ext/pg_query/src_backend_commands_define.c +1 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +14 -2
- data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
- data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
- data/ext/pg_query/src_backend_parser_parser.c +28 -2
- data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
- data/ext/pg_query/src_backend_parser_scansup.c +1 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +371 -249
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
- data/ext/pg_query/src_backend_utils_init_globals.c +6 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +21 -67
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
- data/ext/pg_query/src_common_encnames.c +4 -1
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +534 -510
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_stringinfo.c +4 -4
- data/ext/pg_query/src_common_wchar.c +9 -8
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +79 -5
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +6 -10
- data/ext/pg_query/src_port_strerror.c +1 -1
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +2 -3
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/parse.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +166 -3191
- data/lib/pg_query/treewalker.rb +23 -5
- data/lib/pg_query/version.rb +1 -1
- metadata +432 -380
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/ip.h +0 -31
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/kwlist_d.h +0 -1095
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/pgarch.h +0 -73
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
- data/ext/pg_query/src_common_pg_prng.c +0 -152
- data/ext/pg_query/src_common_string.c +0 -92
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
- /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
- /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* archive_module.h
|
|
4
|
+
* Exports for archive modules.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2022-2023, PostgreSQL Global Development Group
|
|
7
|
+
*
|
|
8
|
+
* src/include/archive/archive_module.h
|
|
9
|
+
*
|
|
10
|
+
*-------------------------------------------------------------------------
|
|
11
|
+
*/
|
|
12
|
+
#ifndef _ARCHIVE_MODULE_H
|
|
13
|
+
#define _ARCHIVE_MODULE_H
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
* The value of the archive_library GUC.
|
|
17
|
+
*/
|
|
18
|
+
extern PGDLLIMPORT char *XLogArchiveLibrary;
|
|
19
|
+
|
|
20
|
+
typedef struct ArchiveModuleState
|
|
21
|
+
{
|
|
22
|
+
/*
|
|
23
|
+
* Private data pointer for use by an archive module. This can be used to
|
|
24
|
+
* store state for the module that will be passed to each of its
|
|
25
|
+
* callbacks.
|
|
26
|
+
*/
|
|
27
|
+
void *private_data;
|
|
28
|
+
} ArchiveModuleState;
|
|
29
|
+
|
|
30
|
+
/*
|
|
31
|
+
* Archive module callbacks
|
|
32
|
+
*
|
|
33
|
+
* These callback functions should be defined by archive libraries and returned
|
|
34
|
+
* via _PG_archive_module_init(). ArchiveFileCB is the only required callback.
|
|
35
|
+
* For more information about the purpose of each callback, refer to the
|
|
36
|
+
* archive modules documentation.
|
|
37
|
+
*/
|
|
38
|
+
typedef void (*ArchiveStartupCB) (ArchiveModuleState *state);
|
|
39
|
+
typedef bool (*ArchiveCheckConfiguredCB) (ArchiveModuleState *state);
|
|
40
|
+
typedef bool (*ArchiveFileCB) (ArchiveModuleState *state, const char *file, const char *path);
|
|
41
|
+
typedef void (*ArchiveShutdownCB) (ArchiveModuleState *state);
|
|
42
|
+
|
|
43
|
+
typedef struct ArchiveModuleCallbacks
|
|
44
|
+
{
|
|
45
|
+
ArchiveStartupCB startup_cb;
|
|
46
|
+
ArchiveCheckConfiguredCB check_configured_cb;
|
|
47
|
+
ArchiveFileCB archive_file_cb;
|
|
48
|
+
ArchiveShutdownCB shutdown_cb;
|
|
49
|
+
} ArchiveModuleCallbacks;
|
|
50
|
+
|
|
51
|
+
/*
|
|
52
|
+
* Type of the shared library symbol _PG_archive_module_init that is looked
|
|
53
|
+
* up when loading an archive library.
|
|
54
|
+
*/
|
|
55
|
+
typedef const ArchiveModuleCallbacks *(*ArchiveModuleInit) (void);
|
|
56
|
+
|
|
57
|
+
extern PGDLLEXPORT const ArchiveModuleCallbacks *_PG_archive_module_init(void);
|
|
58
|
+
|
|
59
|
+
#endif /* _ARCHIVE_MODULE_H */
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* polluting the namespace with lots of stuff...
|
|
10
10
|
*
|
|
11
11
|
*
|
|
12
|
-
* Portions Copyright (c) 1996-
|
|
12
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
13
13
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
14
14
|
*
|
|
15
15
|
* src/include/c.h
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* 2) bool, true, false
|
|
31
31
|
* 3) standard system types
|
|
32
32
|
* 4) IsValid macros for system types
|
|
33
|
-
* 5)
|
|
33
|
+
* 5) lengthof, alignment
|
|
34
34
|
* 6) assertions
|
|
35
35
|
* 7) widely useful macros
|
|
36
36
|
* 8) random stuff
|
|
@@ -144,6 +144,17 @@
|
|
|
144
144
|
#define pg_attribute_no_sanitize_alignment()
|
|
145
145
|
#endif
|
|
146
146
|
|
|
147
|
+
/*
|
|
148
|
+
* pg_attribute_nonnull means the compiler should warn if the function is
|
|
149
|
+
* called with the listed arguments set to NULL. If no arguments are
|
|
150
|
+
* listed, the compiler should warn if any pointer arguments are set to NULL.
|
|
151
|
+
*/
|
|
152
|
+
#if __has_attribute (nonnull)
|
|
153
|
+
#define pg_attribute_nonnull(...) __attribute__((nonnull(__VA_ARGS__)))
|
|
154
|
+
#else
|
|
155
|
+
#define pg_attribute_nonnull(...)
|
|
156
|
+
#endif
|
|
157
|
+
|
|
147
158
|
/*
|
|
148
159
|
* Append PG_USED_FOR_ASSERTS_ONLY to definitions of variables that are only
|
|
149
160
|
* used in assert-enabled builds, to avoid compiler warnings about unused
|
|
@@ -170,6 +181,17 @@
|
|
|
170
181
|
#define pg_attribute_noreturn() __attribute__((noreturn))
|
|
171
182
|
#define pg_attribute_packed() __attribute__((packed))
|
|
172
183
|
#define HAVE_PG_ATTRIBUTE_NORETURN 1
|
|
184
|
+
#elif defined(_MSC_VER)
|
|
185
|
+
/*
|
|
186
|
+
* MSVC supports aligned. noreturn is also possible but in MSVC it is
|
|
187
|
+
* declared before the definition while pg_attribute_noreturn() macro
|
|
188
|
+
* is currently used after the definition.
|
|
189
|
+
*
|
|
190
|
+
* Packing is also possible but only by wrapping the entire struct definition
|
|
191
|
+
* which doesn't fit into our current macro declarations.
|
|
192
|
+
*/
|
|
193
|
+
#define pg_attribute_aligned(a) __declspec(align(a))
|
|
194
|
+
#define pg_attribute_noreturn()
|
|
173
195
|
#else
|
|
174
196
|
/*
|
|
175
197
|
* NB: aligned and packed are not given default definitions because they
|
|
@@ -302,7 +324,25 @@
|
|
|
302
324
|
* pretty trivial: VA_ARGS_NARGS_() returns its 64th argument, and we set up
|
|
303
325
|
* the call so that that is the appropriate one of the list of constants.
|
|
304
326
|
* This idea is due to Laurent Deniau.
|
|
327
|
+
*
|
|
328
|
+
* MSVC has an implementation of __VA_ARGS__ that doesn't conform to the
|
|
329
|
+
* standard unless you use the /Zc:preprocessor compiler flag, but that
|
|
330
|
+
* isn't available before Visual Studio 2019. For now, use a different
|
|
331
|
+
* definition that also works on older compilers.
|
|
305
332
|
*/
|
|
333
|
+
#ifdef _MSC_VER
|
|
334
|
+
#define EXPAND(args) args
|
|
335
|
+
#define VA_ARGS_NARGS(...) \
|
|
336
|
+
VA_ARGS_NARGS_ EXPAND((__VA_ARGS__, \
|
|
337
|
+
63,62,61,60, \
|
|
338
|
+
59,58,57,56,55,54,53,52,51,50, \
|
|
339
|
+
49,48,47,46,45,44,43,42,41,40, \
|
|
340
|
+
39,38,37,36,35,34,33,32,31,30, \
|
|
341
|
+
29,28,27,26,25,24,23,22,21,20, \
|
|
342
|
+
19,18,17,16,15,14,13,12,11,10, \
|
|
343
|
+
9, 8, 7, 6, 5, 4, 3, 2, 1, 0))
|
|
344
|
+
#else
|
|
345
|
+
|
|
306
346
|
#define VA_ARGS_NARGS(...) \
|
|
307
347
|
VA_ARGS_NARGS_(__VA_ARGS__, \
|
|
308
348
|
63,62,61,60, \
|
|
@@ -312,6 +352,8 @@
|
|
|
312
352
|
29,28,27,26,25,24,23,22,21,20, \
|
|
313
353
|
19,18,17,16,15,14,13,12,11,10, \
|
|
314
354
|
9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
|
|
355
|
+
#endif
|
|
356
|
+
|
|
315
357
|
#define VA_ARGS_NARGS_( \
|
|
316
358
|
_01,_02,_03,_04,_05,_06,_07,_08,_09,_10, \
|
|
317
359
|
_11,_12,_13,_14,_15,_16,_17,_18,_19,_20, \
|
|
@@ -322,16 +364,6 @@
|
|
|
322
364
|
_61,_62,_63, N, ...) \
|
|
323
365
|
(N)
|
|
324
366
|
|
|
325
|
-
/*
|
|
326
|
-
* dummyret is used to set return values in macros that use ?: to make
|
|
327
|
-
* assignments. gcc wants these to be void, other compilers like char
|
|
328
|
-
*/
|
|
329
|
-
#ifdef __GNUC__ /* GNU cc */
|
|
330
|
-
#define dummyret void
|
|
331
|
-
#else
|
|
332
|
-
#define dummyret char
|
|
333
|
-
#endif
|
|
334
|
-
|
|
335
367
|
/*
|
|
336
368
|
* Generic function pointer. This can be used in the rare cases where it's
|
|
337
369
|
* necessary to cast a function pointer to a seemingly incompatible function
|
|
@@ -349,15 +381,32 @@ typedef void (*pg_funcptr_t) (void);
|
|
|
349
381
|
*/
|
|
350
382
|
#define FLEXIBLE_ARRAY_MEMBER /* empty */
|
|
351
383
|
|
|
352
|
-
/*
|
|
353
|
-
#
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
#
|
|
359
|
-
|
|
360
|
-
|
|
384
|
+
/*
|
|
385
|
+
* Does the compiler support #pragma GCC system_header? We optionally use it
|
|
386
|
+
* to avoid warnings that we can't fix (e.g. in the perl headers).
|
|
387
|
+
* See https://gcc.gnu.org/onlinedocs/cpp/System-Headers.html
|
|
388
|
+
*
|
|
389
|
+
* Headers for which we do not want to show compiler warnings can,
|
|
390
|
+
* conditionally, use #pragma GCC system_header to avoid warnings. Obviously
|
|
391
|
+
* this should only be used for external headers over which we do not have
|
|
392
|
+
* control.
|
|
393
|
+
*
|
|
394
|
+
* Support for the pragma is tested here, instead of during configure, as gcc
|
|
395
|
+
* also warns about the pragma being used in a .c file. It's surprisingly hard
|
|
396
|
+
* to get autoconf to use .h as the file-ending. Looks like gcc has
|
|
397
|
+
* implemented the pragma since the 2000, so this test should suffice.
|
|
398
|
+
*
|
|
399
|
+
*
|
|
400
|
+
* Alternatively, we could add the include paths for problematic headers with
|
|
401
|
+
* -isystem, but that is a larger hammer and is harder to search for.
|
|
402
|
+
*
|
|
403
|
+
* A more granular alternative would be to use #pragma GCC diagnostic
|
|
404
|
+
* push/ignored/pop, but gcc warns about unknown warnings being ignored, so
|
|
405
|
+
* every to-be-ignored-temporarily compiler warning would require its own
|
|
406
|
+
* pg_config.h symbol and #ifdef.
|
|
407
|
+
*/
|
|
408
|
+
#ifdef __GNUC__
|
|
409
|
+
#define HAVE_PRAGMA_GCC_SYSTEM_HEADER 1
|
|
361
410
|
#endif
|
|
362
411
|
|
|
363
412
|
|
|
@@ -713,20 +762,9 @@ typedef NameData *Name;
|
|
|
713
762
|
|
|
714
763
|
|
|
715
764
|
/* ----------------------------------------------------------------
|
|
716
|
-
* Section 5:
|
|
765
|
+
* Section 5: lengthof, alignment
|
|
717
766
|
* ----------------------------------------------------------------
|
|
718
767
|
*/
|
|
719
|
-
/*
|
|
720
|
-
* offsetof
|
|
721
|
-
* Offset of a structure/union field within that structure/union.
|
|
722
|
-
*
|
|
723
|
-
* XXX This is supposed to be part of stddef.h, but isn't on
|
|
724
|
-
* some systems (like SunOS 4).
|
|
725
|
-
*/
|
|
726
|
-
#ifndef offsetof
|
|
727
|
-
#define offsetof(type, field) ((long) &((type *)0)->field)
|
|
728
|
-
#endif /* offsetof */
|
|
729
|
-
|
|
730
768
|
/*
|
|
731
769
|
* lengthof
|
|
732
770
|
* Number of elements in an array.
|
|
@@ -803,80 +841,42 @@ typedef NameData *Name;
|
|
|
803
841
|
|
|
804
842
|
#define Assert(condition) ((void)true)
|
|
805
843
|
#define AssertMacro(condition) ((void)true)
|
|
806
|
-
#define AssertArg(condition) ((void)true)
|
|
807
|
-
#define AssertState(condition) ((void)true)
|
|
808
|
-
#define AssertPointerAlignment(ptr, bndr) ((void)true)
|
|
809
|
-
#define Trap(condition, errorType) ((void)true)
|
|
810
|
-
#define TrapMacro(condition, errorType) (true)
|
|
811
844
|
|
|
812
845
|
#elif defined(FRONTEND)
|
|
813
846
|
|
|
814
847
|
#include <assert.h>
|
|
815
848
|
#define Assert(p) assert(p)
|
|
816
849
|
#define AssertMacro(p) ((void) assert(p))
|
|
817
|
-
#define AssertArg(condition) assert(condition)
|
|
818
|
-
#define AssertState(condition) assert(condition)
|
|
819
|
-
#define AssertPointerAlignment(ptr, bndr) ((void)true)
|
|
820
850
|
|
|
821
851
|
#else /* USE_ASSERT_CHECKING && !FRONTEND */
|
|
822
852
|
|
|
823
853
|
/*
|
|
824
|
-
*
|
|
825
|
-
* Generates
|
|
854
|
+
* Assert
|
|
855
|
+
* Generates a fatal exception if the given condition is false.
|
|
826
856
|
*/
|
|
827
|
-
#define
|
|
857
|
+
#define Assert(condition) \
|
|
828
858
|
do { \
|
|
829
|
-
if (condition) \
|
|
830
|
-
ExceptionalCondition(#condition,
|
|
831
|
-
__FILE__, __LINE__); \
|
|
859
|
+
if (!(condition)) \
|
|
860
|
+
ExceptionalCondition(#condition, __FILE__, __LINE__); \
|
|
832
861
|
} while (0)
|
|
833
862
|
|
|
834
863
|
/*
|
|
835
|
-
*
|
|
864
|
+
* AssertMacro is the same as Assert but it's suitable for use in
|
|
865
|
+
* expression-like macros, for example:
|
|
836
866
|
*
|
|
837
867
|
* #define foo(x) (AssertMacro(x != 0), bar(x))
|
|
838
|
-
*
|
|
839
|
-
* Isn't CPP fun?
|
|
840
868
|
*/
|
|
841
|
-
#define TrapMacro(condition, errorType) \
|
|
842
|
-
((bool) (! (condition) || \
|
|
843
|
-
(ExceptionalCondition(#condition, (errorType), \
|
|
844
|
-
__FILE__, __LINE__), 0)))
|
|
845
|
-
|
|
846
|
-
#define Assert(condition) \
|
|
847
|
-
do { \
|
|
848
|
-
if (!(condition)) \
|
|
849
|
-
ExceptionalCondition(#condition, "FailedAssertion", \
|
|
850
|
-
__FILE__, __LINE__); \
|
|
851
|
-
} while (0)
|
|
852
|
-
|
|
853
869
|
#define AssertMacro(condition) \
|
|
854
870
|
((void) ((condition) || \
|
|
855
|
-
(ExceptionalCondition(#condition,
|
|
856
|
-
__FILE__, __LINE__), 0)))
|
|
871
|
+
(ExceptionalCondition(#condition, __FILE__, __LINE__), 0)))
|
|
857
872
|
|
|
858
|
-
#
|
|
859
|
-
do { \
|
|
860
|
-
if (!(condition)) \
|
|
861
|
-
ExceptionalCondition(#condition, "BadArgument", \
|
|
862
|
-
__FILE__, __LINE__); \
|
|
863
|
-
} while (0)
|
|
864
|
-
|
|
865
|
-
#define AssertState(condition) \
|
|
866
|
-
do { \
|
|
867
|
-
if (!(condition)) \
|
|
868
|
-
ExceptionalCondition(#condition, "BadState", \
|
|
869
|
-
__FILE__, __LINE__); \
|
|
870
|
-
} while (0)
|
|
873
|
+
#endif /* USE_ASSERT_CHECKING && !FRONTEND */
|
|
871
874
|
|
|
872
875
|
/*
|
|
873
876
|
* Check that `ptr' is `bndr' aligned.
|
|
874
877
|
*/
|
|
875
878
|
#define AssertPointerAlignment(ptr, bndr) \
|
|
876
|
-
|
|
877
|
-
"UnalignedPointer")
|
|
878
|
-
|
|
879
|
-
#endif /* USE_ASSERT_CHECKING && !FRONTEND */
|
|
879
|
+
Assert(TYPEALIGN(bndr, (uintptr_t)(ptr)) == (uintptr_t)(ptr))
|
|
880
880
|
|
|
881
881
|
/*
|
|
882
882
|
* ExceptionalCondition is compiled into the backend whether or not
|
|
@@ -886,7 +886,6 @@ typedef NameData *Name;
|
|
|
886
886
|
*/
|
|
887
887
|
#ifndef FRONTEND
|
|
888
888
|
extern void ExceptionalCondition(const char *conditionName,
|
|
889
|
-
const char *errorType,
|
|
890
889
|
const char *fileName, int lineNumber) pg_attribute_noreturn();
|
|
891
890
|
#endif
|
|
892
891
|
|
|
@@ -896,47 +895,50 @@ extern void ExceptionalCondition(const char *conditionName,
|
|
|
896
895
|
* If the "condition" (a compile-time-constant expression) evaluates to false,
|
|
897
896
|
* throw a compile error using the "errmessage" (a string literal).
|
|
898
897
|
*
|
|
899
|
-
*
|
|
900
|
-
*
|
|
898
|
+
* C11 has _Static_assert(), and most C99 compilers already support that. For
|
|
899
|
+
* portability, we wrap it into StaticAssertDecl(). _Static_assert() is a
|
|
900
|
+
* "declaration", and so it must be placed where for example a variable
|
|
901
|
+
* declaration would be valid. As long as we compile with
|
|
902
|
+
* -Wno-declaration-after-statement, that also means it cannot be placed after
|
|
903
|
+
* statements in a function. Macros StaticAssertStmt() and StaticAssertExpr()
|
|
901
904
|
* make it safe to use as a statement or in an expression, respectively.
|
|
902
|
-
* The macro StaticAssertDecl() is suitable for use at file scope (outside of
|
|
903
|
-
* any function).
|
|
904
905
|
*
|
|
905
|
-
*
|
|
906
|
-
* about a negative width for a struct
|
|
907
|
-
* helpful error message, but it beats not
|
|
906
|
+
* For compilers without _Static_assert(), we fall back on a kluge that
|
|
907
|
+
* assumes the compiler will complain about a negative width for a struct
|
|
908
|
+
* bit-field. This will not include a helpful error message, but it beats not
|
|
909
|
+
* getting an error at all.
|
|
908
910
|
*/
|
|
909
911
|
#ifndef __cplusplus
|
|
910
912
|
#ifdef HAVE__STATIC_ASSERT
|
|
913
|
+
#define StaticAssertDecl(condition, errmessage) \
|
|
914
|
+
_Static_assert(condition, errmessage)
|
|
911
915
|
#define StaticAssertStmt(condition, errmessage) \
|
|
912
916
|
do { _Static_assert(condition, errmessage); } while(0)
|
|
913
917
|
#define StaticAssertExpr(condition, errmessage) \
|
|
914
918
|
((void) ({ StaticAssertStmt(condition, errmessage); true; }))
|
|
915
|
-
#define StaticAssertDecl(condition, errmessage) \
|
|
916
|
-
_Static_assert(condition, errmessage)
|
|
917
919
|
#else /* !HAVE__STATIC_ASSERT */
|
|
920
|
+
#define StaticAssertDecl(condition, errmessage) \
|
|
921
|
+
extern void static_assert_func(int static_assert_failure[(condition) ? 1 : -1])
|
|
918
922
|
#define StaticAssertStmt(condition, errmessage) \
|
|
919
923
|
((void) sizeof(struct { int static_assert_failure : (condition) ? 1 : -1; }))
|
|
920
924
|
#define StaticAssertExpr(condition, errmessage) \
|
|
921
925
|
StaticAssertStmt(condition, errmessage)
|
|
922
|
-
#define StaticAssertDecl(condition, errmessage) \
|
|
923
|
-
extern void static_assert_func(int static_assert_failure[(condition) ? 1 : -1])
|
|
924
926
|
#endif /* HAVE__STATIC_ASSERT */
|
|
925
927
|
#else /* C++ */
|
|
926
928
|
#if defined(__cpp_static_assert) && __cpp_static_assert >= 200410
|
|
929
|
+
#define StaticAssertDecl(condition, errmessage) \
|
|
930
|
+
static_assert(condition, errmessage)
|
|
927
931
|
#define StaticAssertStmt(condition, errmessage) \
|
|
928
932
|
static_assert(condition, errmessage)
|
|
929
933
|
#define StaticAssertExpr(condition, errmessage) \
|
|
930
934
|
({ static_assert(condition, errmessage); })
|
|
931
|
-
#define StaticAssertDecl(condition, errmessage) \
|
|
932
|
-
static_assert(condition, errmessage)
|
|
933
935
|
#else /* !__cpp_static_assert */
|
|
936
|
+
#define StaticAssertDecl(condition, errmessage) \
|
|
937
|
+
extern void static_assert_func(int static_assert_failure[(condition) ? 1 : -1])
|
|
934
938
|
#define StaticAssertStmt(condition, errmessage) \
|
|
935
939
|
do { struct static_assert_struct { int static_assert_failure : (condition) ? 1 : -1; }; } while(0)
|
|
936
940
|
#define StaticAssertExpr(condition, errmessage) \
|
|
937
941
|
((void) ({ StaticAssertStmt(condition, errmessage); }))
|
|
938
|
-
#define StaticAssertDecl(condition, errmessage) \
|
|
939
|
-
extern void static_assert_func(int static_assert_failure[(condition) ? 1 : -1])
|
|
940
942
|
#endif /* __cpp_static_assert */
|
|
941
943
|
#endif /* C++ */
|
|
942
944
|
|
|
@@ -985,12 +987,6 @@ extern void ExceptionalCondition(const char *conditionName,
|
|
|
985
987
|
*/
|
|
986
988
|
#define Min(x, y) ((x) < (y) ? (x) : (y))
|
|
987
989
|
|
|
988
|
-
/*
|
|
989
|
-
* Abs
|
|
990
|
-
* Return the absolute value of the argument.
|
|
991
|
-
*/
|
|
992
|
-
#define Abs(x) ((x) >= 0 ? (x) : -(x))
|
|
993
|
-
|
|
994
990
|
|
|
995
991
|
/* Get a bit mask of the bits set in non-long aligned addresses */
|
|
996
992
|
#define LONG_ALIGN_MASK (sizeof(long) - 1)
|
|
@@ -1113,10 +1109,6 @@ extern void ExceptionalCondition(const char *conditionName,
|
|
|
1113
1109
|
* ----------------------------------------------------------------
|
|
1114
1110
|
*/
|
|
1115
1111
|
|
|
1116
|
-
#ifdef HAVE_STRUCT_SOCKADDR_UN
|
|
1117
|
-
#define HAVE_UNIX_SOCKETS 1
|
|
1118
|
-
#endif
|
|
1119
|
-
|
|
1120
1112
|
/*
|
|
1121
1113
|
* Invert the sign of a qsort-style comparison result, ie, exchange negative
|
|
1122
1114
|
* and positive integer values, being careful not to get the wrong answer
|
|
@@ -1127,14 +1119,11 @@ extern void ExceptionalCondition(const char *conditionName,
|
|
|
1127
1119
|
|
|
1128
1120
|
/*
|
|
1129
1121
|
* Use this, not "char buf[BLCKSZ]", to declare a field or local variable
|
|
1130
|
-
* holding a page buffer, if that page might be accessed as a page
|
|
1131
|
-
*
|
|
1132
|
-
*
|
|
1133
|
-
*
|
|
1134
|
-
*
|
|
1135
|
-
* using unaligned buffers.) We include both "double" and "int64" in the
|
|
1136
|
-
* union to ensure that the compiler knows the value must be MAXALIGN'ed
|
|
1137
|
-
* (cf. configure's computation of MAXIMUM_ALIGNOF).
|
|
1122
|
+
* holding a page buffer, if that page might be accessed as a page. Otherwise
|
|
1123
|
+
* the variable might be under-aligned, causing problems on alignment-picky
|
|
1124
|
+
* hardware. We include both "double" and "int64" in the union to ensure that
|
|
1125
|
+
* the compiler knows the value must be MAXALIGN'ed (cf. configure's
|
|
1126
|
+
* computation of MAXIMUM_ALIGNOF).
|
|
1138
1127
|
*/
|
|
1139
1128
|
typedef union PGAlignedBlock
|
|
1140
1129
|
{
|
|
@@ -1143,9 +1132,30 @@ typedef union PGAlignedBlock
|
|
|
1143
1132
|
int64 force_align_i64;
|
|
1144
1133
|
} PGAlignedBlock;
|
|
1145
1134
|
|
|
1135
|
+
/*
|
|
1136
|
+
* Use this to declare a field or local variable holding a page buffer, if that
|
|
1137
|
+
* page might be accessed as a page or passed to an SMgr I/O function. If
|
|
1138
|
+
* allocating using the MemoryContext API, the aligned allocation functions
|
|
1139
|
+
* should be used with PG_IO_ALIGN_SIZE. This alignment may be more efficient
|
|
1140
|
+
* for I/O in general, but may be strictly required on some platforms when
|
|
1141
|
+
* using direct I/O.
|
|
1142
|
+
*/
|
|
1143
|
+
typedef union PGIOAlignedBlock
|
|
1144
|
+
{
|
|
1145
|
+
#ifdef pg_attribute_aligned
|
|
1146
|
+
pg_attribute_aligned(PG_IO_ALIGN_SIZE)
|
|
1147
|
+
#endif
|
|
1148
|
+
char data[BLCKSZ];
|
|
1149
|
+
double force_align_d;
|
|
1150
|
+
int64 force_align_i64;
|
|
1151
|
+
} PGIOAlignedBlock;
|
|
1152
|
+
|
|
1146
1153
|
/* Same, but for an XLOG_BLCKSZ-sized buffer */
|
|
1147
1154
|
typedef union PGAlignedXLogBlock
|
|
1148
1155
|
{
|
|
1156
|
+
#ifdef pg_attribute_aligned
|
|
1157
|
+
pg_attribute_aligned(PG_IO_ALIGN_SIZE)
|
|
1158
|
+
#endif
|
|
1149
1159
|
char data[XLOG_BLCKSZ];
|
|
1150
1160
|
double force_align_d;
|
|
1151
1161
|
int64 force_align_i64;
|
|
@@ -1279,39 +1289,10 @@ typedef union PGAlignedXLogBlock
|
|
|
1279
1289
|
* standard C library.
|
|
1280
1290
|
*/
|
|
1281
1291
|
|
|
1282
|
-
#if
|
|
1292
|
+
#if !HAVE_DECL_FDATASYNC
|
|
1283
1293
|
extern int fdatasync(int fildes);
|
|
1284
1294
|
#endif
|
|
1285
1295
|
|
|
1286
|
-
/* Older platforms may provide strto[u]ll functionality under other names */
|
|
1287
|
-
#if !defined(HAVE_STRTOLL) && defined(HAVE___STRTOLL)
|
|
1288
|
-
#define strtoll __strtoll
|
|
1289
|
-
#define HAVE_STRTOLL 1
|
|
1290
|
-
#endif
|
|
1291
|
-
|
|
1292
|
-
#if !defined(HAVE_STRTOLL) && defined(HAVE_STRTOQ)
|
|
1293
|
-
#define strtoll strtoq
|
|
1294
|
-
#define HAVE_STRTOLL 1
|
|
1295
|
-
#endif
|
|
1296
|
-
|
|
1297
|
-
#if !defined(HAVE_STRTOULL) && defined(HAVE___STRTOULL)
|
|
1298
|
-
#define strtoull __strtoull
|
|
1299
|
-
#define HAVE_STRTOULL 1
|
|
1300
|
-
#endif
|
|
1301
|
-
|
|
1302
|
-
#if !defined(HAVE_STRTOULL) && defined(HAVE_STRTOUQ)
|
|
1303
|
-
#define strtoull strtouq
|
|
1304
|
-
#define HAVE_STRTOULL 1
|
|
1305
|
-
#endif
|
|
1306
|
-
|
|
1307
|
-
#if defined(HAVE_STRTOLL) && !HAVE_DECL_STRTOLL
|
|
1308
|
-
extern long long strtoll(const char *str, char **endptr, int base);
|
|
1309
|
-
#endif
|
|
1310
|
-
|
|
1311
|
-
#if defined(HAVE_STRTOULL) && !HAVE_DECL_STRTOULL
|
|
1312
|
-
extern unsigned long long strtoull(const char *str, char **endptr, int base);
|
|
1313
|
-
#endif
|
|
1314
|
-
|
|
1315
1296
|
/*
|
|
1316
1297
|
* Thin wrappers that convert strings to exactly 64-bit integers, matching our
|
|
1317
1298
|
* definition of int64. (For the naming, compare that POSIX has
|
|
@@ -1325,6 +1306,15 @@ extern unsigned long long strtoull(const char *str, char **endptr, int base);
|
|
|
1325
1306
|
#define strtou64(str, endptr, base) ((uint64) strtoull(str, endptr, base))
|
|
1326
1307
|
#endif
|
|
1327
1308
|
|
|
1309
|
+
/*
|
|
1310
|
+
* Similarly, wrappers around labs()/llabs() matching our int64.
|
|
1311
|
+
*/
|
|
1312
|
+
#ifdef HAVE_LONG_INT_64
|
|
1313
|
+
#define i64abs(i) labs(i)
|
|
1314
|
+
#else
|
|
1315
|
+
#define i64abs(i) llabs(i)
|
|
1316
|
+
#endif
|
|
1317
|
+
|
|
1328
1318
|
/*
|
|
1329
1319
|
* Use "extern PGDLLIMPORT ..." to declare variables that are defined
|
|
1330
1320
|
* in the core backend and need to be accessible by loadable modules.
|
|
@@ -1336,14 +1326,19 @@ extern unsigned long long strtoull(const char *str, char **endptr, int base);
|
|
|
1336
1326
|
|
|
1337
1327
|
/*
|
|
1338
1328
|
* Use "extern PGDLLEXPORT ..." to declare functions that are defined in
|
|
1339
|
-
* loadable modules and need to be callable by the core backend
|
|
1340
|
-
*
|
|
1341
|
-
*
|
|
1342
|
-
*
|
|
1329
|
+
* loadable modules and need to be callable by the core backend or other
|
|
1330
|
+
* loadable modules.
|
|
1331
|
+
* If the compiler knows __attribute__((visibility("*"))), we use that,
|
|
1332
|
+
* unless we already have a platform-specific definition. Otherwise,
|
|
1333
|
+
* no special marking is required.
|
|
1343
1334
|
*/
|
|
1344
1335
|
#ifndef PGDLLEXPORT
|
|
1336
|
+
#ifdef HAVE_VISIBILITY_ATTRIBUTE
|
|
1337
|
+
#define PGDLLEXPORT __attribute__((visibility("default")))
|
|
1338
|
+
#else
|
|
1345
1339
|
#define PGDLLEXPORT
|
|
1346
1340
|
#endif
|
|
1341
|
+
#endif
|
|
1347
1342
|
|
|
1348
1343
|
/*
|
|
1349
1344
|
* The following is used as the arg list for signal handlers. Any ports
|
|
@@ -1376,13 +1371,6 @@ typedef intptr_t sigjmp_buf[5];
|
|
|
1376
1371
|
#endif /* __MINGW64__ */
|
|
1377
1372
|
#endif /* WIN32 */
|
|
1378
1373
|
|
|
1379
|
-
/* EXEC_BACKEND defines */
|
|
1380
|
-
#ifdef EXEC_BACKEND
|
|
1381
|
-
#define NON_EXEC_STATIC
|
|
1382
|
-
#else
|
|
1383
|
-
#define NON_EXEC_STATIC static
|
|
1384
|
-
#endif
|
|
1385
|
-
|
|
1386
1374
|
/* /port compatibility functions */
|
|
1387
1375
|
#include "port.h"
|
|
1388
1376
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for functions in backend/catalog/catalog.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/catalog.h
|
|
@@ -38,7 +38,8 @@ extern bool IsPinnedObject(Oid classId, Oid objectId);
|
|
|
38
38
|
|
|
39
39
|
extern Oid GetNewOidWithIndex(Relation relation, Oid indexId,
|
|
40
40
|
AttrNumber oidcolumn);
|
|
41
|
-
extern
|
|
42
|
-
|
|
41
|
+
extern RelFileNumber GetNewRelFileNumber(Oid reltablespace,
|
|
42
|
+
Relation pg_class,
|
|
43
|
+
char relpersistence);
|
|
43
44
|
|
|
44
45
|
#endif /* CATALOG_H */
|
|
@@ -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
|
|
@@ -112,6 +112,7 @@ typedef enum ObjectClass
|
|
|
112
112
|
OCLASS_TSTEMPLATE, /* pg_ts_template */
|
|
113
113
|
OCLASS_TSCONFIG, /* pg_ts_config */
|
|
114
114
|
OCLASS_ROLE, /* pg_authid */
|
|
115
|
+
OCLASS_ROLE_MEMBERSHIP, /* pg_auth_members */
|
|
115
116
|
OCLASS_DATABASE, /* pg_database */
|
|
116
117
|
OCLASS_TBLSPACE, /* pg_tablespace */
|
|
117
118
|
OCLASS_FDW, /* pg_foreign_data_wrapper */
|
|
@@ -248,7 +249,7 @@ extern void recordDependencyOnTablespace(Oid classId, Oid objectId,
|
|
|
248
249
|
extern void changeDependencyOnTablespace(Oid classId, Oid objectId,
|
|
249
250
|
Oid newTablespaceId);
|
|
250
251
|
|
|
251
|
-
extern void updateAclDependencies(Oid classId, Oid objectId, int32
|
|
252
|
+
extern void updateAclDependencies(Oid classId, Oid objectId, int32 objsubId,
|
|
252
253
|
Oid ownerId,
|
|
253
254
|
int noldmembers, Oid *oldmembers,
|
|
254
255
|
int nnewmembers, Oid *newmembers);
|
|
@@ -262,8 +263,8 @@ extern void copyTemplateDependencies(Oid templateDbId, Oid newDbId);
|
|
|
262
263
|
|
|
263
264
|
extern void dropDatabaseDependencies(Oid databaseId);
|
|
264
265
|
|
|
265
|
-
extern void shdepDropOwned(List *
|
|
266
|
+
extern void shdepDropOwned(List *roleids, DropBehavior behavior);
|
|
266
267
|
|
|
267
|
-
extern void shdepReassignOwned(List *
|
|
268
|
+
extern void shdepReassignOwned(List *roleids, Oid newrole);
|
|
268
269
|
|
|
269
270
|
#endif /* DEPENDENCY_H */
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* bootstrap file from these header files.)
|
|
10
10
|
*
|
|
11
11
|
*
|
|
12
|
-
* Portions Copyright (c) 1996-
|
|
12
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
13
13
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
14
14
|
*
|
|
15
15
|
* src/include/catalog/genbki.h
|
|
@@ -71,12 +71,13 @@
|
|
|
71
71
|
* DECLARE_UNIQUE_INDEX_PKEY. ("PKEY" marks the index as being the catalog's
|
|
72
72
|
* primary key; currently this is only cosmetically different from a regular
|
|
73
73
|
* unique index. By convention, we usually make a catalog's OID column its
|
|
74
|
-
* pkey, if it has one.)
|
|
75
|
-
* OID, the rest is much like a standard 'create index' SQL command.
|
|
74
|
+
* pkey, if it has one.)
|
|
76
75
|
*
|
|
77
|
-
*
|
|
78
|
-
* the
|
|
79
|
-
*
|
|
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.
|
|
80
81
|
*
|
|
81
82
|
* The macro definitions are just to keep the C compiler from spitting up.
|
|
82
83
|
*/
|