pg_query 4.2.1 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +31 -0
- data/README.md +6 -8
- data/Rakefile +5 -6
- data/ext/pg_query/extconf.rb +14 -4
- data/ext/pg_query/include/pg_query.h +27 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
- data/ext/pg_query/include/{access → postgres/access}/amapi.h +3 -1
- data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
- data/ext/pg_query/include/{access → postgres/access}/attnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/clog.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/genam.h +7 -5
- data/ext/pg_query/include/{access → postgres/access}/gin.h +16 -3
- data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/htup_details.h +6 -2
- data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -58
- data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relscan.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
- data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/stratnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/table.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/tableam.h +68 -45
- data/ext/pg_query/include/{access → postgres/access}/toast_compression.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/transam.h +1 -1
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
- data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +58 -98
- data/ext/pg_query/include/{access → postgres/access}/twophase.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/xact.h +25 -18
- data/ext/pg_query/include/{access → postgres/access}/xlog.h +15 -16
- data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +100 -62
- data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +6 -25
- data/ext/pg_query/include/{access → postgres/access}/xlogprefetcher.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +7 -6
- data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +17 -5
- data/ext/pg_query/include/{access → postgres/access}/xlogrecovery.h +4 -3
- data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
- data/ext/pg_query/include/{c.h → postgres/c.h} +144 -156
- data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +5 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/genbki.h +7 -6
- data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +4 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/indexing.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +10 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +3 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +19 -17
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -19
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +9 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +3 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +4 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +2 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +6 -6
- data/ext/pg_query/include/{commands → postgres/commands}/async.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +4 -4
- data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +15 -14
- data/ext/pg_query/include/{commands → postgres/commands}/user.h +9 -3
- data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +60 -14
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/{common → postgres/common}/file_perm.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
- data/ext/pg_query/include/postgres/common/int.h +437 -0
- data/ext/pg_query/include/{common → postgres/common}/keywords.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
- data/ext/pg_query/include/{common → postgres/common}/pg_prng.h +3 -2
- data/ext/pg_query/include/{common → postgres/common}/relpath.h +20 -13
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/{common → postgres/common}/string.h +5 -3
- data/ext/pg_query/include/{common → postgres/common}/unicode_east_asian_fw_table.h +10 -10
- data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +31 -13
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
- data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +11 -4
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
- data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/executor.h +34 -17
- data/ext/pg_query/include/{executor → postgres/executor}/functions.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/spi.h +2 -2
- data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
- data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +21 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +12 -12
- data/ext/pg_query/include/postgres/gram.h +1127 -0
- data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
- data/ext/pg_query/include/{jit → postgres/jit}/jit.h +2 -2
- data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
- data/ext/pg_query/include/{lib → postgres/lib}/dshash.h +4 -1
- data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +435 -22
- data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +9 -9
- data/ext/pg_query/include/{lib → postgres/lib}/sort_template.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
- data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +8 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +24 -17
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +36 -25
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +10 -41
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +22 -10
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +35 -18
- data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +27 -15
- data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +83 -30
- data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +5 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +14 -2
- data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +7 -4
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +96 -511
- data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +377 -139
- data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1090 -440
- data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +30 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +367 -124
- data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +670 -222
- data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
- data/ext/pg_query/include/{utils → postgres/nodes}/queryjumble.h +5 -7
- data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/value.h +12 -2
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +6 -4
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +8 -8
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +16 -7
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +3 -6
- data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/kwlist.h +12 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +4 -2
- data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +3 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +22 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +8 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parser.h +4 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
- data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +1 -1
- data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
- data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +158 -218
- data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +8 -46
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +1 -1
- data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
- data/ext/pg_query/include/{pgstat.h → postgres/pgstat.h} +173 -94
- data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +3 -3
- data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +66 -64
- data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
- data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +1 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +2 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +48 -46
- data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +28 -33
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +3 -3
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
- data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
- data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +62 -25
- data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
- data/ext/pg_query/include/postgres/port/simd.h +375 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
- data/ext/pg_query/include/{port.h → postgres/port.h} +42 -75
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +1 -4
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +1 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +6 -3
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/startup.h +3 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +3 -1
- data/ext/pg_query/include/{regex → postgres/regex}/regex.h +9 -6
- data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +6 -1
- data/ext/pg_query/include/{replication → postgres/replication}/logicalproto.h +30 -10
- data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
- data/ext/pg_query/include/{replication → postgres/replication}/origin.h +4 -4
- data/ext/pg_query/include/{replication → postgres/replication}/reorderbuffer.h +113 -45
- data/ext/pg_query/include/{replication → postgres/replication}/slot.h +25 -6
- data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +2 -8
- data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +15 -9
- data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +13 -13
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -4
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -31
- data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +183 -87
- data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +146 -93
- data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +3 -6
- data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +4 -1
- data/ext/pg_query/include/{storage → postgres/storage}/fd.h +24 -20
- data/ext/pg_query/include/{storage → postgres/storage}/fileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +94 -57
- data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/latch.h +9 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +6 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lock.h +21 -13
- data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +16 -2
- data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proc.h +22 -17
- data/ext/pg_query/include/{storage → postgres/storage}/procarray.h +3 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +3 -1
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +66 -309
- data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
- data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
- data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +12 -10
- data/ext/pg_query/include/{storage → postgres/storage}/spin.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/standby.h +9 -8
- data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/sync.h +3 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +3 -6
- data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +1 -1
- data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +2 -4
- data/ext/pg_query/include/{utils → postgres/utils}/acl.h +26 -81
- data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/array.h +19 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_progress.h +2 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_status.h +24 -3
- data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +15 -6
- data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
- data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +41 -21
- data/ext/pg_query/include/{utils → postgres/utils}/datum.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/elog.h +104 -29
- data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
- data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
- data/ext/pg_query/include/{utils → postgres/utils}/float.h +7 -6
- data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +54 -1
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +45 -3
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/guc.h +59 -86
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +49 -3
- data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/inval.h +3 -3
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +7 -51
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
- data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +20 -5
- data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +9 -2
- data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +22 -14
- data/ext/pg_query/include/{utils → postgres/utils}/pgstat_internal.h +37 -7
- data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/portal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/probes.h +6 -6
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/regproc.h +3 -3
- data/ext/pg_query/include/{utils → postgres/utils}/rel.h +60 -43
- data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +13 -8
- data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +6 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +4 -2
- data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +2 -2
- data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +4 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +41 -11
- data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +189 -35
- data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +13 -1
- data/ext/pg_query/include/{utils → postgres/utils}/wait_event.h +9 -4
- data/ext/pg_query/include/{utils → postgres/utils}/xml.h +15 -5
- data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +7 -457
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
- data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +19755 -17757
- data/ext/pg_query/pg_query_deparse.c +1 -10635
- data/ext/pg_query/pg_query_fingerprint.c +12 -8
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
- data/ext/pg_query/pg_query_normalize.c +1 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +6 -0
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +7 -5
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +3 -3
- data/ext/pg_query/postgres_deparse.c +11067 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
- data/ext/pg_query/src_backend_commands_define.c +1 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +14 -2
- data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
- data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
- data/ext/pg_query/src_backend_parser_parser.c +28 -2
- data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
- data/ext/pg_query/src_backend_parser_scansup.c +1 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +371 -249
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
- data/ext/pg_query/src_backend_utils_init_globals.c +6 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +21 -67
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
- data/ext/pg_query/src_common_encnames.c +4 -1
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +534 -510
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_stringinfo.c +4 -4
- data/ext/pg_query/src_common_wchar.c +9 -8
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +79 -5
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +6 -10
- data/ext/pg_query/src_port_strerror.c +1 -1
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +2 -3
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/parse.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +166 -3191
- data/lib/pg_query/treewalker.rb +23 -5
- data/lib/pg_query/version.rb +1 -1
- metadata +432 -380
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/ip.h +0 -31
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/kwlist_d.h +0 -1095
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/pgarch.h +0 -73
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
- data/ext/pg_query/src_common_pg_prng.c +0 -152
- data/ext/pg_query/src_common_string.c +0 -92
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
- /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
- /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* port.h
|
|
4
4
|
* Header for src/port/ compatibility functions.
|
|
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/port.h
|
|
@@ -46,14 +46,14 @@ extern bool pg_set_block(pgsocket sock);
|
|
|
46
46
|
|
|
47
47
|
/* Portable path handling for Unix/Win32 (in path.c) */
|
|
48
48
|
|
|
49
|
-
extern bool has_drive_prefix(const char *
|
|
49
|
+
extern bool has_drive_prefix(const char *path);
|
|
50
50
|
extern char *first_dir_separator(const char *filename);
|
|
51
51
|
extern char *last_dir_separator(const char *filename);
|
|
52
52
|
extern char *first_path_var_separator(const char *pathlist);
|
|
53
53
|
extern void join_path_components(char *ret_path,
|
|
54
54
|
const char *head, const char *tail);
|
|
55
55
|
extern void canonicalize_path(char *path);
|
|
56
|
-
extern void make_native_path(char *
|
|
56
|
+
extern void make_native_path(char *filename);
|
|
57
57
|
extern void cleanup_path(char *path);
|
|
58
58
|
extern bool path_contains_parent_reference(const char *path);
|
|
59
59
|
extern bool path_is_relative_and_below_cwd(const char *path);
|
|
@@ -208,15 +208,24 @@ extern unsigned char pg_ascii_tolower(unsigned char ch);
|
|
|
208
208
|
#undef printf
|
|
209
209
|
#endif
|
|
210
210
|
|
|
211
|
-
extern int pg_vsnprintf(char *str, size_t count, const char *fmt, va_list args);
|
|
211
|
+
extern int pg_vsnprintf(char *str, size_t count, const char *fmt, va_list args) pg_attribute_printf(3, 0);
|
|
212
212
|
extern int pg_snprintf(char *str, size_t count, const char *fmt,...) pg_attribute_printf(3, 4);
|
|
213
|
-
extern int pg_vsprintf(char *str, const char *fmt, va_list args);
|
|
213
|
+
extern int pg_vsprintf(char *str, const char *fmt, va_list args) pg_attribute_printf(2, 0);
|
|
214
214
|
extern int pg_sprintf(char *str, const char *fmt,...) pg_attribute_printf(2, 3);
|
|
215
|
-
extern int pg_vfprintf(FILE *stream, const char *fmt, va_list args);
|
|
215
|
+
extern int pg_vfprintf(FILE *stream, const char *fmt, va_list args) pg_attribute_printf(2, 0);
|
|
216
216
|
extern int pg_fprintf(FILE *stream, const char *fmt,...) pg_attribute_printf(2, 3);
|
|
217
|
-
extern int pg_vprintf(const char *fmt, va_list args);
|
|
217
|
+
extern int pg_vprintf(const char *fmt, va_list args) pg_attribute_printf(1, 0);
|
|
218
218
|
extern int pg_printf(const char *fmt,...) pg_attribute_printf(1, 2);
|
|
219
219
|
|
|
220
|
+
#ifndef WIN32
|
|
221
|
+
/*
|
|
222
|
+
* We add a pg_ prefix as a warning that the Windows implementations have the
|
|
223
|
+
* non-standard side-effect of changing the current file position.
|
|
224
|
+
*/
|
|
225
|
+
#define pg_pread pread
|
|
226
|
+
#define pg_pwrite pwrite
|
|
227
|
+
#endif
|
|
228
|
+
|
|
220
229
|
/*
|
|
221
230
|
* We use __VA_ARGS__ for printf to prevent replacing references to
|
|
222
231
|
* the "printf" format archetype in format() attribute declarations.
|
|
@@ -288,7 +297,6 @@ extern int pgunlink(const char *path);
|
|
|
288
297
|
#if defined(WIN32) && !defined(__CYGWIN__)
|
|
289
298
|
extern int pgsymlink(const char *oldpath, const char *newpath);
|
|
290
299
|
extern int pgreadlink(const char *path, char *buf, size_t size);
|
|
291
|
-
extern bool pgwin32_is_junction(const char *path);
|
|
292
300
|
|
|
293
301
|
#define symlink(oldpath, newpath) pgsymlink(oldpath, newpath)
|
|
294
302
|
#define readlink(path, buf, size) pgreadlink(path, buf, size)
|
|
@@ -332,11 +340,6 @@ extern FILE *pgwin32_popen(const char *command, const char *type);
|
|
|
332
340
|
#define popen(a,b) pgwin32_popen(a,b)
|
|
333
341
|
#define pclose(a) _pclose(a)
|
|
334
342
|
|
|
335
|
-
/* New versions of MingW have gettimeofday, old mingw and msvc don't */
|
|
336
|
-
#ifndef HAVE_GETTIMEOFDAY
|
|
337
|
-
/* Last parameter not used */
|
|
338
|
-
extern int gettimeofday(struct timeval *tp, struct timezone *tzp);
|
|
339
|
-
#endif
|
|
340
343
|
#else /* !WIN32 */
|
|
341
344
|
|
|
342
345
|
/*
|
|
@@ -370,10 +373,6 @@ extern int gettimeofday(struct timeval *tp, struct timezone *tzp);
|
|
|
370
373
|
#define pgoff_t off_t
|
|
371
374
|
#endif
|
|
372
375
|
|
|
373
|
-
#ifndef HAVE_FLS
|
|
374
|
-
extern int fls(int mask);
|
|
375
|
-
#endif
|
|
376
|
-
|
|
377
376
|
#ifndef HAVE_GETPEEREID
|
|
378
377
|
/* On Windows, Perl might have incompatible definitions of uid_t and gid_t. */
|
|
379
378
|
#ifndef PLPERL_HAVE_UID_GID
|
|
@@ -401,16 +400,13 @@ extern int getpeereid(int sock, uid_t *uid, gid_t *gid);
|
|
|
401
400
|
extern void explicit_bzero(void *buf, size_t len);
|
|
402
401
|
#endif
|
|
403
402
|
|
|
404
|
-
#ifndef HAVE_STRTOF
|
|
405
|
-
extern float strtof(const char *nptr, char **endptr);
|
|
406
|
-
#endif
|
|
407
|
-
|
|
408
403
|
#ifdef HAVE_BUGGY_STRTOF
|
|
409
404
|
extern float pg_strtof(const char *nptr, char **endptr);
|
|
410
405
|
#define strtof(a,b) (pg_strtof((a),(b)))
|
|
411
406
|
#endif
|
|
412
407
|
|
|
413
|
-
#
|
|
408
|
+
#ifdef WIN32
|
|
409
|
+
/* src/port/win32link.c */
|
|
414
410
|
extern int link(const char *src, const char *dst);
|
|
415
411
|
#endif
|
|
416
412
|
|
|
@@ -424,25 +420,6 @@ extern char *mkdtemp(char *path);
|
|
|
424
420
|
extern int inet_aton(const char *cp, struct in_addr *addr);
|
|
425
421
|
#endif
|
|
426
422
|
|
|
427
|
-
/*
|
|
428
|
-
* Windows and older Unix don't have pread(2) and pwrite(2). We have
|
|
429
|
-
* replacement functions, but they have slightly different semantics so we'll
|
|
430
|
-
* use a name with a pg_ prefix to avoid confusion.
|
|
431
|
-
*/
|
|
432
|
-
#ifdef HAVE_PREAD
|
|
433
|
-
#define pg_pread pread
|
|
434
|
-
#else
|
|
435
|
-
extern ssize_t pg_pread(int fd, void *buf, size_t nbyte, off_t offset);
|
|
436
|
-
#endif
|
|
437
|
-
|
|
438
|
-
#ifdef HAVE_PWRITE
|
|
439
|
-
#define pg_pwrite pwrite
|
|
440
|
-
#else
|
|
441
|
-
extern ssize_t pg_pwrite(int fd, const void *buf, size_t nbyte, off_t offset);
|
|
442
|
-
#endif
|
|
443
|
-
|
|
444
|
-
/* For pg_pwritev() and pg_preadv(), see port/pg_iovec.h. */
|
|
445
|
-
|
|
446
423
|
#if !HAVE_DECL_STRLCAT
|
|
447
424
|
extern size_t strlcat(char *dst, const char *src, size_t siz);
|
|
448
425
|
#endif
|
|
@@ -455,37 +432,6 @@ extern size_t strlcpy(char *dst, const char *src, size_t siz);
|
|
|
455
432
|
extern size_t strnlen(const char *str, size_t maxlen);
|
|
456
433
|
#endif
|
|
457
434
|
|
|
458
|
-
#ifndef HAVE_SETENV
|
|
459
|
-
extern int setenv(const char *name, const char *value, int overwrite);
|
|
460
|
-
#endif
|
|
461
|
-
|
|
462
|
-
#ifndef HAVE_UNSETENV
|
|
463
|
-
extern int unsetenv(const char *name);
|
|
464
|
-
#endif
|
|
465
|
-
|
|
466
|
-
#ifndef HAVE_DLOPEN
|
|
467
|
-
extern void *dlopen(const char *file, int mode);
|
|
468
|
-
extern void *dlsym(void *handle, const char *symbol);
|
|
469
|
-
extern int dlclose(void *handle);
|
|
470
|
-
extern char *dlerror(void);
|
|
471
|
-
#endif
|
|
472
|
-
|
|
473
|
-
/*
|
|
474
|
-
* In some older systems, the RTLD_NOW flag isn't defined and the mode
|
|
475
|
-
* argument to dlopen must always be 1.
|
|
476
|
-
*/
|
|
477
|
-
#if !HAVE_DECL_RTLD_NOW
|
|
478
|
-
#define RTLD_NOW 1
|
|
479
|
-
#endif
|
|
480
|
-
|
|
481
|
-
/*
|
|
482
|
-
* The RTLD_GLOBAL flag is wanted if available, but it doesn't exist
|
|
483
|
-
* everywhere. If it doesn't exist, set it to 0 so it has no effect.
|
|
484
|
-
*/
|
|
485
|
-
#if !HAVE_DECL_RTLD_GLOBAL
|
|
486
|
-
#define RTLD_GLOBAL 0
|
|
487
|
-
#endif
|
|
488
|
-
|
|
489
435
|
/* thread.c */
|
|
490
436
|
#ifndef WIN32
|
|
491
437
|
extern bool pg_get_user_name(uid_t user_id, char *buffer, size_t buflen);
|
|
@@ -506,7 +452,7 @@ extern void qsort_arg(void *base, size_t nel, size_t elsize,
|
|
|
506
452
|
extern void qsort_interruptible(void *base, size_t nel, size_t elsize,
|
|
507
453
|
qsort_arg_comparator cmp, void *arg);
|
|
508
454
|
|
|
509
|
-
extern void *bsearch_arg(const void *key, const void *
|
|
455
|
+
extern void *bsearch_arg(const void *key, const void *base0,
|
|
510
456
|
size_t nmemb, size_t size,
|
|
511
457
|
int (*compar) (const void *, const void *, void *),
|
|
512
458
|
void *arg);
|
|
@@ -539,15 +485,36 @@ extern int pg_check_dir(const char *dir);
|
|
|
539
485
|
extern int pg_mkdir_p(char *path, int omode);
|
|
540
486
|
|
|
541
487
|
/* port/pqsignal.c */
|
|
542
|
-
typedef void (*pqsigfunc) (
|
|
488
|
+
typedef void (*pqsigfunc) (SIGNAL_ARGS);
|
|
543
489
|
extern pqsigfunc pqsignal(int signo, pqsigfunc func);
|
|
544
490
|
|
|
545
491
|
/* port/quotes.c */
|
|
546
492
|
extern char *escape_single_quotes_ascii(const char *src);
|
|
547
493
|
|
|
548
494
|
/* common/wait_error.c */
|
|
549
|
-
extern char *wait_result_to_str(int
|
|
495
|
+
extern char *wait_result_to_str(int exitstatus);
|
|
550
496
|
extern bool wait_result_is_signal(int exit_status, int signum);
|
|
551
497
|
extern bool wait_result_is_any_signal(int exit_status, bool include_command_not_found);
|
|
498
|
+
extern int wait_result_to_exit_code(int exit_status);
|
|
499
|
+
|
|
500
|
+
/*
|
|
501
|
+
* Interfaces that we assume all Unix system have. We retain individual macros
|
|
502
|
+
* for better documentation.
|
|
503
|
+
*
|
|
504
|
+
* For symlink-related functions, there is often no need to test these macros,
|
|
505
|
+
* because we provided basic support on Windows that can work with absolute
|
|
506
|
+
* paths to directories. Code that wants to test for complete symlink support
|
|
507
|
+
* (including relative paths and non-directories) should be conditional on
|
|
508
|
+
* HAVE_READLINK or HAVE_SYMLINK.
|
|
509
|
+
*/
|
|
510
|
+
#ifndef WIN32
|
|
511
|
+
#define HAVE_GETRLIMIT 1
|
|
512
|
+
#define HAVE_POLL 1
|
|
513
|
+
#define HAVE_POLL_H 1
|
|
514
|
+
#define HAVE_READLINK 1
|
|
515
|
+
#define HAVE_SETSID 1
|
|
516
|
+
#define HAVE_SHM_OPEN 1
|
|
517
|
+
#define HAVE_SYMLINK 1
|
|
518
|
+
#endif
|
|
552
519
|
|
|
553
520
|
#endif /* PG_PORT_H */
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* instr_time.h
|
|
4
|
+
* portable high-precision interval timing
|
|
5
|
+
*
|
|
6
|
+
* This file provides an abstraction layer to hide portability issues in
|
|
7
|
+
* interval timing. On Unix we use clock_gettime(), and on Windows we use
|
|
8
|
+
* QueryPerformanceCounter(). These macros also give some breathing room to
|
|
9
|
+
* use other high-precision-timing APIs.
|
|
10
|
+
*
|
|
11
|
+
* The basic data type is instr_time, which all callers should treat as an
|
|
12
|
+
* opaque typedef. instr_time can store either an absolute time (of
|
|
13
|
+
* unspecified reference time) or an interval. The operations provided
|
|
14
|
+
* for it are:
|
|
15
|
+
*
|
|
16
|
+
* INSTR_TIME_IS_ZERO(t) is t equal to zero?
|
|
17
|
+
*
|
|
18
|
+
* INSTR_TIME_SET_ZERO(t) set t to zero (memset is acceptable too)
|
|
19
|
+
*
|
|
20
|
+
* INSTR_TIME_SET_CURRENT(t) set t to current time
|
|
21
|
+
*
|
|
22
|
+
* INSTR_TIME_SET_CURRENT_LAZY(t) set t to current time if t is zero,
|
|
23
|
+
* evaluates to whether t changed
|
|
24
|
+
*
|
|
25
|
+
* INSTR_TIME_ADD(x, y) x += y
|
|
26
|
+
*
|
|
27
|
+
* INSTR_TIME_SUBTRACT(x, y) x -= y
|
|
28
|
+
*
|
|
29
|
+
* INSTR_TIME_ACCUM_DIFF(x, y, z) x += (y - z)
|
|
30
|
+
*
|
|
31
|
+
* INSTR_TIME_GET_DOUBLE(t) convert t to double (in seconds)
|
|
32
|
+
*
|
|
33
|
+
* INSTR_TIME_GET_MILLISEC(t) convert t to double (in milliseconds)
|
|
34
|
+
*
|
|
35
|
+
* INSTR_TIME_GET_MICROSEC(t) convert t to uint64 (in microseconds)
|
|
36
|
+
*
|
|
37
|
+
* INSTR_TIME_GET_NANOSEC(t) convert t to uint64 (in nanoseconds)
|
|
38
|
+
*
|
|
39
|
+
* Note that INSTR_TIME_SUBTRACT and INSTR_TIME_ACCUM_DIFF convert
|
|
40
|
+
* absolute times to intervals. The INSTR_TIME_GET_xxx operations are
|
|
41
|
+
* only useful on intervals.
|
|
42
|
+
*
|
|
43
|
+
* When summing multiple measurements, it's recommended to leave the
|
|
44
|
+
* running sum in instr_time form (ie, use INSTR_TIME_ADD or
|
|
45
|
+
* INSTR_TIME_ACCUM_DIFF) and convert to a result format only at the end.
|
|
46
|
+
*
|
|
47
|
+
* Beware of multiple evaluations of the macro arguments.
|
|
48
|
+
*
|
|
49
|
+
*
|
|
50
|
+
* Copyright (c) 2001-2023, PostgreSQL Global Development Group
|
|
51
|
+
*
|
|
52
|
+
* src/include/portability/instr_time.h
|
|
53
|
+
*
|
|
54
|
+
*-------------------------------------------------------------------------
|
|
55
|
+
*/
|
|
56
|
+
#ifndef INSTR_TIME_H
|
|
57
|
+
#define INSTR_TIME_H
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
/*
|
|
61
|
+
* We store interval times as an int64 integer on all platforms, as int64 is
|
|
62
|
+
* cheap to add/subtract, the most common operation for instr_time. The
|
|
63
|
+
* acquisition of time and converting to specific units of time is platform
|
|
64
|
+
* specific.
|
|
65
|
+
*
|
|
66
|
+
* To avoid users of the API relying on the integer representation, we wrap
|
|
67
|
+
* the 64bit integer in a struct.
|
|
68
|
+
*/
|
|
69
|
+
typedef struct instr_time
|
|
70
|
+
{
|
|
71
|
+
int64 ticks; /* in platforms specific unit */
|
|
72
|
+
} instr_time;
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
/* helpers macros used in platform specific code below */
|
|
76
|
+
|
|
77
|
+
#define NS_PER_S INT64CONST(1000000000)
|
|
78
|
+
#define NS_PER_MS INT64CONST(1000000)
|
|
79
|
+
#define NS_PER_US INT64CONST(1000)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
#ifndef WIN32
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
/* Use clock_gettime() */
|
|
86
|
+
|
|
87
|
+
#include <time.h>
|
|
88
|
+
|
|
89
|
+
/*
|
|
90
|
+
* The best clockid to use according to the POSIX spec is CLOCK_MONOTONIC,
|
|
91
|
+
* since that will give reliable interval timing even in the face of changes
|
|
92
|
+
* to the system clock. However, POSIX doesn't require implementations to
|
|
93
|
+
* provide anything except CLOCK_REALTIME, so fall back to that if we don't
|
|
94
|
+
* find CLOCK_MONOTONIC.
|
|
95
|
+
*
|
|
96
|
+
* Also, some implementations have nonstandard clockids with better properties
|
|
97
|
+
* than CLOCK_MONOTONIC. In particular, as of macOS 10.12, Apple provides
|
|
98
|
+
* CLOCK_MONOTONIC_RAW which is both faster to read and higher resolution than
|
|
99
|
+
* their version of CLOCK_MONOTONIC.
|
|
100
|
+
*/
|
|
101
|
+
#if defined(__darwin__) && defined(CLOCK_MONOTONIC_RAW)
|
|
102
|
+
#define PG_INSTR_CLOCK CLOCK_MONOTONIC_RAW
|
|
103
|
+
#elif defined(CLOCK_MONOTONIC)
|
|
104
|
+
#define PG_INSTR_CLOCK CLOCK_MONOTONIC
|
|
105
|
+
#else
|
|
106
|
+
#define PG_INSTR_CLOCK CLOCK_REALTIME
|
|
107
|
+
#endif
|
|
108
|
+
|
|
109
|
+
/* helper for INSTR_TIME_SET_CURRENT */
|
|
110
|
+
static inline instr_time
|
|
111
|
+
pg_clock_gettime_ns(void)
|
|
112
|
+
{
|
|
113
|
+
instr_time now;
|
|
114
|
+
struct timespec tmp;
|
|
115
|
+
|
|
116
|
+
clock_gettime(PG_INSTR_CLOCK, &tmp);
|
|
117
|
+
now.ticks = tmp.tv_sec * NS_PER_S + tmp.tv_nsec;
|
|
118
|
+
|
|
119
|
+
return now;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
#define INSTR_TIME_SET_CURRENT(t) \
|
|
123
|
+
((t) = pg_clock_gettime_ns())
|
|
124
|
+
|
|
125
|
+
#define INSTR_TIME_GET_NANOSEC(t) \
|
|
126
|
+
((int64) (t).ticks)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
#else /* WIN32 */
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
/* Use QueryPerformanceCounter() */
|
|
133
|
+
|
|
134
|
+
/* helper for INSTR_TIME_SET_CURRENT */
|
|
135
|
+
static inline instr_time
|
|
136
|
+
pg_query_performance_counter(void)
|
|
137
|
+
{
|
|
138
|
+
instr_time now;
|
|
139
|
+
LARGE_INTEGER tmp;
|
|
140
|
+
|
|
141
|
+
QueryPerformanceCounter(&tmp);
|
|
142
|
+
now.ticks = tmp.QuadPart;
|
|
143
|
+
|
|
144
|
+
return now;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
static inline double
|
|
148
|
+
GetTimerFrequency(void)
|
|
149
|
+
{
|
|
150
|
+
LARGE_INTEGER f;
|
|
151
|
+
|
|
152
|
+
QueryPerformanceFrequency(&f);
|
|
153
|
+
return (double) f.QuadPart;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
#define INSTR_TIME_SET_CURRENT(t) \
|
|
157
|
+
((t) = pg_query_performance_counter())
|
|
158
|
+
|
|
159
|
+
#define INSTR_TIME_GET_NANOSEC(t) \
|
|
160
|
+
((int64) ((t).ticks * ((double) NS_PER_S / GetTimerFrequency())))
|
|
161
|
+
|
|
162
|
+
#endif /* WIN32 */
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
/*
|
|
166
|
+
* Common macros
|
|
167
|
+
*/
|
|
168
|
+
|
|
169
|
+
#define INSTR_TIME_IS_ZERO(t) ((t).ticks == 0)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
#define INSTR_TIME_SET_ZERO(t) ((t).ticks = 0)
|
|
173
|
+
|
|
174
|
+
#define INSTR_TIME_SET_CURRENT_LAZY(t) \
|
|
175
|
+
(INSTR_TIME_IS_ZERO(t) ? INSTR_TIME_SET_CURRENT(t), true : false)
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
#define INSTR_TIME_ADD(x,y) \
|
|
179
|
+
((x).ticks += (y).ticks)
|
|
180
|
+
|
|
181
|
+
#define INSTR_TIME_SUBTRACT(x,y) \
|
|
182
|
+
((x).ticks -= (y).ticks)
|
|
183
|
+
|
|
184
|
+
#define INSTR_TIME_ACCUM_DIFF(x,y,z) \
|
|
185
|
+
((x).ticks += (y).ticks - (z).ticks)
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
#define INSTR_TIME_GET_DOUBLE(t) \
|
|
189
|
+
((double) INSTR_TIME_GET_NANOSEC(t) / NS_PER_S)
|
|
190
|
+
|
|
191
|
+
#define INSTR_TIME_GET_MILLISEC(t) \
|
|
192
|
+
((double) INSTR_TIME_GET_NANOSEC(t) / NS_PER_MS)
|
|
193
|
+
|
|
194
|
+
#define INSTR_TIME_GET_MICROSEC(t) \
|
|
195
|
+
(INSTR_TIME_GET_NANOSEC(t) / NS_PER_US)
|
|
196
|
+
|
|
197
|
+
#endif /* INSTR_TIME_H */
|