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,39 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* cryptohash.h
|
|
4
|
+
* Generic headers for cryptographic hash functions.
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
|
+
*
|
|
9
|
+
* IDENTIFICATION
|
|
10
|
+
* src/include/common/cryptohash.h
|
|
11
|
+
*
|
|
12
|
+
*-------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
#ifndef PG_CRYPTOHASH_H
|
|
16
|
+
#define PG_CRYPTOHASH_H
|
|
17
|
+
|
|
18
|
+
/* Context Structures for each hash function */
|
|
19
|
+
typedef enum
|
|
20
|
+
{
|
|
21
|
+
PG_MD5 = 0,
|
|
22
|
+
PG_SHA1,
|
|
23
|
+
PG_SHA224,
|
|
24
|
+
PG_SHA256,
|
|
25
|
+
PG_SHA384,
|
|
26
|
+
PG_SHA512
|
|
27
|
+
} pg_cryptohash_type;
|
|
28
|
+
|
|
29
|
+
/* opaque context, private to each cryptohash implementation */
|
|
30
|
+
typedef struct pg_cryptohash_ctx pg_cryptohash_ctx;
|
|
31
|
+
|
|
32
|
+
extern pg_cryptohash_ctx *pg_cryptohash_create(pg_cryptohash_type type);
|
|
33
|
+
extern int pg_cryptohash_init(pg_cryptohash_ctx *ctx);
|
|
34
|
+
extern int pg_cryptohash_update(pg_cryptohash_ctx *ctx, const uint8 *data, size_t len);
|
|
35
|
+
extern int pg_cryptohash_final(pg_cryptohash_ctx *ctx, uint8 *dest, size_t len);
|
|
36
|
+
extern void pg_cryptohash_free(pg_cryptohash_ctx *ctx);
|
|
37
|
+
extern const char *pg_cryptohash_error(pg_cryptohash_ctx *ctx);
|
|
38
|
+
|
|
39
|
+
#endif /* PG_CRYPTOHASH_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* File and directory permission definitions
|
|
4
4
|
*
|
|
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/common/file_perm.h
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
#define PG_FILE_MODE_GROUP (S_IRUSR | S_IWUSR | S_IRGRP)
|
|
42
42
|
|
|
43
43
|
/* Modes for creating directories and files in the data directory */
|
|
44
|
-
extern int
|
|
45
|
-
extern int
|
|
44
|
+
extern PGDLLIMPORT int pg_dir_create_mode;
|
|
45
|
+
extern PGDLLIMPORT int pg_file_create_mode;
|
|
46
46
|
|
|
47
47
|
/* Mode mask to pass to umask() */
|
|
48
|
-
extern int
|
|
48
|
+
extern PGDLLIMPORT int pg_mode_mask;
|
|
49
49
|
|
|
50
50
|
/* Set permissions and mask based on the provided mode */
|
|
51
51
|
extern void SetDataDirectoryCreatePerm(int dataDirMode);
|
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* int.h
|
|
4
|
+
* Routines to perform integer math, while checking for overflows.
|
|
5
|
+
*
|
|
6
|
+
* The routines in this file are intended to be well defined C, without
|
|
7
|
+
* relying on compiler flags like -fwrapv.
|
|
8
|
+
*
|
|
9
|
+
* To reduce the overhead of these routines try to use compiler intrinsics
|
|
10
|
+
* where available. That's not that important for the 16, 32 bit cases, but
|
|
11
|
+
* the 64 bit cases can be considerably faster with intrinsics. In case no
|
|
12
|
+
* intrinsics are available 128 bit math is used where available.
|
|
13
|
+
*
|
|
14
|
+
* Copyright (c) 2017-2023, PostgreSQL Global Development Group
|
|
15
|
+
*
|
|
16
|
+
* src/include/common/int.h
|
|
17
|
+
*
|
|
18
|
+
*-------------------------------------------------------------------------
|
|
19
|
+
*/
|
|
20
|
+
#ifndef COMMON_INT_H
|
|
21
|
+
#define COMMON_INT_H
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
/*---------
|
|
25
|
+
* The following guidelines apply to all the routines:
|
|
26
|
+
* - If a + b overflows, return true, otherwise store the result of a + b
|
|
27
|
+
* into *result. The content of *result is implementation defined in case of
|
|
28
|
+
* overflow.
|
|
29
|
+
* - If a - b overflows, return true, otherwise store the result of a - b
|
|
30
|
+
* into *result. The content of *result is implementation defined in case of
|
|
31
|
+
* overflow.
|
|
32
|
+
* - If a * b overflows, return true, otherwise store the result of a * b
|
|
33
|
+
* into *result. The content of *result is implementation defined in case of
|
|
34
|
+
* overflow.
|
|
35
|
+
*---------
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/*------------------------------------------------------------------------
|
|
39
|
+
* Overflow routines for signed integers
|
|
40
|
+
*------------------------------------------------------------------------
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
/*
|
|
44
|
+
* INT16
|
|
45
|
+
*/
|
|
46
|
+
static inline bool
|
|
47
|
+
pg_add_s16_overflow(int16 a, int16 b, int16 *result)
|
|
48
|
+
{
|
|
49
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
50
|
+
return __builtin_add_overflow(a, b, result);
|
|
51
|
+
#else
|
|
52
|
+
int32 res = (int32) a + (int32) b;
|
|
53
|
+
|
|
54
|
+
if (res > PG_INT16_MAX || res < PG_INT16_MIN)
|
|
55
|
+
{
|
|
56
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
*result = (int16) res;
|
|
60
|
+
return false;
|
|
61
|
+
#endif
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
static inline bool
|
|
65
|
+
pg_sub_s16_overflow(int16 a, int16 b, int16 *result)
|
|
66
|
+
{
|
|
67
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
68
|
+
return __builtin_sub_overflow(a, b, result);
|
|
69
|
+
#else
|
|
70
|
+
int32 res = (int32) a - (int32) b;
|
|
71
|
+
|
|
72
|
+
if (res > PG_INT16_MAX || res < PG_INT16_MIN)
|
|
73
|
+
{
|
|
74
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
*result = (int16) res;
|
|
78
|
+
return false;
|
|
79
|
+
#endif
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
static inline bool
|
|
83
|
+
pg_mul_s16_overflow(int16 a, int16 b, int16 *result)
|
|
84
|
+
{
|
|
85
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
86
|
+
return __builtin_mul_overflow(a, b, result);
|
|
87
|
+
#else
|
|
88
|
+
int32 res = (int32) a * (int32) b;
|
|
89
|
+
|
|
90
|
+
if (res > PG_INT16_MAX || res < PG_INT16_MIN)
|
|
91
|
+
{
|
|
92
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
*result = (int16) res;
|
|
96
|
+
return false;
|
|
97
|
+
#endif
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/*
|
|
101
|
+
* INT32
|
|
102
|
+
*/
|
|
103
|
+
static inline bool
|
|
104
|
+
pg_add_s32_overflow(int32 a, int32 b, int32 *result)
|
|
105
|
+
{
|
|
106
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
107
|
+
return __builtin_add_overflow(a, b, result);
|
|
108
|
+
#else
|
|
109
|
+
int64 res = (int64) a + (int64) b;
|
|
110
|
+
|
|
111
|
+
if (res > PG_INT32_MAX || res < PG_INT32_MIN)
|
|
112
|
+
{
|
|
113
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
*result = (int32) res;
|
|
117
|
+
return false;
|
|
118
|
+
#endif
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
static inline bool
|
|
122
|
+
pg_sub_s32_overflow(int32 a, int32 b, int32 *result)
|
|
123
|
+
{
|
|
124
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
125
|
+
return __builtin_sub_overflow(a, b, result);
|
|
126
|
+
#else
|
|
127
|
+
int64 res = (int64) a - (int64) b;
|
|
128
|
+
|
|
129
|
+
if (res > PG_INT32_MAX || res < PG_INT32_MIN)
|
|
130
|
+
{
|
|
131
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
*result = (int32) res;
|
|
135
|
+
return false;
|
|
136
|
+
#endif
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
static inline bool
|
|
140
|
+
pg_mul_s32_overflow(int32 a, int32 b, int32 *result)
|
|
141
|
+
{
|
|
142
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
143
|
+
return __builtin_mul_overflow(a, b, result);
|
|
144
|
+
#else
|
|
145
|
+
int64 res = (int64) a * (int64) b;
|
|
146
|
+
|
|
147
|
+
if (res > PG_INT32_MAX || res < PG_INT32_MIN)
|
|
148
|
+
{
|
|
149
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
*result = (int32) res;
|
|
153
|
+
return false;
|
|
154
|
+
#endif
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/*
|
|
158
|
+
* INT64
|
|
159
|
+
*/
|
|
160
|
+
static inline bool
|
|
161
|
+
pg_add_s64_overflow(int64 a, int64 b, int64 *result)
|
|
162
|
+
{
|
|
163
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
164
|
+
return __builtin_add_overflow(a, b, result);
|
|
165
|
+
#elif defined(HAVE_INT128)
|
|
166
|
+
int128 res = (int128) a + (int128) b;
|
|
167
|
+
|
|
168
|
+
if (res > PG_INT64_MAX || res < PG_INT64_MIN)
|
|
169
|
+
{
|
|
170
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
*result = (int64) res;
|
|
174
|
+
return false;
|
|
175
|
+
#else
|
|
176
|
+
if ((a > 0 && b > 0 && a > PG_INT64_MAX - b) ||
|
|
177
|
+
(a < 0 && b < 0 && a < PG_INT64_MIN - b))
|
|
178
|
+
{
|
|
179
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
*result = a + b;
|
|
183
|
+
return false;
|
|
184
|
+
#endif
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
static inline bool
|
|
188
|
+
pg_sub_s64_overflow(int64 a, int64 b, int64 *result)
|
|
189
|
+
{
|
|
190
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
191
|
+
return __builtin_sub_overflow(a, b, result);
|
|
192
|
+
#elif defined(HAVE_INT128)
|
|
193
|
+
int128 res = (int128) a - (int128) b;
|
|
194
|
+
|
|
195
|
+
if (res > PG_INT64_MAX || res < PG_INT64_MIN)
|
|
196
|
+
{
|
|
197
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
*result = (int64) res;
|
|
201
|
+
return false;
|
|
202
|
+
#else
|
|
203
|
+
if ((a < 0 && b > 0 && a < PG_INT64_MIN + b) ||
|
|
204
|
+
(a > 0 && b < 0 && a > PG_INT64_MAX + b))
|
|
205
|
+
{
|
|
206
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
*result = a - b;
|
|
210
|
+
return false;
|
|
211
|
+
#endif
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
static inline bool
|
|
215
|
+
pg_mul_s64_overflow(int64 a, int64 b, int64 *result)
|
|
216
|
+
{
|
|
217
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
218
|
+
return __builtin_mul_overflow(a, b, result);
|
|
219
|
+
#elif defined(HAVE_INT128)
|
|
220
|
+
int128 res = (int128) a * (int128) b;
|
|
221
|
+
|
|
222
|
+
if (res > PG_INT64_MAX || res < PG_INT64_MIN)
|
|
223
|
+
{
|
|
224
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
*result = (int64) res;
|
|
228
|
+
return false;
|
|
229
|
+
#else
|
|
230
|
+
/*
|
|
231
|
+
* Overflow can only happen if at least one value is outside the range
|
|
232
|
+
* sqrt(min)..sqrt(max) so check that first as the division can be quite a
|
|
233
|
+
* bit more expensive than the multiplication.
|
|
234
|
+
*
|
|
235
|
+
* Multiplying by 0 or 1 can't overflow of course and checking for 0
|
|
236
|
+
* separately avoids any risk of dividing by 0. Be careful about dividing
|
|
237
|
+
* INT_MIN by -1 also, note reversing the a and b to ensure we're always
|
|
238
|
+
* dividing it by a positive value.
|
|
239
|
+
*
|
|
240
|
+
*/
|
|
241
|
+
if ((a > PG_INT32_MAX || a < PG_INT32_MIN ||
|
|
242
|
+
b > PG_INT32_MAX || b < PG_INT32_MIN) &&
|
|
243
|
+
a != 0 && a != 1 && b != 0 && b != 1 &&
|
|
244
|
+
((a > 0 && b > 0 && a > PG_INT64_MAX / b) ||
|
|
245
|
+
(a > 0 && b < 0 && b < PG_INT64_MIN / a) ||
|
|
246
|
+
(a < 0 && b > 0 && a < PG_INT64_MIN / b) ||
|
|
247
|
+
(a < 0 && b < 0 && a < PG_INT64_MAX / b)))
|
|
248
|
+
{
|
|
249
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
*result = a * b;
|
|
253
|
+
return false;
|
|
254
|
+
#endif
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/*------------------------------------------------------------------------
|
|
258
|
+
* Overflow routines for unsigned integers
|
|
259
|
+
*------------------------------------------------------------------------
|
|
260
|
+
*/
|
|
261
|
+
|
|
262
|
+
/*
|
|
263
|
+
* UINT16
|
|
264
|
+
*/
|
|
265
|
+
static inline bool
|
|
266
|
+
pg_add_u16_overflow(uint16 a, uint16 b, uint16 *result)
|
|
267
|
+
{
|
|
268
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
269
|
+
return __builtin_add_overflow(a, b, result);
|
|
270
|
+
#else
|
|
271
|
+
uint16 res = a + b;
|
|
272
|
+
|
|
273
|
+
if (res < a)
|
|
274
|
+
{
|
|
275
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
276
|
+
return true;
|
|
277
|
+
}
|
|
278
|
+
*result = res;
|
|
279
|
+
return false;
|
|
280
|
+
#endif
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
static inline bool
|
|
284
|
+
pg_sub_u16_overflow(uint16 a, uint16 b, uint16 *result)
|
|
285
|
+
{
|
|
286
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
287
|
+
return __builtin_sub_overflow(a, b, result);
|
|
288
|
+
#else
|
|
289
|
+
if (b > a)
|
|
290
|
+
{
|
|
291
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
*result = a - b;
|
|
295
|
+
return false;
|
|
296
|
+
#endif
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
static inline bool
|
|
300
|
+
pg_mul_u16_overflow(uint16 a, uint16 b, uint16 *result)
|
|
301
|
+
{
|
|
302
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
303
|
+
return __builtin_mul_overflow(a, b, result);
|
|
304
|
+
#else
|
|
305
|
+
uint32 res = (uint32) a * (uint32) b;
|
|
306
|
+
|
|
307
|
+
if (res > PG_UINT16_MAX)
|
|
308
|
+
{
|
|
309
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
310
|
+
return true;
|
|
311
|
+
}
|
|
312
|
+
*result = (uint16) res;
|
|
313
|
+
return false;
|
|
314
|
+
#endif
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/*
|
|
318
|
+
* INT32
|
|
319
|
+
*/
|
|
320
|
+
static inline bool
|
|
321
|
+
pg_add_u32_overflow(uint32 a, uint32 b, uint32 *result)
|
|
322
|
+
{
|
|
323
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
324
|
+
return __builtin_add_overflow(a, b, result);
|
|
325
|
+
#else
|
|
326
|
+
uint32 res = a + b;
|
|
327
|
+
|
|
328
|
+
if (res < a)
|
|
329
|
+
{
|
|
330
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
331
|
+
return true;
|
|
332
|
+
}
|
|
333
|
+
*result = res;
|
|
334
|
+
return false;
|
|
335
|
+
#endif
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
static inline bool
|
|
339
|
+
pg_sub_u32_overflow(uint32 a, uint32 b, uint32 *result)
|
|
340
|
+
{
|
|
341
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
342
|
+
return __builtin_sub_overflow(a, b, result);
|
|
343
|
+
#else
|
|
344
|
+
if (b > a)
|
|
345
|
+
{
|
|
346
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
347
|
+
return true;
|
|
348
|
+
}
|
|
349
|
+
*result = a - b;
|
|
350
|
+
return false;
|
|
351
|
+
#endif
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
static inline bool
|
|
355
|
+
pg_mul_u32_overflow(uint32 a, uint32 b, uint32 *result)
|
|
356
|
+
{
|
|
357
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
358
|
+
return __builtin_mul_overflow(a, b, result);
|
|
359
|
+
#else
|
|
360
|
+
uint64 res = (uint64) a * (uint64) b;
|
|
361
|
+
|
|
362
|
+
if (res > PG_UINT32_MAX)
|
|
363
|
+
{
|
|
364
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
365
|
+
return true;
|
|
366
|
+
}
|
|
367
|
+
*result = (uint32) res;
|
|
368
|
+
return false;
|
|
369
|
+
#endif
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/*
|
|
373
|
+
* UINT64
|
|
374
|
+
*/
|
|
375
|
+
static inline bool
|
|
376
|
+
pg_add_u64_overflow(uint64 a, uint64 b, uint64 *result)
|
|
377
|
+
{
|
|
378
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
379
|
+
return __builtin_add_overflow(a, b, result);
|
|
380
|
+
#else
|
|
381
|
+
uint64 res = a + b;
|
|
382
|
+
|
|
383
|
+
if (res < a)
|
|
384
|
+
{
|
|
385
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
386
|
+
return true;
|
|
387
|
+
}
|
|
388
|
+
*result = res;
|
|
389
|
+
return false;
|
|
390
|
+
#endif
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
static inline bool
|
|
394
|
+
pg_sub_u64_overflow(uint64 a, uint64 b, uint64 *result)
|
|
395
|
+
{
|
|
396
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
397
|
+
return __builtin_sub_overflow(a, b, result);
|
|
398
|
+
#else
|
|
399
|
+
if (b > a)
|
|
400
|
+
{
|
|
401
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
402
|
+
return true;
|
|
403
|
+
}
|
|
404
|
+
*result = a - b;
|
|
405
|
+
return false;
|
|
406
|
+
#endif
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
static inline bool
|
|
410
|
+
pg_mul_u64_overflow(uint64 a, uint64 b, uint64 *result)
|
|
411
|
+
{
|
|
412
|
+
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
413
|
+
return __builtin_mul_overflow(a, b, result);
|
|
414
|
+
#elif defined(HAVE_INT128)
|
|
415
|
+
uint128 res = (uint128) a * (uint128) b;
|
|
416
|
+
|
|
417
|
+
if (res > PG_UINT64_MAX)
|
|
418
|
+
{
|
|
419
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
420
|
+
return true;
|
|
421
|
+
}
|
|
422
|
+
*result = (uint64) res;
|
|
423
|
+
return false;
|
|
424
|
+
#else
|
|
425
|
+
uint64 res = a * b;
|
|
426
|
+
|
|
427
|
+
if (a != 0 && b != res / a)
|
|
428
|
+
{
|
|
429
|
+
*result = 0x5EED; /* to avoid spurious warnings */
|
|
430
|
+
return true;
|
|
431
|
+
}
|
|
432
|
+
*result = res;
|
|
433
|
+
return false;
|
|
434
|
+
#endif
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
#endif /* COMMON_INT_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* PostgreSQL's list of SQL keywords
|
|
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/common/keywords.h
|
|
@@ -22,12 +22,8 @@
|
|
|
22
22
|
#define TYPE_FUNC_NAME_KEYWORD 2
|
|
23
23
|
#define RESERVED_KEYWORD 3
|
|
24
24
|
|
|
25
|
-
#ifndef FRONTEND
|
|
26
25
|
extern PGDLLIMPORT const ScanKeywordList ScanKeywords;
|
|
27
26
|
extern PGDLLIMPORT const uint8 ScanKeywordCategories[];
|
|
28
|
-
|
|
29
|
-
extern const ScanKeywordList ScanKeywords;
|
|
30
|
-
extern const uint8 ScanKeywordCategories[];
|
|
31
|
-
#endif
|
|
27
|
+
extern PGDLLIMPORT const bool ScanKeywordBareLabel[];
|
|
32
28
|
|
|
33
29
|
#endif /* KEYWORDS_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Key word lookup for PostgreSQL
|
|
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/common/kwlookup.h
|
|
@@ -32,7 +32,7 @@ typedef struct ScanKeywordList
|
|
|
32
32
|
} ScanKeywordList;
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
extern int ScanKeywordLookup(const char *
|
|
35
|
+
extern int ScanKeywordLookup(const char *str, const ScanKeywordList *keywords);
|
|
36
36
|
|
|
37
37
|
/* Code that wants to retrieve the text of the N'th keyword should use this. */
|
|
38
38
|
static inline const char *
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* Pseudo-Random Number Generator
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2021-2023, PostgreSQL Global Development Group
|
|
6
|
+
*
|
|
7
|
+
* src/include/common/pg_prng.h
|
|
8
|
+
*
|
|
9
|
+
*-------------------------------------------------------------------------
|
|
10
|
+
*/
|
|
11
|
+
#ifndef PG_PRNG_H
|
|
12
|
+
#define PG_PRNG_H
|
|
13
|
+
|
|
14
|
+
/*
|
|
15
|
+
* State vector for PRNG generation. Callers should treat this as an
|
|
16
|
+
* opaque typedef, but we expose its definition to allow it to be
|
|
17
|
+
* embedded in other structs.
|
|
18
|
+
*/
|
|
19
|
+
typedef struct pg_prng_state
|
|
20
|
+
{
|
|
21
|
+
uint64 s0,
|
|
22
|
+
s1;
|
|
23
|
+
} pg_prng_state;
|
|
24
|
+
|
|
25
|
+
/*
|
|
26
|
+
* Callers not needing local PRNG series may use this global state vector,
|
|
27
|
+
* after initializing it with one of the pg_prng_...seed functions.
|
|
28
|
+
*/
|
|
29
|
+
extern PGDLLIMPORT pg_prng_state pg_global_prng_state;
|
|
30
|
+
|
|
31
|
+
extern void pg_prng_seed(pg_prng_state *state, uint64 seed);
|
|
32
|
+
extern void pg_prng_fseed(pg_prng_state *state, double fseed);
|
|
33
|
+
extern bool pg_prng_seed_check(pg_prng_state *state);
|
|
34
|
+
|
|
35
|
+
/*
|
|
36
|
+
* Initialize the PRNG state from the pg_strong_random source,
|
|
37
|
+
* taking care that we don't produce all-zeroes. If this returns false,
|
|
38
|
+
* caller should initialize the PRNG state from some other random seed,
|
|
39
|
+
* using pg_prng_[f]seed.
|
|
40
|
+
*
|
|
41
|
+
* We implement this as a macro, so that the pg_strong_random() call is
|
|
42
|
+
* in the caller. If it were in pg_prng.c, programs using pg_prng.c
|
|
43
|
+
* but not needing strong seeding would nonetheless be forced to pull in
|
|
44
|
+
* pg_strong_random.c and thence OpenSSL.
|
|
45
|
+
*/
|
|
46
|
+
#define pg_prng_strong_seed(state) \
|
|
47
|
+
(pg_strong_random((void *) (state), sizeof(pg_prng_state)) ? \
|
|
48
|
+
pg_prng_seed_check(state) : false)
|
|
49
|
+
|
|
50
|
+
extern uint64 pg_prng_uint64(pg_prng_state *state);
|
|
51
|
+
extern uint64 pg_prng_uint64_range(pg_prng_state *state, uint64 rmin, uint64 rmax);
|
|
52
|
+
extern int64 pg_prng_int64(pg_prng_state *state);
|
|
53
|
+
extern int64 pg_prng_int64p(pg_prng_state *state);
|
|
54
|
+
extern uint32 pg_prng_uint32(pg_prng_state *state);
|
|
55
|
+
extern int32 pg_prng_int32(pg_prng_state *state);
|
|
56
|
+
extern int32 pg_prng_int32p(pg_prng_state *state);
|
|
57
|
+
extern double pg_prng_double(pg_prng_state *state);
|
|
58
|
+
extern double pg_prng_double_normal(pg_prng_state *state);
|
|
59
|
+
extern bool pg_prng_bool(pg_prng_state *state);
|
|
60
|
+
|
|
61
|
+
#endif /* PG_PRNG_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* relpath.h
|
|
4
4
|
* Declarations for GetRelationPath() and friends
|
|
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/common/relpath.h
|
|
@@ -19,6 +19,13 @@
|
|
|
19
19
|
*/
|
|
20
20
|
#include "catalog/catversion.h" /* pgrminclude ignore */
|
|
21
21
|
|
|
22
|
+
/*
|
|
23
|
+
* RelFileNumber data type identifies the specific relation file name.
|
|
24
|
+
*/
|
|
25
|
+
typedef Oid RelFileNumber;
|
|
26
|
+
#define InvalidRelFileNumber ((RelFileNumber) InvalidOid)
|
|
27
|
+
#define RelFileNumberIsValid(relnumber) \
|
|
28
|
+
((bool) ((relnumber) != InvalidRelFileNumber))
|
|
22
29
|
|
|
23
30
|
/*
|
|
24
31
|
* Name of major-version-specific tablespace subdirectories
|
|
@@ -56,7 +63,7 @@ typedef enum ForkNumber
|
|
|
56
63
|
|
|
57
64
|
#define FORKNAMECHARS 4 /* max chars for a fork name */
|
|
58
65
|
|
|
59
|
-
extern const char *const forkNames[];
|
|
66
|
+
extern PGDLLIMPORT const char *const forkNames[];
|
|
60
67
|
|
|
61
68
|
extern ForkNumber forkname_to_number(const char *forkName);
|
|
62
69
|
extern int forkname_chars(const char *str, ForkNumber *fork);
|
|
@@ -64,27 +71,27 @@ extern int forkname_chars(const char *str, ForkNumber *fork);
|
|
|
64
71
|
/*
|
|
65
72
|
* Stuff for computing filesystem pathnames for relations.
|
|
66
73
|
*/
|
|
67
|
-
extern char *GetDatabasePath(Oid
|
|
74
|
+
extern char *GetDatabasePath(Oid dbOid, Oid spcOid);
|
|
68
75
|
|
|
69
|
-
extern char *GetRelationPath(Oid
|
|
76
|
+
extern char *GetRelationPath(Oid dbOid, Oid spcOid, RelFileNumber relNumber,
|
|
70
77
|
int backendId, ForkNumber forkNumber);
|
|
71
78
|
|
|
72
79
|
/*
|
|
73
80
|
* Wrapper macros for GetRelationPath. Beware of multiple
|
|
74
|
-
* evaluation of the
|
|
81
|
+
* evaluation of the RelFileLocator or RelFileLocatorBackend argument!
|
|
75
82
|
*/
|
|
76
83
|
|
|
77
|
-
/* First argument is a
|
|
78
|
-
#define relpathbackend(
|
|
79
|
-
GetRelationPath((
|
|
84
|
+
/* First argument is a RelFileLocator */
|
|
85
|
+
#define relpathbackend(rlocator, backend, forknum) \
|
|
86
|
+
GetRelationPath((rlocator).dbOid, (rlocator).spcOid, (rlocator).relNumber, \
|
|
80
87
|
backend, forknum)
|
|
81
88
|
|
|
82
|
-
/* First argument is a
|
|
83
|
-
#define relpathperm(
|
|
84
|
-
relpathbackend(
|
|
89
|
+
/* First argument is a RelFileLocator */
|
|
90
|
+
#define relpathperm(rlocator, forknum) \
|
|
91
|
+
relpathbackend(rlocator, InvalidBackendId, forknum)
|
|
85
92
|
|
|
86
|
-
/* First argument is a
|
|
87
|
-
#define relpath(
|
|
88
|
-
relpathbackend((
|
|
93
|
+
/* First argument is a RelFileLocatorBackend */
|
|
94
|
+
#define relpath(rlocator, forknum) \
|
|
95
|
+
relpathbackend((rlocator).locator, (rlocator).backend, forknum)
|
|
89
96
|
|
|
90
97
|
#endif /* RELPATH_H */
|