pg_query 2.0.3 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +165 -0
- data/README.md +67 -29
- data/Rakefile +8 -23
- data/ext/pg_query/extconf.rb +21 -3
- data/ext/pg_query/include/pg_query.h +29 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +551 -272
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +563 -470
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5403 -3945
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +402 -330
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1319 -1059
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +141 -118
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1685 -1379
- data/ext/pg_query/include/{access → postgres/access}/amapi.h +47 -1
- data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
- data/ext/pg_query/include/{access → postgres/access}/attnum.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/clog.h +4 -2
- data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +6 -9
- data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -11
- data/ext/pg_query/include/{access → postgres/access}/genam.h +21 -16
- data/ext/pg_query/include/{access → postgres/access}/gin.h +17 -4
- data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/htup_details.h +80 -88
- data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -52
- data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relscan.h +17 -2
- data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
- data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +24 -24
- data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
- data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/stratnum.h +4 -2
- data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/table.h +2 -1
- data/ext/pg_query/include/{access → postgres/access}/tableam.h +337 -62
- data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
- data/ext/pg_query/include/{access → postgres/access}/transam.h +123 -13
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
- data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +60 -100
- data/ext/pg_query/include/{access → postgres/access}/twophase.h +5 -1
- data/ext/pg_query/include/{access → postgres/access}/xact.h +99 -32
- data/ext/pg_query/include/{access → postgres/access}/xlog.h +69 -165
- data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +147 -73
- data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +13 -40
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +154 -37
- data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +34 -13
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
- data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
- data/ext/pg_query/include/{c.h → postgres/c.h} +245 -188
- data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +14 -19
- data/ext/pg_query/include/postgres/catalog/genbki.h +143 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +20 -5
- data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +5 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +73 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +12 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +14 -10
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +4 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +45 -26
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -16
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +19 -9
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +45 -15
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +31 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +35 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +21 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +39 -13
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +10 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +13 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +4 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +11 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +9 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +17 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +20 -17
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +10 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +21 -16
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +37 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +8 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +20 -9
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +20 -11
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +10 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +49 -6
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +6 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +5 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +19 -12
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +19 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +24 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +4 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +8 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +56 -24
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +70 -31
- data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +9 -7
- data/ext/pg_query/include/{commands → postgres/commands}/async.h +4 -5
- data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +12 -24
- data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +2 -2
- data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +6 -4
- data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +36 -25
- data/ext/pg_query/include/{commands → postgres/commands}/user.h +10 -4
- data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +140 -47
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/{common → postgres/common}/file_perm.h +4 -4
- data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
- data/ext/pg_query/include/postgres/common/int.h +437 -0
- data/ext/pg_query/include/{common → postgres/common}/keywords.h +2 -6
- data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
- data/ext/pg_query/include/postgres/common/pg_prng.h +61 -0
- data/ext/pg_query/include/{common → postgres/common}/relpath.h +21 -14
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/postgres/common/string.h +44 -0
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +125 -0
- data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +138 -8
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
- data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +50 -4
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
- data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/executor.h +98 -32
- data/ext/pg_query/include/{executor → postgres/executor}/functions.h +17 -3
- data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +33 -16
- data/ext/pg_query/include/{executor → postgres/executor}/spi.h +42 -4
- data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
- data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +33 -8
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +22 -10
- data/ext/pg_query/include/postgres/gram.h +1127 -0
- data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
- data/ext/pg_query/include/{jit → postgres/jit}/jit.h +12 -12
- data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
- data/ext/pg_query/include/postgres/lib/dshash.h +115 -0
- data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +454 -22
- data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +158 -33
- data/ext/pg_query/include/postgres/lib/sort_template.h +432 -0
- data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
- data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +12 -4
- data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +5 -4
- data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +54 -8
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +45 -17
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +31 -20
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +26 -71
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +25 -13
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +125 -25
- data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +96 -65
- data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +351 -103
- data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +8 -4
- data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +19 -6
- data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +11 -6
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +100 -496
- data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +678 -207
- data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1282 -454
- data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +103 -73
- data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +474 -133
- data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +754 -254
- data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
- data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
- data/ext/pg_query/include/postgres/nodes/value.h +90 -0
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +14 -5
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +9 -7
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +31 -28
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +29 -12
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +15 -17
- data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +20 -5
- data/ext/pg_query/include/postgres/parser/kwlist.h +498 -0
- data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +5 -8
- data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +6 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +2 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +2 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +41 -11
- data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -5
- data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +11 -5
- data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
- data/ext/pg_query/include/postgres/parser/parser.h +68 -0
- data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
- data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +2 -5
- data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
- data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +216 -228
- data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +80 -58
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +6 -6
- data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
- data/ext/pg_query/include/postgres/pgstat.h +778 -0
- data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +16 -6
- data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +116 -116
- data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
- data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +10 -10
- data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +3 -3
- data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +60 -60
- data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +9 -1
- data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +79 -86
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +9 -3
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
- data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +3 -3
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
- data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +129 -16
- data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
- data/ext/pg_query/include/postgres/port/simd.h +375 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
- data/ext/pg_query/include/{port.h → postgres/port.h} +107 -111
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +17 -20
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +3 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +6 -6
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/pgarch.h +7 -10
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +21 -17
- data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +16 -11
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +5 -3
- data/ext/pg_query/include/{regex → postgres/regex}/regex.h +27 -22
- data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +8 -5
- data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
- data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
- data/ext/pg_query/include/{replication → postgres/replication}/origin.h +8 -8
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +753 -0
- data/ext/pg_query/include/{replication → postgres/replication}/slot.h +42 -12
- data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +6 -12
- data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +158 -20
- data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +20 -20
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -6
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -37
- data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +196 -95
- data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +152 -101
- data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +14 -3
- data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +6 -6
- data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +6 -2
- data/ext/pg_query/include/{storage → postgres/storage}/fd.h +48 -14
- data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
- data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +5 -2
- data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +96 -57
- data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/latch.h +17 -13
- data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +7 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lock.h +37 -25
- data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +4 -4
- data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +21 -33
- data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -1
- data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +9 -7
- data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +15 -4
- data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +5 -5
- data/ext/pg_query/include/{storage → postgres/storage}/proc.h +200 -67
- data/ext/pg_query/include/postgres/storage/procarray.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +5 -7
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +118 -298
- data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +3 -11
- data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +5 -4
- data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
- data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +5 -5
- data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
- data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +21 -17
- data/ext/pg_query/include/{storage → postgres/storage}/spin.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/standby.h +17 -9
- data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/sync.h +9 -5
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +3 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +7 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +19 -14
- data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +7 -3
- data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +3 -5
- data/ext/pg_query/include/{utils → postgres/utils}/acl.h +37 -71
- data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/array.h +26 -2
- data/ext/pg_query/include/postgres/utils/backend_progress.h +45 -0
- data/ext/pg_query/include/postgres/utils/backend_status.h +342 -0
- data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +20 -11
- data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
- data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +48 -27
- data/ext/pg_query/include/{utils → postgres/utils}/datum.h +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/elog.h +154 -48
- data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +2 -0
- data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
- data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
- data/ext/pg_query/include/{utils → postgres/utils}/float.h +13 -12
- data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +1353 -696
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +243 -18
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +6 -5
- data/ext/pg_query/include/{utils → postgres/utils}/guc.h +120 -121
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +71 -21
- data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +15 -11
- data/ext/pg_query/include/{utils → postgres/utils}/inval.h +7 -3
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +16 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +14 -53
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
- data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +38 -9
- data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +33 -4
- data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +37 -21
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +814 -0
- data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +6 -5
- data/ext/pg_query/include/{utils → postgres/utils}/portal.h +12 -1
- data/ext/pg_query/include/{utils → postgres/utils}/probes.h +59 -59
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
- data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
- data/ext/pg_query/include/{utils → postgres/utils}/rel.h +129 -61
- data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +21 -14
- data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +38 -15
- data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +14 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +117 -2
- data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +11 -4
- data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +46 -15
- data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +209 -41
- data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +2 -2
- data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +24 -17
- data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +17 -3
- data/ext/pg_query/include/postgres/utils/wait_event.h +294 -0
- data/ext/pg_query/include/{utils → postgres/utils}/xml.h +18 -8
- data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +65 -471
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7494 -6382
- data/ext/pg_query/include/protobuf/pg_query.pb.h +116922 -84792
- data/ext/pg_query/include/protobuf-c/protobuf-c.h +7 -3
- data/ext/pg_query/include/protobuf-c.h +7 -3
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +21026 -17002
- data/ext/pg_query/pg_query_deparse.c +1 -9896
- data/ext/pg_query/pg_query_fingerprint.c +162 -50
- data/ext/pg_query/pg_query_fingerprint.h +3 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +56 -12
- data/ext/pg_query/pg_query_normalize.c +259 -64
- data/ext/pg_query/pg_query_outfuncs.h +1 -0
- data/ext/pg_query/pg_query_outfuncs_json.c +71 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +86 -21
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +43 -8
- data/ext/pg_query/pg_query_ruby.c +6 -1
- data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
- data/ext/pg_query/pg_query_scan.c +3 -2
- data/ext/pg_query/pg_query_split.c +6 -5
- data/ext/pg_query/postgres_deparse.c +11067 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/protobuf-c.c +34 -27
- data/ext/pg_query/src_backend_catalog_namespace.c +27 -10
- data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
- data/ext/pg_query/src_backend_commands_define.c +11 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +13 -70
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +103 -5894
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3830
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +99 -12
- data/ext/pg_query/src_backend_nodes_makefuncs.c +99 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +325 -131
- data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +36104 -32074
- data/ext/pg_query/src_backend_parser_parser.c +53 -8
- data/ext/pg_query/src_backend_parser_scan.c +4893 -3701
- data/ext/pg_query/src_backend_parser_scansup.c +4 -28
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +133 -105
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +17 -7
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
- data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +187 -19
- data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
- data/ext/pg_query/src_backend_utils_error_elog.c +513 -318
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +44 -17
- data/ext/pg_query/src_backend_utils_init_globals.c +9 -6
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +74 -131
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +453 -314
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +549 -76
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
- data/ext/pg_query/src_common_encnames.c +4 -1
- data/ext/pg_query/src_common_hashfn.c +420 -0
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +545 -498
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_stringinfo.c +4 -4
- data/ext/pg_query/src_common_wchar.c +717 -113
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1136 -1195
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
- data/ext/pg_query/src_port_pg_bitutils.c +103 -40
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +51 -29
- data/ext/pg_query/src_port_strerror.c +9 -19
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/deparse.rb +7 -1
- data/lib/pg_query/filter_columns.rb +7 -5
- data/lib/pg_query/fingerprint.rb +21 -9
- data/lib/pg_query/node.rb +18 -13
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +141 -50
- data/lib/pg_query/pg_query_pb.rb +175 -3031
- data/lib/pg_query/treewalker.rb +26 -2
- data/lib/pg_query/truncate.rb +54 -8
- data/lib/pg_query/version.rb +1 -1
- data/lib/pg_query.rb +0 -1
- metadata +443 -380
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/rmgr.h +0 -35
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/catalog/genbki.h +0 -64
- data/ext/pg_query/include/catalog/indexing.h +0 -366
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/ip.h +0 -37
- data/ext/pg_query/include/common/string.h +0 -19
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/kwlist_d.h +0 -1072
- data/ext/pg_query/include/nodes/value.h +0 -61
- data/ext/pg_query/include/parser/gram.h +0 -1067
- data/ext/pg_query/include/parser/kwlist.h +0 -477
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/include/parser/parser.h +0 -41
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/pgstat.h +0 -1487
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/replication/logicalproto.h +0 -110
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -467
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -19
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/regproc.h +0 -28
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1831
- data/ext/pg_query/src_common_string.c +0 -86
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_random.c +0 -31
- data/ext/pg_query/src_port_strnlen.c +0 -39
- data/lib/pg_query/json_field_names.rb +0 -1402
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*--------------------------------------------------------------------
|
|
2
2
|
* Symbols referenced in this file:
|
|
3
|
-
* -
|
|
3
|
+
* - FunctionCall6Coll
|
|
4
4
|
*--------------------------------------------------------------------
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* fmgr.c
|
|
10
10
|
* The Postgres function manager.
|
|
11
11
|
*
|
|
12
|
-
* Portions Copyright (c) 1996-
|
|
12
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
13
13
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
14
14
|
*
|
|
15
15
|
*
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
#include "lib/stringinfo.h"
|
|
30
30
|
#include "miscadmin.h"
|
|
31
31
|
#include "nodes/makefuncs.h"
|
|
32
|
+
#include "nodes/miscnodes.h"
|
|
32
33
|
#include "nodes/nodeFuncs.h"
|
|
33
34
|
#include "pgstat.h"
|
|
34
35
|
#include "utils/acl.h"
|
|
@@ -124,7 +125,7 @@ extern Datum fmgr_security_definer(PG_FUNCTION_ARGS);
|
|
|
124
125
|
* If *mod == NULL and *fn != NULL, the function is implemented by a symbol in
|
|
125
126
|
* the main binary.
|
|
126
127
|
*
|
|
127
|
-
* If *mod != NULL and *fn !=NULL the function is implemented in an extension
|
|
128
|
+
* If *mod != NULL and *fn != NULL the function is implemented in an extension
|
|
128
129
|
* shared object.
|
|
129
130
|
*
|
|
130
131
|
* The returned module and function names are pstrdup'ed into the current
|
|
@@ -180,14 +181,6 @@ extern Datum fmgr_security_definer(PG_FUNCTION_ARGS);
|
|
|
180
181
|
*/
|
|
181
182
|
|
|
182
183
|
|
|
183
|
-
/*
|
|
184
|
-
* clear_external_function_hash: remove entries for a library being closed
|
|
185
|
-
*
|
|
186
|
-
* Presently we just zap the entire hash table, but later it might be worth
|
|
187
|
-
* the effort to remove only the entries associated with the given handle.
|
|
188
|
-
*/
|
|
189
|
-
|
|
190
|
-
|
|
191
184
|
|
|
192
185
|
/*
|
|
193
186
|
* Copy an FmgrInfo struct
|
|
@@ -291,14 +284,17 @@ struct fmgr_security_definer_cache
|
|
|
291
284
|
|
|
292
285
|
|
|
293
286
|
|
|
287
|
+
|
|
288
|
+
|
|
294
289
|
Datum
|
|
295
|
-
|
|
296
|
-
Datum arg3, Datum arg4, Datum arg5
|
|
290
|
+
FunctionCall6Coll(FmgrInfo *flinfo, Oid collation, Datum arg1, Datum arg2,
|
|
291
|
+
Datum arg3, Datum arg4, Datum arg5,
|
|
292
|
+
Datum arg6)
|
|
297
293
|
{
|
|
298
|
-
LOCAL_FCINFO(fcinfo,
|
|
294
|
+
LOCAL_FCINFO(fcinfo, 6);
|
|
299
295
|
Datum result;
|
|
300
296
|
|
|
301
|
-
InitFunctionCallInfoData(*fcinfo, flinfo,
|
|
297
|
+
InitFunctionCallInfoData(*fcinfo, flinfo, 6, collation, NULL, NULL);
|
|
302
298
|
|
|
303
299
|
fcinfo->args[0].value = arg1;
|
|
304
300
|
fcinfo->args[0].isnull = false;
|
|
@@ -310,6 +306,8 @@ FunctionCall5Coll(FmgrInfo *flinfo, Oid collation, Datum arg1, Datum arg2,
|
|
|
310
306
|
fcinfo->args[3].isnull = false;
|
|
311
307
|
fcinfo->args[4].value = arg5;
|
|
312
308
|
fcinfo->args[4].isnull = false;
|
|
309
|
+
fcinfo->args[5].value = arg6;
|
|
310
|
+
fcinfo->args[5].isnull = false;
|
|
313
311
|
|
|
314
312
|
result = FunctionCallInvoke(fcinfo);
|
|
315
313
|
|
|
@@ -327,8 +325,6 @@ FunctionCall5Coll(FmgrInfo *flinfo, Oid collation, Datum arg1, Datum arg2,
|
|
|
327
325
|
|
|
328
326
|
|
|
329
327
|
|
|
330
|
-
|
|
331
|
-
|
|
332
328
|
/*
|
|
333
329
|
* These are for invocation of a function identified by OID with a
|
|
334
330
|
* directly-computed parameter list. Note that neither arguments nor result
|
|
@@ -371,6 +367,37 @@ FunctionCall5Coll(FmgrInfo *flinfo, Oid collation, Datum arg1, Datum arg2,
|
|
|
371
367
|
*/
|
|
372
368
|
|
|
373
369
|
|
|
370
|
+
/*
|
|
371
|
+
* Call a previously-looked-up datatype input function, with non-exception
|
|
372
|
+
* handling of "soft" errors.
|
|
373
|
+
*
|
|
374
|
+
* This is basically like InputFunctionCall, but the converted Datum is
|
|
375
|
+
* returned into *result while the function result is true for success or
|
|
376
|
+
* false for failure. Also, the caller may pass an ErrorSaveContext node.
|
|
377
|
+
* (We declare that as "fmNodePtr" to avoid including nodes.h in fmgr.h.)
|
|
378
|
+
*
|
|
379
|
+
* If escontext points to an ErrorSaveContext, any "soft" errors detected by
|
|
380
|
+
* the input function will be reported by filling the escontext struct and
|
|
381
|
+
* returning false. (The caller can choose to test SOFT_ERROR_OCCURRED(),
|
|
382
|
+
* but checking the function result instead is usually cheaper.)
|
|
383
|
+
*
|
|
384
|
+
* If escontext does not point to an ErrorSaveContext, errors are reported
|
|
385
|
+
* via ereport(ERROR), so that there is no functional difference from
|
|
386
|
+
* InputFunctionCall; the result will always be true if control returns.
|
|
387
|
+
*/
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
/*
|
|
391
|
+
* Call a directly-named datatype input function, with non-exception
|
|
392
|
+
* handling of "soft" errors.
|
|
393
|
+
*
|
|
394
|
+
* This is like InputFunctionCallSafe, except that it is given a direct
|
|
395
|
+
* pointer to the C function to call. We assume that that function is
|
|
396
|
+
* strict. Also, the function cannot be one that needs to
|
|
397
|
+
* look at FmgrInfo, since there won't be any.
|
|
398
|
+
*/
|
|
399
|
+
|
|
400
|
+
|
|
374
401
|
/*
|
|
375
402
|
* Call a previously-looked-up datatype output function.
|
|
376
403
|
*
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* - ExitOnAnyError
|
|
5
5
|
* - InterruptHoldoffCount
|
|
6
6
|
* - QueryCancelHoldoffCount
|
|
7
|
-
* - IsPostmasterEnvironment
|
|
8
7
|
* - InterruptPending
|
|
9
8
|
*--------------------------------------------------------------------
|
|
10
9
|
*/
|
|
@@ -14,7 +13,7 @@
|
|
|
14
13
|
* globals.c
|
|
15
14
|
* global variable declarations
|
|
16
15
|
*
|
|
17
|
-
* Portions Copyright (c) 1996-
|
|
16
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
18
17
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
19
18
|
*
|
|
20
19
|
*
|
|
@@ -45,6 +44,10 @@ __thread volatile sig_atomic_t InterruptPending = false;
|
|
|
45
44
|
|
|
46
45
|
|
|
47
46
|
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
48
51
|
__thread volatile uint32 InterruptHoldoffCount = 0;
|
|
49
52
|
|
|
50
53
|
__thread volatile uint32 QueryCancelHoldoffCount = 0;
|
|
@@ -88,7 +91,7 @@ __thread volatile uint32 CritSectionCount = 0;
|
|
|
88
91
|
/* full path to lib directory */
|
|
89
92
|
|
|
90
93
|
#ifdef EXEC_BACKEND
|
|
91
|
-
|
|
94
|
+
/* full path to backend */
|
|
92
95
|
|
|
93
96
|
/* note: currently this is not valid in backend processes */
|
|
94
97
|
#endif
|
|
@@ -120,7 +123,6 @@ char postgres_exec_path[MAXPGPATH]; /* full path to backend */
|
|
|
120
123
|
*
|
|
121
124
|
* These are initialized for the bootstrap/standalone case.
|
|
122
125
|
*/
|
|
123
|
-
__thread bool IsPostmasterEnvironment = false;
|
|
124
126
|
|
|
125
127
|
|
|
126
128
|
|
|
@@ -152,7 +154,8 @@ __thread bool ExitOnAnyError = false;
|
|
|
152
154
|
|
|
153
155
|
|
|
154
156
|
|
|
155
|
-
|
|
157
|
+
/* GUC parameters for vacuum */
|
|
158
|
+
|
|
156
159
|
|
|
157
160
|
|
|
158
161
|
|
|
@@ -162,7 +165,7 @@ __thread bool ExitOnAnyError = false;
|
|
|
162
165
|
|
|
163
166
|
|
|
164
167
|
|
|
165
|
-
/* working state for vacuum */
|
|
166
168
|
|
|
167
169
|
|
|
170
|
+
/* working state for vacuum */
|
|
168
171
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* - cliplen
|
|
6
6
|
* - DatabaseEncoding
|
|
7
7
|
* - pg_verifymbstr
|
|
8
|
-
* -
|
|
8
|
+
* - pg_verify_mbstr
|
|
9
9
|
* - report_invalid_encoding
|
|
10
10
|
* - GetDatabaseEncoding
|
|
11
11
|
* - pg_get_client_encoding
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
* - pg_mbstrlen_with_len
|
|
18
18
|
* - pg_mblen
|
|
19
19
|
* - SetDatabaseEncoding
|
|
20
|
+
* - GetMessageEncoding
|
|
21
|
+
* - MessageEncoding
|
|
20
22
|
*--------------------------------------------------------------------
|
|
21
23
|
*/
|
|
22
24
|
|
|
@@ -45,7 +47,7 @@
|
|
|
45
47
|
* the result is validly encoded according to the destination encoding.
|
|
46
48
|
*
|
|
47
49
|
*
|
|
48
|
-
* Portions Copyright (c) 1996-
|
|
50
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
49
51
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
50
52
|
*
|
|
51
53
|
*
|
|
@@ -62,6 +64,7 @@
|
|
|
62
64
|
#include "utils/builtins.h"
|
|
63
65
|
#include "utils/memutils.h"
|
|
64
66
|
#include "utils/syscache.h"
|
|
67
|
+
#include "varatt.h"
|
|
65
68
|
|
|
66
69
|
/*
|
|
67
70
|
* We maintain a simple linked list caching the fmgr lookup info for the
|
|
@@ -104,6 +107,7 @@ static __thread const pg_enc2name *ClientEncoding = &pg_enc2name_tbl[PG_SQL_ASCI
|
|
|
104
107
|
|
|
105
108
|
static __thread const pg_enc2name *DatabaseEncoding = &pg_enc2name_tbl[PG_SQL_ASCII];
|
|
106
109
|
|
|
110
|
+
static __thread const pg_enc2name *MessageEncoding = &pg_enc2name_tbl[PG_SQL_ASCII];
|
|
107
111
|
|
|
108
112
|
|
|
109
113
|
/*
|
|
@@ -168,6 +172,37 @@ pg_get_client_encoding(void)
|
|
|
168
172
|
*/
|
|
169
173
|
|
|
170
174
|
|
|
175
|
+
/*
|
|
176
|
+
* Convert src string to another encoding.
|
|
177
|
+
*
|
|
178
|
+
* This function has a different API than the other conversion functions.
|
|
179
|
+
* The caller should've looked up the conversion function using
|
|
180
|
+
* FindDefaultConversionProc(). Unlike the other functions, the converted
|
|
181
|
+
* result is not palloc'd. It is written to the caller-supplied buffer
|
|
182
|
+
* instead.
|
|
183
|
+
*
|
|
184
|
+
* src_encoding - encoding to convert from
|
|
185
|
+
* dest_encoding - encoding to convert to
|
|
186
|
+
* src, srclen - input buffer and its length in bytes
|
|
187
|
+
* dest, destlen - destination buffer and its size in bytes
|
|
188
|
+
*
|
|
189
|
+
* The output is null-terminated.
|
|
190
|
+
*
|
|
191
|
+
* If destlen < srclen * MAX_CONVERSION_INPUT_LENGTH + 1, the converted output
|
|
192
|
+
* wouldn't necessarily fit in the output buffer, and the function will not
|
|
193
|
+
* convert the whole input.
|
|
194
|
+
*
|
|
195
|
+
* TODO: The conversion function interface is not great. Firstly, it
|
|
196
|
+
* would be nice to pass through the destination buffer size to the
|
|
197
|
+
* conversion function, so that if you pass a shorter destination buffer, it
|
|
198
|
+
* could still continue to fill up the whole buffer. Currently, we have to
|
|
199
|
+
* assume worst case expansion and stop the conversion short, even if there
|
|
200
|
+
* is in fact space left in the destination buffer. Secondly, it would be
|
|
201
|
+
* nice to return the number of bytes written to the caller, to avoid a call
|
|
202
|
+
* to strlen().
|
|
203
|
+
*/
|
|
204
|
+
|
|
205
|
+
|
|
171
206
|
/*
|
|
172
207
|
* Convert string to encoding encoding_name. The source
|
|
173
208
|
* encoding is the DB encoding.
|
|
@@ -305,14 +340,23 @@ pg_unicode_to_server(pg_wchar c, unsigned char *s)
|
|
|
305
340
|
c_as_utf8[c_as_utf8_len] = '\0';
|
|
306
341
|
|
|
307
342
|
/* Convert, or throw error if we can't */
|
|
308
|
-
|
|
343
|
+
FunctionCall6(Utf8ToServerConvProc,
|
|
309
344
|
Int32GetDatum(PG_UTF8),
|
|
310
345
|
Int32GetDatum(server_encoding),
|
|
311
|
-
CStringGetDatum(c_as_utf8),
|
|
312
|
-
CStringGetDatum(s),
|
|
313
|
-
Int32GetDatum(c_as_utf8_len)
|
|
346
|
+
CStringGetDatum((char *) c_as_utf8),
|
|
347
|
+
CStringGetDatum((char *) s),
|
|
348
|
+
Int32GetDatum(c_as_utf8_len),
|
|
349
|
+
BoolGetDatum(false));
|
|
314
350
|
}
|
|
315
351
|
|
|
352
|
+
/*
|
|
353
|
+
* Convert a single Unicode code point into a string in the server encoding.
|
|
354
|
+
*
|
|
355
|
+
* Same as pg_unicode_to_server(), except that we don't throw errors,
|
|
356
|
+
* but simply return false on conversion failure.
|
|
357
|
+
*/
|
|
358
|
+
|
|
359
|
+
|
|
316
360
|
|
|
317
361
|
/* convert a multibyte string to a wchar */
|
|
318
362
|
|
|
@@ -554,7 +598,11 @@ GetDatabaseEncodingName(void)
|
|
|
554
598
|
* not attached to a database, and under a database encoding lacking iconv
|
|
555
599
|
* support (MULE_INTERNAL).
|
|
556
600
|
*/
|
|
557
|
-
|
|
601
|
+
int
|
|
602
|
+
GetMessageEncoding(void)
|
|
603
|
+
{
|
|
604
|
+
return MessageEncoding->encoding;
|
|
605
|
+
}
|
|
558
606
|
|
|
559
607
|
|
|
560
608
|
/*
|
|
@@ -629,15 +677,29 @@ pg_database_encoding_max_length(void)
|
|
|
629
677
|
bool
|
|
630
678
|
pg_verifymbstr(const char *mbstr, int len, bool noError)
|
|
631
679
|
{
|
|
632
|
-
return
|
|
633
|
-
pg_verify_mbstr_len(GetDatabaseEncoding(), mbstr, len, noError) >= 0;
|
|
680
|
+
return pg_verify_mbstr(GetDatabaseEncoding(), mbstr, len, noError);
|
|
634
681
|
}
|
|
635
682
|
|
|
636
683
|
/*
|
|
637
684
|
* Verify mbstr to make sure that it is validly encoded in the specified
|
|
638
685
|
* encoding.
|
|
639
686
|
*/
|
|
687
|
+
bool
|
|
688
|
+
pg_verify_mbstr(int encoding, const char *mbstr, int len, bool noError)
|
|
689
|
+
{
|
|
690
|
+
int oklen;
|
|
640
691
|
|
|
692
|
+
Assert(PG_VALID_ENCODING(encoding));
|
|
693
|
+
|
|
694
|
+
oklen = pg_wchar_table[encoding].mbverifystr((const unsigned char *) mbstr, len);
|
|
695
|
+
if (oklen != len)
|
|
696
|
+
{
|
|
697
|
+
if (noError)
|
|
698
|
+
return false;
|
|
699
|
+
report_invalid_encoding(encoding, mbstr + oklen, len - oklen);
|
|
700
|
+
}
|
|
701
|
+
return true;
|
|
702
|
+
}
|
|
641
703
|
|
|
642
704
|
/*
|
|
643
705
|
* Verify mbstr to make sure that it is validly encoded in the specified
|
|
@@ -649,68 +711,11 @@ pg_verifymbstr(const char *mbstr, int len, bool noError)
|
|
|
649
711
|
* If OK, return length of string in the encoding.
|
|
650
712
|
* If a problem is found, return -1 when noError is
|
|
651
713
|
* true; when noError is false, ereport() a descriptive message.
|
|
714
|
+
*
|
|
715
|
+
* Note: We cannot use the faster encoding-specific mbverifystr() function
|
|
716
|
+
* here, because we need to count the number of characters in the string.
|
|
652
717
|
*/
|
|
653
|
-
int
|
|
654
|
-
pg_verify_mbstr_len(int encoding, const char *mbstr, int len, bool noError)
|
|
655
|
-
{
|
|
656
|
-
mbverifier mbverify;
|
|
657
|
-
int mb_len;
|
|
658
718
|
|
|
659
|
-
Assert(PG_VALID_ENCODING(encoding));
|
|
660
|
-
|
|
661
|
-
/*
|
|
662
|
-
* In single-byte encodings, we need only reject nulls (\0).
|
|
663
|
-
*/
|
|
664
|
-
if (pg_encoding_max_length(encoding) <= 1)
|
|
665
|
-
{
|
|
666
|
-
const char *nullpos = memchr(mbstr, 0, len);
|
|
667
|
-
|
|
668
|
-
if (nullpos == NULL)
|
|
669
|
-
return len;
|
|
670
|
-
if (noError)
|
|
671
|
-
return -1;
|
|
672
|
-
report_invalid_encoding(encoding, nullpos, 1);
|
|
673
|
-
}
|
|
674
|
-
|
|
675
|
-
/* fetch function pointer just once */
|
|
676
|
-
mbverify = pg_wchar_table[encoding].mbverify;
|
|
677
|
-
|
|
678
|
-
mb_len = 0;
|
|
679
|
-
|
|
680
|
-
while (len > 0)
|
|
681
|
-
{
|
|
682
|
-
int l;
|
|
683
|
-
|
|
684
|
-
/* fast path for ASCII-subset characters */
|
|
685
|
-
if (!IS_HIGHBIT_SET(*mbstr))
|
|
686
|
-
{
|
|
687
|
-
if (*mbstr != '\0')
|
|
688
|
-
{
|
|
689
|
-
mb_len++;
|
|
690
|
-
mbstr++;
|
|
691
|
-
len--;
|
|
692
|
-
continue;
|
|
693
|
-
}
|
|
694
|
-
if (noError)
|
|
695
|
-
return -1;
|
|
696
|
-
report_invalid_encoding(encoding, mbstr, len);
|
|
697
|
-
}
|
|
698
|
-
|
|
699
|
-
l = (*mbverify) ((const unsigned char *) mbstr, len);
|
|
700
|
-
|
|
701
|
-
if (l < 0)
|
|
702
|
-
{
|
|
703
|
-
if (noError)
|
|
704
|
-
return -1;
|
|
705
|
-
report_invalid_encoding(encoding, mbstr, len);
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
mbstr += l;
|
|
709
|
-
len -= l;
|
|
710
|
-
mb_len++;
|
|
711
|
-
}
|
|
712
|
-
return mb_len;
|
|
713
|
-
}
|
|
714
719
|
|
|
715
720
|
/*
|
|
716
721
|
* check_encoding_conversion_args: check arguments of a conversion function
|
|
@@ -772,68 +777,6 @@ report_invalid_encoding(int encoding, const char *mbstr, int len)
|
|
|
772
777
|
* null. Returns NULL iff failed. Before MessageEncoding initialization, "str"
|
|
773
778
|
* should be ASCII-only; this will function as though MessageEncoding is UTF8.
|
|
774
779
|
*/
|
|
775
|
-
WCHAR *
|
|
776
|
-
pgwin32_message_to_UTF16(const char *str, int len, int *utf16len)
|
|
777
|
-
{
|
|
778
|
-
int msgenc = GetMessageEncoding();
|
|
779
|
-
WCHAR *utf16;
|
|
780
|
-
int dstlen;
|
|
781
|
-
UINT codepage;
|
|
782
780
|
|
|
783
|
-
if (msgenc == PG_SQL_ASCII)
|
|
784
|
-
/* No conversion is possible, and SQL_ASCII is never utf16. */
|
|
785
|
-
return NULL;
|
|
786
|
-
|
|
787
|
-
codepage = pg_enc2name_tbl[msgenc].codepage;
|
|
788
|
-
|
|
789
|
-
/*
|
|
790
|
-
* Use MultiByteToWideChar directly if there is a corresponding codepage,
|
|
791
|
-
* or double conversion through UTF8 if not. Double conversion is needed,
|
|
792
|
-
* for example, in an ENCODING=LATIN8, LC_CTYPE=C database.
|
|
793
|
-
*/
|
|
794
|
-
if (codepage != 0)
|
|
795
|
-
{
|
|
796
|
-
utf16 = (WCHAR *) palloc(sizeof(WCHAR) * (len + 1));
|
|
797
|
-
dstlen = MultiByteToWideChar(codepage, 0, str, len, utf16, len);
|
|
798
|
-
utf16[dstlen] = (WCHAR) 0;
|
|
799
|
-
}
|
|
800
|
-
else
|
|
801
|
-
{
|
|
802
|
-
char *utf8;
|
|
803
|
-
|
|
804
|
-
/*
|
|
805
|
-
* XXX pg_do_encoding_conversion() requires a transaction. In the
|
|
806
|
-
* absence of one, hope for the input to be valid UTF8.
|
|
807
|
-
*/
|
|
808
|
-
if (IsTransactionState())
|
|
809
|
-
{
|
|
810
|
-
utf8 = (char *) pg_do_encoding_conversion((unsigned char *) str,
|
|
811
|
-
len,
|
|
812
|
-
msgenc,
|
|
813
|
-
PG_UTF8);
|
|
814
|
-
if (utf8 != str)
|
|
815
|
-
len = strlen(utf8);
|
|
816
|
-
}
|
|
817
|
-
else
|
|
818
|
-
utf8 = (char *) str;
|
|
819
|
-
|
|
820
|
-
utf16 = (WCHAR *) palloc(sizeof(WCHAR) * (len + 1));
|
|
821
|
-
dstlen = MultiByteToWideChar(CP_UTF8, 0, utf8, len, utf16, len);
|
|
822
|
-
utf16[dstlen] = (WCHAR) 0;
|
|
823
|
-
|
|
824
|
-
if (utf8 != str)
|
|
825
|
-
pfree(utf8);
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
if (dstlen == 0 && len > 0)
|
|
829
|
-
{
|
|
830
|
-
pfree(utf16);
|
|
831
|
-
return NULL; /* error */
|
|
832
|
-
}
|
|
833
|
-
|
|
834
|
-
if (utf16len)
|
|
835
|
-
*utf16len = dstlen;
|
|
836
|
-
return utf16;
|
|
837
|
-
}
|
|
838
781
|
|
|
839
782
|
#endif /* WIN32 */
|