pg_query 2.2.0 → 6.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 +86 -0
- data/README.md +57 -31
- data/Rakefile +5 -6
- data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
- data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
- data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/extconf.rb +33 -9
- data/ext/pg_query/include/pg_query.h +30 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +839 -290
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +638 -481
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +6786 -4193
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +450 -330
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1489 -1044
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +157 -118
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1933 -1410
- data/ext/pg_query/include/postgres/access/amapi.h +303 -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 +246 -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/rmgr.h +62 -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 +218 -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 +2110 -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 +418 -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 +93 -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 +97 -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/user.h +43 -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 +407 -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/common/unicode_nonspacing_table.h +326 -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 +361 -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 +793 -0
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
- data/ext/pg_query/include/postgres/miscadmin.h +527 -0
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
- data/ext/pg_query/include/postgres/nodes/execnodes.h +2855 -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 +3438 -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 +2339 -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 +105 -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 +985 -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 +582 -0
- data/ext/pg_query/include/postgres/port.h +555 -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/postgres_ext.h +73 -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 +734 -0
- data/ext/pg_query/include/postgres/replication/slot.h +289 -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 +61 -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 +488 -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 +130 -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 +231 -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 +827 -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/probes.h +114 -0
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -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 +136 -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 +8077 -6217
- data/ext/pg_query/include/protobuf/pg_query.pb.h +132024 -88124
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +24028 -17173
- data/ext/pg_query/pg_query_deparse.c +1 -9902
- data/ext/pg_query/pg_query_fingerprint.c +42 -18
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -25
- data/ext/pg_query/pg_query_normalize.c +44 -3
- data/ext/pg_query/pg_query_outfuncs_json.c +62 -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 +19 -18
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +45 -10
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_scan.c +4 -3
- data/ext/pg_query/pg_query_split.c +6 -5
- data/ext/pg_query/postgres_deparse.c +11496 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +262 -71
- data/ext/pg_query/src_backend_catalog_pg_proc.c +3 -2
- data/ext/pg_query/src_backend_commands_define.c +12 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +142 -156
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +100 -5881
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3831
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +89 -18
- data/ext/pg_query/src_backend_nodes_makefuncs.c +138 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +433 -132
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +45255 -38885
- data/ext/pg_query/src_backend_parser_parser.c +53 -8
- data/ext/pg_query/src_backend_parser_scan.c +6999 -3438
- data/ext/pg_query/src_backend_parser_scansup.c +5 -28
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +156 -114
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +14 -2
- 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 +488 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +247 -34
- data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
- data/ext/pg_query/src_backend_utils_error_elog.c +543 -343
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +47 -18
- data/ext/pg_query/src_backend_utils_init_globals.c +22 -7
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +84 -148
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +502 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +166 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +708 -499
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1115 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +710 -218
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1079 -0
- data/ext/pg_query/src_common_encnames.c +46 -44
- data/ext/pg_query/src_common_hashfn.c +3 -3
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +602 -510
- 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 +21 -4
- data/ext/pg_query/src_common_wchar.c +754 -178
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +143 -24
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1295 -1255
- 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 +20 -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 +283 -54
- data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +56 -39
- data/ext/pg_query/src_port_strerror.c +9 -21
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/filter_columns.rb +1 -1
- data/lib/pg_query/fingerprint.rb +10 -9
- data/lib/pg_query/node.rb +18 -13
- data/lib/pg_query/param_refs.rb +3 -3
- data/lib/pg_query/parse.rb +25 -15
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +181 -3038
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +55 -8
- data/lib/pg_query/truncate.rb +19 -21
- data/lib/pg_query/version.rb +1 -1
- metadata +447 -436
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -246
- data/ext/pg_query/include/access/attmap.h +0 -52
- data/ext/pg_query/include/access/attnum.h +0 -64
- data/ext/pg_query/include/access/clog.h +0 -61
- data/ext/pg_query/include/access/commit_ts.h +0 -77
- data/ext/pg_query/include/access/detoast.h +0 -92
- data/ext/pg_query/include/access/genam.h +0 -228
- data/ext/pg_query/include/access/gin.h +0 -78
- data/ext/pg_query/include/access/htup.h +0 -89
- data/ext/pg_query/include/access/htup_details.h +0 -819
- data/ext/pg_query/include/access/itup.h +0 -161
- 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 -176
- data/ext/pg_query/include/access/rmgr.h +0 -35
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -58
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -83
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -27
- data/ext/pg_query/include/access/tableam.h +0 -1825
- data/ext/pg_query/include/access/transam.h +0 -265
- data/ext/pg_query/include/access/tupconvert.h +0 -51
- data/ext/pg_query/include/access/tupdesc.h +0 -154
- data/ext/pg_query/include/access/tupmacs.h +0 -247
- data/ext/pg_query/include/access/twophase.h +0 -63
- data/ext/pg_query/include/access/xact.h +0 -469
- data/ext/pg_query/include/access/xlog.h +0 -398
- data/ext/pg_query/include/access/xlog_internal.h +0 -339
- data/ext/pg_query/include/access/xlogdefs.h +0 -109
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/access/xlogreader.h +0 -337
- data/ext/pg_query/include/access/xlogrecord.h +0 -227
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/c.h +0 -1334
- data/ext/pg_query/include/catalog/catalog.h +0 -42
- data/ext/pg_query/include/catalog/catversion.h +0 -58
- data/ext/pg_query/include/catalog/dependency.h +0 -277
- data/ext/pg_query/include/catalog/genbki.h +0 -64
- data/ext/pg_query/include/catalog/index.h +0 -199
- data/ext/pg_query/include/catalog/indexing.h +0 -366
- data/ext/pg_query/include/catalog/namespace.h +0 -188
- data/ext/pg_query/include/catalog/objectaccess.h +0 -197
- data/ext/pg_query/include/catalog/objectaddress.h +0 -84
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -176
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -77
- data/ext/pg_query/include/catalog/pg_am.h +0 -60
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -204
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_authid.h +0 -58
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_class.h +0 -200
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -103
- data/ext/pg_query/include/catalog/pg_collation.h +0 -73
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -247
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -67
- data/ext/pg_query/include/catalog/pg_control.h +0 -252
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -72
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_depend.h +0 -73
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -51
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_index.h +0 -80
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -56
- data/ext/pg_query/include/catalog/pg_language.h +0 -67
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -39
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -59
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -85
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_operator.h +0 -104
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -60
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -63
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_proc.h +0 -211
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -99
- data/ext/pg_query/include/catalog/pg_publication.h +0 -118
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -57
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -29
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -275
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -194
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -74
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -40
- data/ext/pg_query/include/catalog/pg_transform.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -137
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -50
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -54
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -57
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -48
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_type.h +0 -373
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -285
- data/ext/pg_query/include/catalog/storage.h +0 -48
- data/ext/pg_query/include/commands/async.h +0 -54
- data/ext/pg_query/include/commands/dbcommands.h +0 -35
- data/ext/pg_query/include/commands/defrem.h +0 -173
- data/ext/pg_query/include/commands/event_trigger.h +0 -88
- data/ext/pg_query/include/commands/explain.h +0 -127
- 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 -285
- data/ext/pg_query/include/commands/user.h +0 -37
- data/ext/pg_query/include/commands/vacuum.h +0 -293
- data/ext/pg_query/include/commands/variable.h +0 -38
- 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/ip.h +0 -37
- data/ext/pg_query/include/common/keywords.h +0 -33
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/relpath.h +0 -90
- data/ext/pg_query/include/common/string.h +0 -19
- data/ext/pg_query/include/common/unicode_combining_table.h +0 -196
- data/ext/pg_query/include/datatype/timestamp.h +0 -197
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -620
- data/ext/pg_query/include/executor/functions.h +0 -41
- data/ext/pg_query/include/executor/instrument.h +0 -101
- data/ext/pg_query/include/executor/spi.h +0 -175
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -487
- data/ext/pg_query/include/fmgr.h +0 -775
- data/ext/pg_query/include/funcapi.h +0 -348
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/jit/jit.h +0 -105
- data/ext/pg_query/include/kwlist_d.h +0 -1072
- data/ext/pg_query/include/lib/ilist.h +0 -727
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1059
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -29
- data/ext/pg_query/include/libpq/crypt.h +0 -46
- data/ext/pg_query/include/libpq/hba.h +0 -140
- data/ext/pg_query/include/libpq/libpq-be.h +0 -326
- data/ext/pg_query/include/libpq/libpq.h +0 -134
- data/ext/pg_query/include/libpq/pqcomm.h +0 -208
- data/ext/pg_query/include/libpq/pqformat.h +0 -210
- data/ext/pg_query/include/libpq/pqsignal.h +0 -42
- data/ext/pg_query/include/mb/pg_wchar.h +0 -673
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -489
- data/ext/pg_query/include/nodes/bitmapset.h +0 -122
- data/ext/pg_query/include/nodes/execnodes.h +0 -2523
- data/ext/pg_query/include/nodes/extensible.h +0 -160
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -108
- data/ext/pg_query/include/nodes/memnodes.h +0 -108
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
- data/ext/pg_query/include/nodes/nodes.h +0 -842
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -3580
- data/ext/pg_query/include/nodes/pathnodes.h +0 -2557
- data/ext/pg_query/include/nodes/pg_list.h +0 -606
- data/ext/pg_query/include/nodes/plannodes.h +0 -1266
- data/ext/pg_query/include/nodes/primnodes.h +0 -1541
- data/ext/pg_query/include/nodes/print.h +0 -34
- data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
- data/ext/pg_query/include/nodes/value.h +0 -61
- data/ext/pg_query/include/optimizer/cost.h +0 -206
- data/ext/pg_query/include/optimizer/geqo.h +0 -88
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -194
- data/ext/pg_query/include/optimizer/paths.h +0 -257
- data/ext/pg_query/include/optimizer/planmain.h +0 -119
- data/ext/pg_query/include/parser/analyze.h +0 -49
- data/ext/pg_query/include/parser/gram.h +0 -1067
- data/ext/pg_query/include/parser/gramparse.h +0 -75
- data/ext/pg_query/include/parser/kwlist.h +0 -477
- data/ext/pg_query/include/parser/parse_agg.h +0 -68
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_coerce.h +0 -98
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_expr.h +0 -26
- data/ext/pg_query/include/parser/parse_func.h +0 -73
- data/ext/pg_query/include/parser/parse_node.h +0 -327
- data/ext/pg_query/include/parser/parse_oper.h +0 -67
- data/ext/pg_query/include/parser/parse_relation.h +0 -123
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/include/parser/parse_type.h +0 -60
- data/ext/pg_query/include/parser/parser.h +0 -41
- 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 -30
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -995
- data/ext/pg_query/include/pg_config_manual.h +0 -357
- 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 -1488
- data/ext/pg_query/include/pgtime.h +0 -84
- 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 -990
- data/ext/pg_query/include/plpgsql.h +0 -1347
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -26
- 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 -524
- data/ext/pg_query/include/port/pg_bitutils.h +0 -272
- 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.h +0 -528
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postgres.h +0 -764
- data/ext/pg_query/include/postgres_ext.h +0 -74
- data/ext/pg_query/include/postmaster/autovacuum.h +0 -83
- data/ext/pg_query/include/postmaster/bgworker.h +0 -161
- 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 -39
- data/ext/pg_query/include/postmaster/postmaster.h +0 -77
- data/ext/pg_query/include/postmaster/syslogger.h +0 -98
- data/ext/pg_query/include/postmaster/walwriter.h +0 -21
- data/ext/pg_query/include/regex/regex.h +0 -184
- data/ext/pg_query/include/replication/logicallauncher.h +0 -31
- 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/origin.h +0 -73
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -468
- data/ext/pg_query/include/replication/slot.h +0 -219
- data/ext/pg_query/include/replication/syncrep.h +0 -115
- data/ext/pg_query/include/replication/walreceiver.h +0 -340
- 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 -40
- data/ext/pg_query/include/rewrite/rewriteManip.h +0 -87
- data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
- data/ext/pg_query/include/storage/backendid.h +0 -37
- data/ext/pg_query/include/storage/block.h +0 -121
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -292
- data/ext/pg_query/include/storage/bufpage.h +0 -459
- data/ext/pg_query/include/storage/condition_variable.h +0 -62
- data/ext/pg_query/include/storage/dsm.h +0 -61
- data/ext/pg_query/include/storage/dsm_impl.h +0 -75
- data/ext/pg_query/include/storage/fd.h +0 -168
- data/ext/pg_query/include/storage/ipc.h +0 -81
- 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 -206
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -190
- data/ext/pg_query/include/storage/lmgr.h +0 -114
- data/ext/pg_query/include/storage/lock.h +0 -613
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -233
- data/ext/pg_query/include/storage/lwlocknames.h +0 -51
- 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 -90
- data/ext/pg_query/include/storage/pmsignal.h +0 -94
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -347
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -75
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -1071
- data/ext/pg_query/include/storage/sharedfileset.h +0 -45
- data/ext/pg_query/include/storage/shm_mq.h +0 -85
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -81
- data/ext/pg_query/include/storage/sinval.h +0 -153
- data/ext/pg_query/include/storage/sinvaladt.h +0 -43
- data/ext/pg_query/include/storage/smgr.h +0 -109
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -91
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -62
- data/ext/pg_query/include/tcop/cmdtag.h +0 -58
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -217
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -149
- data/ext/pg_query/include/tcop/fastpath.h +0 -21
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -89
- data/ext/pg_query/include/tcop/utility.h +0 -108
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
- data/ext/pg_query/include/utils/acl.h +0 -312
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -459
- data/ext/pg_query/include/utils/builtins.h +0 -128
- data/ext/pg_query/include/utils/bytea.h +0 -27
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -90
- data/ext/pg_query/include/utils/datetime.h +0 -343
- data/ext/pg_query/include/utils/datum.h +0 -68
- data/ext/pg_query/include/utils/dsa.h +0 -123
- data/ext/pg_query/include/utils/dynahash.h +0 -19
- data/ext/pg_query/include/utils/elog.h +0 -439
- data/ext/pg_query/include/utils/errcodes.h +0 -352
- data/ext/pg_query/include/utils/expandeddatum.h +0 -159
- data/ext/pg_query/include/utils/expandedrecord.h +0 -231
- data/ext/pg_query/include/utils/float.h +0 -356
- data/ext/pg_query/include/utils/fmgroids.h +0 -2657
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2646
- data/ext/pg_query/include/utils/fmgrtab.h +0 -48
- data/ext/pg_query/include/utils/guc.h +0 -443
- data/ext/pg_query/include/utils/guc_tables.h +0 -272
- data/ext/pg_query/include/utils/hsearch.h +0 -149
- data/ext/pg_query/include/utils/inval.h +0 -65
- data/ext/pg_query/include/utils/lsyscache.h +0 -198
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -225
- data/ext/pg_query/include/utils/numeric.h +0 -76
- data/ext/pg_query/include/utils/palloc.h +0 -136
- data/ext/pg_query/include/utils/partcache.h +0 -102
- data/ext/pg_query/include/utils/pg_locale.h +0 -119
- 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/plancache.h +0 -235
- data/ext/pg_query/include/utils/portal.h +0 -254
- data/ext/pg_query/include/utils/probes.h +0 -114
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/queryenvironment.h +0 -74
- data/ext/pg_query/include/utils/regproc.h +0 -28
- data/ext/pg_query/include/utils/rel.h +0 -643
- data/ext/pg_query/include/utils/relcache.h +0 -150
- 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/rls.h +0 -50
- data/ext/pg_query/include/utils/ruleutils.h +0 -44
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -159
- data/ext/pg_query/include/utils/snapshot.h +0 -206
- data/ext/pg_query/include/utils/sortsupport.h +0 -276
- data/ext/pg_query/include/utils/syscache.h +0 -219
- data/ext/pg_query/include/utils/timeout.h +0 -88
- data/ext/pg_query/include/utils/timestamp.h +0 -116
- data/ext/pg_query/include/utils/tuplesort.h +0 -277
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -202
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/include/utils/varlena.h +0 -39
- data/ext/pg_query/include/utils/xml.h +0 -84
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
- 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 -1832
- 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/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -0,0 +1,238 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* plancache.h
|
4
|
+
* Plan cache definitions.
|
5
|
+
*
|
6
|
+
* See plancache.c for comments.
|
7
|
+
*
|
8
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
9
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
10
|
+
*
|
11
|
+
* src/include/utils/plancache.h
|
12
|
+
*
|
13
|
+
*-------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
#ifndef PLANCACHE_H
|
16
|
+
#define PLANCACHE_H
|
17
|
+
|
18
|
+
#include "access/tupdesc.h"
|
19
|
+
#include "lib/ilist.h"
|
20
|
+
#include "nodes/params.h"
|
21
|
+
#include "tcop/cmdtag.h"
|
22
|
+
#include "utils/queryenvironment.h"
|
23
|
+
#include "utils/resowner.h"
|
24
|
+
|
25
|
+
|
26
|
+
/* Forward declaration, to avoid including parsenodes.h here */
|
27
|
+
struct RawStmt;
|
28
|
+
|
29
|
+
/* possible values for plan_cache_mode */
|
30
|
+
typedef enum
|
31
|
+
{
|
32
|
+
PLAN_CACHE_MODE_AUTO,
|
33
|
+
PLAN_CACHE_MODE_FORCE_GENERIC_PLAN,
|
34
|
+
PLAN_CACHE_MODE_FORCE_CUSTOM_PLAN,
|
35
|
+
} PlanCacheMode;
|
36
|
+
|
37
|
+
/* GUC parameter */
|
38
|
+
extern PGDLLIMPORT int plan_cache_mode;
|
39
|
+
|
40
|
+
#define CACHEDPLANSOURCE_MAGIC 195726186
|
41
|
+
#define CACHEDPLAN_MAGIC 953717834
|
42
|
+
#define CACHEDEXPR_MAGIC 838275847
|
43
|
+
|
44
|
+
/*
|
45
|
+
* CachedPlanSource (which might better have been called CachedQuery)
|
46
|
+
* represents a SQL query that we expect to use multiple times. It stores
|
47
|
+
* the query source text, the raw parse tree, and the analyzed-and-rewritten
|
48
|
+
* query tree, as well as adjunct data. Cache invalidation can happen as a
|
49
|
+
* result of DDL affecting objects used by the query. In that case we discard
|
50
|
+
* the analyzed-and-rewritten query tree, and rebuild it when next needed.
|
51
|
+
*
|
52
|
+
* An actual execution plan, represented by CachedPlan, is derived from the
|
53
|
+
* CachedPlanSource when we need to execute the query. The plan could be
|
54
|
+
* either generic (usable with any set of plan parameters) or custom (for a
|
55
|
+
* specific set of parameters). plancache.c contains the logic that decides
|
56
|
+
* which way to do it for any particular execution. If we are using a generic
|
57
|
+
* cached plan then it is meant to be re-used across multiple executions, so
|
58
|
+
* callers must always treat CachedPlans as read-only.
|
59
|
+
*
|
60
|
+
* Once successfully built and "saved", CachedPlanSources typically live
|
61
|
+
* for the life of the backend, although they can be dropped explicitly.
|
62
|
+
* CachedPlans are reference-counted and go away automatically when the last
|
63
|
+
* reference is dropped. A CachedPlan can outlive the CachedPlanSource it
|
64
|
+
* was created from.
|
65
|
+
*
|
66
|
+
* An "unsaved" CachedPlanSource can be used for generating plans, but it
|
67
|
+
* lives in transient storage and will not be updated in response to sinval
|
68
|
+
* events.
|
69
|
+
*
|
70
|
+
* CachedPlans made from saved CachedPlanSources are likewise in permanent
|
71
|
+
* storage, so to avoid memory leaks, the reference-counted references to them
|
72
|
+
* must be held in permanent data structures or ResourceOwners. CachedPlans
|
73
|
+
* made from unsaved CachedPlanSources are in children of the caller's
|
74
|
+
* memory context, so references to them should not be longer-lived than
|
75
|
+
* that context. (Reference counting is somewhat pro forma in that case,
|
76
|
+
* though it may be useful if the CachedPlan can be discarded early.)
|
77
|
+
*
|
78
|
+
* A CachedPlanSource has two associated memory contexts: one that holds the
|
79
|
+
* struct itself, the query source text and the raw parse tree, and another
|
80
|
+
* context that holds the rewritten query tree and associated data. This
|
81
|
+
* allows the query tree to be discarded easily when it is invalidated.
|
82
|
+
*
|
83
|
+
* Some callers wish to use the CachedPlan API even with one-shot queries
|
84
|
+
* that have no reason to be saved at all. We therefore support a "oneshot"
|
85
|
+
* variant that does no data copying or invalidation checking. In this case
|
86
|
+
* there are no separate memory contexts: the CachedPlanSource struct and
|
87
|
+
* all subsidiary data live in the caller's CurrentMemoryContext, and there
|
88
|
+
* is no way to free memory short of clearing that entire context. A oneshot
|
89
|
+
* plan is always treated as unsaved.
|
90
|
+
*
|
91
|
+
* Note: the string referenced by commandTag is not subsidiary storage;
|
92
|
+
* it is assumed to be a compile-time-constant string. As with portals,
|
93
|
+
* commandTag shall be NULL if and only if the original query string (before
|
94
|
+
* rewriting) was an empty string.
|
95
|
+
*/
|
96
|
+
typedef struct CachedPlanSource
|
97
|
+
{
|
98
|
+
int magic; /* should equal CACHEDPLANSOURCE_MAGIC */
|
99
|
+
struct RawStmt *raw_parse_tree; /* output of raw_parser(), or NULL */
|
100
|
+
const char *query_string; /* source text of query */
|
101
|
+
CommandTag commandTag; /* 'nuff said */
|
102
|
+
Oid *param_types; /* array of parameter type OIDs, or NULL */
|
103
|
+
int num_params; /* length of param_types array */
|
104
|
+
ParserSetupHook parserSetup; /* alternative parameter spec method */
|
105
|
+
void *parserSetupArg;
|
106
|
+
int cursor_options; /* cursor options used for planning */
|
107
|
+
bool fixed_result; /* disallow change in result tupdesc? */
|
108
|
+
TupleDesc resultDesc; /* result type; NULL = doesn't return tuples */
|
109
|
+
MemoryContext context; /* memory context holding all above */
|
110
|
+
/* These fields describe the current analyzed-and-rewritten query tree: */
|
111
|
+
List *query_list; /* list of Query nodes, or NIL if not valid */
|
112
|
+
List *relationOids; /* OIDs of relations the queries depend on */
|
113
|
+
List *invalItems; /* other dependencies, as PlanInvalItems */
|
114
|
+
struct SearchPathMatcher *search_path; /* search_path used for parsing
|
115
|
+
* and planning */
|
116
|
+
MemoryContext query_context; /* context holding the above, or NULL */
|
117
|
+
Oid rewriteRoleId; /* Role ID we did rewriting for */
|
118
|
+
bool rewriteRowSecurity; /* row_security used during rewrite */
|
119
|
+
bool dependsOnRLS; /* is rewritten query specific to the above? */
|
120
|
+
/* If we have a generic plan, this is a reference-counted link to it: */
|
121
|
+
struct CachedPlan *gplan; /* generic plan, or NULL if not valid */
|
122
|
+
/* Some state flags: */
|
123
|
+
bool is_oneshot; /* is it a "oneshot" plan? */
|
124
|
+
bool is_complete; /* has CompleteCachedPlan been done? */
|
125
|
+
bool is_saved; /* has CachedPlanSource been "saved"? */
|
126
|
+
bool is_valid; /* is the query_list currently valid? */
|
127
|
+
int generation; /* increments each time we create a plan */
|
128
|
+
/* If CachedPlanSource has been saved, it is a member of a global list */
|
129
|
+
dlist_node node; /* list link, if is_saved */
|
130
|
+
/* State kept to help decide whether to use custom or generic plans: */
|
131
|
+
double generic_cost; /* cost of generic plan, or -1 if not known */
|
132
|
+
double total_custom_cost; /* total cost of custom plans so far */
|
133
|
+
int64 num_custom_plans; /* # of custom plans included in total */
|
134
|
+
int64 num_generic_plans; /* # of generic plans */
|
135
|
+
} CachedPlanSource;
|
136
|
+
|
137
|
+
/*
|
138
|
+
* CachedPlan represents an execution plan derived from a CachedPlanSource.
|
139
|
+
* The reference count includes both the link from the parent CachedPlanSource
|
140
|
+
* (if any), and any active plan executions, so the plan can be discarded
|
141
|
+
* exactly when refcount goes to zero. Both the struct itself and the
|
142
|
+
* subsidiary data live in the context denoted by the context field.
|
143
|
+
* This makes it easy to free a no-longer-needed cached plan. (However,
|
144
|
+
* if is_oneshot is true, the context does not belong solely to the CachedPlan
|
145
|
+
* so no freeing is possible.)
|
146
|
+
*/
|
147
|
+
typedef struct CachedPlan
|
148
|
+
{
|
149
|
+
int magic; /* should equal CACHEDPLAN_MAGIC */
|
150
|
+
List *stmt_list; /* list of PlannedStmts */
|
151
|
+
bool is_oneshot; /* is it a "oneshot" plan? */
|
152
|
+
bool is_saved; /* is CachedPlan in a long-lived context? */
|
153
|
+
bool is_valid; /* is the stmt_list currently valid? */
|
154
|
+
Oid planRoleId; /* Role ID the plan was created for */
|
155
|
+
bool dependsOnRole; /* is plan specific to that role? */
|
156
|
+
TransactionId saved_xmin; /* if valid, replan when TransactionXmin
|
157
|
+
* changes from this value */
|
158
|
+
int generation; /* parent's generation number for this plan */
|
159
|
+
int refcount; /* count of live references to this struct */
|
160
|
+
MemoryContext context; /* context containing this CachedPlan */
|
161
|
+
} CachedPlan;
|
162
|
+
|
163
|
+
/*
|
164
|
+
* CachedExpression is a low-overhead mechanism for caching the planned form
|
165
|
+
* of standalone scalar expressions. While such expressions are not usually
|
166
|
+
* subject to cache invalidation events, that can happen, for example because
|
167
|
+
* of replacement of a SQL function that was inlined into the expression.
|
168
|
+
* The plancache takes care of storing the expression tree and marking it
|
169
|
+
* invalid if a cache invalidation occurs, but the caller must notice the
|
170
|
+
* !is_valid status and discard the obsolete expression without reusing it.
|
171
|
+
* We do not store the original parse tree, only the planned expression;
|
172
|
+
* this is an optimization based on the assumption that we usually will not
|
173
|
+
* need to replan for the life of the session.
|
174
|
+
*/
|
175
|
+
typedef struct CachedExpression
|
176
|
+
{
|
177
|
+
int magic; /* should equal CACHEDEXPR_MAGIC */
|
178
|
+
Node *expr; /* planned form of expression */
|
179
|
+
bool is_valid; /* is the expression still valid? */
|
180
|
+
/* remaining fields should be treated as private to plancache.c: */
|
181
|
+
List *relationOids; /* OIDs of relations the expr depends on */
|
182
|
+
List *invalItems; /* other dependencies, as PlanInvalItems */
|
183
|
+
MemoryContext context; /* context containing this CachedExpression */
|
184
|
+
dlist_node node; /* link in global list of CachedExpressions */
|
185
|
+
} CachedExpression;
|
186
|
+
|
187
|
+
|
188
|
+
extern void InitPlanCache(void);
|
189
|
+
extern void ResetPlanCache(void);
|
190
|
+
|
191
|
+
extern void ReleaseAllPlanCacheRefsInOwner(ResourceOwner owner);
|
192
|
+
|
193
|
+
extern CachedPlanSource *CreateCachedPlan(struct RawStmt *raw_parse_tree,
|
194
|
+
const char *query_string,
|
195
|
+
CommandTag commandTag);
|
196
|
+
extern CachedPlanSource *CreateOneShotCachedPlan(struct RawStmt *raw_parse_tree,
|
197
|
+
const char *query_string,
|
198
|
+
CommandTag commandTag);
|
199
|
+
extern void CompleteCachedPlan(CachedPlanSource *plansource,
|
200
|
+
List *querytree_list,
|
201
|
+
MemoryContext querytree_context,
|
202
|
+
Oid *param_types,
|
203
|
+
int num_params,
|
204
|
+
ParserSetupHook parserSetup,
|
205
|
+
void *parserSetupArg,
|
206
|
+
int cursor_options,
|
207
|
+
bool fixed_result);
|
208
|
+
|
209
|
+
extern void SaveCachedPlan(CachedPlanSource *plansource);
|
210
|
+
extern void DropCachedPlan(CachedPlanSource *plansource);
|
211
|
+
|
212
|
+
extern void CachedPlanSetParentContext(CachedPlanSource *plansource,
|
213
|
+
MemoryContext newcontext);
|
214
|
+
|
215
|
+
extern CachedPlanSource *CopyCachedPlan(CachedPlanSource *plansource);
|
216
|
+
|
217
|
+
extern bool CachedPlanIsValid(CachedPlanSource *plansource);
|
218
|
+
|
219
|
+
extern List *CachedPlanGetTargetList(CachedPlanSource *plansource,
|
220
|
+
QueryEnvironment *queryEnv);
|
221
|
+
|
222
|
+
extern CachedPlan *GetCachedPlan(CachedPlanSource *plansource,
|
223
|
+
ParamListInfo boundParams,
|
224
|
+
ResourceOwner owner,
|
225
|
+
QueryEnvironment *queryEnv);
|
226
|
+
extern void ReleaseCachedPlan(CachedPlan *plan, ResourceOwner owner);
|
227
|
+
|
228
|
+
extern bool CachedPlanAllowsSimpleValidityCheck(CachedPlanSource *plansource,
|
229
|
+
CachedPlan *plan,
|
230
|
+
ResourceOwner owner);
|
231
|
+
extern bool CachedPlanIsSimplyValid(CachedPlanSource *plansource,
|
232
|
+
CachedPlan *plan,
|
233
|
+
ResourceOwner owner);
|
234
|
+
|
235
|
+
extern CachedExpression *GetCachedExpression(Node *expr);
|
236
|
+
extern void FreeCachedExpression(CachedExpression *cexpr);
|
237
|
+
|
238
|
+
#endif /* PLANCACHE_H */
|
@@ -0,0 +1,252 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* portal.h
|
4
|
+
* POSTGRES portal definitions.
|
5
|
+
*
|
6
|
+
* A portal is an abstraction which represents the execution state of
|
7
|
+
* a running or runnable query. Portals support both SQL-level CURSORs
|
8
|
+
* and protocol-level portals.
|
9
|
+
*
|
10
|
+
* Scrolling (nonsequential access) and suspension of execution are allowed
|
11
|
+
* only for portals that contain a single SELECT-type query. We do not want
|
12
|
+
* to let the client suspend an update-type query partway through! Because
|
13
|
+
* the query rewriter does not allow arbitrary ON SELECT rewrite rules,
|
14
|
+
* only queries that were originally update-type could produce multiple
|
15
|
+
* plan trees; so the restriction to a single query is not a problem
|
16
|
+
* in practice.
|
17
|
+
*
|
18
|
+
* For SQL cursors, we support three kinds of scroll behavior:
|
19
|
+
*
|
20
|
+
* (1) Neither NO SCROLL nor SCROLL was specified: to remain backward
|
21
|
+
* compatible, we allow backward fetches here, unless it would
|
22
|
+
* impose additional runtime overhead to do so.
|
23
|
+
*
|
24
|
+
* (2) NO SCROLL was specified: don't allow any backward fetches.
|
25
|
+
*
|
26
|
+
* (3) SCROLL was specified: allow all kinds of backward fetches, even
|
27
|
+
* if we need to take a performance hit to do so. (The planner sticks
|
28
|
+
* a Materialize node atop the query plan if needed.)
|
29
|
+
*
|
30
|
+
* Case #1 is converted to #2 or #3 by looking at the query itself and
|
31
|
+
* determining if scrollability can be supported without additional
|
32
|
+
* overhead.
|
33
|
+
*
|
34
|
+
* Protocol-level portals have no nonsequential-fetch API and so the
|
35
|
+
* distinction doesn't matter for them. They are always initialized
|
36
|
+
* to look like NO SCROLL cursors.
|
37
|
+
*
|
38
|
+
*
|
39
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
40
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
41
|
+
*
|
42
|
+
* src/include/utils/portal.h
|
43
|
+
*
|
44
|
+
*-------------------------------------------------------------------------
|
45
|
+
*/
|
46
|
+
#ifndef PORTAL_H
|
47
|
+
#define PORTAL_H
|
48
|
+
|
49
|
+
#include "datatype/timestamp.h"
|
50
|
+
#include "executor/execdesc.h"
|
51
|
+
#include "tcop/cmdtag.h"
|
52
|
+
#include "utils/plancache.h"
|
53
|
+
#include "utils/resowner.h"
|
54
|
+
|
55
|
+
/*
|
56
|
+
* We have several execution strategies for Portals, depending on what
|
57
|
+
* query or queries are to be executed. (Note: in all cases, a Portal
|
58
|
+
* executes just a single source-SQL query, and thus produces just a
|
59
|
+
* single result from the user's viewpoint. However, the rule rewriter
|
60
|
+
* may expand the single source query to zero or many actual queries.)
|
61
|
+
*
|
62
|
+
* PORTAL_ONE_SELECT: the portal contains one single SELECT query. We run
|
63
|
+
* the Executor incrementally as results are demanded. This strategy also
|
64
|
+
* supports holdable cursors (the Executor results can be dumped into a
|
65
|
+
* tuplestore for access after transaction completion).
|
66
|
+
*
|
67
|
+
* PORTAL_ONE_RETURNING: the portal contains a single INSERT/UPDATE/DELETE/
|
68
|
+
* MERGE query with a RETURNING clause (plus possibly auxiliary queries added
|
69
|
+
* by rule rewriting). On first execution, we run the portal to completion
|
70
|
+
* and dump the primary query's results into the portal tuplestore; the
|
71
|
+
* results are then returned to the client as demanded. (We can't support
|
72
|
+
* suspension of the query partway through, because the AFTER TRIGGER code
|
73
|
+
* can't cope, and also because we don't want to risk failing to execute
|
74
|
+
* all the auxiliary queries.)
|
75
|
+
*
|
76
|
+
* PORTAL_ONE_MOD_WITH: the portal contains one single SELECT query, but
|
77
|
+
* it has data-modifying CTEs. This is currently treated the same as the
|
78
|
+
* PORTAL_ONE_RETURNING case because of the possibility of needing to fire
|
79
|
+
* triggers. It may act more like PORTAL_ONE_SELECT in future.
|
80
|
+
*
|
81
|
+
* PORTAL_UTIL_SELECT: the portal contains a utility statement that returns
|
82
|
+
* a SELECT-like result (for example, EXPLAIN or SHOW). On first execution,
|
83
|
+
* we run the statement and dump its results into the portal tuplestore;
|
84
|
+
* the results are then returned to the client as demanded.
|
85
|
+
*
|
86
|
+
* PORTAL_MULTI_QUERY: all other cases. Here, we do not support partial
|
87
|
+
* execution: the portal's queries will be run to completion on first call.
|
88
|
+
*/
|
89
|
+
typedef enum PortalStrategy
|
90
|
+
{
|
91
|
+
PORTAL_ONE_SELECT,
|
92
|
+
PORTAL_ONE_RETURNING,
|
93
|
+
PORTAL_ONE_MOD_WITH,
|
94
|
+
PORTAL_UTIL_SELECT,
|
95
|
+
PORTAL_MULTI_QUERY,
|
96
|
+
} PortalStrategy;
|
97
|
+
|
98
|
+
/*
|
99
|
+
* A portal is always in one of these states. It is possible to transit
|
100
|
+
* from ACTIVE back to READY if the query is not run to completion;
|
101
|
+
* otherwise we never back up in status.
|
102
|
+
*/
|
103
|
+
typedef enum PortalStatus
|
104
|
+
{
|
105
|
+
PORTAL_NEW, /* freshly created */
|
106
|
+
PORTAL_DEFINED, /* PortalDefineQuery done */
|
107
|
+
PORTAL_READY, /* PortalStart complete, can run it */
|
108
|
+
PORTAL_ACTIVE, /* portal is running (can't delete it) */
|
109
|
+
PORTAL_DONE, /* portal is finished (don't re-run it) */
|
110
|
+
PORTAL_FAILED, /* portal got error (can't re-run it) */
|
111
|
+
} PortalStatus;
|
112
|
+
|
113
|
+
typedef struct PortalData *Portal;
|
114
|
+
|
115
|
+
typedef struct PortalData
|
116
|
+
{
|
117
|
+
/* Bookkeeping data */
|
118
|
+
const char *name; /* portal's name */
|
119
|
+
const char *prepStmtName; /* source prepared statement (NULL if none) */
|
120
|
+
MemoryContext portalContext; /* subsidiary memory for portal */
|
121
|
+
ResourceOwner resowner; /* resources owned by portal */
|
122
|
+
void (*cleanup) (Portal portal); /* cleanup hook */
|
123
|
+
|
124
|
+
/*
|
125
|
+
* State data for remembering which subtransaction(s) the portal was
|
126
|
+
* created or used in. If the portal is held over from a previous
|
127
|
+
* transaction, both subxids are InvalidSubTransactionId. Otherwise,
|
128
|
+
* createSubid is the creating subxact and activeSubid is the last subxact
|
129
|
+
* in which we ran the portal.
|
130
|
+
*/
|
131
|
+
SubTransactionId createSubid; /* the creating subxact */
|
132
|
+
SubTransactionId activeSubid; /* the last subxact with activity */
|
133
|
+
int createLevel; /* creating subxact's nesting level */
|
134
|
+
|
135
|
+
/* The query or queries the portal will execute */
|
136
|
+
const char *sourceText; /* text of query (as of 8.4, never NULL) */
|
137
|
+
CommandTag commandTag; /* command tag for original query */
|
138
|
+
QueryCompletion qc; /* command completion data for executed query */
|
139
|
+
List *stmts; /* list of PlannedStmts */
|
140
|
+
CachedPlan *cplan; /* CachedPlan, if stmts are from one */
|
141
|
+
|
142
|
+
ParamListInfo portalParams; /* params to pass to query */
|
143
|
+
QueryEnvironment *queryEnv; /* environment for query */
|
144
|
+
|
145
|
+
/* Features/options */
|
146
|
+
PortalStrategy strategy; /* see above */
|
147
|
+
int cursorOptions; /* DECLARE CURSOR option bits */
|
148
|
+
bool run_once; /* unused */
|
149
|
+
|
150
|
+
/* Status data */
|
151
|
+
PortalStatus status; /* see above */
|
152
|
+
bool portalPinned; /* a pinned portal can't be dropped */
|
153
|
+
bool autoHeld; /* was automatically converted from pinned to
|
154
|
+
* held (see HoldPinnedPortals()) */
|
155
|
+
|
156
|
+
/* If not NULL, Executor is active; call ExecutorEnd eventually: */
|
157
|
+
QueryDesc *queryDesc; /* info needed for executor invocation */
|
158
|
+
|
159
|
+
/* If portal returns tuples, this is their tupdesc: */
|
160
|
+
TupleDesc tupDesc; /* descriptor for result tuples */
|
161
|
+
/* and these are the format codes to use for the columns: */
|
162
|
+
int16 *formats; /* a format code for each column */
|
163
|
+
|
164
|
+
/*
|
165
|
+
* Outermost ActiveSnapshot for execution of the portal's queries. For
|
166
|
+
* all but a few utility commands, we require such a snapshot to exist.
|
167
|
+
* This ensures that TOAST references in query results can be detoasted,
|
168
|
+
* and helps to reduce thrashing of the process's exposed xmin.
|
169
|
+
*/
|
170
|
+
Snapshot portalSnapshot; /* active snapshot, or NULL if none */
|
171
|
+
|
172
|
+
/*
|
173
|
+
* Where we store tuples for a held cursor or a PORTAL_ONE_RETURNING,
|
174
|
+
* PORTAL_ONE_MOD_WITH, or PORTAL_UTIL_SELECT query. (A cursor held past
|
175
|
+
* the end of its transaction no longer has any active executor state.)
|
176
|
+
*/
|
177
|
+
Tuplestorestate *holdStore; /* store for holdable cursors */
|
178
|
+
MemoryContext holdContext; /* memory containing holdStore */
|
179
|
+
|
180
|
+
/*
|
181
|
+
* Snapshot under which tuples in the holdStore were read. We must keep a
|
182
|
+
* reference to this snapshot if there is any possibility that the tuples
|
183
|
+
* contain TOAST references, because releasing the snapshot could allow
|
184
|
+
* recently-dead rows to be vacuumed away, along with any toast data
|
185
|
+
* belonging to them. In the case of a held cursor, we avoid needing to
|
186
|
+
* keep such a snapshot by forcibly detoasting the data.
|
187
|
+
*/
|
188
|
+
Snapshot holdSnapshot; /* registered snapshot, or NULL if none */
|
189
|
+
|
190
|
+
/*
|
191
|
+
* atStart, atEnd and portalPos indicate the current cursor position.
|
192
|
+
* portalPos is zero before the first row, N after fetching N'th row of
|
193
|
+
* query. After we run off the end, portalPos = # of rows in query, and
|
194
|
+
* atEnd is true. Note that atStart implies portalPos == 0, but not the
|
195
|
+
* reverse: we might have backed up only as far as the first row, not to
|
196
|
+
* the start. Also note that various code inspects atStart and atEnd, but
|
197
|
+
* only the portal movement routines should touch portalPos.
|
198
|
+
*/
|
199
|
+
bool atStart;
|
200
|
+
bool atEnd;
|
201
|
+
uint64 portalPos;
|
202
|
+
|
203
|
+
/* Presentation data, primarily used by the pg_cursors system view */
|
204
|
+
TimestampTz creation_time; /* time at which this portal was defined */
|
205
|
+
bool visible; /* include this portal in pg_cursors? */
|
206
|
+
} PortalData;
|
207
|
+
|
208
|
+
/*
|
209
|
+
* PortalIsValid
|
210
|
+
* True iff portal is valid.
|
211
|
+
*/
|
212
|
+
#define PortalIsValid(p) PointerIsValid(p)
|
213
|
+
|
214
|
+
|
215
|
+
/* Prototypes for functions in utils/mmgr/portalmem.c */
|
216
|
+
extern void EnablePortalManager(void);
|
217
|
+
extern bool PreCommit_Portals(bool isPrepare);
|
218
|
+
extern void AtAbort_Portals(void);
|
219
|
+
extern void AtCleanup_Portals(void);
|
220
|
+
extern void PortalErrorCleanup(void);
|
221
|
+
extern void AtSubCommit_Portals(SubTransactionId mySubid,
|
222
|
+
SubTransactionId parentSubid,
|
223
|
+
int parentLevel,
|
224
|
+
ResourceOwner parentXactOwner);
|
225
|
+
extern void AtSubAbort_Portals(SubTransactionId mySubid,
|
226
|
+
SubTransactionId parentSubid,
|
227
|
+
ResourceOwner myXactOwner,
|
228
|
+
ResourceOwner parentXactOwner);
|
229
|
+
extern void AtSubCleanup_Portals(SubTransactionId mySubid);
|
230
|
+
extern Portal CreatePortal(const char *name, bool allowDup, bool dupSilent);
|
231
|
+
extern Portal CreateNewPortal(void);
|
232
|
+
extern void PinPortal(Portal portal);
|
233
|
+
extern void UnpinPortal(Portal portal);
|
234
|
+
extern void MarkPortalActive(Portal portal);
|
235
|
+
extern void MarkPortalDone(Portal portal);
|
236
|
+
extern void MarkPortalFailed(Portal portal);
|
237
|
+
extern void PortalDrop(Portal portal, bool isTopCommit);
|
238
|
+
extern Portal GetPortalByName(const char *name);
|
239
|
+
extern void PortalDefineQuery(Portal portal,
|
240
|
+
const char *prepStmtName,
|
241
|
+
const char *sourceText,
|
242
|
+
CommandTag commandTag,
|
243
|
+
List *stmts,
|
244
|
+
CachedPlan *cplan);
|
245
|
+
extern PlannedStmt *PortalGetPrimaryStmt(Portal portal);
|
246
|
+
extern void PortalCreateHoldStore(Portal portal);
|
247
|
+
extern void PortalHashTableDeleteAll(void);
|
248
|
+
extern bool ThereAreNoReadyPortals(void);
|
249
|
+
extern void HoldPinnedPortals(void);
|
250
|
+
extern void ForgetPortalSnapshots(void);
|
251
|
+
|
252
|
+
#endif /* PORTAL_H */
|
@@ -0,0 +1,114 @@
|
|
1
|
+
#define TRACE_POSTGRESQL_TRANSACTION_START(INT1) do {} while (0)
|
2
|
+
#define TRACE_POSTGRESQL_TRANSACTION_START_ENABLED() (0)
|
3
|
+
#define TRACE_POSTGRESQL_TRANSACTION_COMMIT(INT1) do {} while (0)
|
4
|
+
#define TRACE_POSTGRESQL_TRANSACTION_COMMIT_ENABLED() (0)
|
5
|
+
#define TRACE_POSTGRESQL_TRANSACTION_ABORT(INT1) do {} while (0)
|
6
|
+
#define TRACE_POSTGRESQL_TRANSACTION_ABORT_ENABLED() (0)
|
7
|
+
#define TRACE_POSTGRESQL_LWLOCK_ACQUIRE(INT1, INT2) do {} while (0)
|
8
|
+
#define TRACE_POSTGRESQL_LWLOCK_ACQUIRE_ENABLED() (0)
|
9
|
+
#define TRACE_POSTGRESQL_LWLOCK_RELEASE(INT1) do {} while (0)
|
10
|
+
#define TRACE_POSTGRESQL_LWLOCK_RELEASE_ENABLED() (0)
|
11
|
+
#define TRACE_POSTGRESQL_LWLOCK_WAIT_START(INT1, INT2) do {} while (0)
|
12
|
+
#define TRACE_POSTGRESQL_LWLOCK_WAIT_START_ENABLED() (0)
|
13
|
+
#define TRACE_POSTGRESQL_LWLOCK_WAIT_DONE(INT1, INT2) do {} while (0)
|
14
|
+
#define TRACE_POSTGRESQL_LWLOCK_WAIT_DONE_ENABLED() (0)
|
15
|
+
#define TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE(INT1, INT2) do {} while (0)
|
16
|
+
#define TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_ENABLED() (0)
|
17
|
+
#define TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_FAIL(INT1, INT2) do {} while (0)
|
18
|
+
#define TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_FAIL_ENABLED() (0)
|
19
|
+
#define TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT(INT1, INT2) do {} while (0)
|
20
|
+
#define TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_ENABLED() (0)
|
21
|
+
#define TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_FAIL(INT1, INT2) do {} while (0)
|
22
|
+
#define TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_FAIL_ENABLED() (0)
|
23
|
+
#define TRACE_POSTGRESQL_LOCK_WAIT_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
|
24
|
+
#define TRACE_POSTGRESQL_LOCK_WAIT_START_ENABLED() (0)
|
25
|
+
#define TRACE_POSTGRESQL_LOCK_WAIT_DONE(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
|
26
|
+
#define TRACE_POSTGRESQL_LOCK_WAIT_DONE_ENABLED() (0)
|
27
|
+
#define TRACE_POSTGRESQL_QUERY_PARSE_START(INT1) do {} while (0)
|
28
|
+
#define TRACE_POSTGRESQL_QUERY_PARSE_START_ENABLED() (0)
|
29
|
+
#define TRACE_POSTGRESQL_QUERY_PARSE_DONE(INT1) do {} while (0)
|
30
|
+
#define TRACE_POSTGRESQL_QUERY_PARSE_DONE_ENABLED() (0)
|
31
|
+
#define TRACE_POSTGRESQL_QUERY_REWRITE_START(INT1) do {} while (0)
|
32
|
+
#define TRACE_POSTGRESQL_QUERY_REWRITE_START_ENABLED() (0)
|
33
|
+
#define TRACE_POSTGRESQL_QUERY_REWRITE_DONE(INT1) do {} while (0)
|
34
|
+
#define TRACE_POSTGRESQL_QUERY_REWRITE_DONE_ENABLED() (0)
|
35
|
+
#define TRACE_POSTGRESQL_QUERY_PLAN_START() do {} while (0)
|
36
|
+
#define TRACE_POSTGRESQL_QUERY_PLAN_START_ENABLED() (0)
|
37
|
+
#define TRACE_POSTGRESQL_QUERY_PLAN_DONE() do {} while (0)
|
38
|
+
#define TRACE_POSTGRESQL_QUERY_PLAN_DONE_ENABLED() (0)
|
39
|
+
#define TRACE_POSTGRESQL_QUERY_EXECUTE_START() do {} while (0)
|
40
|
+
#define TRACE_POSTGRESQL_QUERY_EXECUTE_START_ENABLED() (0)
|
41
|
+
#define TRACE_POSTGRESQL_QUERY_EXECUTE_DONE() do {} while (0)
|
42
|
+
#define TRACE_POSTGRESQL_QUERY_EXECUTE_DONE_ENABLED() (0)
|
43
|
+
#define TRACE_POSTGRESQL_QUERY_START(INT1) do {} while (0)
|
44
|
+
#define TRACE_POSTGRESQL_QUERY_START_ENABLED() (0)
|
45
|
+
#define TRACE_POSTGRESQL_QUERY_DONE(INT1) do {} while (0)
|
46
|
+
#define TRACE_POSTGRESQL_QUERY_DONE_ENABLED() (0)
|
47
|
+
#define TRACE_POSTGRESQL_STATEMENT_STATUS(INT1) do {} while (0)
|
48
|
+
#define TRACE_POSTGRESQL_STATEMENT_STATUS_ENABLED() (0)
|
49
|
+
#define TRACE_POSTGRESQL_SORT_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
|
50
|
+
#define TRACE_POSTGRESQL_SORT_START_ENABLED() (0)
|
51
|
+
#define TRACE_POSTGRESQL_SORT_DONE(INT1, INT2) do {} while (0)
|
52
|
+
#define TRACE_POSTGRESQL_SORT_DONE_ENABLED() (0)
|
53
|
+
#define TRACE_POSTGRESQL_BUFFER_READ_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
|
54
|
+
#define TRACE_POSTGRESQL_BUFFER_READ_START_ENABLED() (0)
|
55
|
+
#define TRACE_POSTGRESQL_BUFFER_READ_DONE(INT1, INT2, INT3, INT4, INT5, INT6, INT7) do {} while (0)
|
56
|
+
#define TRACE_POSTGRESQL_BUFFER_READ_DONE_ENABLED() (0)
|
57
|
+
#define TRACE_POSTGRESQL_BUFFER_FLUSH_START(INT1, INT2, INT3, INT4, INT5) do {} while (0)
|
58
|
+
#define TRACE_POSTGRESQL_BUFFER_FLUSH_START_ENABLED() (0)
|
59
|
+
#define TRACE_POSTGRESQL_BUFFER_FLUSH_DONE(INT1, INT2, INT3, INT4, INT5) do {} while (0)
|
60
|
+
#define TRACE_POSTGRESQL_BUFFER_FLUSH_DONE_ENABLED() (0)
|
61
|
+
#define TRACE_POSTGRESQL_BUFFER_EXTEND_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
|
62
|
+
#define TRACE_POSTGRESQL_BUFFER_EXTEND_START_ENABLED() (0)
|
63
|
+
#define TRACE_POSTGRESQL_BUFFER_EXTEND_DONE(INT1, INT2, INT3, INT4, INT5, INT6, INT7) do {} while (0)
|
64
|
+
#define TRACE_POSTGRESQL_BUFFER_EXTEND_DONE_ENABLED() (0)
|
65
|
+
#define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_START(INT1) do {} while (0)
|
66
|
+
#define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_START_ENABLED() (0)
|
67
|
+
#define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_SYNC_START() do {} while (0)
|
68
|
+
#define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_SYNC_START_ENABLED() (0)
|
69
|
+
#define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_DONE() do {} while (0)
|
70
|
+
#define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_DONE_ENABLED() (0)
|
71
|
+
#define TRACE_POSTGRESQL_BUFFER_SYNC_START(INT1, INT2) do {} while (0)
|
72
|
+
#define TRACE_POSTGRESQL_BUFFER_SYNC_START_ENABLED() (0)
|
73
|
+
#define TRACE_POSTGRESQL_BUFFER_SYNC_WRITTEN(INT1) do {} while (0)
|
74
|
+
#define TRACE_POSTGRESQL_BUFFER_SYNC_WRITTEN_ENABLED() (0)
|
75
|
+
#define TRACE_POSTGRESQL_BUFFER_SYNC_DONE(INT1, INT2, INT3) do {} while (0)
|
76
|
+
#define TRACE_POSTGRESQL_BUFFER_SYNC_DONE_ENABLED() (0)
|
77
|
+
#define TRACE_POSTGRESQL_DEADLOCK_FOUND() do {} while (0)
|
78
|
+
#define TRACE_POSTGRESQL_DEADLOCK_FOUND_ENABLED() (0)
|
79
|
+
#define TRACE_POSTGRESQL_CHECKPOINT_START(INT1) do {} while (0)
|
80
|
+
#define TRACE_POSTGRESQL_CHECKPOINT_START_ENABLED() (0)
|
81
|
+
#define TRACE_POSTGRESQL_CHECKPOINT_DONE(INT1, INT2, INT3, INT4, INT5) do {} while (0)
|
82
|
+
#define TRACE_POSTGRESQL_CHECKPOINT_DONE_ENABLED() (0)
|
83
|
+
#define TRACE_POSTGRESQL_CLOG_CHECKPOINT_START(INT1) do {} while (0)
|
84
|
+
#define TRACE_POSTGRESQL_CLOG_CHECKPOINT_START_ENABLED() (0)
|
85
|
+
#define TRACE_POSTGRESQL_CLOG_CHECKPOINT_DONE(INT1) do {} while (0)
|
86
|
+
#define TRACE_POSTGRESQL_CLOG_CHECKPOINT_DONE_ENABLED() (0)
|
87
|
+
#define TRACE_POSTGRESQL_SUBTRANS_CHECKPOINT_START(INT1) do {} while (0)
|
88
|
+
#define TRACE_POSTGRESQL_SUBTRANS_CHECKPOINT_START_ENABLED() (0)
|
89
|
+
#define TRACE_POSTGRESQL_SUBTRANS_CHECKPOINT_DONE(INT1) do {} while (0)
|
90
|
+
#define TRACE_POSTGRESQL_SUBTRANS_CHECKPOINT_DONE_ENABLED() (0)
|
91
|
+
#define TRACE_POSTGRESQL_MULTIXACT_CHECKPOINT_START(INT1) do {} while (0)
|
92
|
+
#define TRACE_POSTGRESQL_MULTIXACT_CHECKPOINT_START_ENABLED() (0)
|
93
|
+
#define TRACE_POSTGRESQL_MULTIXACT_CHECKPOINT_DONE(INT1) do {} while (0)
|
94
|
+
#define TRACE_POSTGRESQL_MULTIXACT_CHECKPOINT_DONE_ENABLED() (0)
|
95
|
+
#define TRACE_POSTGRESQL_TWOPHASE_CHECKPOINT_START() do {} while (0)
|
96
|
+
#define TRACE_POSTGRESQL_TWOPHASE_CHECKPOINT_START_ENABLED() (0)
|
97
|
+
#define TRACE_POSTGRESQL_TWOPHASE_CHECKPOINT_DONE() do {} while (0)
|
98
|
+
#define TRACE_POSTGRESQL_TWOPHASE_CHECKPOINT_DONE_ENABLED() (0)
|
99
|
+
#define TRACE_POSTGRESQL_SMGR_MD_READ_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
|
100
|
+
#define TRACE_POSTGRESQL_SMGR_MD_READ_START_ENABLED() (0)
|
101
|
+
#define TRACE_POSTGRESQL_SMGR_MD_READ_DONE(INT1, INT2, INT3, INT4, INT5, INT6, INT7, INT8) do {} while (0)
|
102
|
+
#define TRACE_POSTGRESQL_SMGR_MD_READ_DONE_ENABLED() (0)
|
103
|
+
#define TRACE_POSTGRESQL_SMGR_MD_WRITE_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
|
104
|
+
#define TRACE_POSTGRESQL_SMGR_MD_WRITE_START_ENABLED() (0)
|
105
|
+
#define TRACE_POSTGRESQL_SMGR_MD_WRITE_DONE(INT1, INT2, INT3, INT4, INT5, INT6, INT7, INT8) do {} while (0)
|
106
|
+
#define TRACE_POSTGRESQL_SMGR_MD_WRITE_DONE_ENABLED() (0)
|
107
|
+
#define TRACE_POSTGRESQL_WAL_INSERT(INT1, INT2) do {} while (0)
|
108
|
+
#define TRACE_POSTGRESQL_WAL_INSERT_ENABLED() (0)
|
109
|
+
#define TRACE_POSTGRESQL_WAL_SWITCH() do {} while (0)
|
110
|
+
#define TRACE_POSTGRESQL_WAL_SWITCH_ENABLED() (0)
|
111
|
+
#define TRACE_POSTGRESQL_WAL_BUFFER_WRITE_DIRTY_START() do {} while (0)
|
112
|
+
#define TRACE_POSTGRESQL_WAL_BUFFER_WRITE_DIRTY_START_ENABLED() (0)
|
113
|
+
#define TRACE_POSTGRESQL_WAL_BUFFER_WRITE_DIRTY_DONE() do {} while (0)
|
114
|
+
#define TRACE_POSTGRESQL_WAL_BUFFER_WRITE_DIRTY_DONE_ENABLED() (0)
|
@@ -0,0 +1,47 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* ps_status.h
|
4
|
+
*
|
5
|
+
* Declarations for backend/utils/misc/ps_status.c
|
6
|
+
*
|
7
|
+
* src/include/utils/ps_status.h
|
8
|
+
*
|
9
|
+
*-------------------------------------------------------------------------
|
10
|
+
*/
|
11
|
+
|
12
|
+
#ifndef PS_STATUS_H
|
13
|
+
#define PS_STATUS_H
|
14
|
+
|
15
|
+
/* disabled on Windows as the performance overhead can be significant */
|
16
|
+
#ifdef WIN32
|
17
|
+
#define DEFAULT_UPDATE_PROCESS_TITLE false
|
18
|
+
#else
|
19
|
+
#define DEFAULT_UPDATE_PROCESS_TITLE true
|
20
|
+
#endif
|
21
|
+
|
22
|
+
extern PGDLLIMPORT bool update_process_title;
|
23
|
+
|
24
|
+
extern char **save_ps_display_args(int argc, char **argv);
|
25
|
+
|
26
|
+
extern void init_ps_display(const char *fixed_part);
|
27
|
+
|
28
|
+
extern void set_ps_display_suffix(const char *suffix);
|
29
|
+
|
30
|
+
extern void set_ps_display_remove_suffix(void);
|
31
|
+
|
32
|
+
extern void set_ps_display_with_len(const char *activity, size_t len);
|
33
|
+
|
34
|
+
/*
|
35
|
+
* set_ps_display
|
36
|
+
* inlined to allow strlen to be evaluated during compilation when
|
37
|
+
* passing string constants.
|
38
|
+
*/
|
39
|
+
static inline void
|
40
|
+
set_ps_display(const char *activity)
|
41
|
+
{
|
42
|
+
set_ps_display_with_len(activity, strlen(activity));
|
43
|
+
}
|
44
|
+
|
45
|
+
extern const char *get_ps_display(int *displen);
|
46
|
+
|
47
|
+
#endif /* PS_STATUS_H */
|