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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pg_wchar.h
|
|
4
4
|
* multibyte-character support
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/mb/pg_wchar.h
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
#ifndef PG_WCHAR_H
|
|
20
20
|
#define PG_WCHAR_H
|
|
21
21
|
|
|
22
|
+
#include "port/simd.h"
|
|
23
|
+
|
|
22
24
|
/*
|
|
23
25
|
* The pg_wchar type
|
|
24
26
|
*/
|
|
@@ -306,15 +308,33 @@ typedef enum pg_enc
|
|
|
306
308
|
|
|
307
309
|
/*
|
|
308
310
|
* When converting strings between different encodings, we assume that space
|
|
309
|
-
* for converted result is 4-to-1 growth in the worst case.
|
|
311
|
+
* for converted result is 4-to-1 growth in the worst case. The rate for
|
|
310
312
|
* currently supported encoding pairs are within 3 (SJIS JIS X0201 half width
|
|
311
|
-
*
|
|
313
|
+
* kana -> UTF8 is the worst case). So "4" should be enough for the moment.
|
|
312
314
|
*
|
|
313
315
|
* Note that this is not the same as the maximum character width in any
|
|
314
316
|
* particular encoding.
|
|
315
317
|
*/
|
|
316
318
|
#define MAX_CONVERSION_GROWTH 4
|
|
317
319
|
|
|
320
|
+
/*
|
|
321
|
+
* Maximum byte length of a string that's required in any encoding to convert
|
|
322
|
+
* at least one character to any other encoding. In other words, if you feed
|
|
323
|
+
* MAX_CONVERSION_INPUT_LENGTH bytes to any encoding conversion function, it
|
|
324
|
+
* is guaranteed to be able to convert something without needing more input
|
|
325
|
+
* (assuming the input is valid).
|
|
326
|
+
*
|
|
327
|
+
* Currently, the maximum case is the conversion UTF8 -> SJIS JIS X0201 half
|
|
328
|
+
* width kana, where a pair of UTF-8 characters is converted into a single
|
|
329
|
+
* SHIFT_JIS_2004 character (the reverse of the worst case for
|
|
330
|
+
* MAX_CONVERSION_GROWTH). It needs 6 bytes of input. In theory, a
|
|
331
|
+
* user-defined conversion function might have more complicated cases, although
|
|
332
|
+
* for the reverse mapping you would probably also need to bump up
|
|
333
|
+
* MAX_CONVERSION_GROWTH. But there is no need to be stingy here, so make it
|
|
334
|
+
* generous.
|
|
335
|
+
*/
|
|
336
|
+
#define MAX_CONVERSION_INPUT_LENGTH 16
|
|
337
|
+
|
|
318
338
|
/*
|
|
319
339
|
* Maximum byte length of the string equivalent to any one Unicode code point,
|
|
320
340
|
* in any backend encoding. The current value assumes that a 4-byte UTF-8
|
|
@@ -341,7 +361,7 @@ typedef struct pg_enc2name
|
|
|
341
361
|
#endif
|
|
342
362
|
} pg_enc2name;
|
|
343
363
|
|
|
344
|
-
extern const pg_enc2name pg_enc2name_tbl[];
|
|
364
|
+
extern PGDLLIMPORT const pg_enc2name pg_enc2name_tbl[];
|
|
345
365
|
|
|
346
366
|
/*
|
|
347
367
|
* Encoding names for gettext
|
|
@@ -352,7 +372,7 @@ typedef struct pg_enc2gettext
|
|
|
352
372
|
const char *name;
|
|
353
373
|
} pg_enc2gettext;
|
|
354
374
|
|
|
355
|
-
extern const pg_enc2gettext pg_enc2gettext_tbl[];
|
|
375
|
+
extern PGDLLIMPORT const pg_enc2gettext pg_enc2gettext_tbl[];
|
|
356
376
|
|
|
357
377
|
/*
|
|
358
378
|
* pg_wchar stuff
|
|
@@ -371,7 +391,9 @@ typedef int (*mbdisplaylen_converter) (const unsigned char *mbstr);
|
|
|
371
391
|
|
|
372
392
|
typedef bool (*mbcharacter_incrementer) (unsigned char *mbstr, int len);
|
|
373
393
|
|
|
374
|
-
typedef int (*
|
|
394
|
+
typedef int (*mbchar_verifier) (const unsigned char *mbstr, int len);
|
|
395
|
+
|
|
396
|
+
typedef int (*mbstr_verifier) (const unsigned char *mbstr, int len);
|
|
375
397
|
|
|
376
398
|
typedef struct
|
|
377
399
|
{
|
|
@@ -381,11 +403,12 @@ typedef struct
|
|
|
381
403
|
* to a multibyte */
|
|
382
404
|
mblen_converter mblen; /* get byte length of a char */
|
|
383
405
|
mbdisplaylen_converter dsplen; /* get display width of a char */
|
|
384
|
-
|
|
406
|
+
mbchar_verifier mbverifychar; /* verify multibyte character */
|
|
407
|
+
mbstr_verifier mbverifystr; /* verify multibyte string */
|
|
385
408
|
int maxmblen; /* max bytes for a char in this encoding */
|
|
386
409
|
} pg_wchar_tbl;
|
|
387
410
|
|
|
388
|
-
extern const pg_wchar_tbl pg_wchar_table[];
|
|
411
|
+
extern PGDLLIMPORT const pg_wchar_tbl pg_wchar_table[];
|
|
389
412
|
|
|
390
413
|
/*
|
|
391
414
|
* Data structures for conversions between UTF-8 and other encodings
|
|
@@ -553,8 +576,10 @@ extern int pg_valid_server_encoding_id(int encoding);
|
|
|
553
576
|
* earlier in this file are also available from libpgcommon.
|
|
554
577
|
*/
|
|
555
578
|
extern int pg_encoding_mblen(int encoding, const char *mbstr);
|
|
579
|
+
extern int pg_encoding_mblen_bounded(int encoding, const char *mbstr);
|
|
556
580
|
extern int pg_encoding_dsplen(int encoding, const char *mbstr);
|
|
557
|
-
extern int
|
|
581
|
+
extern int pg_encoding_verifymbchar(int encoding, const char *mbstr, int len);
|
|
582
|
+
extern int pg_encoding_verifymbstr(int encoding, const char *mbstr, int len);
|
|
558
583
|
extern int pg_encoding_max_length(int encoding);
|
|
559
584
|
extern int pg_valid_client_encoding(const char *name);
|
|
560
585
|
extern int pg_valid_server_encoding(const char *name);
|
|
@@ -581,11 +606,11 @@ extern int pg_encoding_wchar2mb_with_len(int encoding,
|
|
|
581
606
|
extern int pg_char_and_wchar_strcmp(const char *s1, const pg_wchar *s2);
|
|
582
607
|
extern int pg_wchar_strncmp(const pg_wchar *s1, const pg_wchar *s2, size_t n);
|
|
583
608
|
extern int pg_char_and_wchar_strncmp(const char *s1, const pg_wchar *s2, size_t n);
|
|
584
|
-
extern size_t pg_wchar_strlen(const pg_wchar *
|
|
609
|
+
extern size_t pg_wchar_strlen(const pg_wchar *str);
|
|
585
610
|
extern int pg_mblen(const char *mbstr);
|
|
586
611
|
extern int pg_dsplen(const char *mbstr);
|
|
587
612
|
extern int pg_mbstrlen(const char *mbstr);
|
|
588
|
-
extern int pg_mbstrlen_with_len(const char *mbstr, int
|
|
613
|
+
extern int pg_mbstrlen_with_len(const char *mbstr, int limit);
|
|
589
614
|
extern int pg_mbcliplen(const char *mbstr, int len, int limit);
|
|
590
615
|
extern int pg_encoding_mbcliplen(int encoding, const char *mbstr,
|
|
591
616
|
int len, int limit);
|
|
@@ -612,6 +637,12 @@ extern int pg_bind_textdomain_codeset(const char *domainname);
|
|
|
612
637
|
extern unsigned char *pg_do_encoding_conversion(unsigned char *src, int len,
|
|
613
638
|
int src_encoding,
|
|
614
639
|
int dest_encoding);
|
|
640
|
+
extern int pg_do_encoding_conversion_buf(Oid proc,
|
|
641
|
+
int src_encoding,
|
|
642
|
+
int dest_encoding,
|
|
643
|
+
unsigned char *src, int srclen,
|
|
644
|
+
unsigned char *dest, int destlen,
|
|
645
|
+
bool noError);
|
|
615
646
|
|
|
616
647
|
extern char *pg_client_to_server(const char *s, int len);
|
|
617
648
|
extern char *pg_server_to_client(const char *s, int len);
|
|
@@ -619,22 +650,23 @@ extern char *pg_any_to_server(const char *s, int len, int encoding);
|
|
|
619
650
|
extern char *pg_server_to_any(const char *s, int len, int encoding);
|
|
620
651
|
|
|
621
652
|
extern void pg_unicode_to_server(pg_wchar c, unsigned char *s);
|
|
653
|
+
extern bool pg_unicode_to_server_noerror(pg_wchar c, unsigned char *s);
|
|
622
654
|
|
|
623
655
|
extern unsigned short BIG5toCNS(unsigned short big5, unsigned char *lc);
|
|
624
656
|
extern unsigned short CNStoBIG5(unsigned short cns, unsigned char lc);
|
|
625
657
|
|
|
626
|
-
extern
|
|
658
|
+
extern int UtfToLocal(const unsigned char *utf, int len,
|
|
627
659
|
unsigned char *iso,
|
|
628
660
|
const pg_mb_radix_tree *map,
|
|
629
661
|
const pg_utf_to_local_combined *cmap, int cmapsize,
|
|
630
662
|
utf_local_conversion_func conv_func,
|
|
631
|
-
int encoding);
|
|
632
|
-
extern
|
|
663
|
+
int encoding, bool noError);
|
|
664
|
+
extern int LocalToUtf(const unsigned char *iso, int len,
|
|
633
665
|
unsigned char *utf,
|
|
634
666
|
const pg_mb_radix_tree *map,
|
|
635
667
|
const pg_local_to_utf_combined *cmap, int cmapsize,
|
|
636
668
|
utf_local_conversion_func conv_func,
|
|
637
|
-
int encoding);
|
|
669
|
+
int encoding, bool noError);
|
|
638
670
|
|
|
639
671
|
extern bool pg_verifymbstr(const char *mbstr, int len, bool noError);
|
|
640
672
|
extern bool pg_verify_mbstr(int encoding, const char *mbstr, int len,
|
|
@@ -652,21 +684,89 @@ extern void report_invalid_encoding(int encoding, const char *mbstr, int len) pg
|
|
|
652
684
|
extern void report_untranslatable_char(int src_encoding, int dest_encoding,
|
|
653
685
|
const char *mbstr, int len) pg_attribute_noreturn();
|
|
654
686
|
|
|
655
|
-
extern
|
|
656
|
-
int src_encoding, int dest_encoding,
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
687
|
+
extern int local2local(const unsigned char *l, unsigned char *p, int len,
|
|
688
|
+
int src_encoding, int dest_encoding,
|
|
689
|
+
const unsigned char *tab, bool noError);
|
|
690
|
+
extern int latin2mic(const unsigned char *l, unsigned char *p, int len,
|
|
691
|
+
int lc, int encoding, bool noError);
|
|
692
|
+
extern int mic2latin(const unsigned char *mic, unsigned char *p, int len,
|
|
693
|
+
int lc, int encoding, bool noError);
|
|
694
|
+
extern int latin2mic_with_table(const unsigned char *l, unsigned char *p,
|
|
662
695
|
int len, int lc, int encoding,
|
|
663
|
-
const unsigned char *tab);
|
|
664
|
-
extern
|
|
696
|
+
const unsigned char *tab, bool noError);
|
|
697
|
+
extern int mic2latin_with_table(const unsigned char *mic, unsigned char *p,
|
|
665
698
|
int len, int lc, int encoding,
|
|
666
|
-
const unsigned char *tab);
|
|
699
|
+
const unsigned char *tab, bool noError);
|
|
667
700
|
|
|
668
701
|
#ifdef WIN32
|
|
669
702
|
extern WCHAR *pgwin32_message_to_UTF16(const char *str, int len, int *utf16len);
|
|
670
703
|
#endif
|
|
671
704
|
|
|
705
|
+
|
|
706
|
+
/*
|
|
707
|
+
* Verify a chunk of bytes for valid ASCII.
|
|
708
|
+
*
|
|
709
|
+
* Returns false if the input contains any zero bytes or bytes with the
|
|
710
|
+
* high-bit set. Input len must be a multiple of the chunk size (8 or 16).
|
|
711
|
+
*/
|
|
712
|
+
static inline bool
|
|
713
|
+
is_valid_ascii(const unsigned char *s, int len)
|
|
714
|
+
{
|
|
715
|
+
const unsigned char *const s_end = s + len;
|
|
716
|
+
Vector8 chunk;
|
|
717
|
+
Vector8 highbit_cum = vector8_broadcast(0);
|
|
718
|
+
#ifdef USE_NO_SIMD
|
|
719
|
+
Vector8 zero_cum = vector8_broadcast(0x80);
|
|
720
|
+
#endif
|
|
721
|
+
|
|
722
|
+
Assert(len % sizeof(chunk) == 0);
|
|
723
|
+
|
|
724
|
+
while (s < s_end)
|
|
725
|
+
{
|
|
726
|
+
vector8_load(&chunk, s);
|
|
727
|
+
|
|
728
|
+
/* Capture any zero bytes in this chunk. */
|
|
729
|
+
#ifdef USE_NO_SIMD
|
|
730
|
+
|
|
731
|
+
/*
|
|
732
|
+
* First, add 0x7f to each byte. This sets the high bit in each byte,
|
|
733
|
+
* unless it was a zero. If any resulting high bits are zero, the
|
|
734
|
+
* corresponding high bits in the zero accumulator will be cleared.
|
|
735
|
+
*
|
|
736
|
+
* If none of the bytes in the chunk had the high bit set, the max
|
|
737
|
+
* value each byte can have after the addition is 0x7f + 0x7f = 0xfe,
|
|
738
|
+
* and we don't need to worry about carrying over to the next byte. If
|
|
739
|
+
* any input bytes did have the high bit set, it doesn't matter
|
|
740
|
+
* because we check for those separately.
|
|
741
|
+
*/
|
|
742
|
+
zero_cum &= (chunk + vector8_broadcast(0x7F));
|
|
743
|
+
#else
|
|
744
|
+
|
|
745
|
+
/*
|
|
746
|
+
* Set all bits in each lane of the highbit accumulator where input
|
|
747
|
+
* bytes are zero.
|
|
748
|
+
*/
|
|
749
|
+
highbit_cum = vector8_or(highbit_cum,
|
|
750
|
+
vector8_eq(chunk, vector8_broadcast(0)));
|
|
751
|
+
#endif
|
|
752
|
+
|
|
753
|
+
/* Capture all set bits in this chunk. */
|
|
754
|
+
highbit_cum = vector8_or(highbit_cum, chunk);
|
|
755
|
+
|
|
756
|
+
s += sizeof(chunk);
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
/* Check if any high bits in the high bit accumulator got set. */
|
|
760
|
+
if (vector8_is_highbit_set(highbit_cum))
|
|
761
|
+
return false;
|
|
762
|
+
|
|
763
|
+
#ifdef USE_NO_SIMD
|
|
764
|
+
/* Check if any high bits in the zero accumulator got cleared. */
|
|
765
|
+
if (zero_cum != vector8_broadcast(0x80))
|
|
766
|
+
return false;
|
|
767
|
+
#endif
|
|
768
|
+
|
|
769
|
+
return true;
|
|
770
|
+
}
|
|
771
|
+
|
|
672
772
|
#endif /* PG_WCHAR_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* stringinfo_mb.h
|
|
4
4
|
* multibyte support for StringInfo
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/mb/stringinfo_mb.h
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Over time, this has also become the preferred place for widely known
|
|
11
11
|
* resource-limitation stuff, such as work_mem and check_stack_depth().
|
|
12
12
|
*
|
|
13
|
-
* Portions Copyright (c) 1996-
|
|
13
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
14
14
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
15
15
|
*
|
|
16
16
|
* src/include/miscadmin.h
|
|
@@ -57,6 +57,15 @@
|
|
|
57
57
|
* allowing die interrupts: HOLD_CANCEL_INTERRUPTS() and
|
|
58
58
|
* RESUME_CANCEL_INTERRUPTS().
|
|
59
59
|
*
|
|
60
|
+
* Note that ProcessInterrupts() has also acquired a number of tasks that
|
|
61
|
+
* do not necessarily cause a query-cancel-or-die response. Hence, it's
|
|
62
|
+
* possible that it will just clear InterruptPending and return.
|
|
63
|
+
*
|
|
64
|
+
* INTERRUPTS_PENDING_CONDITION() can be checked to see whether an
|
|
65
|
+
* interrupt needs to be serviced, without trying to do so immediately.
|
|
66
|
+
* Some callers are also interested in INTERRUPTS_CAN_BE_PROCESSED(),
|
|
67
|
+
* which tells whether ProcessInterrupts is sure to clear the interrupt.
|
|
68
|
+
*
|
|
60
69
|
* Special mechanisms are used to let an interrupt be accepted when we are
|
|
61
70
|
* waiting for a lock or when we are waiting for command input (but, of
|
|
62
71
|
* course, only if the interrupt holdoff counter is zero). See the
|
|
@@ -82,8 +91,12 @@ extern PGDLLIMPORT __thread volatile sig_atomic_t InterruptPending;
|
|
|
82
91
|
extern PGDLLIMPORT volatile sig_atomic_t QueryCancelPending;
|
|
83
92
|
extern PGDLLIMPORT volatile sig_atomic_t ProcDiePending;
|
|
84
93
|
extern PGDLLIMPORT volatile sig_atomic_t IdleInTransactionSessionTimeoutPending;
|
|
94
|
+
extern PGDLLIMPORT volatile sig_atomic_t IdleSessionTimeoutPending;
|
|
85
95
|
extern PGDLLIMPORT volatile sig_atomic_t ProcSignalBarrierPending;
|
|
96
|
+
extern PGDLLIMPORT volatile sig_atomic_t LogMemoryContextPending;
|
|
97
|
+
extern PGDLLIMPORT volatile sig_atomic_t IdleStatsUpdateTimeoutPending;
|
|
86
98
|
|
|
99
|
+
extern PGDLLIMPORT volatile sig_atomic_t CheckClientConnectionPending;
|
|
87
100
|
extern PGDLLIMPORT volatile sig_atomic_t ClientConnectionLost;
|
|
88
101
|
|
|
89
102
|
/* these are marked volatile because they are examined by signal handlers: */
|
|
@@ -94,24 +107,27 @@ extern PGDLLIMPORT __thread volatile uint32 CritSectionCount;
|
|
|
94
107
|
/* in tcop/postgres.c */
|
|
95
108
|
extern void ProcessInterrupts(void);
|
|
96
109
|
|
|
110
|
+
/* Test whether an interrupt is pending */
|
|
97
111
|
#ifndef WIN32
|
|
112
|
+
#define INTERRUPTS_PENDING_CONDITION() \
|
|
113
|
+
(unlikely(InterruptPending))
|
|
114
|
+
#else
|
|
115
|
+
#define INTERRUPTS_PENDING_CONDITION() \
|
|
116
|
+
(unlikely(UNBLOCKED_SIGNAL_QUEUE()) ? pgwin32_dispatch_queued_signals() : 0, \
|
|
117
|
+
unlikely(InterruptPending))
|
|
118
|
+
#endif
|
|
98
119
|
|
|
120
|
+
/* Service interrupt, if one is pending and it's safe to service it now */
|
|
99
121
|
#define CHECK_FOR_INTERRUPTS() \
|
|
100
122
|
do { \
|
|
101
|
-
if (
|
|
102
|
-
ProcessInterrupts(); \
|
|
103
|
-
} while(0)
|
|
104
|
-
#else /* WIN32 */
|
|
105
|
-
|
|
106
|
-
#define CHECK_FOR_INTERRUPTS() \
|
|
107
|
-
do { \
|
|
108
|
-
if (unlikely(UNBLOCKED_SIGNAL_QUEUE())) \
|
|
109
|
-
pgwin32_dispatch_queued_signals(); \
|
|
110
|
-
if (unlikely(InterruptPending)) \
|
|
123
|
+
if (INTERRUPTS_PENDING_CONDITION()) \
|
|
111
124
|
ProcessInterrupts(); \
|
|
112
125
|
} while(0)
|
|
113
|
-
#endif /* WIN32 */
|
|
114
126
|
|
|
127
|
+
/* Is ProcessInterrupts() guaranteed to clear InterruptPending? */
|
|
128
|
+
#define INTERRUPTS_CAN_BE_PROCESSED() \
|
|
129
|
+
(InterruptHoldoffCount == 0 && CritSectionCount == 0 && \
|
|
130
|
+
QueryCancelHoldoffCount == 0)
|
|
115
131
|
|
|
116
132
|
#define HOLD_INTERRUPTS() (InterruptHoldoffCount++)
|
|
117
133
|
|
|
@@ -146,12 +162,12 @@ do { \
|
|
|
146
162
|
* from utils/init/globals.c
|
|
147
163
|
*/
|
|
148
164
|
extern PGDLLIMPORT pid_t PostmasterPid;
|
|
149
|
-
extern PGDLLIMPORT
|
|
165
|
+
extern PGDLLIMPORT bool IsPostmasterEnvironment;
|
|
150
166
|
extern PGDLLIMPORT bool IsUnderPostmaster;
|
|
151
167
|
extern PGDLLIMPORT bool IsBackgroundWorker;
|
|
152
168
|
extern PGDLLIMPORT bool IsBinaryUpgrade;
|
|
153
169
|
|
|
154
|
-
extern PGDLLIMPORT __thread
|
|
170
|
+
extern PGDLLIMPORT __thread bool ExitOnAnyError;
|
|
155
171
|
|
|
156
172
|
extern PGDLLIMPORT char *DataDir;
|
|
157
173
|
extern PGDLLIMPORT int data_directory_mode;
|
|
@@ -167,15 +183,15 @@ extern PGDLLIMPORT pg_time_t MyStartTime;
|
|
|
167
183
|
extern PGDLLIMPORT TimestampTz MyStartTimestamp;
|
|
168
184
|
extern PGDLLIMPORT struct Port *MyProcPort;
|
|
169
185
|
extern PGDLLIMPORT struct Latch *MyLatch;
|
|
170
|
-
extern int32 MyCancelKey;
|
|
171
|
-
extern int
|
|
186
|
+
extern PGDLLIMPORT int32 MyCancelKey;
|
|
187
|
+
extern PGDLLIMPORT int MyPMChildSlot;
|
|
172
188
|
|
|
173
|
-
extern char OutputFileName[];
|
|
189
|
+
extern PGDLLIMPORT char OutputFileName[];
|
|
174
190
|
extern PGDLLIMPORT char my_exec_path[];
|
|
175
|
-
extern char pkglib_path[];
|
|
191
|
+
extern PGDLLIMPORT char pkglib_path[];
|
|
176
192
|
|
|
177
193
|
#ifdef EXEC_BACKEND
|
|
178
|
-
extern char postgres_exec_path[];
|
|
194
|
+
extern PGDLLIMPORT char postgres_exec_path[];
|
|
179
195
|
#endif
|
|
180
196
|
|
|
181
197
|
/*
|
|
@@ -240,40 +256,39 @@ extern PGDLLIMPORT int IntervalStyle;
|
|
|
240
256
|
|
|
241
257
|
#define MAXTZLEN 10 /* max TZ name len, not counting tr. null */
|
|
242
258
|
|
|
243
|
-
extern bool enableFsync;
|
|
259
|
+
extern PGDLLIMPORT bool enableFsync;
|
|
244
260
|
extern PGDLLIMPORT bool allowSystemTableMods;
|
|
245
261
|
extern PGDLLIMPORT int work_mem;
|
|
246
262
|
extern PGDLLIMPORT double hash_mem_multiplier;
|
|
247
263
|
extern PGDLLIMPORT int maintenance_work_mem;
|
|
248
264
|
extern PGDLLIMPORT int max_parallel_maintenance_workers;
|
|
249
265
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
266
|
+
/*
|
|
267
|
+
* Upper and lower hard limits for the buffer access strategy ring size
|
|
268
|
+
* specified by the VacuumBufferUsageLimit GUC and BUFFER_USAGE_LIMIT option
|
|
269
|
+
* to VACUUM and ANALYZE.
|
|
270
|
+
*/
|
|
271
|
+
#define MIN_BAS_VAC_RING_SIZE_KB 128
|
|
272
|
+
#define MAX_BAS_VAC_RING_SIZE_KB (16 * 1024 * 1024)
|
|
255
273
|
|
|
256
|
-
extern
|
|
257
|
-
extern
|
|
258
|
-
extern
|
|
274
|
+
extern PGDLLIMPORT int VacuumBufferUsageLimit;
|
|
275
|
+
extern PGDLLIMPORT int VacuumCostPageHit;
|
|
276
|
+
extern PGDLLIMPORT int VacuumCostPageMiss;
|
|
277
|
+
extern PGDLLIMPORT int VacuumCostPageDirty;
|
|
278
|
+
extern PGDLLIMPORT int VacuumCostLimit;
|
|
279
|
+
extern PGDLLIMPORT double VacuumCostDelay;
|
|
259
280
|
|
|
260
|
-
extern
|
|
261
|
-
extern
|
|
281
|
+
extern PGDLLIMPORT int64 VacuumPageHit;
|
|
282
|
+
extern PGDLLIMPORT int64 VacuumPageMiss;
|
|
283
|
+
extern PGDLLIMPORT int64 VacuumPageDirty;
|
|
262
284
|
|
|
263
|
-
extern
|
|
285
|
+
extern PGDLLIMPORT int VacuumCostBalance;
|
|
286
|
+
extern PGDLLIMPORT bool VacuumCostActive;
|
|
264
287
|
|
|
265
288
|
|
|
266
289
|
/* in tcop/postgres.c */
|
|
267
290
|
|
|
268
|
-
#if defined(__ia64__) || defined(__ia64)
|
|
269
|
-
typedef struct
|
|
270
|
-
{
|
|
271
|
-
char *stack_base_ptr;
|
|
272
|
-
char *register_stack_base_ptr;
|
|
273
|
-
} pg_stack_base_t;
|
|
274
|
-
#else
|
|
275
291
|
typedef char *pg_stack_base_t;
|
|
276
|
-
#endif
|
|
277
292
|
|
|
278
293
|
extern pg_stack_base_t set_stack_base(void);
|
|
279
294
|
extern void restore_stack_base(pg_stack_base_t base);
|
|
@@ -285,8 +300,8 @@ extern void PreventCommandIfReadOnly(const char *cmdname);
|
|
|
285
300
|
extern void PreventCommandIfParallelMode(const char *cmdname);
|
|
286
301
|
extern void PreventCommandDuringRecovery(const char *cmdname);
|
|
287
302
|
|
|
288
|
-
/* in utils/misc/
|
|
289
|
-
extern int
|
|
303
|
+
/* in utils/misc/guc_tables.c */
|
|
304
|
+
extern PGDLLIMPORT int trace_recovery_messages;
|
|
290
305
|
extern int trace_recovery(int trace_level);
|
|
291
306
|
|
|
292
307
|
/*****************************************************************************
|
|
@@ -299,33 +314,36 @@ extern int trace_recovery(int trace_level);
|
|
|
299
314
|
#define SECURITY_RESTRICTED_OPERATION 0x0002
|
|
300
315
|
#define SECURITY_NOFORCE_RLS 0x0004
|
|
301
316
|
|
|
302
|
-
extern char *DatabasePath;
|
|
317
|
+
extern PGDLLIMPORT char *DatabasePath;
|
|
303
318
|
|
|
304
319
|
/* now in utils/init/miscinit.c */
|
|
305
320
|
extern void InitPostmasterChild(void);
|
|
306
321
|
extern void InitStandaloneProcess(const char *argv0);
|
|
322
|
+
extern void InitProcessLocalLatch(void);
|
|
307
323
|
extern void SwitchToSharedLatch(void);
|
|
308
324
|
extern void SwitchBackToLocalLatch(void);
|
|
309
325
|
|
|
310
326
|
typedef enum BackendType
|
|
311
327
|
{
|
|
312
328
|
B_INVALID = 0,
|
|
329
|
+
B_ARCHIVER,
|
|
313
330
|
B_AUTOVAC_LAUNCHER,
|
|
314
331
|
B_AUTOVAC_WORKER,
|
|
315
332
|
B_BACKEND,
|
|
316
333
|
B_BG_WORKER,
|
|
317
334
|
B_BG_WRITER,
|
|
318
335
|
B_CHECKPOINTER,
|
|
336
|
+
B_LOGGER,
|
|
337
|
+
B_STANDALONE_BACKEND,
|
|
319
338
|
B_STARTUP,
|
|
320
339
|
B_WAL_RECEIVER,
|
|
321
340
|
B_WAL_SENDER,
|
|
322
341
|
B_WAL_WRITER,
|
|
323
|
-
B_ARCHIVER,
|
|
324
|
-
B_STATS_COLLECTOR,
|
|
325
|
-
B_LOGGER,
|
|
326
342
|
} BackendType;
|
|
327
343
|
|
|
328
|
-
|
|
344
|
+
#define BACKEND_NUM_TYPES (B_WAL_WRITER + 1)
|
|
345
|
+
|
|
346
|
+
extern PGDLLIMPORT BackendType MyBackendType;
|
|
329
347
|
|
|
330
348
|
extern const char *GetBackendTypeDesc(BackendType backendType);
|
|
331
349
|
|
|
@@ -346,11 +364,14 @@ extern bool InSecurityRestrictedOperation(void);
|
|
|
346
364
|
extern bool InNoForceRLSOperation(void);
|
|
347
365
|
extern void GetUserIdAndContext(Oid *userid, bool *sec_def_context);
|
|
348
366
|
extern void SetUserIdAndContext(Oid userid, bool sec_def_context);
|
|
349
|
-
extern void InitializeSessionUserId(const char *rolename, Oid
|
|
367
|
+
extern void InitializeSessionUserId(const char *rolename, Oid roleid);
|
|
350
368
|
extern void InitializeSessionUserIdStandalone(void);
|
|
351
369
|
extern void SetSessionAuthorization(Oid userid, bool is_superuser);
|
|
352
370
|
extern Oid GetCurrentRoleId(void);
|
|
353
371
|
extern void SetCurrentRoleId(Oid roleid, bool is_superuser);
|
|
372
|
+
extern void InitializeSystemUser(const char *authn_id,
|
|
373
|
+
const char *auth_method);
|
|
374
|
+
extern const char *GetSystemUser(void);
|
|
354
375
|
|
|
355
376
|
/* in utils/misc/superuser.c */
|
|
356
377
|
extern bool superuser(void); /* current user is superuser */
|
|
@@ -388,7 +409,7 @@ typedef enum ProcessingMode
|
|
|
388
409
|
NormalProcessing /* normal processing */
|
|
389
410
|
} ProcessingMode;
|
|
390
411
|
|
|
391
|
-
extern ProcessingMode Mode;
|
|
412
|
+
extern PGDLLIMPORT ProcessingMode Mode;
|
|
392
413
|
|
|
393
414
|
#define IsBootstrapProcessingMode() (Mode == BootstrapProcessing)
|
|
394
415
|
#define IsInitProcessingMode() (Mode == InitProcessing)
|
|
@@ -398,7 +419,7 @@ extern ProcessingMode Mode;
|
|
|
398
419
|
|
|
399
420
|
#define SetProcessingMode(mode) \
|
|
400
421
|
do { \
|
|
401
|
-
|
|
422
|
+
Assert((mode) == BootstrapProcessing || \
|
|
402
423
|
(mode) == InitProcessing || \
|
|
403
424
|
(mode) == NormalProcessing); \
|
|
404
425
|
Mode = (mode); \
|
|
@@ -408,16 +429,17 @@ extern ProcessingMode Mode;
|
|
|
408
429
|
/*
|
|
409
430
|
* Auxiliary-process type identifiers. These used to be in bootstrap.h
|
|
410
431
|
* but it seems saner to have them here, with the ProcessingMode stuff.
|
|
411
|
-
* The MyAuxProcType global is defined and set in
|
|
432
|
+
* The MyAuxProcType global is defined and set in auxprocess.c.
|
|
433
|
+
*
|
|
434
|
+
* Make sure to list in the glossary any items you add here.
|
|
412
435
|
*/
|
|
413
436
|
|
|
414
437
|
typedef enum
|
|
415
438
|
{
|
|
416
439
|
NotAnAuxProcess = -1,
|
|
417
|
-
|
|
418
|
-
BootstrapProcess,
|
|
419
|
-
StartupProcess,
|
|
440
|
+
StartupProcess = 0,
|
|
420
441
|
BgWriterProcess,
|
|
442
|
+
ArchiverProcess,
|
|
421
443
|
CheckpointerProcess,
|
|
422
444
|
WalWriterProcess,
|
|
423
445
|
WalReceiverProcess,
|
|
@@ -425,11 +447,11 @@ typedef enum
|
|
|
425
447
|
NUM_AUXPROCTYPES /* Must be last! */
|
|
426
448
|
} AuxProcType;
|
|
427
449
|
|
|
428
|
-
extern AuxProcType MyAuxProcType;
|
|
450
|
+
extern PGDLLIMPORT AuxProcType MyAuxProcType;
|
|
429
451
|
|
|
430
|
-
#define AmBootstrapProcess() (MyAuxProcType == BootstrapProcess)
|
|
431
452
|
#define AmStartupProcess() (MyAuxProcType == StartupProcess)
|
|
432
453
|
#define AmBackgroundWriterProcess() (MyAuxProcType == BgWriterProcess)
|
|
454
|
+
#define AmArchiverProcess() (MyAuxProcType == ArchiverProcess)
|
|
433
455
|
#define AmCheckpointerProcess() (MyAuxProcType == CheckpointerProcess)
|
|
434
456
|
#define AmWalWriterProcess() (MyAuxProcType == WalWriterProcess)
|
|
435
457
|
#define AmWalReceiverProcess() (MyAuxProcType == WalReceiverProcess)
|
|
@@ -443,16 +465,21 @@ extern AuxProcType MyAuxProcType;
|
|
|
443
465
|
/* in utils/init/postinit.c */
|
|
444
466
|
extern void pg_split_opts(char **argv, int *argcp, const char *optstr);
|
|
445
467
|
extern void InitializeMaxBackends(void);
|
|
446
|
-
extern void InitPostgres(const char *in_dbname, Oid dboid,
|
|
447
|
-
|
|
468
|
+
extern void InitPostgres(const char *in_dbname, Oid dboid,
|
|
469
|
+
const char *username, Oid useroid,
|
|
470
|
+
bool load_session_libraries,
|
|
471
|
+
bool override_allow_connections,
|
|
472
|
+
char *out_dbname);
|
|
448
473
|
extern void BaseInit(void);
|
|
449
474
|
|
|
450
475
|
/* in utils/init/miscinit.c */
|
|
451
|
-
extern bool IgnoreSystemIndexes;
|
|
476
|
+
extern PGDLLIMPORT bool IgnoreSystemIndexes;
|
|
452
477
|
extern PGDLLIMPORT bool process_shared_preload_libraries_in_progress;
|
|
453
|
-
extern
|
|
454
|
-
extern
|
|
455
|
-
extern char *
|
|
478
|
+
extern PGDLLIMPORT bool process_shared_preload_libraries_done;
|
|
479
|
+
extern PGDLLIMPORT bool process_shmem_requests_in_progress;
|
|
480
|
+
extern PGDLLIMPORT char *session_preload_libraries_string;
|
|
481
|
+
extern PGDLLIMPORT char *shared_preload_libraries_string;
|
|
482
|
+
extern PGDLLIMPORT char *local_preload_libraries_string;
|
|
456
483
|
|
|
457
484
|
extern void CreateDataDirLockFile(bool amPostmaster);
|
|
458
485
|
extern void CreateSocketLockFile(const char *socketfile, bool amPostmaster,
|
|
@@ -463,14 +490,18 @@ extern bool RecheckDataDirLockFile(void);
|
|
|
463
490
|
extern void ValidatePgVersion(const char *path);
|
|
464
491
|
extern void process_shared_preload_libraries(void);
|
|
465
492
|
extern void process_session_preload_libraries(void);
|
|
493
|
+
extern void process_shmem_requests(void);
|
|
466
494
|
extern void pg_bindtextdomain(const char *domain);
|
|
467
495
|
extern bool has_rolreplication(Oid roleid);
|
|
468
496
|
|
|
469
|
-
|
|
470
|
-
extern
|
|
471
|
-
|
|
497
|
+
typedef void (*shmem_request_hook_type) (void);
|
|
498
|
+
extern PGDLLIMPORT shmem_request_hook_type shmem_request_hook;
|
|
499
|
+
|
|
500
|
+
extern Size EstimateClientConnectionInfoSpace(void);
|
|
501
|
+
extern void SerializeClientConnectionInfo(Size maxsize, char *start_address);
|
|
502
|
+
extern void RestoreClientConnectionInfo(char *conninfo);
|
|
472
503
|
|
|
473
504
|
/* in executor/nodeHash.c */
|
|
474
|
-
extern
|
|
505
|
+
extern size_t get_hash_memory_limit(void);
|
|
475
506
|
|
|
476
507
|
#endif /* MISCADMIN_H */
|
|
@@ -5,13 +5,11 @@
|
|
|
5
5
|
*
|
|
6
6
|
* A bitmap set can represent any set of nonnegative integers, although
|
|
7
7
|
* it is mainly intended for sets where the maximum value is not large,
|
|
8
|
-
* say at most a few hundred. By convention,
|
|
9
|
-
*
|
|
10
|
-
* that this is not the only representation of the empty set. Use
|
|
11
|
-
* bms_is_empty() in preference to testing for NULL.)
|
|
8
|
+
* say at most a few hundred. By convention, we always represent the
|
|
9
|
+
* empty set by a NULL pointer.
|
|
12
10
|
*
|
|
13
11
|
*
|
|
14
|
-
* Copyright (c) 2003-
|
|
12
|
+
* Copyright (c) 2003-2023, PostgreSQL Global Development Group
|
|
15
13
|
*
|
|
16
14
|
* src/include/nodes/bitmapset.h
|
|
17
15
|
*
|
|
@@ -20,6 +18,8 @@
|
|
|
20
18
|
#ifndef BITMAPSET_H
|
|
21
19
|
#define BITMAPSET_H
|
|
22
20
|
|
|
21
|
+
#include "nodes/nodes.h"
|
|
22
|
+
|
|
23
23
|
/*
|
|
24
24
|
* Forward decl to save including pg_list.h
|
|
25
25
|
*/
|
|
@@ -48,6 +48,9 @@ typedef int32 signedbitmapword; /* must be the matching signed type */
|
|
|
48
48
|
|
|
49
49
|
typedef struct Bitmapset
|
|
50
50
|
{
|
|
51
|
+
pg_node_attr(custom_copy_equal, special_read_write, no_query_jumble)
|
|
52
|
+
|
|
53
|
+
NodeTag type;
|
|
51
54
|
int nwords; /* number of words in array */
|
|
52
55
|
bitmapword words[FLEXIBLE_ARRAY_MEMBER]; /* really [nwords] */
|
|
53
56
|
} Bitmapset;
|
|
@@ -97,7 +100,9 @@ extern int bms_num_members(const Bitmapset *a);
|
|
|
97
100
|
|
|
98
101
|
/* optimized tests when we don't need to know exact membership count: */
|
|
99
102
|
extern BMS_Membership bms_membership(const Bitmapset *a);
|
|
100
|
-
|
|
103
|
+
|
|
104
|
+
/* NULL is now the only allowed representation of an empty bitmapset */
|
|
105
|
+
#define bms_is_empty(a) ((a) == NULL)
|
|
101
106
|
|
|
102
107
|
/* these routines recycle (modify or free) their non-const inputs: */
|
|
103
108
|
|
|
@@ -110,7 +115,6 @@ extern Bitmapset *bms_del_members(Bitmapset *a, const Bitmapset *b);
|
|
|
110
115
|
extern Bitmapset *bms_join(Bitmapset *a, Bitmapset *b);
|
|
111
116
|
|
|
112
117
|
/* support for iterating through the integer elements of a set: */
|
|
113
|
-
extern int bms_first_member(Bitmapset *a);
|
|
114
118
|
extern int bms_next_member(const Bitmapset *a, int prevbit);
|
|
115
119
|
extern int bms_prev_member(const Bitmapset *a, int prevbit);
|
|
116
120
|
|