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
|
@@ -0,0 +1,579 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* postgres.h
|
|
4
|
+
* Primary include file for PostgreSQL server .c files
|
|
5
|
+
*
|
|
6
|
+
* This should be the first file included by PostgreSQL backend modules.
|
|
7
|
+
* Client-side code should include postgres_fe.h instead.
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
11
|
+
* Portions Copyright (c) 1995, Regents of the University of California
|
|
12
|
+
*
|
|
13
|
+
* src/include/postgres.h
|
|
14
|
+
*
|
|
15
|
+
*-------------------------------------------------------------------------
|
|
16
|
+
*/
|
|
17
|
+
/*
|
|
18
|
+
*----------------------------------------------------------------
|
|
19
|
+
* TABLE OF CONTENTS
|
|
20
|
+
*
|
|
21
|
+
* When adding stuff to this file, please try to put stuff
|
|
22
|
+
* into the relevant section, or add new sections as appropriate.
|
|
23
|
+
*
|
|
24
|
+
* section description
|
|
25
|
+
* ------- ------------------------------------------------
|
|
26
|
+
* 1) Datum type + support functions
|
|
27
|
+
* 2) miscellaneous
|
|
28
|
+
*
|
|
29
|
+
* NOTES
|
|
30
|
+
*
|
|
31
|
+
* In general, this file should contain declarations that are widely needed
|
|
32
|
+
* in the backend environment, but are of no interest outside the backend.
|
|
33
|
+
*
|
|
34
|
+
* Simple type definitions live in c.h, where they are shared with
|
|
35
|
+
* postgres_fe.h. We do that since those type definitions are needed by
|
|
36
|
+
* frontend modules that want to deal with binary data transmission to or
|
|
37
|
+
* from the backend. Type definitions in this file should be for
|
|
38
|
+
* representations that never escape the backend, such as Datum.
|
|
39
|
+
*
|
|
40
|
+
*----------------------------------------------------------------
|
|
41
|
+
*/
|
|
42
|
+
#ifndef POSTGRES_H
|
|
43
|
+
#define POSTGRES_H
|
|
44
|
+
|
|
45
|
+
#include "c.h"
|
|
46
|
+
#include "utils/elog.h"
|
|
47
|
+
#include "utils/palloc.h"
|
|
48
|
+
|
|
49
|
+
/* ----------------------------------------------------------------
|
|
50
|
+
* Section 1: Datum type + support functions
|
|
51
|
+
* ----------------------------------------------------------------
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
/*
|
|
55
|
+
* A Datum contains either a value of a pass-by-value type or a pointer to a
|
|
56
|
+
* value of a pass-by-reference type. Therefore, we require:
|
|
57
|
+
*
|
|
58
|
+
* sizeof(Datum) == sizeof(void *) == 4 or 8
|
|
59
|
+
*
|
|
60
|
+
* The functions below and the analogous functions for other types should be used to
|
|
61
|
+
* convert between a Datum and the appropriate C type.
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
typedef uintptr_t Datum;
|
|
65
|
+
|
|
66
|
+
/*
|
|
67
|
+
* A NullableDatum is used in places where both a Datum and its nullness needs
|
|
68
|
+
* to be stored. This can be more efficient than storing datums and nullness
|
|
69
|
+
* in separate arrays, due to better spatial locality, even if more space may
|
|
70
|
+
* be wasted due to padding.
|
|
71
|
+
*/
|
|
72
|
+
typedef struct NullableDatum
|
|
73
|
+
{
|
|
74
|
+
#define FIELDNO_NULLABLE_DATUM_DATUM 0
|
|
75
|
+
Datum value;
|
|
76
|
+
#define FIELDNO_NULLABLE_DATUM_ISNULL 1
|
|
77
|
+
bool isnull;
|
|
78
|
+
/* due to alignment padding this could be used for flags for free */
|
|
79
|
+
} NullableDatum;
|
|
80
|
+
|
|
81
|
+
#define SIZEOF_DATUM SIZEOF_VOID_P
|
|
82
|
+
|
|
83
|
+
/*
|
|
84
|
+
* DatumGetBool
|
|
85
|
+
* Returns boolean value of a datum.
|
|
86
|
+
*
|
|
87
|
+
* Note: any nonzero value will be considered true.
|
|
88
|
+
*/
|
|
89
|
+
static inline bool
|
|
90
|
+
DatumGetBool(Datum X)
|
|
91
|
+
{
|
|
92
|
+
return (X != 0);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/*
|
|
96
|
+
* BoolGetDatum
|
|
97
|
+
* Returns datum representation for a boolean.
|
|
98
|
+
*
|
|
99
|
+
* Note: any nonzero value will be considered true.
|
|
100
|
+
*/
|
|
101
|
+
static inline Datum
|
|
102
|
+
BoolGetDatum(bool X)
|
|
103
|
+
{
|
|
104
|
+
return (Datum) (X ? 1 : 0);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/*
|
|
108
|
+
* DatumGetChar
|
|
109
|
+
* Returns character value of a datum.
|
|
110
|
+
*/
|
|
111
|
+
static inline char
|
|
112
|
+
DatumGetChar(Datum X)
|
|
113
|
+
{
|
|
114
|
+
return (char) X;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/*
|
|
118
|
+
* CharGetDatum
|
|
119
|
+
* Returns datum representation for a character.
|
|
120
|
+
*/
|
|
121
|
+
static inline Datum
|
|
122
|
+
CharGetDatum(char X)
|
|
123
|
+
{
|
|
124
|
+
return (Datum) X;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/*
|
|
128
|
+
* Int8GetDatum
|
|
129
|
+
* Returns datum representation for an 8-bit integer.
|
|
130
|
+
*/
|
|
131
|
+
static inline Datum
|
|
132
|
+
Int8GetDatum(int8 X)
|
|
133
|
+
{
|
|
134
|
+
return (Datum) X;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/*
|
|
138
|
+
* DatumGetUInt8
|
|
139
|
+
* Returns 8-bit unsigned integer value of a datum.
|
|
140
|
+
*/
|
|
141
|
+
static inline uint8
|
|
142
|
+
DatumGetUInt8(Datum X)
|
|
143
|
+
{
|
|
144
|
+
return (uint8) X;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/*
|
|
148
|
+
* UInt8GetDatum
|
|
149
|
+
* Returns datum representation for an 8-bit unsigned integer.
|
|
150
|
+
*/
|
|
151
|
+
static inline Datum
|
|
152
|
+
UInt8GetDatum(uint8 X)
|
|
153
|
+
{
|
|
154
|
+
return (Datum) X;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/*
|
|
158
|
+
* DatumGetInt16
|
|
159
|
+
* Returns 16-bit integer value of a datum.
|
|
160
|
+
*/
|
|
161
|
+
static inline int16
|
|
162
|
+
DatumGetInt16(Datum X)
|
|
163
|
+
{
|
|
164
|
+
return (int16) X;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/*
|
|
168
|
+
* Int16GetDatum
|
|
169
|
+
* Returns datum representation for a 16-bit integer.
|
|
170
|
+
*/
|
|
171
|
+
static inline Datum
|
|
172
|
+
Int16GetDatum(int16 X)
|
|
173
|
+
{
|
|
174
|
+
return (Datum) X;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/*
|
|
178
|
+
* DatumGetUInt16
|
|
179
|
+
* Returns 16-bit unsigned integer value of a datum.
|
|
180
|
+
*/
|
|
181
|
+
static inline uint16
|
|
182
|
+
DatumGetUInt16(Datum X)
|
|
183
|
+
{
|
|
184
|
+
return (uint16) X;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/*
|
|
188
|
+
* UInt16GetDatum
|
|
189
|
+
* Returns datum representation for a 16-bit unsigned integer.
|
|
190
|
+
*/
|
|
191
|
+
static inline Datum
|
|
192
|
+
UInt16GetDatum(uint16 X)
|
|
193
|
+
{
|
|
194
|
+
return (Datum) X;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/*
|
|
198
|
+
* DatumGetInt32
|
|
199
|
+
* Returns 32-bit integer value of a datum.
|
|
200
|
+
*/
|
|
201
|
+
static inline int32
|
|
202
|
+
DatumGetInt32(Datum X)
|
|
203
|
+
{
|
|
204
|
+
return (int32) X;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/*
|
|
208
|
+
* Int32GetDatum
|
|
209
|
+
* Returns datum representation for a 32-bit integer.
|
|
210
|
+
*/
|
|
211
|
+
static inline Datum
|
|
212
|
+
Int32GetDatum(int32 X)
|
|
213
|
+
{
|
|
214
|
+
return (Datum) X;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/*
|
|
218
|
+
* DatumGetUInt32
|
|
219
|
+
* Returns 32-bit unsigned integer value of a datum.
|
|
220
|
+
*/
|
|
221
|
+
static inline uint32
|
|
222
|
+
DatumGetUInt32(Datum X)
|
|
223
|
+
{
|
|
224
|
+
return (uint32) X;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/*
|
|
228
|
+
* UInt32GetDatum
|
|
229
|
+
* Returns datum representation for a 32-bit unsigned integer.
|
|
230
|
+
*/
|
|
231
|
+
static inline Datum
|
|
232
|
+
UInt32GetDatum(uint32 X)
|
|
233
|
+
{
|
|
234
|
+
return (Datum) X;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/*
|
|
238
|
+
* DatumGetObjectId
|
|
239
|
+
* Returns object identifier value of a datum.
|
|
240
|
+
*/
|
|
241
|
+
static inline Oid
|
|
242
|
+
DatumGetObjectId(Datum X)
|
|
243
|
+
{
|
|
244
|
+
return (Oid) X;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/*
|
|
248
|
+
* ObjectIdGetDatum
|
|
249
|
+
* Returns datum representation for an object identifier.
|
|
250
|
+
*/
|
|
251
|
+
static inline Datum
|
|
252
|
+
ObjectIdGetDatum(Oid X)
|
|
253
|
+
{
|
|
254
|
+
return (Datum) X;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/*
|
|
258
|
+
* DatumGetTransactionId
|
|
259
|
+
* Returns transaction identifier value of a datum.
|
|
260
|
+
*/
|
|
261
|
+
static inline TransactionId
|
|
262
|
+
DatumGetTransactionId(Datum X)
|
|
263
|
+
{
|
|
264
|
+
return (TransactionId) X;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/*
|
|
268
|
+
* TransactionIdGetDatum
|
|
269
|
+
* Returns datum representation for a transaction identifier.
|
|
270
|
+
*/
|
|
271
|
+
static inline Datum
|
|
272
|
+
TransactionIdGetDatum(TransactionId X)
|
|
273
|
+
{
|
|
274
|
+
return (Datum) X;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/*
|
|
278
|
+
* MultiXactIdGetDatum
|
|
279
|
+
* Returns datum representation for a multixact identifier.
|
|
280
|
+
*/
|
|
281
|
+
static inline Datum
|
|
282
|
+
MultiXactIdGetDatum(MultiXactId X)
|
|
283
|
+
{
|
|
284
|
+
return (Datum) X;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/*
|
|
288
|
+
* DatumGetCommandId
|
|
289
|
+
* Returns command identifier value of a datum.
|
|
290
|
+
*/
|
|
291
|
+
static inline CommandId
|
|
292
|
+
DatumGetCommandId(Datum X)
|
|
293
|
+
{
|
|
294
|
+
return (CommandId) X;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/*
|
|
298
|
+
* CommandIdGetDatum
|
|
299
|
+
* Returns datum representation for a command identifier.
|
|
300
|
+
*/
|
|
301
|
+
static inline Datum
|
|
302
|
+
CommandIdGetDatum(CommandId X)
|
|
303
|
+
{
|
|
304
|
+
return (Datum) X;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
/*
|
|
308
|
+
* DatumGetPointer
|
|
309
|
+
* Returns pointer value of a datum.
|
|
310
|
+
*/
|
|
311
|
+
static inline Pointer
|
|
312
|
+
DatumGetPointer(Datum X)
|
|
313
|
+
{
|
|
314
|
+
return (Pointer) X;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/*
|
|
318
|
+
* PointerGetDatum
|
|
319
|
+
* Returns datum representation for a pointer.
|
|
320
|
+
*/
|
|
321
|
+
static inline Datum
|
|
322
|
+
PointerGetDatum(const void *X)
|
|
323
|
+
{
|
|
324
|
+
return (Datum) X;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/*
|
|
328
|
+
* DatumGetCString
|
|
329
|
+
* Returns C string (null-terminated string) value of a datum.
|
|
330
|
+
*
|
|
331
|
+
* Note: C string is not a full-fledged Postgres type at present,
|
|
332
|
+
* but type input functions use this conversion for their inputs.
|
|
333
|
+
*/
|
|
334
|
+
static inline char *
|
|
335
|
+
DatumGetCString(Datum X)
|
|
336
|
+
{
|
|
337
|
+
return (char *) DatumGetPointer(X);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/*
|
|
341
|
+
* CStringGetDatum
|
|
342
|
+
* Returns datum representation for a C string (null-terminated string).
|
|
343
|
+
*
|
|
344
|
+
* Note: C string is not a full-fledged Postgres type at present,
|
|
345
|
+
* but type output functions use this conversion for their outputs.
|
|
346
|
+
* Note: CString is pass-by-reference; caller must ensure the pointed-to
|
|
347
|
+
* value has adequate lifetime.
|
|
348
|
+
*/
|
|
349
|
+
static inline Datum
|
|
350
|
+
CStringGetDatum(const char *X)
|
|
351
|
+
{
|
|
352
|
+
return PointerGetDatum(X);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/*
|
|
356
|
+
* DatumGetName
|
|
357
|
+
* Returns name value of a datum.
|
|
358
|
+
*/
|
|
359
|
+
static inline Name
|
|
360
|
+
DatumGetName(Datum X)
|
|
361
|
+
{
|
|
362
|
+
return (Name) DatumGetPointer(X);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/*
|
|
366
|
+
* NameGetDatum
|
|
367
|
+
* Returns datum representation for a name.
|
|
368
|
+
*
|
|
369
|
+
* Note: Name is pass-by-reference; caller must ensure the pointed-to
|
|
370
|
+
* value has adequate lifetime.
|
|
371
|
+
*/
|
|
372
|
+
static inline Datum
|
|
373
|
+
NameGetDatum(const NameData *X)
|
|
374
|
+
{
|
|
375
|
+
return CStringGetDatum(NameStr(*X));
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
/*
|
|
379
|
+
* DatumGetInt64
|
|
380
|
+
* Returns 64-bit integer value of a datum.
|
|
381
|
+
*
|
|
382
|
+
* Note: this function hides whether int64 is pass by value or by reference.
|
|
383
|
+
*/
|
|
384
|
+
static inline int64
|
|
385
|
+
DatumGetInt64(Datum X)
|
|
386
|
+
{
|
|
387
|
+
#ifdef USE_FLOAT8_BYVAL
|
|
388
|
+
return (int64) X;
|
|
389
|
+
#else
|
|
390
|
+
return *((int64 *) DatumGetPointer(X));
|
|
391
|
+
#endif
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/*
|
|
395
|
+
* Int64GetDatum
|
|
396
|
+
* Returns datum representation for a 64-bit integer.
|
|
397
|
+
*
|
|
398
|
+
* Note: if int64 is pass by reference, this function returns a reference
|
|
399
|
+
* to palloc'd space.
|
|
400
|
+
*/
|
|
401
|
+
#ifdef USE_FLOAT8_BYVAL
|
|
402
|
+
static inline Datum
|
|
403
|
+
Int64GetDatum(int64 X)
|
|
404
|
+
{
|
|
405
|
+
return (Datum) X;
|
|
406
|
+
}
|
|
407
|
+
#else
|
|
408
|
+
extern Datum Int64GetDatum(int64 X);
|
|
409
|
+
#endif
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
/*
|
|
413
|
+
* DatumGetUInt64
|
|
414
|
+
* Returns 64-bit unsigned integer value of a datum.
|
|
415
|
+
*
|
|
416
|
+
* Note: this function hides whether int64 is pass by value or by reference.
|
|
417
|
+
*/
|
|
418
|
+
static inline uint64
|
|
419
|
+
DatumGetUInt64(Datum X)
|
|
420
|
+
{
|
|
421
|
+
#ifdef USE_FLOAT8_BYVAL
|
|
422
|
+
return (uint64) X;
|
|
423
|
+
#else
|
|
424
|
+
return *((uint64 *) DatumGetPointer(X));
|
|
425
|
+
#endif
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/*
|
|
429
|
+
* UInt64GetDatum
|
|
430
|
+
* Returns datum representation for a 64-bit unsigned integer.
|
|
431
|
+
*
|
|
432
|
+
* Note: if int64 is pass by reference, this function returns a reference
|
|
433
|
+
* to palloc'd space.
|
|
434
|
+
*/
|
|
435
|
+
static inline Datum
|
|
436
|
+
UInt64GetDatum(uint64 X)
|
|
437
|
+
{
|
|
438
|
+
#ifdef USE_FLOAT8_BYVAL
|
|
439
|
+
return (Datum) X;
|
|
440
|
+
#else
|
|
441
|
+
return Int64GetDatum((int64) X);
|
|
442
|
+
#endif
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/*
|
|
446
|
+
* Float <-> Datum conversions
|
|
447
|
+
*
|
|
448
|
+
* These have to be implemented as inline functions rather than macros, when
|
|
449
|
+
* passing by value, because many machines pass int and float function
|
|
450
|
+
* parameters/results differently; so we need to play weird games with unions.
|
|
451
|
+
*/
|
|
452
|
+
|
|
453
|
+
/*
|
|
454
|
+
* DatumGetFloat4
|
|
455
|
+
* Returns 4-byte floating point value of a datum.
|
|
456
|
+
*/
|
|
457
|
+
static inline float4
|
|
458
|
+
DatumGetFloat4(Datum X)
|
|
459
|
+
{
|
|
460
|
+
union
|
|
461
|
+
{
|
|
462
|
+
int32 value;
|
|
463
|
+
float4 retval;
|
|
464
|
+
} myunion;
|
|
465
|
+
|
|
466
|
+
myunion.value = DatumGetInt32(X);
|
|
467
|
+
return myunion.retval;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
/*
|
|
471
|
+
* Float4GetDatum
|
|
472
|
+
* Returns datum representation for a 4-byte floating point number.
|
|
473
|
+
*/
|
|
474
|
+
static inline Datum
|
|
475
|
+
Float4GetDatum(float4 X)
|
|
476
|
+
{
|
|
477
|
+
union
|
|
478
|
+
{
|
|
479
|
+
float4 value;
|
|
480
|
+
int32 retval;
|
|
481
|
+
} myunion;
|
|
482
|
+
|
|
483
|
+
myunion.value = X;
|
|
484
|
+
return Int32GetDatum(myunion.retval);
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
/*
|
|
488
|
+
* DatumGetFloat8
|
|
489
|
+
* Returns 8-byte floating point value of a datum.
|
|
490
|
+
*
|
|
491
|
+
* Note: this function hides whether float8 is pass by value or by reference.
|
|
492
|
+
*/
|
|
493
|
+
static inline float8
|
|
494
|
+
DatumGetFloat8(Datum X)
|
|
495
|
+
{
|
|
496
|
+
#ifdef USE_FLOAT8_BYVAL
|
|
497
|
+
union
|
|
498
|
+
{
|
|
499
|
+
int64 value;
|
|
500
|
+
float8 retval;
|
|
501
|
+
} myunion;
|
|
502
|
+
|
|
503
|
+
myunion.value = DatumGetInt64(X);
|
|
504
|
+
return myunion.retval;
|
|
505
|
+
#else
|
|
506
|
+
return *((float8 *) DatumGetPointer(X));
|
|
507
|
+
#endif
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
/*
|
|
511
|
+
* Float8GetDatum
|
|
512
|
+
* Returns datum representation for an 8-byte floating point number.
|
|
513
|
+
*
|
|
514
|
+
* Note: if float8 is pass by reference, this function returns a reference
|
|
515
|
+
* to palloc'd space.
|
|
516
|
+
*/
|
|
517
|
+
#ifdef USE_FLOAT8_BYVAL
|
|
518
|
+
static inline Datum
|
|
519
|
+
Float8GetDatum(float8 X)
|
|
520
|
+
{
|
|
521
|
+
union
|
|
522
|
+
{
|
|
523
|
+
float8 value;
|
|
524
|
+
int64 retval;
|
|
525
|
+
} myunion;
|
|
526
|
+
|
|
527
|
+
myunion.value = X;
|
|
528
|
+
return Int64GetDatum(myunion.retval);
|
|
529
|
+
}
|
|
530
|
+
#else
|
|
531
|
+
extern Datum Float8GetDatum(float8 X);
|
|
532
|
+
#endif
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
/*
|
|
536
|
+
* Int64GetDatumFast
|
|
537
|
+
* Float8GetDatumFast
|
|
538
|
+
*
|
|
539
|
+
* These macros are intended to allow writing code that does not depend on
|
|
540
|
+
* whether int64 and float8 are pass-by-reference types, while not
|
|
541
|
+
* sacrificing performance when they are. The argument must be a variable
|
|
542
|
+
* that will exist and have the same value for as long as the Datum is needed.
|
|
543
|
+
* In the pass-by-ref case, the address of the variable is taken to use as
|
|
544
|
+
* the Datum. In the pass-by-val case, these are the same as the non-Fast
|
|
545
|
+
* functions, except for asserting that the variable is of the correct type.
|
|
546
|
+
*/
|
|
547
|
+
|
|
548
|
+
#ifdef USE_FLOAT8_BYVAL
|
|
549
|
+
#define Int64GetDatumFast(X) \
|
|
550
|
+
(AssertVariableIsOfTypeMacro(X, int64), Int64GetDatum(X))
|
|
551
|
+
#define Float8GetDatumFast(X) \
|
|
552
|
+
(AssertVariableIsOfTypeMacro(X, double), Float8GetDatum(X))
|
|
553
|
+
#else
|
|
554
|
+
#define Int64GetDatumFast(X) \
|
|
555
|
+
(AssertVariableIsOfTypeMacro(X, int64), PointerGetDatum(&(X)))
|
|
556
|
+
#define Float8GetDatumFast(X) \
|
|
557
|
+
(AssertVariableIsOfTypeMacro(X, double), PointerGetDatum(&(X)))
|
|
558
|
+
#endif
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
/* ----------------------------------------------------------------
|
|
562
|
+
* Section 2: miscellaneous
|
|
563
|
+
* ----------------------------------------------------------------
|
|
564
|
+
*/
|
|
565
|
+
|
|
566
|
+
/*
|
|
567
|
+
* NON_EXEC_STATIC: It's sometimes useful to define a variable or function
|
|
568
|
+
* that is normally static but extern when using EXEC_BACKEND (see
|
|
569
|
+
* pg_config_manual.h). There would then typically be some code in
|
|
570
|
+
* postmaster.c that uses those extern symbols to transfer state between
|
|
571
|
+
* processes or do whatever other things it needs to do in EXEC_BACKEND mode.
|
|
572
|
+
*/
|
|
573
|
+
#ifdef EXEC_BACKEND
|
|
574
|
+
#define NON_EXEC_STATIC
|
|
575
|
+
#else
|
|
576
|
+
#define NON_EXEC_STATIC static
|
|
577
|
+
#endif
|
|
578
|
+
|
|
579
|
+
#endif /* POSTGRES_H */
|
|
@@ -46,7 +46,6 @@ typedef unsigned int Oid;
|
|
|
46
46
|
/* Define a signed 64-bit integer type for use in client API declarations. */
|
|
47
47
|
typedef PG_INT64_TYPE pg_int64;
|
|
48
48
|
|
|
49
|
-
|
|
50
49
|
/*
|
|
51
50
|
* Identifiers of error message fields. Kept here to keep common
|
|
52
51
|
* between frontend and backend, and also to export them to libpq
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* header file for integrated autovacuum daemon
|
|
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/postmaster/autovacuum.h
|
|
@@ -27,25 +27,25 @@ typedef enum
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
/* GUC variables */
|
|
30
|
-
extern bool autovacuum_start_daemon;
|
|
31
|
-
extern int
|
|
32
|
-
extern int
|
|
33
|
-
extern int
|
|
34
|
-
extern int
|
|
35
|
-
extern double autovacuum_vac_scale;
|
|
36
|
-
extern int
|
|
37
|
-
extern double autovacuum_vac_ins_scale;
|
|
38
|
-
extern int
|
|
39
|
-
extern double autovacuum_anl_scale;
|
|
40
|
-
extern int
|
|
41
|
-
extern int
|
|
42
|
-
extern double autovacuum_vac_cost_delay;
|
|
43
|
-
extern int
|
|
30
|
+
extern PGDLLIMPORT bool autovacuum_start_daemon;
|
|
31
|
+
extern PGDLLIMPORT int autovacuum_max_workers;
|
|
32
|
+
extern PGDLLIMPORT int autovacuum_work_mem;
|
|
33
|
+
extern PGDLLIMPORT int autovacuum_naptime;
|
|
34
|
+
extern PGDLLIMPORT int autovacuum_vac_thresh;
|
|
35
|
+
extern PGDLLIMPORT double autovacuum_vac_scale;
|
|
36
|
+
extern PGDLLIMPORT int autovacuum_vac_ins_thresh;
|
|
37
|
+
extern PGDLLIMPORT double autovacuum_vac_ins_scale;
|
|
38
|
+
extern PGDLLIMPORT int autovacuum_anl_thresh;
|
|
39
|
+
extern PGDLLIMPORT double autovacuum_anl_scale;
|
|
40
|
+
extern PGDLLIMPORT int autovacuum_freeze_max_age;
|
|
41
|
+
extern PGDLLIMPORT int autovacuum_multixact_freeze_max_age;
|
|
42
|
+
extern PGDLLIMPORT double autovacuum_vac_cost_delay;
|
|
43
|
+
extern PGDLLIMPORT int autovacuum_vac_cost_limit;
|
|
44
44
|
|
|
45
45
|
/* autovacuum launcher PID, only valid when worker is shutting down */
|
|
46
|
-
extern int
|
|
46
|
+
extern PGDLLIMPORT int AutovacuumLauncherPid;
|
|
47
47
|
|
|
48
|
-
extern int
|
|
48
|
+
extern PGDLLIMPORT int Log_autovacuum_min_duration;
|
|
49
49
|
|
|
50
50
|
/* Status inquiry functions */
|
|
51
51
|
extern bool AutoVacuumingActive(void);
|
|
@@ -63,9 +63,6 @@ extern int StartAutoVacWorker(void);
|
|
|
63
63
|
/* called from postmaster when a worker could not be forked */
|
|
64
64
|
extern void AutoVacWorkerFailed(void);
|
|
65
65
|
|
|
66
|
-
/* autovacuum cost-delay balancer */
|
|
67
|
-
extern void AutoVacuumUpdateDelay(void);
|
|
68
|
-
|
|
69
66
|
#ifdef EXEC_BACKEND
|
|
70
67
|
extern void AutoVacLauncherMain(int argc, char *argv[]) pg_attribute_noreturn();
|
|
71
68
|
extern void AutoVacWorkerMain(int argc, char *argv[]) pg_attribute_noreturn();
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* different) code.
|
|
32
32
|
*
|
|
33
33
|
*
|
|
34
|
-
* Portions Copyright (c) 1996-
|
|
34
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
35
35
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
36
36
|
*
|
|
37
37
|
* IDENTIFICATION
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
|
|
49
49
|
/*
|
|
50
50
|
* Pass this flag to have your worker be able to connect to shared memory.
|
|
51
|
+
* This flag is required.
|
|
51
52
|
*/
|
|
52
53
|
#define BGWORKER_SHMEM_ACCESS 0x0001
|
|
53
54
|
|
|
@@ -120,7 +121,7 @@ extern bool RegisterDynamicBackgroundWorker(BackgroundWorker *worker,
|
|
|
120
121
|
/* Query the status of a bgworker */
|
|
121
122
|
extern BgwHandleStatus GetBackgroundWorkerPid(BackgroundWorkerHandle *handle,
|
|
122
123
|
pid_t *pidp);
|
|
123
|
-
extern BgwHandleStatus WaitForBackgroundWorkerStartup(BackgroundWorkerHandle *handle, pid_t *
|
|
124
|
+
extern BgwHandleStatus WaitForBackgroundWorkerStartup(BackgroundWorkerHandle *handle, pid_t *pidp);
|
|
124
125
|
extern BgwHandleStatus
|
|
125
126
|
WaitForBackgroundWorkerShutdown(BackgroundWorkerHandle *);
|
|
126
127
|
extern const char *GetBackgroundWorkerTypeByPid(pid_t pid);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* bgworker_internals.h
|
|
3
3
|
* POSTGRES pluggable background workers internals
|
|
4
4
|
*
|
|
5
|
-
* Portions Copyright (c) 1996-
|
|
5
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
6
6
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
7
7
|
*
|
|
8
8
|
* IDENTIFICATION
|
|
@@ -42,7 +42,7 @@ typedef struct RegisteredBgWorker
|
|
|
42
42
|
slist_node rw_lnode; /* list link */
|
|
43
43
|
} RegisteredBgWorker;
|
|
44
44
|
|
|
45
|
-
extern slist_head BackgroundWorkerList;
|
|
45
|
+
extern PGDLLIMPORT slist_head BackgroundWorkerList;
|
|
46
46
|
|
|
47
47
|
extern Size BackgroundWorkerShmemSize(void);
|
|
48
48
|
extern void BackgroundWorkerShmemInit(void);
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* The bgwriter process used to handle checkpointing duties too. Now
|
|
7
7
|
* there is a separate process, but we did not bother to split this header.
|
|
8
8
|
*
|
|
9
|
-
* Portions Copyright (c) 1996-
|
|
9
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
10
10
|
*
|
|
11
11
|
* src/include/postmaster/bgwriter.h
|
|
12
12
|
*
|
|
@@ -16,16 +16,16 @@
|
|
|
16
16
|
#define _BGWRITER_H
|
|
17
17
|
|
|
18
18
|
#include "storage/block.h"
|
|
19
|
-
#include "storage/
|
|
19
|
+
#include "storage/relfilelocator.h"
|
|
20
20
|
#include "storage/smgr.h"
|
|
21
21
|
#include "storage/sync.h"
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
/* GUC options */
|
|
25
|
-
extern int
|
|
26
|
-
extern int
|
|
27
|
-
extern int
|
|
28
|
-
extern double CheckPointCompletionTarget;
|
|
25
|
+
extern PGDLLIMPORT int BgWriterDelay;
|
|
26
|
+
extern PGDLLIMPORT int CheckPointTimeout;
|
|
27
|
+
extern PGDLLIMPORT int CheckPointWarning;
|
|
28
|
+
extern PGDLLIMPORT double CheckPointCompletionTarget;
|
|
29
29
|
|
|
30
30
|
extern void BackgroundWriterMain(void) pg_attribute_noreturn();
|
|
31
31
|
extern void CheckpointerMain(void) pg_attribute_noreturn();
|