pg_query 4.2.1 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +31 -0
- data/README.md +6 -8
- data/Rakefile +5 -6
- data/ext/pg_query/extconf.rb +14 -4
- data/ext/pg_query/include/pg_query.h +27 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
- data/ext/pg_query/include/{access → postgres/access}/amapi.h +3 -1
- data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
- data/ext/pg_query/include/{access → postgres/access}/attnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/clog.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/genam.h +7 -5
- data/ext/pg_query/include/{access → postgres/access}/gin.h +16 -3
- data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/htup_details.h +6 -2
- data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -58
- data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relscan.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
- data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/stratnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/table.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/tableam.h +68 -45
- data/ext/pg_query/include/{access → postgres/access}/toast_compression.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/transam.h +1 -1
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
- data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +58 -98
- data/ext/pg_query/include/{access → postgres/access}/twophase.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/xact.h +25 -18
- data/ext/pg_query/include/{access → postgres/access}/xlog.h +15 -16
- data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +100 -62
- data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +6 -25
- data/ext/pg_query/include/{access → postgres/access}/xlogprefetcher.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +7 -6
- data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +17 -5
- data/ext/pg_query/include/{access → postgres/access}/xlogrecovery.h +4 -3
- data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
- data/ext/pg_query/include/{c.h → postgres/c.h} +144 -156
- data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +5 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/genbki.h +7 -6
- data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +4 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/indexing.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +10 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +3 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +19 -17
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -19
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +9 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +3 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +4 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +2 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +6 -6
- data/ext/pg_query/include/{commands → postgres/commands}/async.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +4 -4
- data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +15 -14
- data/ext/pg_query/include/{commands → postgres/commands}/user.h +9 -3
- data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +60 -14
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/{common → postgres/common}/file_perm.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
- data/ext/pg_query/include/postgres/common/int.h +437 -0
- data/ext/pg_query/include/{common → postgres/common}/keywords.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
- data/ext/pg_query/include/{common → postgres/common}/pg_prng.h +3 -2
- data/ext/pg_query/include/{common → postgres/common}/relpath.h +20 -13
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/{common → postgres/common}/string.h +5 -3
- data/ext/pg_query/include/{common → postgres/common}/unicode_east_asian_fw_table.h +10 -10
- data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +31 -13
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
- data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +11 -4
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
- data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/executor.h +34 -17
- data/ext/pg_query/include/{executor → postgres/executor}/functions.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/spi.h +2 -2
- data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
- data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +21 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +12 -12
- data/ext/pg_query/include/postgres/gram.h +1127 -0
- data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
- data/ext/pg_query/include/{jit → postgres/jit}/jit.h +2 -2
- data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
- data/ext/pg_query/include/{lib → postgres/lib}/dshash.h +4 -1
- data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +435 -22
- data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +9 -9
- data/ext/pg_query/include/{lib → postgres/lib}/sort_template.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
- data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +8 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +24 -17
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +36 -25
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +10 -41
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +22 -10
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +35 -18
- data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +27 -15
- data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +83 -30
- data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +5 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +14 -2
- data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +7 -4
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +96 -511
- data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +377 -139
- data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1090 -440
- data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +30 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +367 -124
- data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +670 -222
- data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
- data/ext/pg_query/include/{utils → postgres/nodes}/queryjumble.h +5 -7
- data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/value.h +12 -2
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +6 -4
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +8 -8
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +16 -7
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +3 -6
- data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/kwlist.h +12 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +4 -2
- data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +3 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +22 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +8 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parser.h +4 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
- data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +1 -1
- data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
- data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +158 -218
- data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +8 -46
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +1 -1
- data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
- data/ext/pg_query/include/{pgstat.h → postgres/pgstat.h} +173 -94
- data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +3 -3
- data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +66 -64
- data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
- data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +1 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +2 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +48 -46
- data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +28 -33
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +3 -3
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
- data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
- data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +62 -25
- data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
- data/ext/pg_query/include/postgres/port/simd.h +375 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
- data/ext/pg_query/include/{port.h → postgres/port.h} +42 -75
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +1 -4
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +1 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +6 -3
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/startup.h +3 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +3 -1
- data/ext/pg_query/include/{regex → postgres/regex}/regex.h +9 -6
- data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +6 -1
- data/ext/pg_query/include/{replication → postgres/replication}/logicalproto.h +30 -10
- data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
- data/ext/pg_query/include/{replication → postgres/replication}/origin.h +4 -4
- data/ext/pg_query/include/{replication → postgres/replication}/reorderbuffer.h +113 -45
- data/ext/pg_query/include/{replication → postgres/replication}/slot.h +25 -6
- data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +2 -8
- data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +15 -9
- data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +13 -13
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -4
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -31
- data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +183 -87
- data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +146 -93
- data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +3 -6
- data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +4 -1
- data/ext/pg_query/include/{storage → postgres/storage}/fd.h +24 -20
- data/ext/pg_query/include/{storage → postgres/storage}/fileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +94 -57
- data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/latch.h +9 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +6 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lock.h +21 -13
- data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +16 -2
- data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proc.h +22 -17
- data/ext/pg_query/include/{storage → postgres/storage}/procarray.h +3 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +3 -1
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +66 -309
- data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
- data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
- data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +12 -10
- data/ext/pg_query/include/{storage → postgres/storage}/spin.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/standby.h +9 -8
- data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/sync.h +3 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +3 -6
- data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +1 -1
- data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +2 -4
- data/ext/pg_query/include/{utils → postgres/utils}/acl.h +26 -81
- data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/array.h +19 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_progress.h +2 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_status.h +24 -3
- data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +15 -6
- data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
- data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +41 -21
- data/ext/pg_query/include/{utils → postgres/utils}/datum.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/elog.h +104 -29
- data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
- data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
- data/ext/pg_query/include/{utils → postgres/utils}/float.h +7 -6
- data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +54 -1
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +45 -3
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/guc.h +59 -86
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +49 -3
- data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/inval.h +3 -3
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +7 -51
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
- data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +20 -5
- data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +9 -2
- data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +22 -14
- data/ext/pg_query/include/{utils → postgres/utils}/pgstat_internal.h +37 -7
- data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/portal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/probes.h +6 -6
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/regproc.h +3 -3
- data/ext/pg_query/include/{utils → postgres/utils}/rel.h +60 -43
- data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +13 -8
- data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +6 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +4 -2
- data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +2 -2
- data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +4 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +41 -11
- data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +189 -35
- data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +13 -1
- data/ext/pg_query/include/{utils → postgres/utils}/wait_event.h +9 -4
- data/ext/pg_query/include/{utils → postgres/utils}/xml.h +15 -5
- data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +7 -457
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
- data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +19755 -17757
- data/ext/pg_query/pg_query_deparse.c +1 -10635
- data/ext/pg_query/pg_query_fingerprint.c +12 -8
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
- data/ext/pg_query/pg_query_normalize.c +1 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +6 -0
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +7 -5
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +3 -3
- data/ext/pg_query/postgres_deparse.c +11067 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
- data/ext/pg_query/src_backend_commands_define.c +1 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +14 -2
- data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
- data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
- data/ext/pg_query/src_backend_parser_parser.c +28 -2
- data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
- data/ext/pg_query/src_backend_parser_scansup.c +1 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +371 -249
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
- data/ext/pg_query/src_backend_utils_init_globals.c +6 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +21 -67
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
- data/ext/pg_query/src_common_encnames.c +4 -1
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +534 -510
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_stringinfo.c +4 -4
- data/ext/pg_query/src_common_wchar.c +9 -8
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +79 -5
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +6 -10
- data/ext/pg_query/src_port_strerror.c +1 -1
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +2 -3
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/parse.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +166 -3191
- data/lib/pg_query/treewalker.rb +23 -5
- data/lib/pg_query/version.rb +1 -1
- metadata +432 -380
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/ip.h +0 -31
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/kwlist_d.h +0 -1095
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/pgarch.h +0 -73
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
- data/ext/pg_query/src_common_pg_prng.c +0 -152
- data/ext/pg_query/src_common_string.c +0 -92
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
- /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
- /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +0 -0
|
@@ -138,36 +138,37 @@
|
|
|
138
138
|
K_PG_EXCEPTION_CONTEXT = 354,
|
|
139
139
|
K_PG_EXCEPTION_DETAIL = 355,
|
|
140
140
|
K_PG_EXCEPTION_HINT = 356,
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
141
|
+
K_PG_ROUTINE_OID = 357,
|
|
142
|
+
K_PRINT_STRICT_PARAMS = 358,
|
|
143
|
+
K_PRIOR = 359,
|
|
144
|
+
K_QUERY = 360,
|
|
145
|
+
K_RAISE = 361,
|
|
146
|
+
K_RELATIVE = 362,
|
|
147
|
+
K_RETURN = 363,
|
|
148
|
+
K_RETURNED_SQLSTATE = 364,
|
|
149
|
+
K_REVERSE = 365,
|
|
150
|
+
K_ROLLBACK = 366,
|
|
151
|
+
K_ROW_COUNT = 367,
|
|
152
|
+
K_ROWTYPE = 368,
|
|
153
|
+
K_SCHEMA = 369,
|
|
154
|
+
K_SCHEMA_NAME = 370,
|
|
155
|
+
K_SCROLL = 371,
|
|
156
|
+
K_SLICE = 372,
|
|
157
|
+
K_SQLSTATE = 373,
|
|
158
|
+
K_STACKED = 374,
|
|
159
|
+
K_STRICT = 375,
|
|
160
|
+
K_TABLE = 376,
|
|
161
|
+
K_TABLE_NAME = 377,
|
|
162
|
+
K_THEN = 378,
|
|
163
|
+
K_TO = 379,
|
|
164
|
+
K_TYPE = 380,
|
|
165
|
+
K_USE_COLUMN = 381,
|
|
166
|
+
K_USE_VARIABLE = 382,
|
|
167
|
+
K_USING = 383,
|
|
168
|
+
K_VARIABLE_CONFLICT = 384,
|
|
169
|
+
K_WARNING = 385,
|
|
170
|
+
K_WHEN = 386,
|
|
171
|
+
K_WHILE = 387
|
|
171
172
|
};
|
|
172
173
|
#endif
|
|
173
174
|
/* Tokens. */
|
|
@@ -270,43 +271,44 @@
|
|
|
270
271
|
#define K_PG_EXCEPTION_CONTEXT 354
|
|
271
272
|
#define K_PG_EXCEPTION_DETAIL 355
|
|
272
273
|
#define K_PG_EXCEPTION_HINT 356
|
|
273
|
-
#define
|
|
274
|
-
#define
|
|
275
|
-
#define
|
|
276
|
-
#define
|
|
277
|
-
#define
|
|
278
|
-
#define
|
|
279
|
-
#define
|
|
280
|
-
#define
|
|
281
|
-
#define
|
|
282
|
-
#define
|
|
283
|
-
#define
|
|
284
|
-
#define
|
|
285
|
-
#define
|
|
286
|
-
#define
|
|
287
|
-
#define
|
|
288
|
-
#define
|
|
289
|
-
#define
|
|
290
|
-
#define
|
|
291
|
-
#define
|
|
292
|
-
#define
|
|
293
|
-
#define
|
|
294
|
-
#define
|
|
295
|
-
#define
|
|
296
|
-
#define
|
|
297
|
-
#define
|
|
298
|
-
#define
|
|
299
|
-
#define
|
|
300
|
-
#define
|
|
301
|
-
#define
|
|
302
|
-
#define
|
|
274
|
+
#define K_PG_ROUTINE_OID 357
|
|
275
|
+
#define K_PRINT_STRICT_PARAMS 358
|
|
276
|
+
#define K_PRIOR 359
|
|
277
|
+
#define K_QUERY 360
|
|
278
|
+
#define K_RAISE 361
|
|
279
|
+
#define K_RELATIVE 362
|
|
280
|
+
#define K_RETURN 363
|
|
281
|
+
#define K_RETURNED_SQLSTATE 364
|
|
282
|
+
#define K_REVERSE 365
|
|
283
|
+
#define K_ROLLBACK 366
|
|
284
|
+
#define K_ROW_COUNT 367
|
|
285
|
+
#define K_ROWTYPE 368
|
|
286
|
+
#define K_SCHEMA 369
|
|
287
|
+
#define K_SCHEMA_NAME 370
|
|
288
|
+
#define K_SCROLL 371
|
|
289
|
+
#define K_SLICE 372
|
|
290
|
+
#define K_SQLSTATE 373
|
|
291
|
+
#define K_STACKED 374
|
|
292
|
+
#define K_STRICT 375
|
|
293
|
+
#define K_TABLE 376
|
|
294
|
+
#define K_TABLE_NAME 377
|
|
295
|
+
#define K_THEN 378
|
|
296
|
+
#define K_TO 379
|
|
297
|
+
#define K_TYPE 380
|
|
298
|
+
#define K_USE_COLUMN 381
|
|
299
|
+
#define K_USE_VARIABLE 382
|
|
300
|
+
#define K_USING 383
|
|
301
|
+
#define K_VARIABLE_CONFLICT 384
|
|
302
|
+
#define K_WARNING 385
|
|
303
|
+
#define K_WHEN 386
|
|
304
|
+
#define K_WHILE 387
|
|
303
305
|
|
|
304
306
|
|
|
305
307
|
|
|
306
308
|
|
|
307
309
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
|
308
310
|
typedef union YYSTYPE
|
|
309
|
-
#line
|
|
311
|
+
#line 117 "pl_gram.y"
|
|
310
312
|
{
|
|
311
313
|
core_YYSTYPE core_yystype;
|
|
312
314
|
/* these fields must match core_YYSTYPE: */
|
|
@@ -358,14 +360,14 @@ typedef union YYSTYPE
|
|
|
358
360
|
PLpgSQL_case_when *casewhen;
|
|
359
361
|
}
|
|
360
362
|
/* Line 1529 of yacc.c. */
|
|
361
|
-
#line
|
|
363
|
+
#line 364 "pl_gram.h"
|
|
362
364
|
YYSTYPE;
|
|
363
365
|
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
|
364
366
|
# define YYSTYPE_IS_DECLARED 1
|
|
365
367
|
# define YYSTYPE_IS_TRIVIAL 1
|
|
366
368
|
#endif
|
|
367
369
|
|
|
368
|
-
extern __thread
|
|
370
|
+
extern __thread YYSTYPE plpgsql_yylval;
|
|
369
371
|
|
|
370
372
|
#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
|
|
371
373
|
typedef struct YYLTYPE
|
|
@@ -380,4 +382,4 @@ typedef struct YYLTYPE
|
|
|
380
382
|
# define YYLTYPE_IS_TRIVIAL 1
|
|
381
383
|
#endif
|
|
382
384
|
|
|
383
|
-
extern __thread
|
|
385
|
+
extern __thread YYLTYPE plpgsql_yylloc;
|
|
@@ -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-2023, 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-2023, 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-2023, 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
|
|
@@ -85,6 +85,7 @@ PG_KEYWORD("pg_datatype_name", K_PG_DATATYPE_NAME)
|
|
|
85
85
|
PG_KEYWORD("pg_exception_context", K_PG_EXCEPTION_CONTEXT)
|
|
86
86
|
PG_KEYWORD("pg_exception_detail", K_PG_EXCEPTION_DETAIL)
|
|
87
87
|
PG_KEYWORD("pg_exception_hint", K_PG_EXCEPTION_HINT)
|
|
88
|
+
PG_KEYWORD("pg_routine_oid", K_PG_ROUTINE_OID)
|
|
88
89
|
PG_KEYWORD("print_strict_params", K_PRINT_STRICT_PARAMS)
|
|
89
90
|
PG_KEYWORD("prior", K_PRIOR)
|
|
90
91
|
PG_KEYWORD("query", K_QUERY)
|
|
@@ -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-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* NOTES
|
|
@@ -80,6 +80,7 @@ static const char UnreservedPLKeywords_kw_string[] =
|
|
|
80
80
|
"pg_exception_context\0"
|
|
81
81
|
"pg_exception_detail\0"
|
|
82
82
|
"pg_exception_hint\0"
|
|
83
|
+
"pg_routine_oid\0"
|
|
83
84
|
"print_strict_params\0"
|
|
84
85
|
"prior\0"
|
|
85
86
|
"query\0"
|
|
@@ -165,63 +166,64 @@ static const uint16 UnreservedPLKeywords_kw_offsets[] = {
|
|
|
165
166
|
420,
|
|
166
167
|
440,
|
|
167
168
|
458,
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
496,
|
|
169
|
+
473,
|
|
170
|
+
493,
|
|
171
|
+
499,
|
|
172
172
|
505,
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
173
|
+
511,
|
|
174
|
+
520,
|
|
175
|
+
527,
|
|
176
|
+
545,
|
|
177
|
+
553,
|
|
178
|
+
562,
|
|
179
179
|
572,
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
180
|
+
580,
|
|
181
|
+
587,
|
|
182
|
+
599,
|
|
183
183
|
606,
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
184
|
+
612,
|
|
185
|
+
621,
|
|
186
|
+
629,
|
|
187
|
+
635,
|
|
188
|
+
646,
|
|
189
|
+
651,
|
|
190
|
+
662,
|
|
191
|
+
675,
|
|
192
|
+
693,
|
|
191
193
|
};
|
|
192
194
|
|
|
193
|
-
#define UNRESERVEDPLKEYWORDS_NUM_KEYWORDS
|
|
195
|
+
#define UNRESERVEDPLKEYWORDS_NUM_KEYWORDS 83
|
|
194
196
|
|
|
195
197
|
static int
|
|
196
198
|
UnreservedPLKeywords_hash_func(const void *key, size_t keylen)
|
|
197
199
|
{
|
|
198
|
-
static const int16 h[
|
|
199
|
-
|
|
200
|
-
0,
|
|
201
|
-
|
|
202
|
-
32767,
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
32767,
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
32767,
|
|
214
|
-
32767, 32767,
|
|
215
|
-
32767,
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
200
|
+
static const int16 h[167] = {
|
|
201
|
+
0, -26, 32767, 0, 74, -36, 32767, 32767,
|
|
202
|
+
93, 0, 35, 14, 34, -65, -42, 78,
|
|
203
|
+
-22, 8, 10, 0, 5, 32767, 10, 26,
|
|
204
|
+
32767, 4, 32767, 32767, -81, -9, -25, 32767,
|
|
205
|
+
-17, 11, 0, -43, 11, 8, 45, 0,
|
|
206
|
+
32767, 32767, 32767, 12, 0, 32767, 32, 32767,
|
|
207
|
+
0, 32767, -18, 64, 32767, -2, 31, 32767,
|
|
208
|
+
50, 80, -75, 32767, 32767, 32767, 0, 32767,
|
|
209
|
+
32767, 0, 54, 82, 32767, 32767, 69, 60,
|
|
210
|
+
43, 32767, 0, 95, 21, 1, 27, 0,
|
|
211
|
+
120, 32767, -46, 32767, -57, 32767, 32767, 55,
|
|
212
|
+
70, 32767, 28, 32767, 0, -14, -38, 32767,
|
|
213
|
+
57, 0, 32767, 19, 98, 0, 32767, 68,
|
|
214
|
+
32767, 32767, 32767, 32767, -26, 13, 27, 35,
|
|
215
|
+
37, 32767, 49, -44, 65, -35, 0, 32767,
|
|
216
|
+
32767, 32767, 30, 0, 0, 32767, 26, 42,
|
|
217
|
+
7, 32767, 72, -43, 32767, 0, 32767, 89,
|
|
218
|
+
36, 48, 32767, 32, 38, 3, 32767, 49,
|
|
219
|
+
32767, 0, 51, 0, 32767, 73, 32767, 32767,
|
|
220
|
+
79, 32767, 30, 32767, 0, 0, 50, 32767,
|
|
221
|
+
0, 32767, 32767, 32767, 0, 32767, 32767
|
|
220
222
|
};
|
|
221
223
|
|
|
222
224
|
const unsigned char *k = (const unsigned char *) key;
|
|
223
225
|
uint32 a = 0;
|
|
224
|
-
uint32 b =
|
|
226
|
+
uint32 b = 1;
|
|
225
227
|
|
|
226
228
|
while (keylen--)
|
|
227
229
|
{
|
|
@@ -230,7 +232,7 @@ UnreservedPLKeywords_hash_func(const void *key, size_t keylen)
|
|
|
230
232
|
a = a * 257 + c;
|
|
231
233
|
b = b * 8191 + c;
|
|
232
234
|
}
|
|
233
|
-
return h[a %
|
|
235
|
+
return h[a % 167] + h[b % 167];
|
|
234
236
|
}
|
|
235
237
|
|
|
236
238
|
static const ScanKeywordList UnreservedPLKeywords = {
|
|
@@ -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-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
*
|
|
@@ -147,6 +147,7 @@ enum
|
|
|
147
147
|
typedef enum PLpgSQL_getdiag_kind
|
|
148
148
|
{
|
|
149
149
|
PLPGSQL_GETDIAG_ROW_COUNT,
|
|
150
|
+
PLPGSQL_GETDIAG_ROUTINE_OID,
|
|
150
151
|
PLPGSQL_GETDIAG_CONTEXT,
|
|
151
152
|
PLPGSQL_GETDIAG_ERROR_CONTEXT,
|
|
152
153
|
PLPGSQL_GETDIAG_ERROR_DETAIL,
|
|
@@ -1075,7 +1076,6 @@ typedef struct PLpgSQL_execstate
|
|
|
1075
1076
|
|
|
1076
1077
|
/* lookup table to use for executing type casts */
|
|
1077
1078
|
HTAB *cast_hash;
|
|
1078
|
-
MemoryContext cast_hash_context;
|
|
1079
1079
|
|
|
1080
1080
|
/* memory context for statement-lifespan temporary values */
|
|
1081
1081
|
MemoryContext stmt_mcontext; /* current stmt context, or NULL if none */
|
|
@@ -1191,11 +1191,11 @@ typedef enum
|
|
|
1191
1191
|
IDENTIFIER_LOOKUP_EXPR /* In SQL expression --- special case */
|
|
1192
1192
|
} IdentifierLookup;
|
|
1193
1193
|
|
|
1194
|
-
extern __thread
|
|
1194
|
+
extern __thread IdentifierLookup plpgsql_IdentifierLookup;
|
|
1195
1195
|
|
|
1196
|
-
extern __thread
|
|
1196
|
+
extern __thread int plpgsql_variable_conflict;
|
|
1197
1197
|
|
|
1198
|
-
extern __thread
|
|
1198
|
+
extern __thread bool plpgsql_print_strict_params;
|
|
1199
1199
|
|
|
1200
1200
|
extern bool plpgsql_check_asserts;
|
|
1201
1201
|
|
|
@@ -1209,18 +1209,18 @@ extern bool plpgsql_check_asserts;
|
|
|
1209
1209
|
extern int plpgsql_extra_warnings;
|
|
1210
1210
|
extern int plpgsql_extra_errors;
|
|
1211
1211
|
|
|
1212
|
-
extern __thread
|
|
1213
|
-
extern __thread
|
|
1212
|
+
extern __thread bool plpgsql_check_syntax;
|
|
1213
|
+
extern __thread bool plpgsql_DumpExecTree;
|
|
1214
1214
|
|
|
1215
|
-
extern __thread
|
|
1215
|
+
extern __thread PLpgSQL_stmt_block *plpgsql_parse_result;
|
|
1216
1216
|
|
|
1217
|
-
extern __thread
|
|
1218
|
-
extern __thread
|
|
1217
|
+
extern __thread int plpgsql_nDatums;
|
|
1218
|
+
extern __thread PLpgSQL_datum **plpgsql_Datums;
|
|
1219
1219
|
|
|
1220
|
-
extern __thread
|
|
1220
|
+
extern __thread char *plpgsql_error_funcname;
|
|
1221
1221
|
|
|
1222
|
-
extern __thread
|
|
1223
|
-
extern __thread
|
|
1222
|
+
extern __thread PLpgSQL_function *plpgsql_curr_compile;
|
|
1223
|
+
extern __thread MemoryContext plpgsql_compile_tmp_cxt;
|
|
1224
1224
|
|
|
1225
1225
|
extern PLpgSQL_plugin **plpgsql_plugin_ptr;
|
|
1226
1226
|
|
|
@@ -1231,11 +1231,11 @@ extern PLpgSQL_plugin **plpgsql_plugin_ptr;
|
|
|
1231
1231
|
/*
|
|
1232
1232
|
* Functions in pl_comp.c
|
|
1233
1233
|
*/
|
|
1234
|
-
extern PLpgSQL_function *plpgsql_compile(FunctionCallInfo fcinfo,
|
|
1235
|
-
|
|
1234
|
+
extern PGDLLEXPORT PLpgSQL_function *plpgsql_compile(FunctionCallInfo fcinfo,
|
|
1235
|
+
bool forValidator);
|
|
1236
1236
|
extern PLpgSQL_function *plpgsql_compile_inline(char *proc_source);
|
|
1237
|
-
extern void plpgsql_parser_setup(struct ParseState *pstate,
|
|
1238
|
-
|
|
1237
|
+
extern PGDLLEXPORT void plpgsql_parser_setup(struct ParseState *pstate,
|
|
1238
|
+
PLpgSQL_expr *expr);
|
|
1239
1239
|
extern bool plpgsql_parse_word(char *word1, const char *yytxt, bool lookup,
|
|
1240
1240
|
PLwdatum *wdatum, PLword *word);
|
|
1241
1241
|
extern bool plpgsql_parse_dblword(char *word1, char *word2,
|
|
@@ -1246,9 +1246,9 @@ extern PLpgSQL_type *plpgsql_parse_wordtype(char *ident);
|
|
|
1246
1246
|
extern PLpgSQL_type *plpgsql_parse_cwordtype(List *idents);
|
|
1247
1247
|
extern PLpgSQL_type *plpgsql_parse_wordrowtype(char *ident);
|
|
1248
1248
|
extern PLpgSQL_type *plpgsql_parse_cwordrowtype(List *idents);
|
|
1249
|
-
extern PLpgSQL_type *plpgsql_build_datatype(Oid typeOid, int32 typmod,
|
|
1250
|
-
|
|
1251
|
-
|
|
1249
|
+
extern PGDLLEXPORT PLpgSQL_type *plpgsql_build_datatype(Oid typeOid, int32 typmod,
|
|
1250
|
+
Oid collation,
|
|
1251
|
+
TypeName *origtypname);
|
|
1252
1252
|
extern PLpgSQL_variable *plpgsql_build_variable(const char *refname, int lineno,
|
|
1253
1253
|
PLpgSQL_type *dtype,
|
|
1254
1254
|
bool add2namespace);
|
|
@@ -1257,8 +1257,8 @@ extern PLpgSQL_rec *plpgsql_build_record(const char *refname, int lineno,
|
|
|
1257
1257
|
bool add2namespace);
|
|
1258
1258
|
extern PLpgSQL_recfield *plpgsql_build_recfield(PLpgSQL_rec *rec,
|
|
1259
1259
|
const char *fldname);
|
|
1260
|
-
extern int
|
|
1261
|
-
|
|
1260
|
+
extern PGDLLEXPORT int plpgsql_recognize_err_condition(const char *condname,
|
|
1261
|
+
bool allow_sqlstate);
|
|
1262
1262
|
extern PLpgSQL_condition *plpgsql_parse_err_condition(char *condname);
|
|
1263
1263
|
extern void plpgsql_start_datums(void);
|
|
1264
1264
|
extern void plpgsql_finish_datums(PLpgSQL_function *function);
|
|
@@ -1266,11 +1266,6 @@ extern void plpgsql_adddatum(PLpgSQL_datum *newdatum);
|
|
|
1266
1266
|
extern int plpgsql_add_initdatums(int **varnos);
|
|
1267
1267
|
extern void plpgsql_HashTableInit(void);
|
|
1268
1268
|
|
|
1269
|
-
/*
|
|
1270
|
-
* Functions in pl_handler.c
|
|
1271
|
-
*/
|
|
1272
|
-
extern void _PG_init(void);
|
|
1273
|
-
|
|
1274
1269
|
/*
|
|
1275
1270
|
* Functions in pl_exec.c
|
|
1276
1271
|
*/
|
|
@@ -1287,8 +1282,8 @@ extern void plpgsql_exec_event_trigger(PLpgSQL_function *func,
|
|
|
1287
1282
|
extern void plpgsql_xact_cb(XactEvent event, void *arg);
|
|
1288
1283
|
extern void plpgsql_subxact_cb(SubXactEvent event, SubTransactionId mySubid,
|
|
1289
1284
|
SubTransactionId parentSubid, void *arg);
|
|
1290
|
-
extern Oid
|
|
1291
|
-
|
|
1285
|
+
extern PGDLLEXPORT Oid plpgsql_exec_get_datum_type(PLpgSQL_execstate *estate,
|
|
1286
|
+
PLpgSQL_datum *datum);
|
|
1292
1287
|
extern void plpgsql_exec_get_datum_type_info(PLpgSQL_execstate *estate,
|
|
1293
1288
|
PLpgSQL_datum *datum,
|
|
1294
1289
|
Oid *typeId, int32 *typMod,
|
|
@@ -1303,9 +1298,9 @@ extern void plpgsql_ns_push(const char *label,
|
|
|
1303
1298
|
extern void plpgsql_ns_pop(void);
|
|
1304
1299
|
extern PLpgSQL_nsitem *plpgsql_ns_top(void);
|
|
1305
1300
|
extern void plpgsql_ns_additem(PLpgSQL_nsitem_type itemtype, int itemno, const char *name);
|
|
1306
|
-
extern PLpgSQL_nsitem *plpgsql_ns_lookup(PLpgSQL_nsitem *ns_cur, bool localmode,
|
|
1307
|
-
|
|
1308
|
-
|
|
1301
|
+
extern PGDLLEXPORT PLpgSQL_nsitem *plpgsql_ns_lookup(PLpgSQL_nsitem *ns_cur, bool localmode,
|
|
1302
|
+
const char *name1, const char *name2,
|
|
1303
|
+
const char *name3, int *names_used);
|
|
1309
1304
|
extern PLpgSQL_nsitem *plpgsql_ns_lookup_label(PLpgSQL_nsitem *ns_cur,
|
|
1310
1305
|
const char *name);
|
|
1311
1306
|
extern PLpgSQL_nsitem *plpgsql_ns_find_nearest_loop(PLpgSQL_nsitem *ns_cur);
|
|
@@ -1313,7 +1308,7 @@ extern PLpgSQL_nsitem *plpgsql_ns_find_nearest_loop(PLpgSQL_nsitem *ns_cur);
|
|
|
1313
1308
|
/*
|
|
1314
1309
|
* Other functions in pl_funcs.c
|
|
1315
1310
|
*/
|
|
1316
|
-
extern const char *plpgsql_stmt_typename(PLpgSQL_stmt *stmt);
|
|
1311
|
+
extern PGDLLEXPORT const char *plpgsql_stmt_typename(PLpgSQL_stmt *stmt);
|
|
1317
1312
|
extern const char *plpgsql_getdiag_kindname(PLpgSQL_getdiag_kind kind);
|
|
1318
1313
|
extern void plpgsql_free_function_memory(PLpgSQL_function *func);
|
|
1319
1314
|
extern void plpgsql_dumptree(PLpgSQL_function *func);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* arch-arm.h
|
|
4
4
|
* Atomic operations considerations specific to ARM
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 2013-
|
|
6
|
+
* Portions Copyright (c) 2013-2023, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* NOTES:
|
|
9
9
|
*
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* 64 bit atomics on ARM32 are implemented using kernel fallbacks and thus
|
|
22
22
|
* might be slow, so disable entirely. On ARM64 that problem doesn't exist.
|
|
23
23
|
*/
|
|
24
|
-
#if !defined(__aarch64__)
|
|
24
|
+
#if !defined(__aarch64__)
|
|
25
25
|
#define PG_DISABLE_64_BIT_ATOMICS
|
|
26
26
|
#else
|
|
27
27
|
/*
|
|
@@ -29,4 +29,4 @@
|
|
|
29
29
|
* general purpose register is atomic.
|
|
30
30
|
*/
|
|
31
31
|
#define PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY
|
|
32
|
-
#endif /* __aarch64__
|
|
32
|
+
#endif /* __aarch64__ */
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* arch-hppa.h
|
|
4
|
+
* Atomic operations considerations specific to HPPA
|
|
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
|
+
* src/include/port/atomics/arch-hppa.h
|
|
12
|
+
*
|
|
13
|
+
*-------------------------------------------------------------------------
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/* HPPA doesn't do either read or write reordering */
|
|
17
|
+
#define pg_memory_barrier_impl() pg_compiler_barrier_impl()
|
|
@@ -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-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* NOTES:
|
|
@@ -90,12 +90,12 @@ pg_atomic_compare_exchange_u32_impl(volatile pg_atomic_uint32 *ptr,
|
|
|
90
90
|
(int32) *expected >= PG_INT16_MIN)
|
|
91
91
|
__asm__ __volatile__(
|
|
92
92
|
" sync \n"
|
|
93
|
-
" lwarx %0,0,%5
|
|
93
|
+
" lwarx %0,0,%5,1 \n"
|
|
94
94
|
" cmpwi %0,%3 \n"
|
|
95
|
-
" bne $+12 \n" /* branch to
|
|
95
|
+
" bne $+12 \n" /* branch to lwsync */
|
|
96
96
|
" stwcx. %4,0,%5 \n"
|
|
97
97
|
" bne $-16 \n" /* branch to lwarx */
|
|
98
|
-
"
|
|
98
|
+
" lwsync \n"
|
|
99
99
|
" mfcr %1 \n"
|
|
100
100
|
: "=&r"(found), "=r"(condition_register), "+m"(ptr->value)
|
|
101
101
|
: "i"(*expected), "r"(newval), "r"(&ptr->value)
|
|
@@ -104,12 +104,12 @@ pg_atomic_compare_exchange_u32_impl(volatile pg_atomic_uint32 *ptr,
|
|
|
104
104
|
#endif
|
|
105
105
|
__asm__ __volatile__(
|
|
106
106
|
" sync \n"
|
|
107
|
-
" lwarx %0,0,%5
|
|
107
|
+
" lwarx %0,0,%5,1 \n"
|
|
108
108
|
" cmpw %0,%3 \n"
|
|
109
|
-
" bne $+12 \n" /* branch to
|
|
109
|
+
" bne $+12 \n" /* branch to lwsync */
|
|
110
110
|
" stwcx. %4,0,%5 \n"
|
|
111
111
|
" bne $-16 \n" /* branch to lwarx */
|
|
112
|
-
"
|
|
112
|
+
" lwsync \n"
|
|
113
113
|
" mfcr %1 \n"
|
|
114
114
|
: "=&r"(found), "=r"(condition_register), "+m"(ptr->value)
|
|
115
115
|
: "r"(*expected), "r"(newval), "r"(&ptr->value)
|
|
@@ -138,11 +138,11 @@ pg_atomic_fetch_add_u32_impl(volatile pg_atomic_uint32 *ptr, int32 add_)
|
|
|
138
138
|
add_ <= PG_INT16_MAX && add_ >= PG_INT16_MIN)
|
|
139
139
|
__asm__ __volatile__(
|
|
140
140
|
" sync \n"
|
|
141
|
-
" lwarx %1,0,%4
|
|
141
|
+
" lwarx %1,0,%4,1 \n"
|
|
142
142
|
" addi %0,%1,%3 \n"
|
|
143
143
|
" stwcx. %0,0,%4 \n"
|
|
144
144
|
" bne $-12 \n" /* branch to lwarx */
|
|
145
|
-
"
|
|
145
|
+
" lwsync \n"
|
|
146
146
|
: "=&r"(_t), "=&b"(res), "+m"(ptr->value)
|
|
147
147
|
: "i"(add_), "r"(&ptr->value)
|
|
148
148
|
: "memory", "cc");
|
|
@@ -150,11 +150,11 @@ pg_atomic_fetch_add_u32_impl(volatile pg_atomic_uint32 *ptr, int32 add_)
|
|
|
150
150
|
#endif
|
|
151
151
|
__asm__ __volatile__(
|
|
152
152
|
" sync \n"
|
|
153
|
-
" lwarx %1,0,%4
|
|
153
|
+
" lwarx %1,0,%4,1 \n"
|
|
154
154
|
" add %0,%1,%3 \n"
|
|
155
155
|
" stwcx. %0,0,%4 \n"
|
|
156
156
|
" bne $-12 \n" /* branch to lwarx */
|
|
157
|
-
"
|
|
157
|
+
" lwsync \n"
|
|
158
158
|
: "=&r"(_t), "=&r"(res), "+m"(ptr->value)
|
|
159
159
|
: "r"(add_), "r"(&ptr->value)
|
|
160
160
|
: "memory", "cc");
|
|
@@ -180,12 +180,12 @@ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
|
|
|
180
180
|
(int64) *expected >= PG_INT16_MIN)
|
|
181
181
|
__asm__ __volatile__(
|
|
182
182
|
" sync \n"
|
|
183
|
-
" ldarx %0,0,%5
|
|
183
|
+
" ldarx %0,0,%5,1 \n"
|
|
184
184
|
" cmpdi %0,%3 \n"
|
|
185
|
-
" bne $+12 \n" /* branch to
|
|
185
|
+
" bne $+12 \n" /* branch to lwsync */
|
|
186
186
|
" stdcx. %4,0,%5 \n"
|
|
187
187
|
" bne $-16 \n" /* branch to ldarx */
|
|
188
|
-
"
|
|
188
|
+
" lwsync \n"
|
|
189
189
|
" mfcr %1 \n"
|
|
190
190
|
: "=&r"(found), "=r"(condition_register), "+m"(ptr->value)
|
|
191
191
|
: "i"(*expected), "r"(newval), "r"(&ptr->value)
|
|
@@ -194,12 +194,12 @@ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
|
|
|
194
194
|
#endif
|
|
195
195
|
__asm__ __volatile__(
|
|
196
196
|
" sync \n"
|
|
197
|
-
" ldarx %0,0,%5
|
|
197
|
+
" ldarx %0,0,%5,1 \n"
|
|
198
198
|
" cmpd %0,%3 \n"
|
|
199
|
-
" bne $+12 \n" /* branch to
|
|
199
|
+
" bne $+12 \n" /* branch to lwsync */
|
|
200
200
|
" stdcx. %4,0,%5 \n"
|
|
201
201
|
" bne $-16 \n" /* branch to ldarx */
|
|
202
|
-
"
|
|
202
|
+
" lwsync \n"
|
|
203
203
|
" mfcr %1 \n"
|
|
204
204
|
: "=&r"(found), "=r"(condition_register), "+m"(ptr->value)
|
|
205
205
|
: "r"(*expected), "r"(newval), "r"(&ptr->value)
|
|
@@ -224,11 +224,11 @@ pg_atomic_fetch_add_u64_impl(volatile pg_atomic_uint64 *ptr, int64 add_)
|
|
|
224
224
|
add_ <= PG_INT16_MAX && add_ >= PG_INT16_MIN)
|
|
225
225
|
__asm__ __volatile__(
|
|
226
226
|
" sync \n"
|
|
227
|
-
" ldarx %1,0,%4
|
|
227
|
+
" ldarx %1,0,%4,1 \n"
|
|
228
228
|
" addi %0,%1,%3 \n"
|
|
229
229
|
" stdcx. %0,0,%4 \n"
|
|
230
230
|
" bne $-12 \n" /* branch to ldarx */
|
|
231
|
-
"
|
|
231
|
+
" lwsync \n"
|
|
232
232
|
: "=&r"(_t), "=&b"(res), "+m"(ptr->value)
|
|
233
233
|
: "i"(add_), "r"(&ptr->value)
|
|
234
234
|
: "memory", "cc");
|
|
@@ -236,11 +236,11 @@ pg_atomic_fetch_add_u64_impl(volatile pg_atomic_uint64 *ptr, int64 add_)
|
|
|
236
236
|
#endif
|
|
237
237
|
__asm__ __volatile__(
|
|
238
238
|
" sync \n"
|
|
239
|
-
" ldarx %1,0,%4
|
|
239
|
+
" ldarx %1,0,%4,1 \n"
|
|
240
240
|
" add %0,%1,%3 \n"
|
|
241
241
|
" stdcx. %0,0,%4 \n"
|
|
242
242
|
" bne $-12 \n" /* branch to ldarx */
|
|
243
|
-
"
|
|
243
|
+
" lwsync \n"
|
|
244
244
|
: "=&r"(_t), "=&r"(res), "+m"(ptr->value)
|
|
245
245
|
: "r"(add_), "r"(&ptr->value)
|
|
246
246
|
: "memory", "cc");
|