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,101 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* generic-msvc.h
|
|
4
|
+
* Atomic operations support when using MSVC
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
|
+
*
|
|
9
|
+
* NOTES:
|
|
10
|
+
*
|
|
11
|
+
* Documentation:
|
|
12
|
+
* * Interlocked Variable Access
|
|
13
|
+
* http://msdn.microsoft.com/en-us/library/ms684122%28VS.85%29.aspx
|
|
14
|
+
*
|
|
15
|
+
* src/include/port/atomics/generic-msvc.h
|
|
16
|
+
*
|
|
17
|
+
*-------------------------------------------------------------------------
|
|
18
|
+
*/
|
|
19
|
+
#include <intrin.h>
|
|
20
|
+
|
|
21
|
+
/* intentionally no include guards, should only be included by atomics.h */
|
|
22
|
+
#ifndef INSIDE_ATOMICS_H
|
|
23
|
+
#error "should be included via atomics.h"
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
#pragma intrinsic(_ReadWriteBarrier)
|
|
27
|
+
#define pg_compiler_barrier_impl() _ReadWriteBarrier()
|
|
28
|
+
|
|
29
|
+
#ifndef pg_memory_barrier_impl
|
|
30
|
+
#define pg_memory_barrier_impl() MemoryBarrier()
|
|
31
|
+
#endif
|
|
32
|
+
|
|
33
|
+
#if defined(HAVE_ATOMICS)
|
|
34
|
+
|
|
35
|
+
#define PG_HAVE_ATOMIC_U32_SUPPORT
|
|
36
|
+
typedef struct pg_atomic_uint32
|
|
37
|
+
{
|
|
38
|
+
volatile uint32 value;
|
|
39
|
+
} pg_atomic_uint32;
|
|
40
|
+
|
|
41
|
+
#define PG_HAVE_ATOMIC_U64_SUPPORT
|
|
42
|
+
typedef struct pg_attribute_aligned(8) pg_atomic_uint64
|
|
43
|
+
{
|
|
44
|
+
volatile uint64 value;
|
|
45
|
+
} pg_atomic_uint64;
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
#define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U32
|
|
49
|
+
static inline bool
|
|
50
|
+
pg_atomic_compare_exchange_u32_impl(volatile pg_atomic_uint32 *ptr,
|
|
51
|
+
uint32 *expected, uint32 newval)
|
|
52
|
+
{
|
|
53
|
+
bool ret;
|
|
54
|
+
uint32 current;
|
|
55
|
+
current = InterlockedCompareExchange(&ptr->value, newval, *expected);
|
|
56
|
+
ret = current == *expected;
|
|
57
|
+
*expected = current;
|
|
58
|
+
return ret;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
#define PG_HAVE_ATOMIC_FETCH_ADD_U32
|
|
62
|
+
static inline uint32
|
|
63
|
+
pg_atomic_fetch_add_u32_impl(volatile pg_atomic_uint32 *ptr, int32 add_)
|
|
64
|
+
{
|
|
65
|
+
return InterlockedExchangeAdd(&ptr->value, add_);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/*
|
|
69
|
+
* The non-intrinsics versions are only available in vista upwards, so use the
|
|
70
|
+
* intrinsic version. Only supported on >486, but we require XP as a minimum
|
|
71
|
+
* baseline, which doesn't support the 486, so we don't need to add checks for
|
|
72
|
+
* that case.
|
|
73
|
+
*/
|
|
74
|
+
#pragma intrinsic(_InterlockedCompareExchange64)
|
|
75
|
+
|
|
76
|
+
#define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U64
|
|
77
|
+
static inline bool
|
|
78
|
+
pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
|
|
79
|
+
uint64 *expected, uint64 newval)
|
|
80
|
+
{
|
|
81
|
+
bool ret;
|
|
82
|
+
uint64 current;
|
|
83
|
+
current = _InterlockedCompareExchange64(&ptr->value, newval, *expected);
|
|
84
|
+
ret = current == *expected;
|
|
85
|
+
*expected = current;
|
|
86
|
+
return ret;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* Only implemented on 64bit builds */
|
|
90
|
+
#ifdef _WIN64
|
|
91
|
+
#pragma intrinsic(_InterlockedExchangeAdd64)
|
|
92
|
+
|
|
93
|
+
#define PG_HAVE_ATOMIC_FETCH_ADD_U64
|
|
94
|
+
static inline uint64
|
|
95
|
+
pg_atomic_fetch_add_u64_impl(volatile pg_atomic_uint64 *ptr, int64 add_)
|
|
96
|
+
{
|
|
97
|
+
return _InterlockedExchangeAdd64(&ptr->value, add_);
|
|
98
|
+
}
|
|
99
|
+
#endif /* _WIN64 */
|
|
100
|
+
|
|
101
|
+
#endif /* HAVE_ATOMICS */
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* generic-sunpro.h
|
|
4
|
+
* Atomic operations for solaris' CC
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 2013-2023, PostgreSQL Global Development Group
|
|
7
|
+
*
|
|
8
|
+
* NOTES:
|
|
9
|
+
*
|
|
10
|
+
* Documentation:
|
|
11
|
+
* * manpage for atomic_cas(3C)
|
|
12
|
+
* http://www.unix.com/man-page/opensolaris/3c/atomic_cas/
|
|
13
|
+
* http://docs.oracle.com/cd/E23824_01/html/821-1465/atomic-cas-3c.html
|
|
14
|
+
*
|
|
15
|
+
* src/include/port/atomics/generic-sunpro.h
|
|
16
|
+
*
|
|
17
|
+
* -------------------------------------------------------------------------
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
#if defined(HAVE_ATOMICS)
|
|
21
|
+
|
|
22
|
+
#ifdef HAVE_MBARRIER_H
|
|
23
|
+
#include <mbarrier.h>
|
|
24
|
+
|
|
25
|
+
#define pg_compiler_barrier_impl() __compiler_barrier()
|
|
26
|
+
|
|
27
|
+
#ifndef pg_memory_barrier_impl
|
|
28
|
+
/*
|
|
29
|
+
* Despite the name this is actually a full barrier. Expanding to mfence/
|
|
30
|
+
* membar #StoreStore | #LoadStore | #StoreLoad | #LoadLoad on x86/sparc
|
|
31
|
+
* respectively.
|
|
32
|
+
*/
|
|
33
|
+
# define pg_memory_barrier_impl() __machine_rw_barrier()
|
|
34
|
+
#endif
|
|
35
|
+
#ifndef pg_read_barrier_impl
|
|
36
|
+
# define pg_read_barrier_impl() __machine_r_barrier()
|
|
37
|
+
#endif
|
|
38
|
+
#ifndef pg_write_barrier_impl
|
|
39
|
+
# define pg_write_barrier_impl() __machine_w_barrier()
|
|
40
|
+
#endif
|
|
41
|
+
|
|
42
|
+
#endif /* HAVE_MBARRIER_H */
|
|
43
|
+
|
|
44
|
+
/* Older versions of the compiler don't have atomic.h... */
|
|
45
|
+
#ifdef HAVE_ATOMIC_H
|
|
46
|
+
|
|
47
|
+
#include <atomic.h>
|
|
48
|
+
|
|
49
|
+
#define PG_HAVE_ATOMIC_U32_SUPPORT
|
|
50
|
+
typedef struct pg_atomic_uint32
|
|
51
|
+
{
|
|
52
|
+
volatile uint32 value;
|
|
53
|
+
} pg_atomic_uint32;
|
|
54
|
+
|
|
55
|
+
#define PG_HAVE_ATOMIC_U64_SUPPORT
|
|
56
|
+
typedef struct pg_atomic_uint64
|
|
57
|
+
{
|
|
58
|
+
/*
|
|
59
|
+
* Syntax to enforce variable alignment should be supported by versions
|
|
60
|
+
* supporting atomic.h, but it's hard to find accurate documentation. If
|
|
61
|
+
* it proves to be a problem, we'll have to add more version checks for 64
|
|
62
|
+
* bit support.
|
|
63
|
+
*/
|
|
64
|
+
volatile uint64 value pg_attribute_aligned(8);
|
|
65
|
+
} pg_atomic_uint64;
|
|
66
|
+
|
|
67
|
+
#endif /* HAVE_ATOMIC_H */
|
|
68
|
+
|
|
69
|
+
#endif /* defined(HAVE_ATOMICS) */
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
#if defined(HAVE_ATOMICS)
|
|
73
|
+
|
|
74
|
+
#ifdef HAVE_ATOMIC_H
|
|
75
|
+
|
|
76
|
+
#define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U32
|
|
77
|
+
static inline bool
|
|
78
|
+
pg_atomic_compare_exchange_u32_impl(volatile pg_atomic_uint32 *ptr,
|
|
79
|
+
uint32 *expected, uint32 newval)
|
|
80
|
+
{
|
|
81
|
+
bool ret;
|
|
82
|
+
uint32 current;
|
|
83
|
+
|
|
84
|
+
current = atomic_cas_32(&ptr->value, *expected, newval);
|
|
85
|
+
ret = current == *expected;
|
|
86
|
+
*expected = current;
|
|
87
|
+
return ret;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
#define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U64
|
|
91
|
+
static inline bool
|
|
92
|
+
pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
|
|
93
|
+
uint64 *expected, uint64 newval)
|
|
94
|
+
{
|
|
95
|
+
bool ret;
|
|
96
|
+
uint64 current;
|
|
97
|
+
|
|
98
|
+
current = atomic_cas_64(&ptr->value, *expected, newval);
|
|
99
|
+
ret = current == *expected;
|
|
100
|
+
*expected = current;
|
|
101
|
+
return ret;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
#endif /* HAVE_ATOMIC_H */
|
|
105
|
+
|
|
106
|
+
#endif /* defined(HAVE_ATOMICS) */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Implement higher level operations based on some lower level atomic
|
|
5
5
|
* operations.
|
|
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/port/atomics/generic.h
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* For an introduction to using memory barriers within the PostgreSQL backend,
|
|
29
29
|
* see src/backend/storage/lmgr/README.barrier
|
|
30
30
|
*
|
|
31
|
-
* Portions Copyright (c) 1996-
|
|
31
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
32
32
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
33
33
|
*
|
|
34
34
|
* src/include/port/atomics.h
|
|
@@ -63,13 +63,10 @@
|
|
|
63
63
|
* compiler barrier.
|
|
64
64
|
*
|
|
65
65
|
*/
|
|
66
|
-
#if defined(__arm__) || defined(__arm) ||
|
|
67
|
-
defined(__aarch64__) || defined(__aarch64)
|
|
66
|
+
#if defined(__arm__) || defined(__arm) || defined(__aarch64__)
|
|
68
67
|
#include "port/atomics/arch-arm.h"
|
|
69
68
|
#elif defined(__i386__) || defined(__i386) || defined(__x86_64__)
|
|
70
69
|
#include "port/atomics/arch-x86.h"
|
|
71
|
-
#elif defined(__ia64__) || defined(__ia64)
|
|
72
|
-
#include "port/atomics/arch-ia64.h"
|
|
73
70
|
#elif defined(__ppc__) || defined(__powerpc__) || defined(__ppc64__) || defined(__powerpc64__)
|
|
74
71
|
#include "port/atomics/arch-ppc.h"
|
|
75
72
|
#elif defined(__hppa) || defined(__hppa__)
|
|
@@ -95,8 +92,6 @@
|
|
|
95
92
|
#include "port/atomics/generic-gcc.h"
|
|
96
93
|
#elif defined(_MSC_VER)
|
|
97
94
|
#include "port/atomics/generic-msvc.h"
|
|
98
|
-
#elif defined(__hpux) && defined(__ia64) && !defined(__GNUC__)
|
|
99
|
-
#include "port/atomics/generic-acc.h"
|
|
100
95
|
#elif defined(__SUNPRO_C) && !defined(__GNUC__)
|
|
101
96
|
#include "port/atomics/generic-sunpro.h"
|
|
102
97
|
#else
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Miscellaneous functions for bit-wise operations.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Copyright (c) 2019-
|
|
7
|
+
* Copyright (c) 2019-2023, PostgreSQL Global Development Group
|
|
8
8
|
*
|
|
9
9
|
* src/include/port/pg_bitutils.h
|
|
10
10
|
*
|
|
@@ -13,15 +13,24 @@
|
|
|
13
13
|
#ifndef PG_BITUTILS_H
|
|
14
14
|
#define PG_BITUTILS_H
|
|
15
15
|
|
|
16
|
-
#
|
|
16
|
+
#ifdef _MSC_VER
|
|
17
|
+
#include <intrin.h>
|
|
18
|
+
#define HAVE_BITSCAN_FORWARD
|
|
19
|
+
#define HAVE_BITSCAN_REVERSE
|
|
20
|
+
|
|
21
|
+
#else
|
|
22
|
+
#if defined(HAVE__BUILTIN_CTZ)
|
|
23
|
+
#define HAVE_BITSCAN_FORWARD
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
#if defined(HAVE__BUILTIN_CLZ)
|
|
27
|
+
#define HAVE_BITSCAN_REVERSE
|
|
28
|
+
#endif
|
|
29
|
+
#endif /* _MSC_VER */
|
|
30
|
+
|
|
17
31
|
extern PGDLLIMPORT const uint8 pg_leftmost_one_pos[256];
|
|
18
32
|
extern PGDLLIMPORT const uint8 pg_rightmost_one_pos[256];
|
|
19
33
|
extern PGDLLIMPORT const uint8 pg_number_of_ones[256];
|
|
20
|
-
#else
|
|
21
|
-
extern const uint8 pg_leftmost_one_pos[256];
|
|
22
|
-
extern const uint8 pg_rightmost_one_pos[256];
|
|
23
|
-
extern const uint8 pg_number_of_ones[256];
|
|
24
|
-
#endif
|
|
25
34
|
|
|
26
35
|
/*
|
|
27
36
|
* pg_leftmost_one_pos32
|
|
@@ -35,6 +44,13 @@ pg_leftmost_one_pos32(uint32 word)
|
|
|
35
44
|
Assert(word != 0);
|
|
36
45
|
|
|
37
46
|
return 31 - __builtin_clz(word);
|
|
47
|
+
#elif defined(_MSC_VER)
|
|
48
|
+
unsigned long result;
|
|
49
|
+
bool non_zero;
|
|
50
|
+
|
|
51
|
+
non_zero = _BitScanReverse(&result, word);
|
|
52
|
+
Assert(non_zero);
|
|
53
|
+
return (int) result;
|
|
38
54
|
#else
|
|
39
55
|
int shift = 32 - 8;
|
|
40
56
|
|
|
@@ -63,8 +79,16 @@ pg_leftmost_one_pos64(uint64 word)
|
|
|
63
79
|
return 63 - __builtin_clzll(word);
|
|
64
80
|
#else
|
|
65
81
|
#error must have a working 64-bit integer datatype
|
|
66
|
-
#endif
|
|
67
|
-
|
|
82
|
+
#endif /* HAVE_LONG_INT_64 */
|
|
83
|
+
|
|
84
|
+
#elif defined(_MSC_VER) && (defined(_M_AMD64) || defined(_M_ARM64))
|
|
85
|
+
unsigned long result;
|
|
86
|
+
bool non_zero;
|
|
87
|
+
|
|
88
|
+
non_zero = _BitScanReverse64(&result, word);
|
|
89
|
+
Assert(non_zero);
|
|
90
|
+
return (int) result;
|
|
91
|
+
#else
|
|
68
92
|
int shift = 64 - 8;
|
|
69
93
|
|
|
70
94
|
Assert(word != 0);
|
|
@@ -88,6 +112,13 @@ pg_rightmost_one_pos32(uint32 word)
|
|
|
88
112
|
Assert(word != 0);
|
|
89
113
|
|
|
90
114
|
return __builtin_ctz(word);
|
|
115
|
+
#elif defined(_MSC_VER)
|
|
116
|
+
unsigned long result;
|
|
117
|
+
bool non_zero;
|
|
118
|
+
|
|
119
|
+
non_zero = _BitScanForward(&result, word);
|
|
120
|
+
Assert(non_zero);
|
|
121
|
+
return (int) result;
|
|
91
122
|
#else
|
|
92
123
|
int result = 0;
|
|
93
124
|
|
|
@@ -119,8 +150,16 @@ pg_rightmost_one_pos64(uint64 word)
|
|
|
119
150
|
return __builtin_ctzll(word);
|
|
120
151
|
#else
|
|
121
152
|
#error must have a working 64-bit integer datatype
|
|
122
|
-
#endif
|
|
123
|
-
|
|
153
|
+
#endif /* HAVE_LONG_INT_64 */
|
|
154
|
+
|
|
155
|
+
#elif defined(_MSC_VER) && (defined(_M_AMD64) || defined(_M_ARM64))
|
|
156
|
+
unsigned long result;
|
|
157
|
+
bool non_zero;
|
|
158
|
+
|
|
159
|
+
non_zero = _BitScanForward64(&result, word);
|
|
160
|
+
Assert(non_zero);
|
|
161
|
+
return (int) result;
|
|
162
|
+
#else
|
|
124
163
|
int result = 0;
|
|
125
164
|
|
|
126
165
|
Assert(word != 0);
|
|
@@ -137,7 +176,7 @@ pg_rightmost_one_pos64(uint64 word)
|
|
|
137
176
|
|
|
138
177
|
/*
|
|
139
178
|
* pg_nextpower2_32
|
|
140
|
-
* Returns the next
|
|
179
|
+
* Returns the next higher power of 2 above 'num', or 'num' if it's
|
|
141
180
|
* already a power of 2.
|
|
142
181
|
*
|
|
143
182
|
* 'num' mustn't be 0 or be above PG_UINT32_MAX / 2 + 1.
|
|
@@ -160,7 +199,7 @@ pg_nextpower2_32(uint32 num)
|
|
|
160
199
|
|
|
161
200
|
/*
|
|
162
201
|
* pg_nextpower2_64
|
|
163
|
-
* Returns the next
|
|
202
|
+
* Returns the next higher power of 2 above 'num', or 'num' if it's
|
|
164
203
|
* already a power of 2.
|
|
165
204
|
*
|
|
166
205
|
* 'num' mustn't be 0 or be above PG_UINT64_MAX / 2 + 1.
|
|
@@ -181,6 +220,32 @@ pg_nextpower2_64(uint64 num)
|
|
|
181
220
|
return ((uint64) 1) << (pg_leftmost_one_pos64(num) + 1);
|
|
182
221
|
}
|
|
183
222
|
|
|
223
|
+
/*
|
|
224
|
+
* pg_prevpower2_32
|
|
225
|
+
* Returns the next lower power of 2 below 'num', or 'num' if it's
|
|
226
|
+
* already a power of 2.
|
|
227
|
+
*
|
|
228
|
+
* 'num' mustn't be 0.
|
|
229
|
+
*/
|
|
230
|
+
static inline uint32
|
|
231
|
+
pg_prevpower2_32(uint32 num)
|
|
232
|
+
{
|
|
233
|
+
return ((uint32) 1) << pg_leftmost_one_pos32(num);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/*
|
|
237
|
+
* pg_prevpower2_64
|
|
238
|
+
* Returns the next lower power of 2 below 'num', or 'num' if it's
|
|
239
|
+
* already a power of 2.
|
|
240
|
+
*
|
|
241
|
+
* 'num' mustn't be 0.
|
|
242
|
+
*/
|
|
243
|
+
static inline uint64
|
|
244
|
+
pg_prevpower2_64(uint64 num)
|
|
245
|
+
{
|
|
246
|
+
return ((uint64) 1) << pg_leftmost_one_pos64(num);
|
|
247
|
+
}
|
|
248
|
+
|
|
184
249
|
/*
|
|
185
250
|
* pg_ceil_log2_32
|
|
186
251
|
* Returns equivalent of ceil(log2(num))
|
|
@@ -207,20 +272,68 @@ pg_ceil_log2_64(uint64 num)
|
|
|
207
272
|
return pg_leftmost_one_pos64(num - 1) + 1;
|
|
208
273
|
}
|
|
209
274
|
|
|
210
|
-
/*
|
|
275
|
+
/*
|
|
276
|
+
* With MSVC on x86_64 builds, try using native popcnt instructions via the
|
|
277
|
+
* __popcnt and __popcnt64 intrinsics. These don't work the same as GCC's
|
|
278
|
+
* __builtin_popcount* intrinsic functions as they always emit popcnt
|
|
279
|
+
* instructions.
|
|
280
|
+
*/
|
|
281
|
+
#if defined(_MSC_VER) && defined(_M_AMD64)
|
|
282
|
+
#define HAVE_X86_64_POPCNTQ
|
|
283
|
+
#endif
|
|
284
|
+
|
|
285
|
+
/*
|
|
286
|
+
* On x86_64, we can use the hardware popcount instruction, but only if
|
|
287
|
+
* we can verify that the CPU supports it via the cpuid instruction.
|
|
288
|
+
*
|
|
289
|
+
* Otherwise, we fall back to a hand-rolled implementation.
|
|
290
|
+
*/
|
|
291
|
+
#ifdef HAVE_X86_64_POPCNTQ
|
|
292
|
+
#if defined(HAVE__GET_CPUID) || defined(HAVE__CPUID)
|
|
293
|
+
#define TRY_POPCNT_FAST 1
|
|
294
|
+
#endif
|
|
295
|
+
#endif
|
|
296
|
+
|
|
297
|
+
#ifdef TRY_POPCNT_FAST
|
|
298
|
+
/* Attempt to use the POPCNT instruction, but perform a runtime check first */
|
|
211
299
|
extern int (*pg_popcount32) (uint32 word);
|
|
212
300
|
extern int (*pg_popcount64) (uint64 word);
|
|
213
301
|
|
|
302
|
+
#else
|
|
303
|
+
/* Use a portable implementation -- no need for a function pointer. */
|
|
304
|
+
extern int pg_popcount32(uint32 word);
|
|
305
|
+
extern int pg_popcount64(uint64 word);
|
|
306
|
+
|
|
307
|
+
#endif /* TRY_POPCNT_FAST */
|
|
308
|
+
|
|
214
309
|
/* Count the number of one-bits in a byte array */
|
|
215
310
|
extern uint64 pg_popcount(const char *buf, int bytes);
|
|
216
311
|
|
|
217
312
|
/*
|
|
218
|
-
* Rotate the bits of "word" to the right by n bits.
|
|
313
|
+
* Rotate the bits of "word" to the right/left by n bits.
|
|
219
314
|
*/
|
|
220
315
|
static inline uint32
|
|
221
316
|
pg_rotate_right32(uint32 word, int n)
|
|
222
317
|
{
|
|
223
|
-
return (word >> n) | (word << (
|
|
318
|
+
return (word >> n) | (word << (32 - n));
|
|
224
319
|
}
|
|
225
320
|
|
|
321
|
+
static inline uint32
|
|
322
|
+
pg_rotate_left32(uint32 word, int n)
|
|
323
|
+
{
|
|
324
|
+
return (word << n) | (word >> (32 - n));
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/* size_t variants of the above, as required */
|
|
328
|
+
|
|
329
|
+
#if SIZEOF_SIZE_T == 4
|
|
330
|
+
#define pg_leftmost_one_pos_size_t pg_leftmost_one_pos32
|
|
331
|
+
#define pg_nextpower2_size_t pg_nextpower2_32
|
|
332
|
+
#define pg_prevpower2_size_t pg_prevpower2_32
|
|
333
|
+
#else
|
|
334
|
+
#define pg_leftmost_one_pos_size_t pg_leftmost_one_pos64
|
|
335
|
+
#define pg_nextpower2_size_t pg_nextpower2_64
|
|
336
|
+
#define pg_prevpower2_size_t pg_prevpower2_64
|
|
337
|
+
#endif
|
|
338
|
+
|
|
226
339
|
#endif /* PG_BITUTILS_H */
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* return the same. Use caution when using these wrapper macros with signed
|
|
12
12
|
* integers.
|
|
13
13
|
*
|
|
14
|
-
* Copyright (c) 2015-
|
|
14
|
+
* Copyright (c) 2015-2023, PostgreSQL Global Development Group
|
|
15
15
|
*
|
|
16
16
|
* src/include/port/pg_bswap.h
|
|
17
17
|
*
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* EQ_CRC32C(c1, c2)
|
|
24
24
|
* Check for equality of two CRCs.
|
|
25
25
|
*
|
|
26
|
-
* Portions Copyright (c) 1996-
|
|
26
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
27
27
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
28
28
|
*
|
|
29
29
|
* src/include/port/pg_crc32c.h
|