pg_query 5.0.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +27 -0
- data/README.md +1 -1
- data/Rakefile +3 -4
- data/ext/pg_query/extconf.rb +14 -4
- data/ext/pg_query/include/pg_query.h +4 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +2901 -1794
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +211 -24
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +272 -53
- data/ext/pg_query/include/postgres/access/amapi.h +299 -0
- data/ext/pg_query/include/postgres/access/attmap.h +54 -0
- data/ext/pg_query/include/postgres/access/attnum.h +64 -0
- data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
- data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
- data/ext/pg_query/include/postgres/access/clog.h +62 -0
- data/ext/pg_query/include/postgres/access/commit_ts.h +73 -0
- data/ext/pg_query/include/postgres/access/detoast.h +82 -0
- data/ext/pg_query/include/postgres/access/genam.h +237 -0
- data/ext/pg_query/include/postgres/access/gin.h +91 -0
- data/ext/pg_query/include/postgres/access/htup.h +89 -0
- data/ext/pg_query/include/postgres/access/htup_details.h +811 -0
- data/ext/pg_query/include/postgres/access/itup.h +170 -0
- data/ext/pg_query/include/postgres/access/parallel.h +81 -0
- data/ext/pg_query/include/postgres/access/printtup.h +35 -0
- data/ext/pg_query/include/postgres/access/relation.h +28 -0
- data/ext/pg_query/include/postgres/access/relscan.h +191 -0
- data/ext/pg_query/include/postgres/access/rmgrlist.h +49 -0
- data/ext/pg_query/include/postgres/access/sdir.h +67 -0
- data/ext/pg_query/include/postgres/access/skey.h +151 -0
- data/ext/pg_query/include/postgres/access/slru.h +221 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +85 -0
- data/ext/pg_query/include/postgres/access/sysattr.h +29 -0
- data/ext/pg_query/include/postgres/access/table.h +28 -0
- data/ext/pg_query/include/postgres/access/tableam.h +2109 -0
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
- data/ext/pg_query/include/postgres/access/transam.h +375 -0
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/postgres/access/tupconvert.h +54 -0
- data/ext/pg_query/include/postgres/access/tupdesc.h +154 -0
- data/ext/pg_query/include/postgres/access/tupmacs.h +207 -0
- data/ext/pg_query/include/postgres/access/twophase.h +65 -0
- data/ext/pg_query/include/postgres/access/xact.h +530 -0
- data/ext/pg_query/include/postgres/access/xlog.h +310 -0
- data/ext/pg_query/include/postgres/access/xlog_internal.h +405 -0
- data/ext/pg_query/include/postgres/access/xlogbackup.h +43 -0
- data/ext/pg_query/include/postgres/access/xlogdefs.h +82 -0
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/postgres/access/xlogreader.h +444 -0
- data/ext/pg_query/include/postgres/access/xlogrecord.h +248 -0
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
- data/ext/pg_query/include/postgres/archive/archive_module.h +67 -0
- data/ext/pg_query/include/postgres/c.h +1374 -0
- data/ext/pg_query/include/postgres/catalog/catalog.h +47 -0
- data/ext/pg_query/include/postgres/catalog/catversion.h +62 -0
- data/ext/pg_query/include/postgres/catalog/dependency.h +228 -0
- data/ext/pg_query/include/postgres/catalog/genbki.h +149 -0
- data/ext/pg_query/include/postgres/catalog/index.h +218 -0
- data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
- data/ext/pg_query/include/postgres/catalog/namespace.h +189 -0
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +267 -0
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +89 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +182 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +78 -0
- data/ext/pg_query/include/postgres/catalog/pg_am.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +47 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +240 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_class.h +235 -0
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +134 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +106 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +278 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +74 -0
- data/ext/pg_query/include/postgres/catalog/pg_control.h +260 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +79 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_database.h +129 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +53 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +77 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_index.h +92 -0
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +59 -0
- data/ext/pg_query/include/postgres/catalog/pg_language.h +75 -0
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +41 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +142 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +76 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +223 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +101 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +161 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +65 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +33 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +288 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +199 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +45 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +153 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +109 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +56 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +35 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +63 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +37 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +54 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_type.h +407 -0
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +324 -0
- data/ext/pg_query/include/postgres/catalog/storage.h +50 -0
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +49 -0
- data/ext/pg_query/include/postgres/commands/dbcommands.h +37 -0
- data/ext/pg_query/include/postgres/commands/defrem.h +161 -0
- data/ext/pg_query/include/postgres/commands/event_trigger.h +91 -0
- data/ext/pg_query/include/postgres/commands/explain.h +145 -0
- data/ext/pg_query/include/postgres/commands/prepare.h +61 -0
- data/ext/pg_query/include/postgres/commands/tablespace.h +69 -0
- data/ext/pg_query/include/postgres/commands/trigger.h +288 -0
- data/ext/pg_query/include/postgres/commands/vacuum.h +388 -0
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/postgres/common/file_perm.h +56 -0
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +119 -0
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +453 -0
- data/ext/pg_query/include/postgres/common/int.h +512 -0
- data/ext/pg_query/include/postgres/common/keywords.h +29 -0
- data/ext/pg_query/include/postgres/common/kwlookup.h +44 -0
- data/ext/pg_query/include/postgres/common/pg_prng.h +62 -0
- data/ext/pg_query/include/postgres/common/relpath.h +97 -0
- 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 +124 -0
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5261 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +989 -0
- data/ext/pg_query/include/postgres/datatype/timestamp.h +269 -0
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3310 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +836 -0
- data/ext/pg_query/include/postgres/executor/execdesc.h +70 -0
- data/ext/pg_query/include/postgres/executor/executor.h +681 -0
- data/ext/pg_query/include/postgres/executor/functions.h +56 -0
- data/ext/pg_query/include/postgres/executor/instrument.h +120 -0
- data/ext/pg_query/include/postgres/executor/spi.h +207 -0
- data/ext/pg_query/include/postgres/executor/tablefunc.h +67 -0
- data/ext/pg_query/include/postgres/executor/tuptable.h +523 -0
- data/ext/pg_query/include/postgres/fmgr.h +800 -0
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/postgres/funcapi.h +360 -0
- data/ext/pg_query/include/postgres/gram.h +1168 -0
- data/ext/pg_query/include/postgres/gramparse.h +75 -0
- data/ext/pg_query/include/postgres/jit/jit.h +106 -0
- data/ext/pg_query/include/postgres/kwlist_d.h +1164 -0
- data/ext/pg_query/include/postgres/lib/dshash.h +130 -0
- data/ext/pg_query/include/postgres/lib/ilist.h +1159 -0
- data/ext/pg_query/include/postgres/lib/pairingheap.h +102 -0
- data/ext/pg_query/include/postgres/lib/simplehash.h +1206 -0
- data/ext/pg_query/include/postgres/lib/sort_template.h +445 -0
- data/ext/pg_query/include/postgres/lib/stringinfo.h +243 -0
- data/ext/pg_query/include/postgres/libpq/auth.h +37 -0
- data/ext/pg_query/include/postgres/libpq/crypt.h +47 -0
- data/ext/pg_query/include/postgres/libpq/hba.h +186 -0
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +358 -0
- data/ext/pg_query/include/postgres/libpq/libpq.h +143 -0
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +169 -0
- data/ext/pg_query/include/postgres/libpq/pqformat.h +209 -0
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +54 -0
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- 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/postgres/mb/pg_wchar.h +792 -0
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
- data/ext/pg_query/include/postgres/miscadmin.h +519 -0
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
- data/ext/pg_query/include/postgres/nodes/execnodes.h +2852 -0
- data/ext/pg_query/include/postgres/nodes/extensible.h +164 -0
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +61 -0
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +127 -0
- data/ext/pg_query/include/postgres/nodes/memnodes.h +152 -0
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +222 -0
- data/ext/pg_query/include/postgres/nodes/nodes.h +435 -0
- data/ext/pg_query/include/postgres/nodes/nodetags.h +491 -0
- data/ext/pg_query/include/postgres/nodes/params.h +170 -0
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +4233 -0
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +3435 -0
- data/ext/pg_query/include/postgres/nodes/pg_list.h +686 -0
- data/ext/pg_query/include/postgres/nodes/plannodes.h +1593 -0
- data/ext/pg_query/include/postgres/nodes/primnodes.h +2335 -0
- data/ext/pg_query/include/postgres/nodes/print.h +34 -0
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
- data/ext/pg_query/include/postgres/nodes/replnodes.h +132 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +75 -0
- data/ext/pg_query/include/postgres/nodes/value.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/cost.h +216 -0
- data/ext/pg_query/include/postgres/optimizer/geqo.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +45 -0
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +205 -0
- data/ext/pg_query/include/postgres/optimizer/paths.h +271 -0
- data/ext/pg_query/include/postgres/optimizer/planmain.h +123 -0
- data/ext/pg_query/include/postgres/parser/analyze.h +66 -0
- data/ext/pg_query/include/postgres/parser/kwlist.h +518 -0
- data/ext/pg_query/include/postgres/parser/parse_agg.h +65 -0
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +102 -0
- data/ext/pg_query/include/postgres/parser/parse_expr.h +25 -0
- data/ext/pg_query/include/postgres/parser/parse_func.h +74 -0
- data/ext/pg_query/include/postgres/parser/parse_node.h +358 -0
- data/ext/pg_query/include/postgres/parser/parse_oper.h +68 -0
- data/ext/pg_query/include/postgres/parser/parse_relation.h +129 -0
- data/ext/pg_query/include/postgres/parser/parse_type.h +61 -0
- data/ext/pg_query/include/postgres/parser/parser.h +68 -0
- data/ext/pg_query/include/postgres/parser/parsetree.h +61 -0
- data/ext/pg_query/include/postgres/parser/scanner.h +152 -0
- data/ext/pg_query/include/postgres/parser/scansup.h +27 -0
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +26 -0
- data/ext/pg_query/include/postgres/pg_config.h +977 -0
- data/ext/pg_query/include/postgres/pg_config_manual.h +385 -0
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/postgres/pg_getopt.h +56 -0
- data/ext/pg_query/include/postgres/pg_trace.h +17 -0
- data/ext/pg_query/include/postgres/pgstat.h +780 -0
- data/ext/pg_query/include/postgres/pgtime.h +94 -0
- data/ext/pg_query/include/postgres/pl_gram.h +385 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +52 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +114 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +112 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +246 -0
- data/ext/pg_query/include/postgres/plerrcodes.h +998 -0
- data/ext/pg_query/include/postgres/plpgsql.h +1342 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +32 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +256 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +254 -0
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +170 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +323 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +119 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +121 -0
- data/ext/pg_query/include/postgres/port/atomics/generic.h +437 -0
- data/ext/pg_query/include/postgres/port/atomics.h +606 -0
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +421 -0
- data/ext/pg_query/include/postgres/port/pg_bswap.h +161 -0
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +110 -0
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +422 -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 +34 -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 +584 -0
- data/ext/pg_query/include/postgres/port.h +524 -0
- 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/postmaster/autovacuum.h +69 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +164 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +60 -0
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +45 -0
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +32 -0
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +23 -0
- data/ext/pg_query/include/postgres/regex/regex.h +272 -0
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +34 -0
- data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
- data/ext/pg_query/include/postgres/replication/logicalworker.h +33 -0
- data/ext/pg_query/include/postgres/replication/origin.h +73 -0
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +743 -0
- data/ext/pg_query/include/postgres/replication/slot.h +285 -0
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +109 -0
- data/ext/pg_query/include/postgres/replication/walreceiver.h +504 -0
- data/ext/pg_query/include/postgres/replication/walsender.h +76 -0
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +46 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +41 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +96 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +26 -0
- data/ext/pg_query/include/postgres/storage/block.h +108 -0
- data/ext/pg_query/include/postgres/storage/buf.h +46 -0
- data/ext/pg_query/include/postgres/storage/bufmgr.h +411 -0
- data/ext/pg_query/include/postgres/storage/bufpage.h +510 -0
- data/ext/pg_query/include/postgres/storage/condition_variable.h +73 -0
- data/ext/pg_query/include/postgres/storage/dsm.h +61 -0
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +79 -0
- data/ext/pg_query/include/postgres/storage/fd.h +219 -0
- data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
- data/ext/pg_query/include/postgres/storage/ipc.h +87 -0
- data/ext/pg_query/include/postgres/storage/item.h +19 -0
- data/ext/pg_query/include/postgres/storage/itemid.h +184 -0
- data/ext/pg_query/include/postgres/storage/itemptr.h +245 -0
- data/ext/pg_query/include/postgres/storage/large_object.h +100 -0
- data/ext/pg_query/include/postgres/storage/latch.h +196 -0
- data/ext/pg_query/include/postgres/storage/lmgr.h +126 -0
- data/ext/pg_query/include/postgres/storage/lock.h +624 -0
- data/ext/pg_query/include/postgres/storage/lockdefs.h +59 -0
- data/ext/pg_query/include/postgres/storage/lwlock.h +228 -0
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +47 -0
- data/ext/pg_query/include/postgres/storage/off.h +57 -0
- data/ext/pg_query/include/postgres/storage/pg_sema.h +61 -0
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +93 -0
- data/ext/pg_query/include/postgres/storage/pmsignal.h +105 -0
- data/ext/pg_query/include/postgres/storage/predicate.h +83 -0
- data/ext/pg_query/include/postgres/storage/proc.h +491 -0
- data/ext/pg_query/include/postgres/storage/procarray.h +103 -0
- data/ext/pg_query/include/postgres/storage/proclist_types.h +53 -0
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +75 -0
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +100 -0
- data/ext/pg_query/include/postgres/storage/s_lock.h +847 -0
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +37 -0
- data/ext/pg_query/include/postgres/storage/shm_mq.h +86 -0
- data/ext/pg_query/include/postgres/storage/shm_toc.h +58 -0
- data/ext/pg_query/include/postgres/storage/shmem.h +59 -0
- data/ext/pg_query/include/postgres/storage/sinval.h +153 -0
- data/ext/pg_query/include/postgres/storage/smgr.h +127 -0
- data/ext/pg_query/include/postgres/storage/spin.h +77 -0
- data/ext/pg_query/include/postgres/storage/standby.h +109 -0
- data/ext/pg_query/include/postgres/storage/standbydefs.h +74 -0
- data/ext/pg_query/include/postgres/storage/sync.h +66 -0
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +62 -0
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +219 -0
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +108 -0
- data/ext/pg_query/include/postgres/tcop/dest.h +148 -0
- data/ext/pg_query/include/postgres/tcop/fastpath.h +20 -0
- data/ext/pg_query/include/postgres/tcop/pquery.h +51 -0
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +98 -0
- data/ext/pg_query/include/postgres/tcop/utility.h +112 -0
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +96 -0
- data/ext/pg_query/include/postgres/utils/acl.h +290 -0
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +45 -0
- data/ext/pg_query/include/postgres/utils/array.h +481 -0
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +46 -0
- data/ext/pg_query/include/postgres/utils/backend_status.h +340 -0
- data/ext/pg_query/include/postgres/utils/builtins.h +139 -0
- data/ext/pg_query/include/postgres/utils/bytea.h +28 -0
- data/ext/pg_query/include/postgres/utils/catcache.h +230 -0
- data/ext/pg_query/include/postgres/utils/date.h +118 -0
- data/ext/pg_query/include/postgres/utils/datetime.h +367 -0
- data/ext/pg_query/include/postgres/utils/datum.h +76 -0
- data/ext/pg_query/include/postgres/utils/dsa.h +166 -0
- data/ext/pg_query/include/postgres/utils/elog.h +540 -0
- data/ext/pg_query/include/postgres/utils/errcodes.h +352 -0
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +170 -0
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +241 -0
- data/ext/pg_query/include/postgres/utils/float.h +357 -0
- data/ext/pg_query/include/postgres/utils/fmgroids.h +3347 -0
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +2904 -0
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +49 -0
- data/ext/pg_query/include/postgres/utils/guc.h +456 -0
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +184 -0
- data/ext/pg_query/include/postgres/utils/guc_tables.h +323 -0
- data/ext/pg_query/include/postgres/utils/hsearch.h +153 -0
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +68 -0
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/postgres/utils/lsyscache.h +215 -0
- data/ext/pg_query/include/postgres/utils/memdebug.h +82 -0
- data/ext/pg_query/include/postgres/utils/memutils.h +193 -0
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +176 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +253 -0
- data/ext/pg_query/include/postgres/utils/numeric.h +110 -0
- data/ext/pg_query/include/postgres/utils/palloc.h +151 -0
- data/ext/pg_query/include/postgres/utils/partcache.h +103 -0
- data/ext/pg_query/include/postgres/utils/pg_locale.h +136 -0
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +808 -0
- data/ext/pg_query/include/postgres/utils/plancache.h +238 -0
- data/ext/pg_query/include/postgres/utils/portal.h +252 -0
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +74 -0
- data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
- data/ext/pg_query/include/postgres/utils/rel.h +711 -0
- data/ext/pg_query/include/postgres/utils/relcache.h +155 -0
- data/ext/pg_query/include/postgres/utils/reltrigger.h +81 -0
- data/ext/pg_query/include/postgres/utils/resowner.h +167 -0
- data/ext/pg_query/include/postgres/utils/ruleutils.h +52 -0
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +61 -0
- data/ext/pg_query/include/postgres/utils/snapmgr.h +130 -0
- data/ext/pg_query/include/postgres/utils/snapshot.h +219 -0
- data/ext/pg_query/include/postgres/utils/sortsupport.h +391 -0
- data/ext/pg_query/include/postgres/utils/syscache.h +131 -0
- data/ext/pg_query/include/postgres/utils/timeout.h +96 -0
- data/ext/pg_query/include/postgres/utils/timestamp.h +147 -0
- data/ext/pg_query/include/postgres/utils/tuplesort.h +472 -0
- data/ext/pg_query/include/postgres/utils/tuplestore.h +88 -0
- data/ext/pg_query/include/postgres/utils/typcache.h +210 -0
- data/ext/pg_query/include/postgres/utils/varlena.h +53 -0
- data/ext/pg_query/include/postgres/utils/wait_event.h +108 -0
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +94 -0
- data/ext/pg_query/include/postgres/varatt.h +358 -0
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
- data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
- data/ext/pg_query/pg_query.c +9 -0
- data/ext/pg_query/pg_query.pb-c.c +6598 -3739
- data/ext/pg_query/pg_query_fingerprint.c +4 -5
- data/ext/pg_query/pg_query_normalize.c +42 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +9 -1
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +1 -0
- data/ext/pg_query/pg_query_parse.c +1 -1
- data/ext/pg_query/pg_query_parse_plpgsql.c +18 -17
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -1
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +1 -1
- data/ext/pg_query/postgres_deparse.c +409 -21
- data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +3 -7
- data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +34490 -32135
- data/ext/pg_query/src_backend_parser_parser.c +8 -8
- data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
- data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
- data/ext/pg_query/src_backend_utils_error_elog.c +60 -190
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +16 -4
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +19 -81
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -8
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
- data/ext/pg_query/src_common_encnames.c +43 -44
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +511 -466
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +3 -3
- data/ext/pg_query/src_common_stringinfo.c +18 -1
- data/ext/pg_query/src_common_wchar.c +45 -108
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_port_pg_bitutils.c +251 -32
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +4 -4
- data/ext/pg_query/src_port_strerror.c +1 -3
- 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/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +26 -3
- data/lib/pg_query/treewalker.rb +52 -12
- data/lib/pg_query/truncate.rb +1 -1
- data/lib/pg_query/version.rb +1 -1
- metadata +444 -400
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -292
- data/ext/pg_query/include/access/attmap.h +0 -54
- data/ext/pg_query/include/access/attnum.h +0 -64
- data/ext/pg_query/include/access/clog.h +0 -63
- data/ext/pg_query/include/access/commit_ts.h +0 -74
- data/ext/pg_query/include/access/detoast.h +0 -82
- data/ext/pg_query/include/access/genam.h +0 -233
- data/ext/pg_query/include/access/gin.h +0 -91
- data/ext/pg_query/include/access/htup.h +0 -89
- data/ext/pg_query/include/access/htup_details.h +0 -811
- data/ext/pg_query/include/access/itup.h +0 -170
- data/ext/pg_query/include/access/parallel.h +0 -82
- data/ext/pg_query/include/access/printtup.h +0 -35
- data/ext/pg_query/include/access/relation.h +0 -28
- data/ext/pg_query/include/access/relscan.h +0 -191
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -67
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -85
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -28
- data/ext/pg_query/include/access/tableam.h +0 -2100
- data/ext/pg_query/include/access/toast_compression.h +0 -73
- data/ext/pg_query/include/access/transam.h +0 -375
- data/ext/pg_query/include/access/tsmapi.h +0 -82
- data/ext/pg_query/include/access/tupconvert.h +0 -54
- data/ext/pg_query/include/access/tupdesc.h +0 -154
- data/ext/pg_query/include/access/tupmacs.h +0 -207
- data/ext/pg_query/include/access/twophase.h +0 -65
- data/ext/pg_query/include/access/xact.h +0 -530
- data/ext/pg_query/include/access/xlog.h +0 -302
- data/ext/pg_query/include/access/xlog_internal.h +0 -404
- data/ext/pg_query/include/access/xlogbackup.h +0 -41
- data/ext/pg_query/include/access/xlogdefs.h +0 -82
- data/ext/pg_query/include/access/xlogprefetcher.h +0 -55
- data/ext/pg_query/include/access/xlogreader.h +0 -444
- data/ext/pg_query/include/access/xlogrecord.h +0 -248
- data/ext/pg_query/include/access/xlogrecovery.h +0 -158
- data/ext/pg_query/include/archive/archive_module.h +0 -59
- data/ext/pg_query/include/c.h +0 -1379
- data/ext/pg_query/include/catalog/catalog.h +0 -45
- data/ext/pg_query/include/catalog/catversion.h +0 -62
- data/ext/pg_query/include/catalog/dependency.h +0 -270
- data/ext/pg_query/include/catalog/genbki.h +0 -143
- data/ext/pg_query/include/catalog/index.h +0 -214
- data/ext/pg_query/include/catalog/indexing.h +0 -54
- data/ext/pg_query/include/catalog/namespace.h +0 -190
- data/ext/pg_query/include/catalog/objectaccess.h +0 -267
- data/ext/pg_query/include/catalog/objectaddress.h +0 -89
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -180
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -78
- data/ext/pg_query/include/catalog/pg_am.h +0 -63
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -223
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -62
- data/ext/pg_query/include/catalog/pg_authid.h +0 -63
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_class.h +0 -230
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -132
- data/ext/pg_query/include/catalog/pg_collation.h +0 -100
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -63
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -273
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -73
- data/ext/pg_query/include/catalog/pg_control.h +0 -258
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -75
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_database.h +0 -124
- data/ext/pg_query/include/catalog/pg_database_d.h +0 -52
- data/ext/pg_query/include/catalog/pg_depend.h +0 -77
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -57
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_index.h +0 -90
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_language.h +0 -72
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -41
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -64
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -88
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -51
- data/ext/pg_query/include/catalog/pg_operator.h +0 -107
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -142
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -64
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -51
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -74
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_proc.h +0 -220
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -101
- data/ext/pg_query/include/catalog/pg_publication.h +0 -158
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -62
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -282
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -195
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -88
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform.h +0 -48
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -153
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -109
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -53
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -59
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -60
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -37
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -51
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_type.h +0 -404
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -324
- data/ext/pg_query/include/catalog/storage.h +0 -50
- data/ext/pg_query/include/commands/async.h +0 -53
- data/ext/pg_query/include/commands/dbcommands.h +0 -37
- data/ext/pg_query/include/commands/defrem.h +0 -161
- data/ext/pg_query/include/commands/event_trigger.h +0 -88
- data/ext/pg_query/include/commands/explain.h +0 -129
- data/ext/pg_query/include/commands/prepare.h +0 -61
- data/ext/pg_query/include/commands/tablespace.h +0 -69
- data/ext/pg_query/include/commands/trigger.h +0 -288
- data/ext/pg_query/include/commands/vacuum.h +0 -386
- data/ext/pg_query/include/common/cryptohash.h +0 -39
- data/ext/pg_query/include/common/file_perm.h +0 -56
- data/ext/pg_query/include/common/hashfn.h +0 -104
- data/ext/pg_query/include/common/int.h +0 -437
- data/ext/pg_query/include/common/ip.h +0 -33
- data/ext/pg_query/include/common/keywords.h +0 -29
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/pg_prng.h +0 -61
- data/ext/pg_query/include/common/relpath.h +0 -97
- data/ext/pg_query/include/common/scram-common.h +0 -70
- data/ext/pg_query/include/common/sha2.h +0 -32
- data/ext/pg_query/include/common/string.h +0 -44
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +0 -125
- data/ext/pg_query/include/copyfuncs.funcs.c +0 -5013
- data/ext/pg_query/include/copyfuncs.switch.c +0 -938
- data/ext/pg_query/include/datatype/timestamp.h +0 -243
- data/ext/pg_query/include/equalfuncs.funcs.c +0 -3097
- data/ext/pg_query/include/equalfuncs.switch.c +0 -785
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -680
- data/ext/pg_query/include/executor/functions.h +0 -55
- data/ext/pg_query/include/executor/instrument.h +0 -118
- data/ext/pg_query/include/executor/spi.h +0 -213
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -494
- data/ext/pg_query/include/fmgr.h +0 -800
- data/ext/pg_query/include/foreign/fdwapi.h +0 -294
- data/ext/pg_query/include/funcapi.h +0 -360
- data/ext/pg_query/include/gram.h +0 -1127
- data/ext/pg_query/include/gramparse.h +0 -75
- data/ext/pg_query/include/jit/jit.h +0 -105
- data/ext/pg_query/include/kwlist_d.h +0 -1119
- data/ext/pg_query/include/lib/dshash.h +0 -115
- data/ext/pg_query/include/lib/ilist.h +0 -1159
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1184
- data/ext/pg_query/include/lib/sort_template.h +0 -432
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -37
- data/ext/pg_query/include/libpq/crypt.h +0 -47
- data/ext/pg_query/include/libpq/hba.h +0 -186
- data/ext/pg_query/include/libpq/libpq-be.h +0 -354
- data/ext/pg_query/include/libpq/libpq.h +0 -144
- data/ext/pg_query/include/libpq/pqcomm.h +0 -163
- data/ext/pg_query/include/libpq/pqformat.h +0 -210
- data/ext/pg_query/include/libpq/pqsignal.h +0 -54
- data/ext/pg_query/include/libpq/sasl.h +0 -136
- data/ext/pg_query/include/libpq/scram.h +0 -37
- data/ext/pg_query/include/mb/pg_wchar.h +0 -772
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -507
- data/ext/pg_query/include/nodes/bitmapset.h +0 -126
- data/ext/pg_query/include/nodes/execnodes.h +0 -2768
- data/ext/pg_query/include/nodes/extensible.h +0 -164
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -121
- data/ext/pg_query/include/nodes/memnodes.h +0 -113
- data/ext/pg_query/include/nodes/miscnodes.h +0 -56
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -222
- data/ext/pg_query/include/nodes/nodes.h +0 -446
- data/ext/pg_query/include/nodes/nodetags.h +0 -471
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -4050
- data/ext/pg_query/include/nodes/pathnodes.h +0 -3384
- data/ext/pg_query/include/nodes/pg_list.h +0 -635
- data/ext/pg_query/include/nodes/plannodes.h +0 -1592
- data/ext/pg_query/include/nodes/primnodes.h +0 -2041
- data/ext/pg_query/include/nodes/print.h +0 -34
- data/ext/pg_query/include/nodes/queryjumble.h +0 -86
- data/ext/pg_query/include/nodes/replnodes.h +0 -111
- data/ext/pg_query/include/nodes/supportnodes.h +0 -346
- data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
- data/ext/pg_query/include/nodes/value.h +0 -90
- data/ext/pg_query/include/optimizer/cost.h +0 -215
- data/ext/pg_query/include/optimizer/geqo.h +0 -90
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -202
- data/ext/pg_query/include/optimizer/paths.h +0 -266
- data/ext/pg_query/include/optimizer/planmain.h +0 -117
- data/ext/pg_query/include/parser/analyze.h +0 -64
- data/ext/pg_query/include/parser/kwlist.h +0 -498
- data/ext/pg_query/include/parser/parse_agg.h +0 -65
- data/ext/pg_query/include/parser/parse_coerce.h +0 -102
- data/ext/pg_query/include/parser/parse_expr.h +0 -25
- data/ext/pg_query/include/parser/parse_func.h +0 -74
- data/ext/pg_query/include/parser/parse_node.h +0 -357
- data/ext/pg_query/include/parser/parse_oper.h +0 -65
- data/ext/pg_query/include/parser/parse_relation.h +0 -129
- data/ext/pg_query/include/parser/parse_type.h +0 -61
- data/ext/pg_query/include/parser/parser.h +0 -68
- data/ext/pg_query/include/parser/parsetree.h +0 -61
- data/ext/pg_query/include/parser/scanner.h +0 -152
- data/ext/pg_query/include/parser/scansup.h +0 -27
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -843
- data/ext/pg_query/include/pg_config_manual.h +0 -372
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/pg_getopt.h +0 -56
- data/ext/pg_query/include/pg_trace.h +0 -17
- data/ext/pg_query/include/pgstat.h +0 -778
- data/ext/pg_query/include/pgtime.h +0 -94
- data/ext/pg_query/include/pl_gram.h +0 -385
- data/ext/pg_query/include/pl_reserved_kwlist.h +0 -52
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +0 -114
- data/ext/pg_query/include/pl_unreserved_kwlist.h +0 -112
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -246
- data/ext/pg_query/include/plerrcodes.h +0 -998
- data/ext/pg_query/include/plpgsql.h +0 -1340
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -32
- data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
- data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
- data/ext/pg_query/include/port/atomics/fallback.h +0 -170
- data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
- data/ext/pg_query/include/port/atomics/generic.h +0 -401
- data/ext/pg_query/include/port/atomics.h +0 -519
- data/ext/pg_query/include/port/pg_bitutils.h +0 -339
- data/ext/pg_query/include/port/pg_bswap.h +0 -161
- data/ext/pg_query/include/port/pg_crc32c.h +0 -101
- data/ext/pg_query/include/port/simd.h +0 -375
- data/ext/pg_query/include/port.h +0 -520
- data/ext/pg_query/include/portability/instr_time.h +0 -197
- data/ext/pg_query/include/postgres.h +0 -579
- data/ext/pg_query/include/postmaster/autovacuum.h +0 -80
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/bgworker.h +0 -162
- data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
- data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/interrupt.h +0 -32
- data/ext/pg_query/include/postmaster/pgarch.h +0 -36
- data/ext/pg_query/include/postmaster/postmaster.h +0 -81
- data/ext/pg_query/include/postmaster/startup.h +0 -41
- data/ext/pg_query/include/postmaster/syslogger.h +0 -103
- data/ext/pg_query/include/postmaster/walwriter.h +0 -23
- data/ext/pg_query/include/regex/regex.h +0 -189
- data/ext/pg_query/include/replication/logicallauncher.h +0 -34
- data/ext/pg_query/include/replication/logicalproto.h +0 -274
- data/ext/pg_query/include/replication/logicalworker.h +0 -32
- data/ext/pg_query/include/replication/origin.h +0 -73
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -753
- data/ext/pg_query/include/replication/slot.h +0 -249
- data/ext/pg_query/include/replication/syncrep.h +0 -109
- data/ext/pg_query/include/replication/walreceiver.h +0 -478
- data/ext/pg_query/include/replication/walsender.h +0 -74
- data/ext/pg_query/include/rewrite/prs2lock.h +0 -46
- data/ext/pg_query/include/rewrite/rewriteHandler.h +0 -35
- data/ext/pg_query/include/rewrite/rewriteManip.h +0 -96
- data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
- data/ext/pg_query/include/src_backend_nodes_copyfuncs.funcs.c +0 -5321
- data/ext/pg_query/include/src_backend_nodes_equalfuncs.funcs.c +0 -3354
- data/ext/pg_query/include/storage/backendid.h +0 -37
- data/ext/pg_query/include/storage/block.h +0 -108
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -393
- data/ext/pg_query/include/storage/bufpage.h +0 -510
- data/ext/pg_query/include/storage/condition_variable.h +0 -73
- data/ext/pg_query/include/storage/dsm.h +0 -61
- data/ext/pg_query/include/storage/dsm_impl.h +0 -79
- data/ext/pg_query/include/storage/fd.h +0 -202
- data/ext/pg_query/include/storage/fileset.h +0 -40
- data/ext/pg_query/include/storage/ipc.h +0 -84
- data/ext/pg_query/include/storage/item.h +0 -19
- data/ext/pg_query/include/storage/itemid.h +0 -184
- data/ext/pg_query/include/storage/itemptr.h +0 -245
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -194
- data/ext/pg_query/include/storage/lmgr.h +0 -120
- data/ext/pg_query/include/storage/lock.h +0 -624
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -220
- data/ext/pg_query/include/storage/lwlocknames.h +0 -50
- data/ext/pg_query/include/storage/off.h +0 -57
- data/ext/pg_query/include/storage/pg_sema.h +0 -61
- data/ext/pg_query/include/storage/pg_shmem.h +0 -92
- data/ext/pg_query/include/storage/pmsignal.h +0 -105
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -466
- data/ext/pg_query/include/storage/procarray.h +0 -99
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -73
- data/ext/pg_query/include/storage/relfilelocator.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -867
- data/ext/pg_query/include/storage/sharedfileset.h +0 -37
- data/ext/pg_query/include/storage/shm_mq.h +0 -86
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -59
- data/ext/pg_query/include/storage/sinval.h +0 -153
- data/ext/pg_query/include/storage/sinvaladt.h +0 -45
- data/ext/pg_query/include/storage/smgr.h +0 -113
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -99
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -66
- data/ext/pg_query/include/tcop/cmdtag.h +0 -63
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -218
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -147
- data/ext/pg_query/include/tcop/fastpath.h +0 -20
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -94
- data/ext/pg_query/include/tcop/utility.h +0 -112
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -96
- data/ext/pg_query/include/utils/acl.h +0 -278
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -482
- data/ext/pg_query/include/utils/backend_progress.h +0 -45
- data/ext/pg_query/include/utils/backend_status.h +0 -342
- data/ext/pg_query/include/utils/builtins.h +0 -136
- data/ext/pg_query/include/utils/bytea.h +0 -28
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -118
- data/ext/pg_query/include/utils/datetime.h +0 -364
- data/ext/pg_query/include/utils/datum.h +0 -76
- data/ext/pg_query/include/utils/dsa.h +0 -127
- data/ext/pg_query/include/utils/elog.h +0 -545
- data/ext/pg_query/include/utils/errcodes.h +0 -354
- data/ext/pg_query/include/utils/expandeddatum.h +0 -170
- data/ext/pg_query/include/utils/expandedrecord.h +0 -241
- data/ext/pg_query/include/utils/float.h +0 -357
- data/ext/pg_query/include/utils/fmgroids.h +0 -3314
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2871
- data/ext/pg_query/include/utils/fmgrtab.h +0 -49
- data/ext/pg_query/include/utils/guc.h +0 -442
- data/ext/pg_query/include/utils/guc_hooks.h +0 -163
- data/ext/pg_query/include/utils/guc_tables.h +0 -322
- data/ext/pg_query/include/utils/hsearch.h +0 -153
- data/ext/pg_query/include/utils/inval.h +0 -68
- data/ext/pg_query/include/utils/logtape.h +0 -77
- data/ext/pg_query/include/utils/lsyscache.h +0 -212
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -186
- data/ext/pg_query/include/utils/memutils_internal.h +0 -136
- data/ext/pg_query/include/utils/memutils_memorychunk.h +0 -237
- data/ext/pg_query/include/utils/numeric.h +0 -105
- data/ext/pg_query/include/utils/palloc.h +0 -165
- data/ext/pg_query/include/utils/partcache.h +0 -103
- data/ext/pg_query/include/utils/pg_locale.h +0 -135
- data/ext/pg_query/include/utils/pgstat_internal.h +0 -814
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/plancache.h +0 -236
- data/ext/pg_query/include/utils/portal.h +0 -252
- data/ext/pg_query/include/utils/queryenvironment.h +0 -74
- data/ext/pg_query/include/utils/regproc.h +0 -39
- data/ext/pg_query/include/utils/rel.h +0 -712
- data/ext/pg_query/include/utils/relcache.h +0 -158
- data/ext/pg_query/include/utils/reltrigger.h +0 -81
- data/ext/pg_query/include/utils/resowner.h +0 -86
- data/ext/pg_query/include/utils/ruleutils.h +0 -52
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -181
- data/ext/pg_query/include/utils/snapshot.h +0 -219
- data/ext/pg_query/include/utils/sortsupport.h +0 -391
- data/ext/pg_query/include/utils/syscache.h +0 -227
- data/ext/pg_query/include/utils/timeout.h +0 -95
- data/ext/pg_query/include/utils/timestamp.h +0 -147
- data/ext/pg_query/include/utils/tuplesort.h +0 -445
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -209
- data/ext/pg_query/include/utils/varlena.h +0 -53
- data/ext/pg_query/include/utils/wait_event.h +0 -294
- data/ext/pg_query/include/utils/xml.h +0 -94
- data/ext/pg_query/include/varatt.h +0 -358
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2220
- 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/{commands → postgres/commands}/user.h +0 -0
- /data/ext/pg_query/include/{common → postgres/common}/unicode_nonspacing_table.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
- /data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/probes.h +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/ps_status.h +0 -0
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* - errstart
|
|
5
5
|
* - PG_exception_stack
|
|
6
6
|
* - write_stderr
|
|
7
|
-
* - err_gettext
|
|
8
7
|
* - in_error_recursion_trouble
|
|
9
8
|
* - error_context_stack
|
|
10
9
|
* - errordata_stack_depth
|
|
@@ -25,11 +24,14 @@
|
|
|
25
24
|
* - pg_re_throw
|
|
26
25
|
* - EmitErrorReport
|
|
27
26
|
* - emit_log_hook
|
|
27
|
+
* - saved_timeval_set
|
|
28
|
+
* - formatted_log_time
|
|
28
29
|
* - send_message_to_server_log
|
|
29
30
|
* - send_message_to_frontend
|
|
31
|
+
* - pgwin32_dispatch_queued_signals
|
|
30
32
|
* - set_stack_entry_location
|
|
31
33
|
* - matches_backtrace_functions
|
|
32
|
-
* -
|
|
34
|
+
* - backtrace_function_list
|
|
33
35
|
* - set_backtrace
|
|
34
36
|
* - FreeErrorDataContents
|
|
35
37
|
* - geterrcode
|
|
@@ -45,6 +47,9 @@
|
|
|
45
47
|
* - errcontext_msg
|
|
46
48
|
* - CopyErrorData
|
|
47
49
|
* - FlushErrorState
|
|
50
|
+
* - pg_signal_queue
|
|
51
|
+
* - pg_signal_mask
|
|
52
|
+
* - pgwin32_dispatch_queued_signals
|
|
48
53
|
*--------------------------------------------------------------------
|
|
49
54
|
*/
|
|
50
55
|
|
|
@@ -93,7 +98,7 @@
|
|
|
93
98
|
* overflow.)
|
|
94
99
|
*
|
|
95
100
|
*
|
|
96
|
-
* Portions Copyright (c) 1996-
|
|
101
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
97
102
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
98
103
|
*
|
|
99
104
|
*
|
|
@@ -116,13 +121,12 @@
|
|
|
116
121
|
#include <execinfo.h>
|
|
117
122
|
#endif
|
|
118
123
|
|
|
119
|
-
#include "access/transam.h"
|
|
120
124
|
#include "access/xact.h"
|
|
121
125
|
#include "libpq/libpq.h"
|
|
122
126
|
#include "libpq/pqformat.h"
|
|
123
127
|
#include "mb/pg_wchar.h"
|
|
124
|
-
#include "nodes/miscnodes.h"
|
|
125
128
|
#include "miscadmin.h"
|
|
129
|
+
#include "nodes/miscnodes.h"
|
|
126
130
|
#include "pgstat.h"
|
|
127
131
|
#include "postmaster/bgworker.h"
|
|
128
132
|
#include "postmaster/postmaster.h"
|
|
@@ -168,8 +172,8 @@ __thread emit_log_hook_type emit_log_hook = NULL;
|
|
|
168
172
|
|
|
169
173
|
|
|
170
174
|
|
|
171
|
-
/* Processed form of
|
|
172
|
-
static __thread char *
|
|
175
|
+
/* Processed form of backtrace_functions GUC */
|
|
176
|
+
static __thread char *backtrace_function_list;
|
|
173
177
|
|
|
174
178
|
|
|
175
179
|
#ifdef HAVE_SYSLOG
|
|
@@ -212,13 +216,15 @@ static __thread int recursion_depth = 0;
|
|
|
212
216
|
|
|
213
217
|
/*
|
|
214
218
|
* Saved timeval and buffers for formatted timestamps that might be used by
|
|
215
|
-
*
|
|
219
|
+
* log_line_prefix, csv logs and JSON logs.
|
|
216
220
|
*/
|
|
217
221
|
|
|
222
|
+
static __thread bool saved_timeval_set = false;
|
|
218
223
|
|
|
219
224
|
|
|
220
225
|
#define FORMATTED_TS_LEN 128
|
|
221
226
|
|
|
227
|
+
static __thread char formatted_log_time[FORMATTED_TS_LEN];
|
|
222
228
|
|
|
223
229
|
|
|
224
230
|
|
|
@@ -302,24 +308,8 @@ should_output_to_server(int elevel)
|
|
|
302
308
|
/*
|
|
303
309
|
* should_output_to_client --- should message of given elevel go to the client?
|
|
304
310
|
*/
|
|
305
|
-
static inline bool
|
|
306
|
-
|
|
307
|
-
{
|
|
308
|
-
if (whereToSendOutput == DestRemote && elevel != LOG_SERVER_ONLY)
|
|
309
|
-
{
|
|
310
|
-
/*
|
|
311
|
-
* client_min_messages is honored only after we complete the
|
|
312
|
-
* authentication handshake. This is required both for security
|
|
313
|
-
* reasons and because many clients can't handle NOTICE messages
|
|
314
|
-
* during authentication.
|
|
315
|
-
*/
|
|
316
|
-
if (ClientAuthInProgress)
|
|
317
|
-
return (elevel >= ERROR);
|
|
318
|
-
else
|
|
319
|
-
return (elevel >= client_min_messages || elevel == INFO);
|
|
320
|
-
}
|
|
321
|
-
return false;
|
|
322
|
-
}
|
|
311
|
+
static inline bool should_output_to_client(int elevel) { return false; }
|
|
312
|
+
|
|
323
313
|
|
|
324
314
|
|
|
325
315
|
/*
|
|
@@ -352,18 +342,9 @@ in_error_recursion_trouble(void)
|
|
|
352
342
|
* message, since there's a significant probability that that's exactly
|
|
353
343
|
* what's causing the recursion.
|
|
354
344
|
*/
|
|
355
|
-
static inline const char *
|
|
356
|
-
err_gettext(const char *str)
|
|
357
|
-
{
|
|
358
345
|
#ifdef ENABLE_NLS
|
|
359
|
-
if (in_error_recursion_trouble())
|
|
360
|
-
return str;
|
|
361
|
-
else
|
|
362
|
-
return gettext(str);
|
|
363
346
|
#else
|
|
364
|
-
return str;
|
|
365
347
|
#endif
|
|
366
|
-
}
|
|
367
348
|
|
|
368
349
|
/*
|
|
369
350
|
* errstart_cold
|
|
@@ -877,13 +858,13 @@ matches_backtrace_functions(const char *funcname)
|
|
|
877
858
|
{
|
|
878
859
|
const char *p;
|
|
879
860
|
|
|
880
|
-
if (!
|
|
861
|
+
if (!backtrace_function_list || funcname == NULL || funcname[0] == '\0')
|
|
881
862
|
return false;
|
|
882
863
|
|
|
883
|
-
p =
|
|
864
|
+
p = backtrace_function_list;
|
|
884
865
|
for (;;)
|
|
885
866
|
{
|
|
886
|
-
if (*p == '\0') /* end of
|
|
867
|
+
if (*p == '\0') /* end of backtrace_function_list */
|
|
887
868
|
break;
|
|
888
869
|
|
|
889
870
|
if (strcmp(funcname, p) == 0)
|
|
@@ -925,8 +906,6 @@ errcode(int sqlerrcode)
|
|
|
925
906
|
*/
|
|
926
907
|
#ifdef EROFS
|
|
927
908
|
#endif
|
|
928
|
-
#if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST) /* same code on AIX */
|
|
929
|
-
#endif
|
|
930
909
|
|
|
931
910
|
/*
|
|
932
911
|
* errcode_for_socket_access --- add SQLSTATE error code to the current error
|
|
@@ -1387,6 +1366,14 @@ geterrcode(void)
|
|
|
1387
1366
|
return edata->sqlerrcode;
|
|
1388
1367
|
}
|
|
1389
1368
|
|
|
1369
|
+
/*
|
|
1370
|
+
* geterrlevel --- return the currently set error level
|
|
1371
|
+
*
|
|
1372
|
+
* This is only intended for use in error callback subroutines, since there
|
|
1373
|
+
* is no other place outside elog.c where the concept is meaningful.
|
|
1374
|
+
*/
|
|
1375
|
+
|
|
1376
|
+
|
|
1390
1377
|
/*
|
|
1391
1378
|
* geterrposition --- return the currently set error position (0 if none)
|
|
1392
1379
|
*
|
|
@@ -1465,6 +1452,14 @@ EmitErrorReport(void)
|
|
|
1465
1452
|
CHECK_STACK_DEPTH();
|
|
1466
1453
|
oldcontext = MemoryContextSwitchTo(edata->assoc_context);
|
|
1467
1454
|
|
|
1455
|
+
/*
|
|
1456
|
+
* Reset the formatted timestamp fields before emitting any logs. This
|
|
1457
|
+
* includes all the log destinations and emit_log_hook, as the latter
|
|
1458
|
+
* could use log_line_prefix or the formatted timestamps.
|
|
1459
|
+
*/
|
|
1460
|
+
saved_timeval_set = false;
|
|
1461
|
+
formatted_log_time[0] = '\0';
|
|
1462
|
+
|
|
1468
1463
|
/*
|
|
1469
1464
|
* Call hook before sending message to log. The hook function is allowed
|
|
1470
1465
|
* to turn off edata->output_to_server, so we must recheck that afterward.
|
|
@@ -1524,7 +1519,21 @@ CopyErrorData(void)
|
|
|
1524
1519
|
newedata = (ErrorData *) palloc(sizeof(ErrorData));
|
|
1525
1520
|
memcpy(newedata, edata, sizeof(ErrorData));
|
|
1526
1521
|
|
|
1527
|
-
/*
|
|
1522
|
+
/*
|
|
1523
|
+
* Make copies of separately-allocated strings. Note that we copy even
|
|
1524
|
+
* theoretically-constant strings such as filename. This is because those
|
|
1525
|
+
* could point into JIT-created code segments that might get unloaded at
|
|
1526
|
+
* transaction cleanup. In some cases we need the copied ErrorData to
|
|
1527
|
+
* survive transaction boundaries, so we'd better copy those strings too.
|
|
1528
|
+
*/
|
|
1529
|
+
if (newedata->filename)
|
|
1530
|
+
newedata->filename = pstrdup(newedata->filename);
|
|
1531
|
+
if (newedata->funcname)
|
|
1532
|
+
newedata->funcname = pstrdup(newedata->funcname);
|
|
1533
|
+
if (newedata->domain)
|
|
1534
|
+
newedata->domain = pstrdup(newedata->domain);
|
|
1535
|
+
if (newedata->context_domain)
|
|
1536
|
+
newedata->context_domain = pstrdup(newedata->context_domain);
|
|
1528
1537
|
if (newedata->message)
|
|
1529
1538
|
newedata->message = pstrdup(newedata->message);
|
|
1530
1539
|
if (newedata->detail)
|
|
@@ -1537,6 +1546,8 @@ CopyErrorData(void)
|
|
|
1537
1546
|
newedata->context = pstrdup(newedata->context);
|
|
1538
1547
|
if (newedata->backtrace)
|
|
1539
1548
|
newedata->backtrace = pstrdup(newedata->backtrace);
|
|
1549
|
+
if (newedata->message_id)
|
|
1550
|
+
newedata->message_id = pstrdup(newedata->message_id);
|
|
1540
1551
|
if (newedata->schema_name)
|
|
1541
1552
|
newedata->schema_name = pstrdup(newedata->schema_name);
|
|
1542
1553
|
if (newedata->table_name)
|
|
@@ -1618,7 +1629,7 @@ FlushErrorState(void)
|
|
|
1618
1629
|
errordata_stack_depth = -1;
|
|
1619
1630
|
recursion_depth = 0;
|
|
1620
1631
|
/* Delete all data in ErrorContext */
|
|
1621
|
-
|
|
1632
|
+
MemoryContextReset(ErrorContext);
|
|
1622
1633
|
}
|
|
1623
1634
|
|
|
1624
1635
|
/*
|
|
@@ -1766,108 +1777,12 @@ pg_re_throw(void)
|
|
|
1766
1777
|
* interfaces (e.g. CreateFileA()) expect string arguments in this encoding.
|
|
1767
1778
|
* Every process in a given system will find the same value at all times.
|
|
1768
1779
|
*/
|
|
1769
|
-
static int
|
|
1770
|
-
GetACPEncoding(void)
|
|
1771
|
-
{
|
|
1772
|
-
static int encoding = -2;
|
|
1773
1780
|
|
|
1774
|
-
if (encoding == -2)
|
|
1775
|
-
encoding = pg_codepage_to_encoding(GetACP());
|
|
1776
|
-
|
|
1777
|
-
return encoding;
|
|
1778
|
-
}
|
|
1779
1781
|
|
|
1780
1782
|
/*
|
|
1781
1783
|
* Write a message line to the windows event log
|
|
1782
1784
|
*/
|
|
1783
|
-
static void
|
|
1784
|
-
write_eventlog(int level, const char *line, int len)
|
|
1785
|
-
{
|
|
1786
|
-
WCHAR *utf16;
|
|
1787
|
-
int eventlevel = EVENTLOG_ERROR_TYPE;
|
|
1788
|
-
static HANDLE evtHandle = INVALID_HANDLE_VALUE;
|
|
1789
|
-
|
|
1790
|
-
if (evtHandle == INVALID_HANDLE_VALUE)
|
|
1791
|
-
{
|
|
1792
|
-
evtHandle = RegisterEventSource(NULL,
|
|
1793
|
-
event_source ? event_source : DEFAULT_EVENT_SOURCE);
|
|
1794
|
-
if (evtHandle == NULL)
|
|
1795
|
-
{
|
|
1796
|
-
evtHandle = INVALID_HANDLE_VALUE;
|
|
1797
|
-
return;
|
|
1798
|
-
}
|
|
1799
|
-
}
|
|
1800
1785
|
|
|
1801
|
-
switch (level)
|
|
1802
|
-
{
|
|
1803
|
-
case DEBUG5:
|
|
1804
|
-
case DEBUG4:
|
|
1805
|
-
case DEBUG3:
|
|
1806
|
-
case DEBUG2:
|
|
1807
|
-
case DEBUG1:
|
|
1808
|
-
case LOG:
|
|
1809
|
-
case LOG_SERVER_ONLY:
|
|
1810
|
-
case INFO:
|
|
1811
|
-
case NOTICE:
|
|
1812
|
-
eventlevel = EVENTLOG_INFORMATION_TYPE;
|
|
1813
|
-
break;
|
|
1814
|
-
case WARNING:
|
|
1815
|
-
case WARNING_CLIENT_ONLY:
|
|
1816
|
-
eventlevel = EVENTLOG_WARNING_TYPE;
|
|
1817
|
-
break;
|
|
1818
|
-
case ERROR:
|
|
1819
|
-
case FATAL:
|
|
1820
|
-
case PANIC:
|
|
1821
|
-
default:
|
|
1822
|
-
eventlevel = EVENTLOG_ERROR_TYPE;
|
|
1823
|
-
break;
|
|
1824
|
-
}
|
|
1825
|
-
|
|
1826
|
-
/*
|
|
1827
|
-
* If message character encoding matches the encoding expected by
|
|
1828
|
-
* ReportEventA(), call it to avoid the hazards of conversion. Otherwise,
|
|
1829
|
-
* try to convert the message to UTF16 and write it with ReportEventW().
|
|
1830
|
-
* Fall back on ReportEventA() if conversion failed.
|
|
1831
|
-
*
|
|
1832
|
-
* Since we palloc the structure required for conversion, also fall
|
|
1833
|
-
* through to writing unconverted if we have not yet set up
|
|
1834
|
-
* CurrentMemoryContext.
|
|
1835
|
-
*
|
|
1836
|
-
* Also verify that we are not on our way into error recursion trouble due
|
|
1837
|
-
* to error messages thrown deep inside pgwin32_message_to_UTF16().
|
|
1838
|
-
*/
|
|
1839
|
-
if (!in_error_recursion_trouble() &&
|
|
1840
|
-
CurrentMemoryContext != NULL &&
|
|
1841
|
-
GetMessageEncoding() != GetACPEncoding())
|
|
1842
|
-
{
|
|
1843
|
-
utf16 = pgwin32_message_to_UTF16(line, len, NULL);
|
|
1844
|
-
if (utf16)
|
|
1845
|
-
{
|
|
1846
|
-
ReportEventW(evtHandle,
|
|
1847
|
-
eventlevel,
|
|
1848
|
-
0,
|
|
1849
|
-
0, /* All events are Id 0 */
|
|
1850
|
-
NULL,
|
|
1851
|
-
1,
|
|
1852
|
-
0,
|
|
1853
|
-
(LPCWSTR *) &utf16,
|
|
1854
|
-
NULL);
|
|
1855
|
-
/* XXX Try ReportEventA() when ReportEventW() fails? */
|
|
1856
|
-
|
|
1857
|
-
pfree(utf16);
|
|
1858
|
-
return;
|
|
1859
|
-
}
|
|
1860
|
-
}
|
|
1861
|
-
ReportEventA(evtHandle,
|
|
1862
|
-
eventlevel,
|
|
1863
|
-
0,
|
|
1864
|
-
0, /* All events are Id 0 */
|
|
1865
|
-
NULL,
|
|
1866
|
-
1,
|
|
1867
|
-
0,
|
|
1868
|
-
&line,
|
|
1869
|
-
NULL);
|
|
1870
|
-
}
|
|
1871
1786
|
#endif /* WIN32 */
|
|
1872
1787
|
|
|
1873
1788
|
#ifdef WIN32
|
|
@@ -2012,67 +1927,22 @@ static void send_message_to_frontend(ErrorData *edata) {}
|
|
|
2012
1927
|
* not available). Used before ereport/elog can be used
|
|
2013
1928
|
* safely (memory context, GUC load etc)
|
|
2014
1929
|
*/
|
|
1930
|
+
|
|
2015
1931
|
void
|
|
2016
1932
|
write_stderr(const char *fmt,...)
|
|
2017
1933
|
{
|
|
2018
|
-
va_list
|
|
2019
|
-
|
|
2020
|
-
#ifdef WIN32
|
|
2021
|
-
char errbuf[2048]; /* Arbitrary size? */
|
|
2022
|
-
#endif
|
|
2023
|
-
|
|
2024
|
-
fmt = _(fmt);
|
|
2025
|
-
|
|
1934
|
+
va_list ap;
|
|
2026
1935
|
va_start(ap, fmt);
|
|
2027
|
-
#ifndef WIN32
|
|
2028
|
-
/* On Unix, we just fprintf to stderr */
|
|
2029
1936
|
vfprintf(stderr, fmt, ap);
|
|
2030
1937
|
fflush(stderr);
|
|
2031
|
-
#else
|
|
2032
|
-
vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
|
|
2033
|
-
|
|
2034
|
-
/*
|
|
2035
|
-
* On Win32, we print to stderr if running on a console, or write to
|
|
2036
|
-
* eventlog if running as a service
|
|
2037
|
-
*/
|
|
2038
|
-
if (pgwin32_is_service()) /* Running as a service */
|
|
2039
|
-
{
|
|
2040
|
-
write_eventlog(ERROR, errbuf, strlen(errbuf));
|
|
2041
|
-
}
|
|
2042
|
-
else
|
|
2043
|
-
{
|
|
2044
|
-
/* Not running as service, write to stderr */
|
|
2045
|
-
write_console(errbuf, strlen(errbuf));
|
|
2046
|
-
fflush(stderr);
|
|
2047
|
-
}
|
|
2048
|
-
#endif
|
|
2049
1938
|
va_end(ap);
|
|
2050
1939
|
}
|
|
2051
1940
|
|
|
2052
1941
|
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
* be used to safely emit a message from a signal handler.
|
|
2056
|
-
*
|
|
2057
|
-
* TODO: It is likely possible to safely do a limited amount of string
|
|
2058
|
-
* interpolation (e.g., %s and %d), but that is not presently supported.
|
|
2059
|
-
*/
|
|
2060
|
-
|
|
2061
|
-
|
|
1942
|
+
#ifdef WIN32
|
|
1943
|
+
__thread volatile int pg_signal_queue;
|
|
2062
1944
|
|
|
2063
|
-
|
|
2064
|
-
* Adjust the level of a recovery-related message per trace_recovery_messages.
|
|
2065
|
-
*
|
|
2066
|
-
* The argument is the default log level of the message, eg, DEBUG2. (This
|
|
2067
|
-
* should only be applied to DEBUGn log messages, otherwise it's a no-op.)
|
|
2068
|
-
* If the level is >= trace_recovery_messages, we return LOG, causing the
|
|
2069
|
-
* message to be logged unconditionally (for most settings of
|
|
2070
|
-
* log_min_messages). Otherwise, we return the argument unchanged.
|
|
2071
|
-
* The message will then be shown based on the setting of log_min_messages.
|
|
2072
|
-
*
|
|
2073
|
-
* Intention is to keep this for at least the whole of the 9.0 production
|
|
2074
|
-
* release, so we can more easily diagnose production problems in the field.
|
|
2075
|
-
* It should go away eventually, though, because it's an ugly and
|
|
2076
|
-
* hard-to-explain kluge.
|
|
2077
|
-
*/
|
|
1945
|
+
__thread int pg_signal_mask;
|
|
2078
1946
|
|
|
1947
|
+
void pgwin32_dispatch_queued_signals(void) {}
|
|
1948
|
+
#endif
|
|
@@ -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-2024, PostgreSQL Global Development Group
|
|
13
13
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
14
14
|
*
|
|
15
15
|
*
|
|
@@ -210,7 +210,9 @@ struct fmgr_security_definer_cache
|
|
|
210
210
|
{
|
|
211
211
|
FmgrInfo flinfo; /* lookup info for target function */
|
|
212
212
|
Oid userid; /* userid to set, or InvalidOid */
|
|
213
|
-
|
|
213
|
+
List *configNames; /* GUC names to set, or NIL */
|
|
214
|
+
List *configHandles; /* GUC handles to set, or NIL */
|
|
215
|
+
List *configValues; /* GUC values to set, or NIL */
|
|
214
216
|
Datum arg; /* passthrough argument for plugin modules */
|
|
215
217
|
};
|
|
216
218
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* globals.c
|
|
14
14
|
* global variable declarations
|
|
15
15
|
*
|
|
16
|
-
* Portions Copyright (c) 1996-
|
|
16
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
17
17
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
18
18
|
*
|
|
19
19
|
*
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
#include "libpq/libpq-be.h"
|
|
33
33
|
#include "libpq/pqcomm.h"
|
|
34
34
|
#include "miscadmin.h"
|
|
35
|
-
#include "storage/
|
|
35
|
+
#include "storage/procnumber.h"
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
@@ -48,6 +48,7 @@ __thread volatile sig_atomic_t InterruptPending = false;
|
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
|
|
51
|
+
|
|
51
52
|
__thread volatile uint32 InterruptHoldoffCount = 0;
|
|
52
53
|
|
|
53
54
|
__thread volatile uint32 QueryCancelHoldoffCount = 0;
|
|
@@ -62,6 +63,7 @@ __thread volatile uint32 CritSectionCount = 0;
|
|
|
62
63
|
|
|
63
64
|
|
|
64
65
|
|
|
66
|
+
|
|
65
67
|
/*
|
|
66
68
|
* MyLatch points to the latch that should be used for signal handling by the
|
|
67
69
|
* current process. It will either point to a process local latch if the
|
|
@@ -91,7 +93,7 @@ __thread volatile uint32 CritSectionCount = 0;
|
|
|
91
93
|
/* full path to lib directory */
|
|
92
94
|
|
|
93
95
|
#ifdef EXEC_BACKEND
|
|
94
|
-
|
|
96
|
+
/* full path to backend */
|
|
95
97
|
|
|
96
98
|
/* note: currently this is not valid in backend processes */
|
|
97
99
|
#endif
|
|
@@ -104,6 +106,8 @@ char postgres_exec_path[MAXPGPATH]; /* full path to backend */
|
|
|
104
106
|
|
|
105
107
|
|
|
106
108
|
|
|
109
|
+
|
|
110
|
+
|
|
107
111
|
/*
|
|
108
112
|
* DatabasePath is the path (relative to DataDir) of my database's
|
|
109
113
|
* primary directory, ie, its directory in the default tablespace.
|
|
@@ -127,7 +131,6 @@ char postgres_exec_path[MAXPGPATH]; /* full path to backend */
|
|
|
127
131
|
|
|
128
132
|
|
|
129
133
|
|
|
130
|
-
|
|
131
134
|
__thread bool ExitOnAnyError = false;
|
|
132
135
|
|
|
133
136
|
|
|
@@ -169,3 +172,12 @@ __thread bool ExitOnAnyError = false;
|
|
|
169
172
|
|
|
170
173
|
/* working state for vacuum */
|
|
171
174
|
|
|
175
|
+
|
|
176
|
+
/* configurable SLRU buffer sizes */
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
@@ -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-2024, PostgreSQL Global Development Group
|
|
49
51
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
50
52
|
*
|
|
51
53
|
*
|
|
@@ -59,9 +61,8 @@
|
|
|
59
61
|
#include "access/xact.h"
|
|
60
62
|
#include "catalog/namespace.h"
|
|
61
63
|
#include "mb/pg_wchar.h"
|
|
62
|
-
#include "utils/
|
|
64
|
+
#include "utils/fmgrprotos.h"
|
|
63
65
|
#include "utils/memutils.h"
|
|
64
|
-
#include "utils/syscache.h"
|
|
65
66
|
#include "varatt.h"
|
|
66
67
|
|
|
67
68
|
/*
|
|
@@ -105,6 +106,7 @@ static __thread const pg_enc2name *ClientEncoding = &pg_enc2name_tbl[PG_SQL_ASCI
|
|
|
105
106
|
|
|
106
107
|
static __thread const pg_enc2name *DatabaseEncoding = &pg_enc2name_tbl[PG_SQL_ASCII];
|
|
107
108
|
|
|
109
|
+
static __thread const pg_enc2name *MessageEncoding = &pg_enc2name_tbl[PG_SQL_ASCII];
|
|
108
110
|
|
|
109
111
|
|
|
110
112
|
/*
|
|
@@ -493,24 +495,18 @@ static bool
|
|
|
493
495
|
raw_pg_bind_textdomain_codeset(const char *domainname, int encoding)
|
|
494
496
|
{
|
|
495
497
|
bool elog_ok = (CurrentMemoryContext != NULL);
|
|
496
|
-
int i;
|
|
497
498
|
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
if (pg_enc2gettext_tbl[i].encoding == encoding)
|
|
501
|
-
{
|
|
502
|
-
if (bind_textdomain_codeset(domainname,
|
|
503
|
-
pg_enc2gettext_tbl[i].name) != NULL)
|
|
504
|
-
return true;
|
|
499
|
+
if (!PG_VALID_ENCODING(encoding) || pg_enc2gettext_tbl[encoding] == NULL)
|
|
500
|
+
return false;
|
|
505
501
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
write_stderr("bind_textdomain_codeset failed");
|
|
502
|
+
if (bind_textdomain_codeset(domainname,
|
|
503
|
+
pg_enc2gettext_tbl[encoding]) != NULL)
|
|
504
|
+
return true;
|
|
510
505
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
506
|
+
if (elog_ok)
|
|
507
|
+
elog(LOG, "bind_textdomain_codeset failed");
|
|
508
|
+
else
|
|
509
|
+
write_stderr("bind_textdomain_codeset failed");
|
|
514
510
|
|
|
515
511
|
return false;
|
|
516
512
|
}
|
|
@@ -595,7 +591,11 @@ GetDatabaseEncodingName(void)
|
|
|
595
591
|
* not attached to a database, and under a database encoding lacking iconv
|
|
596
592
|
* support (MULE_INTERNAL).
|
|
597
593
|
*/
|
|
598
|
-
|
|
594
|
+
int
|
|
595
|
+
GetMessageEncoding(void)
|
|
596
|
+
{
|
|
597
|
+
return MessageEncoding->encoding;
|
|
598
|
+
}
|
|
599
599
|
|
|
600
600
|
|
|
601
601
|
/*
|
|
@@ -770,68 +770,6 @@ report_invalid_encoding(int encoding, const char *mbstr, int len)
|
|
|
770
770
|
* null. Returns NULL iff failed. Before MessageEncoding initialization, "str"
|
|
771
771
|
* should be ASCII-only; this will function as though MessageEncoding is UTF8.
|
|
772
772
|
*/
|
|
773
|
-
WCHAR *
|
|
774
|
-
pgwin32_message_to_UTF16(const char *str, int len, int *utf16len)
|
|
775
|
-
{
|
|
776
|
-
int msgenc = GetMessageEncoding();
|
|
777
|
-
WCHAR *utf16;
|
|
778
|
-
int dstlen;
|
|
779
|
-
UINT codepage;
|
|
780
773
|
|
|
781
|
-
if (msgenc == PG_SQL_ASCII)
|
|
782
|
-
/* No conversion is possible, and SQL_ASCII is never utf16. */
|
|
783
|
-
return NULL;
|
|
784
|
-
|
|
785
|
-
codepage = pg_enc2name_tbl[msgenc].codepage;
|
|
786
|
-
|
|
787
|
-
/*
|
|
788
|
-
* Use MultiByteToWideChar directly if there is a corresponding codepage,
|
|
789
|
-
* or double conversion through UTF8 if not. Double conversion is needed,
|
|
790
|
-
* for example, in an ENCODING=LATIN8, LC_CTYPE=C database.
|
|
791
|
-
*/
|
|
792
|
-
if (codepage != 0)
|
|
793
|
-
{
|
|
794
|
-
utf16 = (WCHAR *) palloc(sizeof(WCHAR) * (len + 1));
|
|
795
|
-
dstlen = MultiByteToWideChar(codepage, 0, str, len, utf16, len);
|
|
796
|
-
utf16[dstlen] = (WCHAR) 0;
|
|
797
|
-
}
|
|
798
|
-
else
|
|
799
|
-
{
|
|
800
|
-
char *utf8;
|
|
801
|
-
|
|
802
|
-
/*
|
|
803
|
-
* XXX pg_do_encoding_conversion() requires a transaction. In the
|
|
804
|
-
* absence of one, hope for the input to be valid UTF8.
|
|
805
|
-
*/
|
|
806
|
-
if (IsTransactionState())
|
|
807
|
-
{
|
|
808
|
-
utf8 = (char *) pg_do_encoding_conversion((unsigned char *) str,
|
|
809
|
-
len,
|
|
810
|
-
msgenc,
|
|
811
|
-
PG_UTF8);
|
|
812
|
-
if (utf8 != str)
|
|
813
|
-
len = strlen(utf8);
|
|
814
|
-
}
|
|
815
|
-
else
|
|
816
|
-
utf8 = (char *) str;
|
|
817
|
-
|
|
818
|
-
utf16 = (WCHAR *) palloc(sizeof(WCHAR) * (len + 1));
|
|
819
|
-
dstlen = MultiByteToWideChar(CP_UTF8, 0, utf8, len, utf16, len);
|
|
820
|
-
utf16[dstlen] = (WCHAR) 0;
|
|
821
|
-
|
|
822
|
-
if (utf8 != str)
|
|
823
|
-
pfree(utf8);
|
|
824
|
-
}
|
|
825
|
-
|
|
826
|
-
if (dstlen == 0 && len > 0)
|
|
827
|
-
{
|
|
828
|
-
pfree(utf16);
|
|
829
|
-
return NULL; /* error */
|
|
830
|
-
}
|
|
831
|
-
|
|
832
|
-
if (utf16len)
|
|
833
|
-
*utf16len = dstlen;
|
|
834
|
-
return utf16;
|
|
835
|
-
}
|
|
836
774
|
|
|
837
775
|
#endif /* WIN32 */
|