pg_query 5.1.0 → 6.0.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 +18 -0
- data/README.md +1 -1
- data/Rakefile +2 -2
- data/ext/pg_query/include/pg_query.h +4 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +2952 -1845
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +210 -23
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +271 -52
- data/ext/pg_query/include/postgres/access/amapi.h +10 -3
- data/ext/pg_query/include/postgres/access/attmap.h +1 -1
- data/ext/pg_query/include/postgres/access/attnum.h +1 -1
- data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
- data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
- data/ext/pg_query/include/postgres/access/clog.h +2 -3
- data/ext/pg_query/include/postgres/access/commit_ts.h +2 -3
- data/ext/pg_query/include/postgres/access/detoast.h +1 -1
- data/ext/pg_query/include/postgres/access/genam.h +8 -4
- data/ext/pg_query/include/postgres/access/gin.h +1 -1
- data/ext/pg_query/include/postgres/access/htup.h +1 -1
- data/ext/pg_query/include/postgres/access/htup_details.h +11 -11
- data/ext/pg_query/include/postgres/access/itup.h +3 -3
- data/ext/pg_query/include/postgres/access/parallel.h +1 -2
- data/ext/pg_query/include/postgres/access/printtup.h +1 -1
- data/ext/pg_query/include/postgres/access/relation.h +1 -1
- data/ext/pg_query/include/postgres/access/relscan.h +1 -1
- data/ext/pg_query/include/postgres/access/rmgrlist.h +1 -1
- data/ext/pg_query/include/postgres/access/sdir.h +1 -1
- data/ext/pg_query/include/postgres/access/skey.h +1 -1
- data/ext/pg_query/include/postgres/access/slru.h +221 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +1 -1
- data/ext/pg_query/include/postgres/access/sysattr.h +1 -1
- data/ext/pg_query/include/postgres/access/table.h +1 -1
- data/ext/pg_query/include/postgres/access/tableam.h +33 -24
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +2 -2
- data/ext/pg_query/include/postgres/access/transam.h +7 -7
- data/ext/pg_query/include/postgres/access/tsmapi.h +1 -1
- data/ext/pg_query/include/postgres/access/tupconvert.h +1 -1
- data/ext/pg_query/include/postgres/access/tupdesc.h +5 -5
- data/ext/pg_query/include/postgres/access/tupmacs.h +1 -1
- data/ext/pg_query/include/postgres/access/twophase.h +2 -2
- data/ext/pg_query/include/postgres/access/xact.h +5 -5
- data/ext/pg_query/include/postgres/access/xlog.h +20 -12
- data/ext/pg_query/include/postgres/access/xlog_internal.h +4 -3
- data/ext/pg_query/include/postgres/access/xlogbackup.h +3 -1
- data/ext/pg_query/include/postgres/access/xlogdefs.h +5 -5
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +2 -2
- data/ext/pg_query/include/postgres/access/xlogreader.h +2 -2
- data/ext/pg_query/include/postgres/access/xlogrecord.h +3 -3
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +4 -4
- data/ext/pg_query/include/postgres/archive/archive_module.h +9 -1
- data/ext/pg_query/include/postgres/c.h +31 -36
- data/ext/pg_query/include/postgres/catalog/catalog.h +3 -1
- data/ext/pg_query/include/postgres/catalog/catversion.h +2 -2
- data/ext/pg_query/include/postgres/catalog/dependency.h +17 -59
- data/ext/pg_query/include/postgres/catalog/genbki.h +12 -6
- data/ext/pg_query/include/postgres/catalog/index.h +22 -18
- data/ext/pg_query/include/postgres/catalog/indexing.h +1 -1
- data/ext/pg_query/include/postgres/catalog/namespace.h +18 -19
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +2 -2
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_am.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +31 -14
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +2 -1
- data/ext/pg_query/include/postgres/catalog/pg_class.h +10 -5
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +11 -5
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +5 -2
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +15 -10
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +2 -1
- data/ext/pg_query/include/postgres/catalog/pg_control.h +5 -3
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +8 -4
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +9 -4
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +13 -12
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_index.h +5 -3
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_language.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +20 -3
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +10 -4
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +7 -3
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +10 -7
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +4 -4
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_type.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/storage.h +1 -1
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +2 -6
- data/ext/pg_query/include/postgres/commands/dbcommands.h +1 -1
- data/ext/pg_query/include/postgres/commands/defrem.h +6 -6
- data/ext/pg_query/include/postgres/commands/event_trigger.h +5 -2
- data/ext/pg_query/include/postgres/commands/explain.h +19 -3
- data/ext/pg_query/include/postgres/commands/prepare.h +1 -1
- data/ext/pg_query/include/postgres/commands/tablespace.h +1 -1
- data/ext/pg_query/include/postgres/commands/trigger.h +1 -1
- data/ext/pg_query/include/postgres/commands/vacuum.h +28 -26
- data/ext/pg_query/include/postgres/common/cryptohash.h +2 -2
- data/ext/pg_query/include/postgres/common/file_perm.h +1 -1
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +16 -1
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +453 -0
- data/ext/pg_query/include/postgres/common/int.h +79 -4
- data/ext/pg_query/include/postgres/common/keywords.h +1 -1
- data/ext/pg_query/include/postgres/common/kwlookup.h +1 -1
- data/ext/pg_query/include/postgres/common/pg_prng.h +2 -1
- data/ext/pg_query/include/postgres/common/relpath.h +4 -4
- data/ext/pg_query/include/postgres/common/scram-common.h +1 -1
- data/ext/pg_query/include/postgres/common/sha2.h +1 -1
- data/ext/pg_query/include/postgres/common/string.h +1 -1
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +2 -3
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +278 -30
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +55 -4
- data/ext/pg_query/include/postgres/datatype/timestamp.h +28 -2
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +239 -26
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +55 -4
- data/ext/pg_query/include/postgres/executor/execdesc.h +1 -1
- data/ext/pg_query/include/postgres/executor/executor.h +6 -5
- data/ext/pg_query/include/postgres/executor/functions.h +2 -1
- data/ext/pg_query/include/postgres/executor/instrument.h +5 -3
- data/ext/pg_query/include/postgres/executor/spi.h +2 -8
- data/ext/pg_query/include/postgres/executor/tablefunc.h +1 -1
- data/ext/pg_query/include/postgres/executor/tuptable.h +31 -2
- data/ext/pg_query/include/postgres/fmgr.h +2 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +1 -1
- data/ext/pg_query/include/postgres/funcapi.h +2 -2
- data/ext/pg_query/include/postgres/gram.h +871 -830
- data/ext/pg_query/include/postgres/gramparse.h +1 -1
- data/ext/pg_query/include/postgres/jit/jit.h +4 -3
- data/ext/pg_query/include/postgres/kwlist_d.h +511 -466
- data/ext/pg_query/include/postgres/lib/dshash.h +25 -10
- data/ext/pg_query/include/postgres/lib/ilist.h +1 -1
- data/ext/pg_query/include/postgres/lib/pairingheap.h +1 -1
- data/ext/pg_query/include/postgres/lib/simplehash.h +40 -18
- data/ext/pg_query/include/postgres/lib/sort_template.h +14 -1
- data/ext/pg_query/include/postgres/lib/stringinfo.h +93 -11
- data/ext/pg_query/include/postgres/libpq/auth.h +1 -1
- data/ext/pg_query/include/postgres/libpq/crypt.h +2 -2
- data/ext/pg_query/include/postgres/libpq/hba.h +4 -4
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +29 -25
- data/ext/pg_query/include/postgres/libpq/libpq.h +6 -7
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +26 -20
- data/ext/pg_query/include/postgres/libpq/pqformat.h +2 -3
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +1 -1
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- data/ext/pg_query/include/postgres/libpq/sasl.h +1 -1
- data/ext/pg_query/include/postgres/libpq/scram.h +1 -1
- data/ext/pg_query/include/postgres/mb/pg_wchar.h +102 -82
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/postgres/miscadmin.h +64 -52
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
- data/ext/pg_query/include/postgres/nodes/execnodes.h +109 -25
- data/ext/pg_query/include/postgres/nodes/extensible.h +1 -1
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +4 -4
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +8 -2
- data/ext/pg_query/include/postgres/nodes/memnodes.h +43 -4
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +1 -1
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +1 -1
- data/ext/pg_query/include/postgres/nodes/nodes.h +30 -41
- data/ext/pg_query/include/postgres/nodes/nodetags.h +464 -444
- data/ext/pg_query/include/postgres/nodes/params.h +1 -1
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +358 -175
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +60 -9
- data/ext/pg_query/include/postgres/nodes/pg_list.h +62 -11
- data/ext/pg_query/include/postgres/nodes/plannodes.h +11 -10
- data/ext/pg_query/include/postgres/nodes/primnodes.h +344 -50
- data/ext/pg_query/include/postgres/nodes/print.h +1 -1
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +2 -2
- data/ext/pg_query/include/postgres/nodes/replnodes.h +23 -2
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +1 -1
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +1 -1
- data/ext/pg_query/include/postgres/nodes/value.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/cost.h +5 -4
- data/ext/pg_query/include/postgres/optimizer/geqo.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +5 -2
- data/ext/pg_query/include/postgres/optimizer/paths.h +13 -8
- data/ext/pg_query/include/postgres/optimizer/planmain.h +7 -1
- data/ext/pg_query/include/postgres/parser/analyze.h +3 -1
- data/ext/pg_query/include/postgres/parser/kwlist.h +22 -2
- data/ext/pg_query/include/postgres/parser/parse_agg.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +2 -2
- data/ext/pg_query/include/postgres/parser/parse_expr.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_func.h +2 -2
- data/ext/pg_query/include/postgres/parser/parse_node.h +3 -2
- data/ext/pg_query/include/postgres/parser/parse_oper.h +4 -1
- data/ext/pg_query/include/postgres/parser/parse_relation.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_type.h +2 -2
- data/ext/pg_query/include/postgres/parser/parser.h +3 -3
- data/ext/pg_query/include/postgres/parser/parsetree.h +1 -1
- data/ext/pg_query/include/postgres/parser/scanner.h +1 -1
- data/ext/pg_query/include/postgres/parser/scansup.h +1 -1
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +1 -1
- data/ext/pg_query/include/postgres/pg_config.h +34 -34
- data/ext/pg_query/include/postgres/pg_config_manual.h +21 -8
- data/ext/pg_query/include/postgres/pg_getopt.h +1 -1
- data/ext/pg_query/include/postgres/pg_trace.h +1 -1
- data/ext/pg_query/include/postgres/pgstat.h +13 -11
- data/ext/pg_query/include/postgres/pgtime.h +1 -1
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +1 -1
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +1 -1
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/postgres/plerrcodes.h +4 -4
- data/ext/pg_query/include/postgres/plpgsql.h +15 -13
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +3 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +3 -1
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +38 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +19 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +16 -1
- data/ext/pg_query/include/postgres/port/atomics/generic.h +38 -2
- data/ext/pg_query/include/postgres/port/atomics.h +93 -6
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +91 -9
- data/ext/pg_query/include/postgres/port/pg_bswap.h +1 -1
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +10 -1
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +48 -1
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +8 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +1 -11
- data/ext/pg_query/include/postgres/port.h +7 -3
- data/ext/pg_query/include/postgres/portability/instr_time.h +1 -1
- data/ext/pg_query/include/postgres/postgres.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/autovacuum.h +5 -16
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +8 -6
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +3 -7
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +3 -3
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +2 -2
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +25 -5
- data/ext/pg_query/include/postgres/postmaster/startup.h +2 -2
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +2 -4
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +2 -2
- data/ext/pg_query/include/postgres/regex/regex.h +92 -9
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +1 -1
- data/ext/pg_query/include/postgres/replication/logicalproto.h +2 -2
- data/ext/pg_query/include/postgres/replication/logicalworker.h +2 -1
- data/ext/pg_query/include/postgres/replication/origin.h +1 -1
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +18 -28
- data/ext/pg_query/include/postgres/replication/slot.h +41 -5
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +1 -1
- data/ext/pg_query/include/postgres/replication/walreceiver.h +37 -11
- data/ext/pg_query/include/postgres/replication/walsender.h +5 -3
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +1 -1
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +7 -1
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +2 -2
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +1 -1
- data/ext/pg_query/include/postgres/storage/block.h +1 -1
- data/ext/pg_query/include/postgres/storage/buf.h +1 -1
- data/ext/pg_query/include/postgres/storage/bufmgr.h +59 -41
- data/ext/pg_query/include/postgres/storage/bufpage.h +1 -1
- data/ext/pg_query/include/postgres/storage/condition_variable.h +1 -1
- data/ext/pg_query/include/postgres/storage/dsm.h +1 -1
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +2 -2
- data/ext/pg_query/include/postgres/storage/fd.h +30 -13
- data/ext/pg_query/include/postgres/storage/fileset.h +1 -1
- data/ext/pg_query/include/postgres/storage/ipc.h +4 -1
- data/ext/pg_query/include/postgres/storage/item.h +1 -1
- data/ext/pg_query/include/postgres/storage/itemid.h +1 -1
- data/ext/pg_query/include/postgres/storage/itemptr.h +1 -1
- data/ext/pg_query/include/postgres/storage/large_object.h +1 -1
- data/ext/pg_query/include/postgres/storage/latch.h +4 -2
- data/ext/pg_query/include/postgres/storage/lmgr.h +8 -2
- data/ext/pg_query/include/postgres/storage/lock.h +19 -19
- data/ext/pg_query/include/postgres/storage/lockdefs.h +1 -1
- data/ext/pg_query/include/postgres/storage/lwlock.h +17 -9
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +7 -10
- data/ext/pg_query/include/postgres/storage/off.h +1 -1
- data/ext/pg_query/include/postgres/storage/pg_sema.h +1 -1
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +5 -4
- data/ext/pg_query/include/postgres/storage/pmsignal.h +2 -2
- data/ext/pg_query/include/postgres/storage/predicate.h +1 -5
- data/ext/pg_query/include/postgres/storage/proc.h +48 -23
- data/ext/pg_query/include/postgres/storage/procarray.h +5 -1
- data/ext/pg_query/include/postgres/storage/proclist_types.h +11 -9
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +8 -6
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +16 -15
- data/ext/pg_query/include/postgres/storage/s_lock.h +7 -27
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +1 -1
- data/ext/pg_query/include/postgres/storage/shm_mq.h +2 -2
- data/ext/pg_query/include/postgres/storage/shm_toc.h +1 -1
- data/ext/pg_query/include/postgres/storage/shmem.h +1 -1
- data/ext/pg_query/include/postgres/storage/sinval.h +3 -3
- data/ext/pg_query/include/postgres/storage/smgr.h +41 -27
- data/ext/pg_query/include/postgres/storage/spin.h +1 -1
- data/ext/pg_query/include/postgres/storage/standby.h +13 -3
- data/ext/pg_query/include/postgres/storage/standbydefs.h +2 -2
- data/ext/pg_query/include/postgres/storage/sync.h +4 -4
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +1 -2
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +3 -2
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +2 -2
- data/ext/pg_query/include/postgres/tcop/dest.h +3 -2
- data/ext/pg_query/include/postgres/tcop/fastpath.h +1 -1
- data/ext/pg_query/include/postgres/tcop/pquery.h +1 -1
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +9 -5
- data/ext/pg_query/include/postgres/tcop/utility.h +2 -2
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +1 -1
- data/ext/pg_query/include/postgres/utils/acl.h +19 -7
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +1 -1
- data/ext/pg_query/include/postgres/utils/array.h +1 -2
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +3 -2
- data/ext/pg_query/include/postgres/utils/backend_status.h +8 -10
- data/ext/pg_query/include/postgres/utils/builtins.h +4 -1
- data/ext/pg_query/include/postgres/utils/bytea.h +2 -2
- data/ext/pg_query/include/postgres/utils/catcache.h +5 -6
- data/ext/pg_query/include/postgres/utils/date.h +1 -1
- data/ext/pg_query/include/postgres/utils/datetime.h +4 -1
- data/ext/pg_query/include/postgres/utils/datum.h +1 -1
- data/ext/pg_query/include/postgres/utils/dsa.h +44 -5
- data/ext/pg_query/include/postgres/utils/elog.h +3 -8
- data/ext/pg_query/include/postgres/utils/errcodes.h +1 -3
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +1 -1
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +1 -1
- data/ext/pg_query/include/postgres/utils/float.h +1 -1
- data/ext/pg_query/include/postgres/utils/fmgroids.h +49 -16
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +47 -14
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +1 -1
- data/ext/pg_query/include/postgres/utils/guc.h +20 -6
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +23 -2
- data/ext/pg_query/include/postgres/utils/guc_tables.h +6 -5
- data/ext/pg_query/include/postgres/utils/hsearch.h +2 -2
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +1 -1
- data/ext/pg_query/include/postgres/utils/logtape.h +5 -5
- data/ext/pg_query/include/postgres/utils/lsyscache.h +6 -3
- data/ext/pg_query/include/postgres/utils/memdebug.h +1 -1
- data/ext/pg_query/include/postgres/utils/memutils.h +12 -5
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +53 -13
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +25 -9
- data/ext/pg_query/include/postgres/utils/numeric.h +6 -1
- data/ext/pg_query/include/postgres/utils/palloc.h +1 -15
- data/ext/pg_query/include/postgres/utils/partcache.h +1 -1
- data/ext/pg_query/include/postgres/utils/pg_locale.h +8 -7
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +11 -17
- data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
- data/ext/pg_query/include/postgres/utils/portal.h +9 -9
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +2 -2
- data/ext/pg_query/include/postgres/utils/regproc.h +1 -1
- data/ext/pg_query/include/postgres/utils/rel.h +14 -15
- data/ext/pg_query/include/postgres/utils/relcache.h +2 -5
- data/ext/pg_query/include/postgres/utils/reltrigger.h +1 -1
- data/ext/pg_query/include/postgres/utils/resowner.h +90 -9
- data/ext/pg_query/include/postgres/utils/ruleutils.h +1 -1
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/postgres/utils/snapmgr.h +1 -52
- data/ext/pg_query/include/postgres/utils/snapshot.h +2 -2
- data/ext/pg_query/include/postgres/utils/sortsupport.h +1 -1
- data/ext/pg_query/include/postgres/utils/syscache.h +2 -98
- data/ext/pg_query/include/postgres/utils/timeout.h +3 -2
- data/ext/pg_query/include/postgres/utils/timestamp.h +1 -1
- data/ext/pg_query/include/postgres/utils/tuplesort.h +36 -9
- data/ext/pg_query/include/postgres/utils/tuplestore.h +2 -5
- data/ext/pg_query/include/postgres/utils/typcache.h +2 -1
- data/ext/pg_query/include/postgres/utils/varlena.h +1 -1
- data/ext/pg_query/include/postgres/utils/wait_event.h +28 -214
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +4 -4
- data/ext/pg_query/include/postgres/varatt.h +1 -1
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
- data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
- data/ext/pg_query/pg_query.pb-c.c +6598 -3739
- data/ext/pg_query/pg_query_normalize.c +42 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +3 -1
- data/ext/pg_query/pg_query_parse_plpgsql.c +12 -13
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +2 -2
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -1
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/postgres_deparse.c +409 -21
- data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +3 -7
- data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +34490 -32135
- data/ext/pg_query/src_backend_parser_parser.c +8 -8
- data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
- 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 +4 -5
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
- data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
- data/ext/pg_query/src_backend_utils_error_elog.c +47 -42
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +15 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +11 -18
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -6
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
- data/ext/pg_query/src_common_encnames.c +43 -44
- 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 +511 -466
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +3 -3
- data/ext/pg_query/src_common_stringinfo.c +18 -1
- data/ext/pg_query/src_common_wchar.c +45 -108
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
- 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 +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_port_pg_bitutils.c +173 -28
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +1 -1
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +1 -1
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +26 -3
- data/lib/pg_query/treewalker.rb +38 -11
- data/lib/pg_query/truncate.rb +1 -1
- data/lib/pg_query/version.rb +1 -1
- metadata +25 -11
- data/ext/pg_query/include/postgres/storage/backendid.h +0 -37
- data/ext/pg_query/include/postgres/storage/sinvaladt.h +0 -45
- data/ext/pg_query/src_backend_nodes_nodes.c +0 -38
|
@@ -52,10 +52,6 @@
|
|
|
52
52
|
/* Define to 1 if you want National Language Support. (--enable-nls) */
|
|
53
53
|
/* #undef ENABLE_NLS */
|
|
54
54
|
|
|
55
|
-
/* Define to 1 to build client libraries as thread-safe code.
|
|
56
|
-
(--enable-thread-safety) */
|
|
57
|
-
#define ENABLE_THREAD_SAFETY 1
|
|
58
|
-
|
|
59
55
|
/* Define to 1 if you have the `append_history' function. */
|
|
60
56
|
/* #undef HAVE_APPEND_HISTORY */
|
|
61
57
|
|
|
@@ -71,9 +67,6 @@
|
|
|
71
67
|
/* Define to 1 if you have the `backtrace_symbols' function. */
|
|
72
68
|
#define HAVE_BACKTRACE_SYMBOLS 1
|
|
73
69
|
|
|
74
|
-
/* Define to 1 if you have the `BIO_get_data' function. */
|
|
75
|
-
/* #undef HAVE_BIO_GET_DATA */
|
|
76
|
-
|
|
77
70
|
/* Define to 1 if you have the `BIO_meth_new' function. */
|
|
78
71
|
/* #undef HAVE_BIO_METH_NEW */
|
|
79
72
|
|
|
@@ -86,6 +79,9 @@
|
|
|
86
79
|
/* Define to 1 if you have the <copyfile.h> header file. */
|
|
87
80
|
#define HAVE_COPYFILE_H 1
|
|
88
81
|
|
|
82
|
+
/* Define to 1 if you have the `copy_file_range' function. */
|
|
83
|
+
/* #undef HAVE_COPY_FILE_RANGE */
|
|
84
|
+
|
|
89
85
|
/* Define to 1 if you have the <crtdefs.h> header file. */
|
|
90
86
|
/* #undef HAVE_CRTDEFS_H */
|
|
91
87
|
|
|
@@ -108,18 +104,6 @@
|
|
|
108
104
|
`LLVMCreatePerfJITEventListener', and to 0 if you don't. */
|
|
109
105
|
/* #undef HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER */
|
|
110
106
|
|
|
111
|
-
/* Define to 1 if you have the declaration of `LLVMGetHostCPUFeatures', and to
|
|
112
|
-
0 if you don't. */
|
|
113
|
-
/* #undef HAVE_DECL_LLVMGETHOSTCPUFEATURES */
|
|
114
|
-
|
|
115
|
-
/* Define to 1 if you have the declaration of `LLVMGetHostCPUName', and to 0
|
|
116
|
-
if you don't. */
|
|
117
|
-
/* #undef HAVE_DECL_LLVMGETHOSTCPUNAME */
|
|
118
|
-
|
|
119
|
-
/* Define to 1 if you have the declaration of `LLVMOrcGetSymbolAddressIn', and
|
|
120
|
-
to 0 if you don't. */
|
|
121
|
-
/* #undef HAVE_DECL_LLVMORCGETSYMBOLADDRESSIN */
|
|
122
|
-
|
|
123
107
|
/* Define to 1 if you have the declaration of `posix_fadvise', and to 0 if you
|
|
124
108
|
don't. */
|
|
125
109
|
#define HAVE_DECL_POSIX_FADVISE 0
|
|
@@ -299,9 +283,6 @@
|
|
|
299
283
|
/* Define to 1 if you have the `zstd' library (-lzstd). */
|
|
300
284
|
/* #undef HAVE_LIBZSTD */
|
|
301
285
|
|
|
302
|
-
/* Define to 1 if the system has the type `locale_t'. */
|
|
303
|
-
#define HAVE_LOCALE_T 1
|
|
304
|
-
|
|
305
286
|
/* Define to 1 if `long int' works and is 64 bits. */
|
|
306
287
|
#define HAVE_LONG_INT_64 1
|
|
307
288
|
|
|
@@ -404,6 +385,9 @@
|
|
|
404
385
|
/* Define to 1 if you have the `SSL_CTX_set_cert_cb' function. */
|
|
405
386
|
/* #undef HAVE_SSL_CTX_SET_CERT_CB */
|
|
406
387
|
|
|
388
|
+
/* Define to 1 if you have the `SSL_CTX_set_num_tickets' function. */
|
|
389
|
+
/* #undef HAVE_SSL_CTX_SET_NUM_TICKETS */
|
|
390
|
+
|
|
407
391
|
/* Define to 1 if stdbool.h conforms to C99. */
|
|
408
392
|
#define HAVE_STDBOOL_H 1
|
|
409
393
|
|
|
@@ -530,12 +514,12 @@
|
|
|
530
514
|
/* Define to 1 if you have the `X509_get_signature_info' function. */
|
|
531
515
|
/* #undef HAVE_X509_GET_SIGNATURE_INFO */
|
|
532
516
|
|
|
533
|
-
/* Define to 1 if you have the `X509_get_signature_nid' function. */
|
|
534
|
-
/* #undef HAVE_X509_GET_SIGNATURE_NID */
|
|
535
|
-
|
|
536
517
|
/* Define to 1 if the assembler supports X86_64's POPCNTQ instruction. */
|
|
537
518
|
/* #undef HAVE_X86_64_POPCNTQ */
|
|
538
519
|
|
|
520
|
+
/* Define to 1 if you have XSAVE intrinsics. */
|
|
521
|
+
/* #undef HAVE_XSAVE_INTRINSICS */
|
|
522
|
+
|
|
539
523
|
/* Define to 1 if the system has the type `_Bool'. */
|
|
540
524
|
#define HAVE__BOOL 1
|
|
541
525
|
|
|
@@ -578,9 +562,15 @@
|
|
|
578
562
|
/* Define to 1 if you have __cpuid. */
|
|
579
563
|
/* #undef HAVE__CPUID */
|
|
580
564
|
|
|
565
|
+
/* Define to 1 if you have __cpuidex. */
|
|
566
|
+
/* #undef HAVE__CPUIDEX */
|
|
567
|
+
|
|
581
568
|
/* Define to 1 if you have __get_cpuid. */
|
|
582
569
|
/* #undef HAVE__GET_CPUID */
|
|
583
570
|
|
|
571
|
+
/* Define to 1 if you have __get_cpuid_count. */
|
|
572
|
+
/* #undef HAVE__GET_CPUID_COUNT */
|
|
573
|
+
|
|
584
574
|
/* Define to 1 if your compiler understands _Static_assert. */
|
|
585
575
|
#define HAVE__STATIC_ASSERT 1
|
|
586
576
|
|
|
@@ -607,7 +597,7 @@
|
|
|
607
597
|
#define PACKAGE_NAME "PostgreSQL"
|
|
608
598
|
|
|
609
599
|
/* Define to the full name and version of this package. */
|
|
610
|
-
#define PACKAGE_STRING "PostgreSQL
|
|
600
|
+
#define PACKAGE_STRING "PostgreSQL 17.0"
|
|
611
601
|
|
|
612
602
|
/* Define to the one symbol short name of this package. */
|
|
613
603
|
#define PACKAGE_TARNAME "postgresql"
|
|
@@ -616,7 +606,7 @@
|
|
|
616
606
|
#define PACKAGE_URL "https://www.postgresql.org/"
|
|
617
607
|
|
|
618
608
|
/* Define to the version of this package. */
|
|
619
|
-
#define PACKAGE_VERSION "
|
|
609
|
+
#define PACKAGE_VERSION "17.0"
|
|
620
610
|
|
|
621
611
|
/* Define to the name of a signed 128-bit integer type. */
|
|
622
612
|
#define PG_INT128_TYPE __int128
|
|
@@ -629,13 +619,13 @@
|
|
|
629
619
|
#define PG_KRB_SRVNAM "postgres"
|
|
630
620
|
|
|
631
621
|
/* PostgreSQL major version as a string */
|
|
632
|
-
#define PG_MAJORVERSION "
|
|
622
|
+
#define PG_MAJORVERSION "17"
|
|
633
623
|
|
|
634
624
|
/* PostgreSQL major version number */
|
|
635
|
-
#define PG_MAJORVERSION_NUM
|
|
625
|
+
#define PG_MAJORVERSION_NUM 17
|
|
636
626
|
|
|
637
627
|
/* PostgreSQL minor version number */
|
|
638
|
-
#define PG_MINORVERSION_NUM
|
|
628
|
+
#define PG_MINORVERSION_NUM 0
|
|
639
629
|
|
|
640
630
|
/* Define to best printf format archetype, usually gnu_printf if available. */
|
|
641
631
|
#define PG_PRINTF_ATTRIBUTE printf
|
|
@@ -644,13 +634,13 @@
|
|
|
644
634
|
#define PG_USE_STDBOOL 1
|
|
645
635
|
|
|
646
636
|
/* PostgreSQL version as a string */
|
|
647
|
-
#define PG_VERSION "
|
|
637
|
+
#define PG_VERSION "17.0"
|
|
648
638
|
|
|
649
639
|
/* PostgreSQL version as a number */
|
|
650
|
-
#define PG_VERSION_NUM
|
|
640
|
+
#define PG_VERSION_NUM 170000
|
|
651
641
|
|
|
652
642
|
/* A string containing the version number, platform, and C compiler */
|
|
653
|
-
#define PG_VERSION_STR "PostgreSQL
|
|
643
|
+
#define PG_VERSION_STR "PostgreSQL 17.0 (libpg_query)"
|
|
654
644
|
|
|
655
645
|
/* Define to 1 to allow profiling output to be saved separately for each
|
|
656
646
|
process. */
|
|
@@ -703,6 +693,9 @@
|
|
|
703
693
|
/* Define to 1 to build with assertion checks. (--enable-cassert) */
|
|
704
694
|
/* #undef USE_ASSERT_CHECKING */
|
|
705
695
|
|
|
696
|
+
/* Define to 1 to use AVX-512 popcount instructions with a runtime check. */
|
|
697
|
+
/* #undef USE_AVX512_POPCNT_WITH_RUNTIME_CHECK */
|
|
698
|
+
|
|
706
699
|
/* Define to 1 to build with Bonjour support. (--with-bonjour) */
|
|
707
700
|
/* #undef USE_BONJOUR */
|
|
708
701
|
|
|
@@ -712,6 +705,9 @@
|
|
|
712
705
|
/* Define to build with ICU support. (--with-icu) */
|
|
713
706
|
/* #undef USE_ICU */
|
|
714
707
|
|
|
708
|
+
/* Define to 1 to build with injection points. (--enable-injection-points) */
|
|
709
|
+
/* #undef USE_INJECTION_POINTS */
|
|
710
|
+
|
|
715
711
|
/* Define to 1 to build with LDAP support. (--with-ldap) */
|
|
716
712
|
/* #undef USE_LDAP */
|
|
717
713
|
|
|
@@ -725,6 +721,9 @@
|
|
|
725
721
|
/* Define to 1 to build with LLVM based JIT support. (--with-llvm) */
|
|
726
722
|
/* #undef USE_LLVM */
|
|
727
723
|
|
|
724
|
+
/* Define to 1 to use LoongArch CRCC instructions. */
|
|
725
|
+
/* #undef USE_LOONGARCH_CRC32C */
|
|
726
|
+
|
|
728
727
|
/* Define to 1 to build with LZ4 support. (--with-lz4) */
|
|
729
728
|
/* #undef USE_LZ4 */
|
|
730
729
|
|
|
@@ -827,8 +826,9 @@
|
|
|
827
826
|
/* Define to how the compiler spells `typeof'. */
|
|
828
827
|
/* #undef typeof */
|
|
829
828
|
/* This causes compatibility problems on some Linux distros, with "xlocale.h" not being available */
|
|
830
|
-
#
|
|
829
|
+
#ifndef __APPLE__
|
|
831
830
|
#undef LOCALE_T_IN_XLOCALE
|
|
831
|
+
#endif
|
|
832
832
|
#undef WCSTOMBS_L_IN_XLOCALE
|
|
833
833
|
|
|
834
834
|
/* Support gcc earlier than 4.6.0 and MSVC */
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* for developers. If you edit any of these, be sure to do a *full*
|
|
7
7
|
* rebuild (and an initdb if noted).
|
|
8
8
|
*
|
|
9
|
-
* Portions Copyright (c) 1996-
|
|
9
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
10
10
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
11
11
|
*
|
|
12
12
|
* src/include/pg_config_manual.h
|
|
@@ -217,13 +217,13 @@
|
|
|
217
217
|
#define DEFAULT_EVENT_SOURCE "PostgreSQL"
|
|
218
218
|
|
|
219
219
|
/*
|
|
220
|
-
* Assumed cache line size.
|
|
221
|
-
* for low-level optimizations.
|
|
222
|
-
* structures
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
220
|
+
* Assumed cache line size. This doesn't affect correctness, but can be used
|
|
221
|
+
* for low-level optimizations. This is mostly used to pad various data
|
|
222
|
+
* structures, to ensure that highly-contended fields are on different cache
|
|
223
|
+
* lines. Too small a value can hurt performance due to false sharing, while
|
|
224
|
+
* the only downside of too large a value is a few bytes of wasted memory.
|
|
225
|
+
* The default is 128, which should be large enough for all supported
|
|
226
|
+
* platforms.
|
|
227
227
|
*/
|
|
228
228
|
#define PG_CACHE_LINE_SIZE 128
|
|
229
229
|
|
|
@@ -240,6 +240,13 @@
|
|
|
240
240
|
*------------------------------------------------------------------------
|
|
241
241
|
*/
|
|
242
242
|
|
|
243
|
+
/*
|
|
244
|
+
* Force use of the non-recursive JSON parser in all cases. This is useful
|
|
245
|
+
* to validate the working of the parser, and the regression tests should
|
|
246
|
+
* pass except for some different error messages about the stack limit.
|
|
247
|
+
*/
|
|
248
|
+
/* #define FORCE_JSON_PSTACK */
|
|
249
|
+
|
|
243
250
|
/*
|
|
244
251
|
* Include Valgrind "client requests", mostly in the memory allocator, so
|
|
245
252
|
* Valgrind understands PostgreSQL memory contexts. This permits detecting
|
|
@@ -335,6 +342,12 @@
|
|
|
335
342
|
*/
|
|
336
343
|
/* #define COPY_PARSE_PLAN_TREES */
|
|
337
344
|
|
|
345
|
+
/*
|
|
346
|
+
* Define this to force Bitmapset reallocation on each modification. Helps
|
|
347
|
+
* to find dangling pointers to Bitmapset's.
|
|
348
|
+
*/
|
|
349
|
+
/* #define REALLOCATE_BITMAPSETS */
|
|
350
|
+
|
|
338
351
|
/*
|
|
339
352
|
* Define this to force all parse and plan trees to be passed through
|
|
340
353
|
* outfuncs.c/readfuncs.c, to facilitate catching errors and omissions in
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* Portions Copyright (c) 1987, 1993, 1994
|
|
12
12
|
* The Regents of the University of California. All rights reserved.
|
|
13
13
|
*
|
|
14
|
-
* Portions Copyright (c) 2003-
|
|
14
|
+
* Portions Copyright (c) 2003-2024, PostgreSQL Global Development Group
|
|
15
15
|
*
|
|
16
16
|
* src/include/pg_getopt.h
|
|
17
17
|
*/
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Definitions for the PostgreSQL cumulative statistics system.
|
|
5
5
|
*
|
|
6
|
-
* Copyright (c) 2001-
|
|
6
|
+
* Copyright (c) 2001-2024, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* src/include/pgstat.h
|
|
9
9
|
* ----------
|
|
@@ -62,7 +62,7 @@ typedef enum TrackFunctionsLevel
|
|
|
62
62
|
{
|
|
63
63
|
TRACK_FUNC_OFF,
|
|
64
64
|
TRACK_FUNC_PL,
|
|
65
|
-
TRACK_FUNC_ALL
|
|
65
|
+
TRACK_FUNC_ALL,
|
|
66
66
|
} TrackFunctionsLevel;
|
|
67
67
|
|
|
68
68
|
typedef enum PgStat_FetchConsistency
|
|
@@ -79,7 +79,7 @@ typedef enum SessionEndType
|
|
|
79
79
|
DISCONNECT_NORMAL,
|
|
80
80
|
DISCONNECT_CLIENT_EOF,
|
|
81
81
|
DISCONNECT_FATAL,
|
|
82
|
-
DISCONNECT_KILLED
|
|
82
|
+
DISCONNECT_KILLED,
|
|
83
83
|
} SessionEndType;
|
|
84
84
|
|
|
85
85
|
/* ----------
|
|
@@ -260,13 +260,15 @@ typedef struct PgStat_BgWriterStats
|
|
|
260
260
|
|
|
261
261
|
typedef struct PgStat_CheckpointerStats
|
|
262
262
|
{
|
|
263
|
-
PgStat_Counter
|
|
264
|
-
PgStat_Counter
|
|
265
|
-
PgStat_Counter
|
|
266
|
-
PgStat_Counter
|
|
267
|
-
PgStat_Counter
|
|
268
|
-
PgStat_Counter
|
|
269
|
-
PgStat_Counter
|
|
263
|
+
PgStat_Counter num_timed;
|
|
264
|
+
PgStat_Counter num_requested;
|
|
265
|
+
PgStat_Counter restartpoints_timed;
|
|
266
|
+
PgStat_Counter restartpoints_requested;
|
|
267
|
+
PgStat_Counter restartpoints_performed;
|
|
268
|
+
PgStat_Counter write_time; /* times in milliseconds */
|
|
269
|
+
PgStat_Counter sync_time;
|
|
270
|
+
PgStat_Counter buffers_written;
|
|
271
|
+
TimestampTz stat_reset_timestamp;
|
|
270
272
|
} PgStat_CheckpointerStats;
|
|
271
273
|
|
|
272
274
|
|
|
@@ -520,7 +522,7 @@ extern bool pgstat_bktype_io_stats_valid(PgStat_BktypeIO *backend_io,
|
|
|
520
522
|
BackendType bktype);
|
|
521
523
|
extern void pgstat_count_io_op(IOObject io_object, IOContext io_context, IOOp io_op);
|
|
522
524
|
extern void pgstat_count_io_op_n(IOObject io_object, IOContext io_context, IOOp io_op, uint32 cnt);
|
|
523
|
-
extern instr_time pgstat_prepare_io_time(
|
|
525
|
+
extern instr_time pgstat_prepare_io_time(bool track_io_guc);
|
|
524
526
|
extern void pgstat_count_io_op_time(IOObject io_object, IOContext io_context,
|
|
525
527
|
IOOp io_op, instr_time start_time, uint32 cnt);
|
|
526
528
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* by the PG_KEYWORD macro, which is not defined in this file; it can
|
|
8
8
|
* be defined by the caller for special purposes.
|
|
9
9
|
*
|
|
10
|
-
* Portions Copyright (c) 1996-
|
|
10
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
12
12
|
*
|
|
13
13
|
* src/pl/plpgsql/src/pl_reserved_kwlist.h
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pl_reserved_kwlist_d.h
|
|
4
4
|
* List of keywords represented as a ScanKeywordList.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* NOTES
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* by the PG_KEYWORD macro, which is not defined in this file; it can
|
|
8
8
|
* be defined by the caller for special purposes.
|
|
9
9
|
*
|
|
10
|
-
* Portions Copyright (c) 1996-
|
|
10
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
12
12
|
*
|
|
13
13
|
* src/pl/plpgsql/src/pl_unreserved_kwlist.h
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pl_unreserved_kwlist_d.h
|
|
4
4
|
* List of keywords represented as a ScanKeywordList.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* NOTES
|
|
@@ -433,6 +433,10 @@
|
|
|
433
433
|
"idle_in_transaction_session_timeout", ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT
|
|
434
434
|
},
|
|
435
435
|
|
|
436
|
+
{
|
|
437
|
+
"transaction_timeout", ERRCODE_TRANSACTION_TIMEOUT
|
|
438
|
+
},
|
|
439
|
+
|
|
436
440
|
{
|
|
437
441
|
"invalid_sql_statement_name", ERRCODE_INVALID_SQL_STATEMENT_NAME
|
|
438
442
|
},
|
|
@@ -845,10 +849,6 @@
|
|
|
845
849
|
"duplicate_file", ERRCODE_DUPLICATE_FILE
|
|
846
850
|
},
|
|
847
851
|
|
|
848
|
-
{
|
|
849
|
-
"snapshot_too_old", ERRCODE_SNAPSHOT_TOO_OLD
|
|
850
|
-
},
|
|
851
|
-
|
|
852
852
|
{
|
|
853
853
|
"config_file_error", ERRCODE_CONFIG_FILE_ERROR
|
|
854
854
|
},
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* plpgsql.h - Definitions for the PL/pgSQL
|
|
4
4
|
* procedural language
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
*
|
|
@@ -42,7 +42,7 @@ typedef enum PLpgSQL_nsitem_type
|
|
|
42
42
|
{
|
|
43
43
|
PLPGSQL_NSTYPE_LABEL, /* block label */
|
|
44
44
|
PLPGSQL_NSTYPE_VAR, /* scalar variable */
|
|
45
|
-
PLPGSQL_NSTYPE_REC /* composite variable */
|
|
45
|
+
PLPGSQL_NSTYPE_REC, /* composite variable */
|
|
46
46
|
} PLpgSQL_nsitem_type;
|
|
47
47
|
|
|
48
48
|
/*
|
|
@@ -52,7 +52,7 @@ typedef enum PLpgSQL_label_type
|
|
|
52
52
|
{
|
|
53
53
|
PLPGSQL_LABEL_BLOCK, /* DECLARE/BEGIN block */
|
|
54
54
|
PLPGSQL_LABEL_LOOP, /* looping construct */
|
|
55
|
-
PLPGSQL_LABEL_OTHER
|
|
55
|
+
PLPGSQL_LABEL_OTHER, /* anything else */
|
|
56
56
|
} PLpgSQL_label_type;
|
|
57
57
|
|
|
58
58
|
/*
|
|
@@ -64,7 +64,7 @@ typedef enum PLpgSQL_datum_type
|
|
|
64
64
|
PLPGSQL_DTYPE_ROW,
|
|
65
65
|
PLPGSQL_DTYPE_REC,
|
|
66
66
|
PLPGSQL_DTYPE_RECFIELD,
|
|
67
|
-
PLPGSQL_DTYPE_PROMISE
|
|
67
|
+
PLPGSQL_DTYPE_PROMISE,
|
|
68
68
|
} PLpgSQL_datum_type;
|
|
69
69
|
|
|
70
70
|
/*
|
|
@@ -83,7 +83,7 @@ typedef enum PLpgSQL_promise_type
|
|
|
83
83
|
PLPGSQL_PROMISE_TG_NARGS,
|
|
84
84
|
PLPGSQL_PROMISE_TG_ARGV,
|
|
85
85
|
PLPGSQL_PROMISE_TG_EVENT,
|
|
86
|
-
PLPGSQL_PROMISE_TG_TAG
|
|
86
|
+
PLPGSQL_PROMISE_TG_TAG,
|
|
87
87
|
} PLpgSQL_promise_type;
|
|
88
88
|
|
|
89
89
|
/*
|
|
@@ -93,7 +93,7 @@ typedef enum PLpgSQL_type_type
|
|
|
93
93
|
{
|
|
94
94
|
PLPGSQL_TTYPE_SCALAR, /* scalar types and domains */
|
|
95
95
|
PLPGSQL_TTYPE_REC, /* composite types, including RECORD */
|
|
96
|
-
PLPGSQL_TTYPE_PSEUDO /* pseudotypes */
|
|
96
|
+
PLPGSQL_TTYPE_PSEUDO, /* pseudotypes */
|
|
97
97
|
} PLpgSQL_type_type;
|
|
98
98
|
|
|
99
99
|
/*
|
|
@@ -127,7 +127,7 @@ typedef enum PLpgSQL_stmt_type
|
|
|
127
127
|
PLPGSQL_STMT_PERFORM,
|
|
128
128
|
PLPGSQL_STMT_CALL,
|
|
129
129
|
PLPGSQL_STMT_COMMIT,
|
|
130
|
-
PLPGSQL_STMT_ROLLBACK
|
|
130
|
+
PLPGSQL_STMT_ROLLBACK,
|
|
131
131
|
} PLpgSQL_stmt_type;
|
|
132
132
|
|
|
133
133
|
/*
|
|
@@ -138,7 +138,7 @@ enum
|
|
|
138
138
|
PLPGSQL_RC_OK,
|
|
139
139
|
PLPGSQL_RC_EXIT,
|
|
140
140
|
PLPGSQL_RC_RETURN,
|
|
141
|
-
PLPGSQL_RC_CONTINUE
|
|
141
|
+
PLPGSQL_RC_CONTINUE,
|
|
142
142
|
};
|
|
143
143
|
|
|
144
144
|
/*
|
|
@@ -158,7 +158,7 @@ typedef enum PLpgSQL_getdiag_kind
|
|
|
158
158
|
PLPGSQL_GETDIAG_DATATYPE_NAME,
|
|
159
159
|
PLPGSQL_GETDIAG_MESSAGE_TEXT,
|
|
160
160
|
PLPGSQL_GETDIAG_TABLE_NAME,
|
|
161
|
-
PLPGSQL_GETDIAG_SCHEMA_NAME
|
|
161
|
+
PLPGSQL_GETDIAG_SCHEMA_NAME,
|
|
162
162
|
} PLpgSQL_getdiag_kind;
|
|
163
163
|
|
|
164
164
|
/*
|
|
@@ -174,7 +174,7 @@ typedef enum PLpgSQL_raise_option_type
|
|
|
174
174
|
PLPGSQL_RAISEOPTION_CONSTRAINT,
|
|
175
175
|
PLPGSQL_RAISEOPTION_DATATYPE,
|
|
176
176
|
PLPGSQL_RAISEOPTION_TABLE,
|
|
177
|
-
PLPGSQL_RAISEOPTION_SCHEMA
|
|
177
|
+
PLPGSQL_RAISEOPTION_SCHEMA,
|
|
178
178
|
} PLpgSQL_raise_option_type;
|
|
179
179
|
|
|
180
180
|
/*
|
|
@@ -184,7 +184,7 @@ typedef enum PLpgSQL_resolve_option
|
|
|
184
184
|
{
|
|
185
185
|
PLPGSQL_RESOLVE_ERROR, /* throw error if ambiguous */
|
|
186
186
|
PLPGSQL_RESOLVE_VARIABLE, /* prefer plpgsql var to table column */
|
|
187
|
-
PLPGSQL_RESOLVE_COLUMN /* prefer table column to plpgsql var */
|
|
187
|
+
PLPGSQL_RESOLVE_COLUMN, /* prefer table column to plpgsql var */
|
|
188
188
|
} PLpgSQL_resolve_option;
|
|
189
189
|
|
|
190
190
|
|
|
@@ -957,7 +957,7 @@ typedef enum PLpgSQL_trigtype
|
|
|
957
957
|
{
|
|
958
958
|
PLPGSQL_DML_TRIGGER,
|
|
959
959
|
PLPGSQL_EVENT_TRIGGER,
|
|
960
|
-
PLPGSQL_NOT_TRIGGER
|
|
960
|
+
PLPGSQL_NOT_TRIGGER,
|
|
961
961
|
} PLpgSQL_trigtype;
|
|
962
962
|
|
|
963
963
|
/*
|
|
@@ -1188,7 +1188,7 @@ typedef enum
|
|
|
1188
1188
|
{
|
|
1189
1189
|
IDENTIFIER_LOOKUP_NORMAL, /* normal processing of var names */
|
|
1190
1190
|
IDENTIFIER_LOOKUP_DECLARE, /* In DECLARE --- don't look up names */
|
|
1191
|
-
IDENTIFIER_LOOKUP_EXPR /* In SQL expression --- special case */
|
|
1191
|
+
IDENTIFIER_LOOKUP_EXPR, /* In SQL expression --- special case */
|
|
1192
1192
|
} IdentifierLookup;
|
|
1193
1193
|
|
|
1194
1194
|
extern __thread IdentifierLookup plpgsql_IdentifierLookup;
|
|
@@ -1249,6 +1249,7 @@ extern PLpgSQL_type *plpgsql_parse_cwordrowtype(List *idents);
|
|
|
1249
1249
|
extern PGDLLEXPORT PLpgSQL_type *plpgsql_build_datatype(Oid typeOid, int32 typmod,
|
|
1250
1250
|
Oid collation,
|
|
1251
1251
|
TypeName *origtypname);
|
|
1252
|
+
extern PLpgSQL_type *plpgsql_build_datatype_arrayof(PLpgSQL_type *dtype);
|
|
1252
1253
|
extern PLpgSQL_variable *plpgsql_build_variable(const char *refname, int lineno,
|
|
1253
1254
|
PLpgSQL_type *dtype,
|
|
1254
1255
|
bool add2namespace);
|
|
@@ -1318,6 +1319,7 @@ extern void plpgsql_dumptree(PLpgSQL_function *func);
|
|
|
1318
1319
|
*/
|
|
1319
1320
|
extern int plpgsql_base_yylex(void);
|
|
1320
1321
|
extern int plpgsql_yylex(void);
|
|
1322
|
+
extern int plpgsql_token_length(void);
|
|
1321
1323
|
extern void plpgsql_push_back_token(int token);
|
|
1322
1324
|
extern bool plpgsql_token_is_unreserved_keyword(int token);
|
|
1323
1325
|
extern void plpgsql_append_source_text(StringInfo buf,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* arch-hppa.h
|
|
4
4
|
* Atomic operations considerations specific to HPPA
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* NOTES:
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* arch-ppc.h
|
|
4
4
|
* Atomic operations considerations specific to PowerPC
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* NOTES:
|
|
@@ -173,6 +173,8 @@ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
|
|
|
173
173
|
uint32 condition_register;
|
|
174
174
|
bool ret;
|
|
175
175
|
|
|
176
|
+
AssertPointerAlignment(expected, 8);
|
|
177
|
+
|
|
176
178
|
/* Like u32, but s/lwarx/ldarx/; s/stwcx/stdcx/; s/cmpw/cmpd/ */
|
|
177
179
|
#ifdef HAVE_I_CONSTRAINT__BUILTIN_CONSTANT_P
|
|
178
180
|
if (__builtin_constant_p(*expected) &&
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* support for xadd and cmpxchg. Given that the 386 isn't supported anywhere
|
|
8
8
|
* anymore that's not much of a restriction luckily.
|
|
9
9
|
*
|
|
10
|
-
* Portions Copyright (c) 1996-
|
|
10
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
12
12
|
*
|
|
13
13
|
* NOTES:
|
|
@@ -207,6 +207,8 @@ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
|
|
|
207
207
|
{
|
|
208
208
|
char ret;
|
|
209
209
|
|
|
210
|
+
AssertPointerAlignment(expected, 8);
|
|
211
|
+
|
|
210
212
|
/*
|
|
211
213
|
* Perform cmpxchg and use the zero flag which it implicitly sets when
|
|
212
214
|
* equal to measure the success.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Fallback for platforms without spinlock and/or atomics support. Slower
|
|
5
5
|
* than native atomics support, but not unusably slow.
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/port/atomics/fallback.h
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* generic-gcc.h
|
|
4
4
|
* Atomic operations, implemented using gcc (or compatible) intrinsics.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* NOTES:
|
|
@@ -176,6 +176,23 @@ pg_atomic_compare_exchange_u32_impl(volatile pg_atomic_uint32 *ptr,
|
|
|
176
176
|
}
|
|
177
177
|
#endif
|
|
178
178
|
|
|
179
|
+
/*
|
|
180
|
+
* __sync_lock_test_and_set() only supports setting the value to 1 on some
|
|
181
|
+
* platforms, so we only provide an __atomic implementation for
|
|
182
|
+
* pg_atomic_exchange.
|
|
183
|
+
*
|
|
184
|
+
* We assume the availability of 32-bit __atomic_compare_exchange_n() implies
|
|
185
|
+
* the availability of 32-bit __atomic_exchange_n().
|
|
186
|
+
*/
|
|
187
|
+
#if !defined(PG_HAVE_ATOMIC_EXCHANGE_U32) && defined(HAVE_GCC__ATOMIC_INT32_CAS)
|
|
188
|
+
#define PG_HAVE_ATOMIC_EXCHANGE_U32
|
|
189
|
+
static inline uint32
|
|
190
|
+
pg_atomic_exchange_u32_impl(volatile pg_atomic_uint32 *ptr, uint32 newval)
|
|
191
|
+
{
|
|
192
|
+
return __atomic_exchange_n(&ptr->value, newval, __ATOMIC_SEQ_CST);
|
|
193
|
+
}
|
|
194
|
+
#endif
|
|
195
|
+
|
|
179
196
|
/* if we have 32-bit __sync_val_compare_and_swap, assume we have these too: */
|
|
180
197
|
|
|
181
198
|
#if !defined(PG_HAVE_ATOMIC_FETCH_ADD_U32) && defined(HAVE_GCC__SYNC_INT32_CAS)
|
|
@@ -223,6 +240,7 @@ static inline bool
|
|
|
223
240
|
pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
|
|
224
241
|
uint64 *expected, uint64 newval)
|
|
225
242
|
{
|
|
243
|
+
AssertPointerAlignment(expected, 8);
|
|
226
244
|
return __atomic_compare_exchange_n(&ptr->value, expected, newval, false,
|
|
227
245
|
__ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
|
|
228
246
|
}
|
|
@@ -236,6 +254,8 @@ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
|
|
|
236
254
|
{
|
|
237
255
|
bool ret;
|
|
238
256
|
uint64 current;
|
|
257
|
+
|
|
258
|
+
AssertPointerAlignment(expected, 8);
|
|
239
259
|
current = __sync_val_compare_and_swap(&ptr->value, *expected, newval);
|
|
240
260
|
ret = current == *expected;
|
|
241
261
|
*expected = current;
|
|
@@ -243,6 +263,23 @@ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
|
|
|
243
263
|
}
|
|
244
264
|
#endif
|
|
245
265
|
|
|
266
|
+
/*
|
|
267
|
+
* __sync_lock_test_and_set() only supports setting the value to 1 on some
|
|
268
|
+
* platforms, so we only provide an __atomic implementation for
|
|
269
|
+
* pg_atomic_exchange.
|
|
270
|
+
*
|
|
271
|
+
* We assume the availability of 64-bit __atomic_compare_exchange_n() implies
|
|
272
|
+
* the availability of 64-bit __atomic_exchange_n().
|
|
273
|
+
*/
|
|
274
|
+
#if !defined(PG_HAVE_ATOMIC_EXCHANGE_U64) && defined(HAVE_GCC__ATOMIC_INT64_CAS)
|
|
275
|
+
#define PG_HAVE_ATOMIC_EXCHANGE_U64
|
|
276
|
+
static inline uint64
|
|
277
|
+
pg_atomic_exchange_u64_impl(volatile pg_atomic_uint64 *ptr, uint64 newval)
|
|
278
|
+
{
|
|
279
|
+
return __atomic_exchange_n(&ptr->value, newval, __ATOMIC_SEQ_CST);
|
|
280
|
+
}
|
|
281
|
+
#endif
|
|
282
|
+
|
|
246
283
|
/* if we have 64-bit __sync_val_compare_and_swap, assume we have these too: */
|
|
247
284
|
|
|
248
285
|
#if !defined(PG_HAVE_ATOMIC_FETCH_ADD_U64) && defined(HAVE_GCC__SYNC_INT64_CAS)
|