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,34 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* print.h
|
4
|
+
* definitions for nodes/print.c
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
+
*
|
10
|
+
* src/include/nodes/print.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef PRINT_H
|
15
|
+
#define PRINT_H
|
16
|
+
|
17
|
+
#include "executor/tuptable.h"
|
18
|
+
|
19
|
+
|
20
|
+
#define nodeDisplay(x) pprint(x)
|
21
|
+
|
22
|
+
extern void print(const void *obj);
|
23
|
+
extern void pprint(const void *obj);
|
24
|
+
extern void elog_node_display(int lev, const char *title,
|
25
|
+
const void *obj, bool pretty);
|
26
|
+
extern char *format_node_dump(const char *dump);
|
27
|
+
extern char *pretty_format_node_dump(const char *dump);
|
28
|
+
extern void print_rt(const List *rtable);
|
29
|
+
extern void print_expr(const Node *expr, const List *rtable);
|
30
|
+
extern void print_pathkeys(const List *pathkeys, const List *rtable);
|
31
|
+
extern void print_tl(const List *tlist, const List *rtable);
|
32
|
+
extern void print_slot(TupleTableSlot *slot);
|
33
|
+
|
34
|
+
#endif /* PRINT_H */
|
@@ -0,0 +1,86 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* queryjumble.h
|
4
|
+
* Query normalization and fingerprinting.
|
5
|
+
*
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
8
|
+
*
|
9
|
+
* IDENTIFICATION
|
10
|
+
* src/include/nodes/queryjumble.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef QUERYJUMBLE_H
|
15
|
+
#define QUERYJUMBLE_H
|
16
|
+
|
17
|
+
#include "nodes/parsenodes.h"
|
18
|
+
|
19
|
+
/*
|
20
|
+
* Struct for tracking locations/lengths of constants during normalization
|
21
|
+
*/
|
22
|
+
typedef struct LocationLen
|
23
|
+
{
|
24
|
+
int location; /* start offset in query text */
|
25
|
+
int length; /* length in bytes, or -1 to ignore */
|
26
|
+
} LocationLen;
|
27
|
+
|
28
|
+
/*
|
29
|
+
* Working state for computing a query jumble and producing a normalized
|
30
|
+
* query string
|
31
|
+
*/
|
32
|
+
typedef struct JumbleState
|
33
|
+
{
|
34
|
+
/* Jumble of current query tree */
|
35
|
+
unsigned char *jumble;
|
36
|
+
|
37
|
+
/* Number of bytes used in jumble[] */
|
38
|
+
Size jumble_len;
|
39
|
+
|
40
|
+
/* Array of locations of constants that should be removed */
|
41
|
+
LocationLen *clocations;
|
42
|
+
|
43
|
+
/* Allocated length of clocations array */
|
44
|
+
int clocations_buf_size;
|
45
|
+
|
46
|
+
/* Current number of valid entries in clocations array */
|
47
|
+
int clocations_count;
|
48
|
+
|
49
|
+
/* highest Param id we've seen, in order to start normalization correctly */
|
50
|
+
int highest_extern_param_id;
|
51
|
+
} JumbleState;
|
52
|
+
|
53
|
+
/* Values for the compute_query_id GUC */
|
54
|
+
enum ComputeQueryIdType
|
55
|
+
{
|
56
|
+
COMPUTE_QUERY_ID_OFF,
|
57
|
+
COMPUTE_QUERY_ID_ON,
|
58
|
+
COMPUTE_QUERY_ID_AUTO,
|
59
|
+
COMPUTE_QUERY_ID_REGRESS,
|
60
|
+
};
|
61
|
+
|
62
|
+
/* GUC parameters */
|
63
|
+
extern PGDLLIMPORT int compute_query_id;
|
64
|
+
|
65
|
+
|
66
|
+
extern const char *CleanQuerytext(const char *query, int *location, int *len);
|
67
|
+
extern JumbleState *JumbleQuery(Query *query);
|
68
|
+
extern void EnableQueryId(void);
|
69
|
+
|
70
|
+
extern PGDLLIMPORT bool query_id_enabled;
|
71
|
+
|
72
|
+
/*
|
73
|
+
* Returns whether query identifier computation has been enabled, either
|
74
|
+
* directly in the GUC or by a module when the setting is 'auto'.
|
75
|
+
*/
|
76
|
+
static inline bool
|
77
|
+
IsQueryIdEnabled(void)
|
78
|
+
{
|
79
|
+
if (compute_query_id == COMPUTE_QUERY_ID_OFF)
|
80
|
+
return false;
|
81
|
+
if (compute_query_id == COMPUTE_QUERY_ID_ON)
|
82
|
+
return true;
|
83
|
+
return query_id_enabled;
|
84
|
+
}
|
85
|
+
|
86
|
+
#endif /* QUERYJUMBLE_H */
|
@@ -0,0 +1,132 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* replnodes.h
|
4
|
+
* definitions for replication grammar parse nodes
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
+
*
|
10
|
+
* src/include/nodes/replnodes.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef REPLNODES_H
|
15
|
+
#define REPLNODES_H
|
16
|
+
|
17
|
+
#include "access/xlogdefs.h"
|
18
|
+
#include "nodes/pg_list.h"
|
19
|
+
|
20
|
+
typedef enum ReplicationKind
|
21
|
+
{
|
22
|
+
REPLICATION_KIND_PHYSICAL,
|
23
|
+
REPLICATION_KIND_LOGICAL,
|
24
|
+
} ReplicationKind;
|
25
|
+
|
26
|
+
|
27
|
+
/* ----------------------
|
28
|
+
* IDENTIFY_SYSTEM command
|
29
|
+
* ----------------------
|
30
|
+
*/
|
31
|
+
typedef struct IdentifySystemCmd
|
32
|
+
{
|
33
|
+
NodeTag type;
|
34
|
+
} IdentifySystemCmd;
|
35
|
+
|
36
|
+
|
37
|
+
/* ----------------------
|
38
|
+
* BASE_BACKUP command
|
39
|
+
* ----------------------
|
40
|
+
*/
|
41
|
+
typedef struct BaseBackupCmd
|
42
|
+
{
|
43
|
+
NodeTag type;
|
44
|
+
List *options;
|
45
|
+
} BaseBackupCmd;
|
46
|
+
|
47
|
+
|
48
|
+
/* ----------------------
|
49
|
+
* CREATE_REPLICATION_SLOT command
|
50
|
+
* ----------------------
|
51
|
+
*/
|
52
|
+
typedef struct CreateReplicationSlotCmd
|
53
|
+
{
|
54
|
+
NodeTag type;
|
55
|
+
char *slotname;
|
56
|
+
ReplicationKind kind;
|
57
|
+
char *plugin;
|
58
|
+
bool temporary;
|
59
|
+
List *options;
|
60
|
+
} CreateReplicationSlotCmd;
|
61
|
+
|
62
|
+
|
63
|
+
/* ----------------------
|
64
|
+
* DROP_REPLICATION_SLOT command
|
65
|
+
* ----------------------
|
66
|
+
*/
|
67
|
+
typedef struct DropReplicationSlotCmd
|
68
|
+
{
|
69
|
+
NodeTag type;
|
70
|
+
char *slotname;
|
71
|
+
bool wait;
|
72
|
+
} DropReplicationSlotCmd;
|
73
|
+
|
74
|
+
|
75
|
+
/* ----------------------
|
76
|
+
* ALTER_REPLICATION_SLOT command
|
77
|
+
* ----------------------
|
78
|
+
*/
|
79
|
+
typedef struct AlterReplicationSlotCmd
|
80
|
+
{
|
81
|
+
NodeTag type;
|
82
|
+
char *slotname;
|
83
|
+
List *options;
|
84
|
+
} AlterReplicationSlotCmd;
|
85
|
+
|
86
|
+
|
87
|
+
/* ----------------------
|
88
|
+
* START_REPLICATION command
|
89
|
+
* ----------------------
|
90
|
+
*/
|
91
|
+
typedef struct StartReplicationCmd
|
92
|
+
{
|
93
|
+
NodeTag type;
|
94
|
+
ReplicationKind kind;
|
95
|
+
char *slotname;
|
96
|
+
TimeLineID timeline;
|
97
|
+
XLogRecPtr startpoint;
|
98
|
+
List *options;
|
99
|
+
} StartReplicationCmd;
|
100
|
+
|
101
|
+
|
102
|
+
/* ----------------------
|
103
|
+
* READ_REPLICATION_SLOT command
|
104
|
+
* ----------------------
|
105
|
+
*/
|
106
|
+
typedef struct ReadReplicationSlotCmd
|
107
|
+
{
|
108
|
+
NodeTag type;
|
109
|
+
char *slotname;
|
110
|
+
} ReadReplicationSlotCmd;
|
111
|
+
|
112
|
+
|
113
|
+
/* ----------------------
|
114
|
+
* TIMELINE_HISTORY command
|
115
|
+
* ----------------------
|
116
|
+
*/
|
117
|
+
typedef struct TimeLineHistoryCmd
|
118
|
+
{
|
119
|
+
NodeTag type;
|
120
|
+
TimeLineID timeline;
|
121
|
+
} TimeLineHistoryCmd;
|
122
|
+
|
123
|
+
/* ----------------------
|
124
|
+
* UPLOAD_MANIFEST command
|
125
|
+
* ----------------------
|
126
|
+
*/
|
127
|
+
typedef struct UploadManifestCmd
|
128
|
+
{
|
129
|
+
NodeTag type;
|
130
|
+
} UploadManifestCmd;
|
131
|
+
|
132
|
+
#endif /* REPLNODES_H */
|
@@ -0,0 +1,346 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* supportnodes.h
|
4
|
+
* Definitions for planner support functions.
|
5
|
+
*
|
6
|
+
* This file defines the API for "planner support functions", which
|
7
|
+
* are SQL functions (normally written in C) that can be attached to
|
8
|
+
* another "target" function to give the system additional knowledge
|
9
|
+
* about the target function. All the current capabilities have to do
|
10
|
+
* with planning queries that use the target function, though it is
|
11
|
+
* possible that future extensions will add functionality to be invoked
|
12
|
+
* by the parser or executor.
|
13
|
+
*
|
14
|
+
* A support function must have the SQL signature
|
15
|
+
* supportfn(internal) returns internal
|
16
|
+
* The argument is a pointer to one of the Node types defined in this file.
|
17
|
+
* The result is usually also a Node pointer, though its type depends on
|
18
|
+
* which capability is being invoked. In all cases, a NULL pointer result
|
19
|
+
* (that's PG_RETURN_POINTER(NULL), not PG_RETURN_NULL()) indicates that
|
20
|
+
* the support function cannot do anything useful for the given request.
|
21
|
+
* Support functions must return a NULL pointer, not fail, if they do not
|
22
|
+
* recognize the request node type or cannot handle the given case; this
|
23
|
+
* allows for future extensions of the set of request cases.
|
24
|
+
*
|
25
|
+
*
|
26
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
27
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
28
|
+
*
|
29
|
+
* src/include/nodes/supportnodes.h
|
30
|
+
*
|
31
|
+
*-------------------------------------------------------------------------
|
32
|
+
*/
|
33
|
+
#ifndef SUPPORTNODES_H
|
34
|
+
#define SUPPORTNODES_H
|
35
|
+
|
36
|
+
#include "nodes/plannodes.h"
|
37
|
+
|
38
|
+
struct PlannerInfo; /* avoid including pathnodes.h here */
|
39
|
+
struct IndexOptInfo;
|
40
|
+
struct SpecialJoinInfo;
|
41
|
+
struct WindowClause;
|
42
|
+
|
43
|
+
/*
|
44
|
+
* The Simplify request allows the support function to perform plan-time
|
45
|
+
* simplification of a call to its target function. For example, a varchar
|
46
|
+
* length coercion that does not decrease the allowed length of its argument
|
47
|
+
* could be replaced by a RelabelType node, or "x + 0" could be replaced by
|
48
|
+
* "x". This is invoked during the planner's constant-folding pass, so the
|
49
|
+
* function's arguments can be presumed already simplified.
|
50
|
+
*
|
51
|
+
* The planner's PlannerInfo "root" is typically not needed, but can be
|
52
|
+
* consulted if it's necessary to obtain info about Vars present in
|
53
|
+
* the given node tree. Beware that root could be NULL in some usages.
|
54
|
+
*
|
55
|
+
* "fcall" will be a FuncExpr invoking the support function's target
|
56
|
+
* function. (This is true even if the original parsetree node was an
|
57
|
+
* operator call; a FuncExpr is synthesized for this purpose.)
|
58
|
+
*
|
59
|
+
* The result should be a semantically-equivalent transformed node tree,
|
60
|
+
* or NULL if no simplification could be performed. Do *not* return or
|
61
|
+
* modify *fcall, as it isn't really a separately allocated Node. But
|
62
|
+
* it's okay to use fcall->args, or parts of it, in the result tree.
|
63
|
+
*/
|
64
|
+
typedef struct SupportRequestSimplify
|
65
|
+
{
|
66
|
+
NodeTag type;
|
67
|
+
|
68
|
+
struct PlannerInfo *root; /* Planner's infrastructure */
|
69
|
+
FuncExpr *fcall; /* Function call to be simplified */
|
70
|
+
} SupportRequestSimplify;
|
71
|
+
|
72
|
+
/*
|
73
|
+
* The Selectivity request allows the support function to provide a
|
74
|
+
* selectivity estimate for a function appearing at top level of a WHERE
|
75
|
+
* clause (so it applies only to functions returning boolean).
|
76
|
+
*
|
77
|
+
* The input arguments are the same as are supplied to operator restriction
|
78
|
+
* and join estimators, except that we unify those two APIs into just one
|
79
|
+
* request type. See clause_selectivity() for the details.
|
80
|
+
*
|
81
|
+
* If an estimate can be made, store it into the "selectivity" field and
|
82
|
+
* return the address of the SupportRequestSelectivity node; the estimate
|
83
|
+
* must be between 0 and 1 inclusive. Return NULL if no estimate can be
|
84
|
+
* made (in which case the planner will fall back to a default estimate,
|
85
|
+
* traditionally 1/3).
|
86
|
+
*
|
87
|
+
* If the target function is being used as the implementation of an operator,
|
88
|
+
* the support function will not be used for this purpose; the operator's
|
89
|
+
* restriction or join estimator is consulted instead.
|
90
|
+
*/
|
91
|
+
typedef struct SupportRequestSelectivity
|
92
|
+
{
|
93
|
+
NodeTag type;
|
94
|
+
|
95
|
+
/* Input fields: */
|
96
|
+
struct PlannerInfo *root; /* Planner's infrastructure */
|
97
|
+
Oid funcid; /* function we are inquiring about */
|
98
|
+
List *args; /* pre-simplified arguments to function */
|
99
|
+
Oid inputcollid; /* function's input collation */
|
100
|
+
bool is_join; /* is this a join or restriction case? */
|
101
|
+
int varRelid; /* if restriction, RTI of target relation */
|
102
|
+
JoinType jointype; /* if join, outer join type */
|
103
|
+
struct SpecialJoinInfo *sjinfo; /* if outer join, info about join */
|
104
|
+
|
105
|
+
/* Output fields: */
|
106
|
+
Selectivity selectivity; /* returned selectivity estimate */
|
107
|
+
} SupportRequestSelectivity;
|
108
|
+
|
109
|
+
/*
|
110
|
+
* The Cost request allows the support function to provide an execution
|
111
|
+
* cost estimate for its target function. The cost estimate can include
|
112
|
+
* both a one-time (query startup) component and a per-execution component.
|
113
|
+
* The estimate should *not* include the costs of evaluating the target
|
114
|
+
* function's arguments, only the target function itself.
|
115
|
+
*
|
116
|
+
* The "node" argument is normally the parse node that is invoking the
|
117
|
+
* target function. This is a FuncExpr in the simplest case, but it could
|
118
|
+
* also be an OpExpr, DistinctExpr, NullIfExpr, or WindowFunc, or possibly
|
119
|
+
* other cases in future. NULL is passed if the function cannot presume
|
120
|
+
* its arguments to be equivalent to what the calling node presents as
|
121
|
+
* arguments; that happens for, e.g., aggregate support functions and
|
122
|
+
* per-column comparison operators used by RowExprs.
|
123
|
+
*
|
124
|
+
* If an estimate can be made, store it into the cost fields and return the
|
125
|
+
* address of the SupportRequestCost node. Return NULL if no estimate can be
|
126
|
+
* made, in which case the planner will rely on the target function's procost
|
127
|
+
* field. (Note: while procost is automatically scaled by cpu_operator_cost,
|
128
|
+
* this is not the case for the outputs of the Cost request; the support
|
129
|
+
* function must scale its results appropriately on its own.)
|
130
|
+
*/
|
131
|
+
typedef struct SupportRequestCost
|
132
|
+
{
|
133
|
+
NodeTag type;
|
134
|
+
|
135
|
+
/* Input fields: */
|
136
|
+
struct PlannerInfo *root; /* Planner's infrastructure (could be NULL) */
|
137
|
+
Oid funcid; /* function we are inquiring about */
|
138
|
+
Node *node; /* parse node invoking function, or NULL */
|
139
|
+
|
140
|
+
/* Output fields: */
|
141
|
+
Cost startup; /* one-time cost */
|
142
|
+
Cost per_tuple; /* per-evaluation cost */
|
143
|
+
} SupportRequestCost;
|
144
|
+
|
145
|
+
/*
|
146
|
+
* The Rows request allows the support function to provide an output rowcount
|
147
|
+
* estimate for its target function (so it applies only to set-returning
|
148
|
+
* functions).
|
149
|
+
*
|
150
|
+
* The "node" argument is the parse node that is invoking the target function;
|
151
|
+
* currently this will always be a FuncExpr or OpExpr.
|
152
|
+
*
|
153
|
+
* If an estimate can be made, store it into the rows field and return the
|
154
|
+
* address of the SupportRequestRows node. Return NULL if no estimate can be
|
155
|
+
* made, in which case the planner will rely on the target function's prorows
|
156
|
+
* field.
|
157
|
+
*/
|
158
|
+
typedef struct SupportRequestRows
|
159
|
+
{
|
160
|
+
NodeTag type;
|
161
|
+
|
162
|
+
/* Input fields: */
|
163
|
+
struct PlannerInfo *root; /* Planner's infrastructure (could be NULL) */
|
164
|
+
Oid funcid; /* function we are inquiring about */
|
165
|
+
Node *node; /* parse node invoking function */
|
166
|
+
|
167
|
+
/* Output fields: */
|
168
|
+
double rows; /* number of rows expected to be returned */
|
169
|
+
} SupportRequestRows;
|
170
|
+
|
171
|
+
/*
|
172
|
+
* The IndexCondition request allows the support function to generate
|
173
|
+
* a directly-indexable condition based on a target function call that is
|
174
|
+
* not itself indexable. The target function call must appear at the top
|
175
|
+
* level of WHERE or JOIN/ON, so this applies only to functions returning
|
176
|
+
* boolean.
|
177
|
+
*
|
178
|
+
* The "node" argument is the parse node that is invoking the target function;
|
179
|
+
* currently this will always be a FuncExpr or OpExpr. The call is made
|
180
|
+
* only if at least one function argument matches an index column's variable
|
181
|
+
* or expression. "indexarg" identifies the matching argument (it's the
|
182
|
+
* argument's zero-based index in the node's args list).
|
183
|
+
*
|
184
|
+
* If the transformation is possible, return a List of directly-indexable
|
185
|
+
* condition expressions, else return NULL. (A List is used because it's
|
186
|
+
* sometimes useful to generate more than one indexable condition, such as
|
187
|
+
* when a LIKE with constant prefix gives rise to both >= and < conditions.)
|
188
|
+
*
|
189
|
+
* "Directly indexable" means that the condition must be directly executable
|
190
|
+
* by the index machinery. Typically this means that it is a binary OpExpr
|
191
|
+
* with the index column value on the left, a pseudo-constant on the right,
|
192
|
+
* and an operator that is in the index column's operator family. Other
|
193
|
+
* possibilities include RowCompareExpr, ScalarArrayOpExpr, and NullTest,
|
194
|
+
* depending on the index type; but those seem less likely to be useful for
|
195
|
+
* derived index conditions. "Pseudo-constant" means that the right-hand
|
196
|
+
* expression must not contain any volatile functions, nor any Vars of the
|
197
|
+
* table the index is for; use is_pseudo_constant_for_index() to check this.
|
198
|
+
* (Note: if the passed "node" is an OpExpr, the core planner already verified
|
199
|
+
* that the non-indexkey operand is pseudo-constant; but when the "node"
|
200
|
+
* is a FuncExpr, it does not check, since it doesn't know which of the
|
201
|
+
* function's arguments you might need to use in an index comparison value.)
|
202
|
+
*
|
203
|
+
* In many cases, an index condition can be generated but it is weaker than
|
204
|
+
* the function condition itself; for example, a LIKE with a constant prefix
|
205
|
+
* can produce an index range check based on the prefix, but we still need
|
206
|
+
* to execute the LIKE operator to verify the rest of the pattern. We say
|
207
|
+
* that such an index condition is "lossy". When returning an index condition,
|
208
|
+
* you should set the "lossy" request field to true if the condition is lossy,
|
209
|
+
* or false if it is an exact equivalent of the function's result. The core
|
210
|
+
* code will initialize that field to true, which is the common case.
|
211
|
+
*
|
212
|
+
* It is important to verify that the index operator family is the correct
|
213
|
+
* one for the condition you want to generate. Core support functions tend
|
214
|
+
* to use the known OID of a built-in opfamily for this, but extensions need
|
215
|
+
* to work harder, since their OIDs aren't fixed. A possibly workable
|
216
|
+
* answer for an index on an extension datatype is to verify the index AM's
|
217
|
+
* OID instead, and then assume that there's only one relevant opclass for
|
218
|
+
* your datatype so the opfamily must be the right one. Generating OpExpr
|
219
|
+
* nodes may also require knowing extension datatype OIDs (often you can
|
220
|
+
* find these out by applying exprType() to a function argument) and
|
221
|
+
* operator OIDs (which you can look up using get_opfamily_member).
|
222
|
+
*/
|
223
|
+
typedef struct SupportRequestIndexCondition
|
224
|
+
{
|
225
|
+
NodeTag type;
|
226
|
+
|
227
|
+
/* Input fields: */
|
228
|
+
struct PlannerInfo *root; /* Planner's infrastructure */
|
229
|
+
Oid funcid; /* function we are inquiring about */
|
230
|
+
Node *node; /* parse node invoking function */
|
231
|
+
int indexarg; /* index of function arg matching indexcol */
|
232
|
+
struct IndexOptInfo *index; /* planner's info about target index */
|
233
|
+
int indexcol; /* index of target index column (0-based) */
|
234
|
+
Oid opfamily; /* index column's operator family */
|
235
|
+
Oid indexcollation; /* index column's collation */
|
236
|
+
|
237
|
+
/* Output fields: */
|
238
|
+
bool lossy; /* set to false if index condition is an exact
|
239
|
+
* equivalent of the function call */
|
240
|
+
} SupportRequestIndexCondition;
|
241
|
+
|
242
|
+
/* ----------
|
243
|
+
* To support more efficient query execution of any monotonically increasing
|
244
|
+
* and/or monotonically decreasing window functions, we support calling the
|
245
|
+
* window function's prosupport function passing along this struct whenever
|
246
|
+
* the planner sees an OpExpr qual directly reference a window function in a
|
247
|
+
* subquery. When the planner encounters this, we populate this struct and
|
248
|
+
* pass it along to the window function's prosupport function so that it can
|
249
|
+
* evaluate if the given WindowFunc is;
|
250
|
+
*
|
251
|
+
* a) monotonically increasing, or
|
252
|
+
* b) monotonically decreasing, or
|
253
|
+
* c) both monotonically increasing and decreasing, or
|
254
|
+
* d) none of the above.
|
255
|
+
*
|
256
|
+
* A function that is monotonically increasing can never return a value that
|
257
|
+
* is lower than a value returned in a "previous call". A monotonically
|
258
|
+
* decreasing function can never return a value higher than a value returned
|
259
|
+
* in a previous call. A function that is both must return the same value
|
260
|
+
* each time.
|
261
|
+
*
|
262
|
+
* We define "previous call" to mean a previous call to the same WindowFunc
|
263
|
+
* struct in the same window partition.
|
264
|
+
*
|
265
|
+
* row_number() is an example of a monotonically increasing function. The
|
266
|
+
* return value will be reset back to 1 in each new partition. An example of
|
267
|
+
* a monotonically increasing and decreasing function is COUNT(*) OVER ().
|
268
|
+
* Since there is no ORDER BY clause in this example, all rows in the
|
269
|
+
* partition are peers and all rows within the partition will be within the
|
270
|
+
* frame bound. Likewise for COUNT(*) OVER(ORDER BY a ROWS BETWEEN UNBOUNDED
|
271
|
+
* PRECEDING AND UNBOUNDED FOLLOWING).
|
272
|
+
*
|
273
|
+
* COUNT(*) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)
|
274
|
+
* is an example of a monotonically decreasing function.
|
275
|
+
*
|
276
|
+
* Implementations must only concern themselves with the given WindowFunc
|
277
|
+
* being monotonic in a single partition.
|
278
|
+
*
|
279
|
+
* Inputs:
|
280
|
+
* 'window_func' is the pointer to the window function being called.
|
281
|
+
*
|
282
|
+
* 'window_clause' pointer to the WindowClause data. Support functions can
|
283
|
+
* use this to check frame bounds, etc.
|
284
|
+
*
|
285
|
+
* Outputs:
|
286
|
+
* 'monotonic' the resulting MonotonicFunction value for the given input
|
287
|
+
* window function and window clause.
|
288
|
+
* ----------
|
289
|
+
*/
|
290
|
+
typedef struct SupportRequestWFuncMonotonic
|
291
|
+
{
|
292
|
+
NodeTag type;
|
293
|
+
|
294
|
+
/* Input fields: */
|
295
|
+
WindowFunc *window_func; /* Pointer to the window function data */
|
296
|
+
struct WindowClause *window_clause; /* Pointer to the window clause data */
|
297
|
+
|
298
|
+
/* Output fields: */
|
299
|
+
MonotonicFunction monotonic;
|
300
|
+
} SupportRequestWFuncMonotonic;
|
301
|
+
|
302
|
+
/*
|
303
|
+
* Some WindowFunc behavior might not be affected by certain variations in
|
304
|
+
* the WindowClause's frameOptions. For example, row_number() is coded in
|
305
|
+
* such a way that the frame options don't change the returned row number.
|
306
|
+
* nodeWindowAgg.c will have less work to do if the ROWS option is used
|
307
|
+
* instead of the RANGE option as no check needs to be done for peer rows.
|
308
|
+
* Since RANGE is included in the default frame options, window functions
|
309
|
+
* such as row_number() might want to change that to ROW.
|
310
|
+
*
|
311
|
+
* Here we allow a WindowFunc's support function to determine which, if
|
312
|
+
* anything, can be changed about the WindowClause which the WindowFunc
|
313
|
+
* belongs to. Currently only the frameOptions can be modified. However,
|
314
|
+
* we may want to allow more optimizations in the future.
|
315
|
+
*
|
316
|
+
* The support function is responsible for ensuring the optimized version of
|
317
|
+
* the frameOptions doesn't affect the result of the window function. The
|
318
|
+
* planner is responsible for only changing the frame options when all
|
319
|
+
* WindowFuncs using this particular WindowClause agree on what the optimized
|
320
|
+
* version of the frameOptions are. If a particular WindowFunc being used
|
321
|
+
* does not have a support function then the planner will not make any changes
|
322
|
+
* to the WindowClause's frameOptions.
|
323
|
+
*
|
324
|
+
* 'window_func' and 'window_clause' are set by the planner before calling the
|
325
|
+
* support function so that the support function has these fields available.
|
326
|
+
* These may be required in order to determine which optimizations are
|
327
|
+
* possible.
|
328
|
+
*
|
329
|
+
* 'frameOptions' is set by the planner to WindowClause.frameOptions. The
|
330
|
+
* support function must only adjust this if optimizations are possible for
|
331
|
+
* the given WindowFunc.
|
332
|
+
*/
|
333
|
+
typedef struct SupportRequestOptimizeWindowClause
|
334
|
+
{
|
335
|
+
NodeTag type;
|
336
|
+
|
337
|
+
/* Input fields: */
|
338
|
+
WindowFunc *window_func; /* Pointer to the window function data */
|
339
|
+
struct WindowClause *window_clause; /* Pointer to the window clause data */
|
340
|
+
|
341
|
+
/* Input/Output fields: */
|
342
|
+
int frameOptions; /* New frameOptions, or left untouched if no
|
343
|
+
* optimizations are possible. */
|
344
|
+
} SupportRequestOptimizeWindowClause;
|
345
|
+
|
346
|
+
#endif /* SUPPORTNODES_H */
|
@@ -0,0 +1,75 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* tidbitmap.h
|
4
|
+
* PostgreSQL tuple-id (TID) bitmap package
|
5
|
+
*
|
6
|
+
* This module provides bitmap data structures that are spiritually
|
7
|
+
* similar to Bitmapsets, but are specially adapted to store sets of
|
8
|
+
* tuple identifiers (TIDs), or ItemPointers. In particular, the division
|
9
|
+
* of an ItemPointer into BlockNumber and OffsetNumber is catered for.
|
10
|
+
* Also, since we wish to be able to store very large tuple sets in
|
11
|
+
* memory with this data structure, we support "lossy" storage, in which
|
12
|
+
* we no longer remember individual tuple offsets on a page but only the
|
13
|
+
* fact that a particular page needs to be visited.
|
14
|
+
*
|
15
|
+
*
|
16
|
+
* Copyright (c) 2003-2024, PostgreSQL Global Development Group
|
17
|
+
*
|
18
|
+
* src/include/nodes/tidbitmap.h
|
19
|
+
*
|
20
|
+
*-------------------------------------------------------------------------
|
21
|
+
*/
|
22
|
+
#ifndef TIDBITMAP_H
|
23
|
+
#define TIDBITMAP_H
|
24
|
+
|
25
|
+
#include "storage/itemptr.h"
|
26
|
+
#include "utils/dsa.h"
|
27
|
+
|
28
|
+
|
29
|
+
/*
|
30
|
+
* Actual bitmap representation is private to tidbitmap.c. Callers can
|
31
|
+
* do IsA(x, TIDBitmap) on it, but nothing else.
|
32
|
+
*/
|
33
|
+
typedef struct TIDBitmap TIDBitmap;
|
34
|
+
|
35
|
+
/* Likewise, TBMIterator is private */
|
36
|
+
typedef struct TBMIterator TBMIterator;
|
37
|
+
typedef struct TBMSharedIterator TBMSharedIterator;
|
38
|
+
|
39
|
+
/* Result structure for tbm_iterate */
|
40
|
+
typedef struct TBMIterateResult
|
41
|
+
{
|
42
|
+
BlockNumber blockno; /* page number containing tuples */
|
43
|
+
int ntuples; /* -1 indicates lossy result */
|
44
|
+
bool recheck; /* should the tuples be rechecked? */
|
45
|
+
/* Note: recheck is always true if ntuples < 0 */
|
46
|
+
OffsetNumber offsets[FLEXIBLE_ARRAY_MEMBER];
|
47
|
+
} TBMIterateResult;
|
48
|
+
|
49
|
+
/* function prototypes in nodes/tidbitmap.c */
|
50
|
+
|
51
|
+
extern TIDBitmap *tbm_create(long maxbytes, dsa_area *dsa);
|
52
|
+
extern void tbm_free(TIDBitmap *tbm);
|
53
|
+
extern void tbm_free_shared_area(dsa_area *dsa, dsa_pointer dp);
|
54
|
+
|
55
|
+
extern void tbm_add_tuples(TIDBitmap *tbm,
|
56
|
+
const ItemPointer tids, int ntids,
|
57
|
+
bool recheck);
|
58
|
+
extern void tbm_add_page(TIDBitmap *tbm, BlockNumber pageno);
|
59
|
+
|
60
|
+
extern void tbm_union(TIDBitmap *a, const TIDBitmap *b);
|
61
|
+
extern void tbm_intersect(TIDBitmap *a, const TIDBitmap *b);
|
62
|
+
|
63
|
+
extern bool tbm_is_empty(const TIDBitmap *tbm);
|
64
|
+
|
65
|
+
extern TBMIterator *tbm_begin_iterate(TIDBitmap *tbm);
|
66
|
+
extern dsa_pointer tbm_prepare_shared_iterate(TIDBitmap *tbm);
|
67
|
+
extern TBMIterateResult *tbm_iterate(TBMIterator *iterator);
|
68
|
+
extern TBMIterateResult *tbm_shared_iterate(TBMSharedIterator *iterator);
|
69
|
+
extern void tbm_end_iterate(TBMIterator *iterator);
|
70
|
+
extern void tbm_end_shared_iterate(TBMSharedIterator *iterator);
|
71
|
+
extern TBMSharedIterator *tbm_attach_shared_iterate(dsa_area *dsa,
|
72
|
+
dsa_pointer dp);
|
73
|
+
extern long tbm_calculate_entries(double maxbytes);
|
74
|
+
|
75
|
+
#endif /* TIDBITMAP_H */
|