pg_query 4.2.1 → 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 +61 -0
- data/README.md +7 -9
- 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 +28 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +599 -167
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +640 -520
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +6400 -4633
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +433 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1472 -1152
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +154 -124
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1886 -1506
- 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/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 +7723 -6368
- data/ext/pg_query/include/protobuf/pg_query.pb.h +120022 -87031
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +22595 -17738
- data/ext/pg_query/pg_query_deparse.c +1 -10635
- data/ext/pg_query/pg_query_fingerprint.c +12 -8
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
- data/ext/pg_query/pg_query_normalize.c +43 -2
- data/ext/pg_query/pg_query_outfuncs_json.c +9 -1
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +19 -18
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_scan.c +2 -2
- data/ext/pg_query/pg_query_split.c +3 -3
- 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 +243 -63
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +140 -156
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +16 -8
- data/ext/pg_query/src_backend_nodes_makefuncs.c +134 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +391 -133
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +43710 -39953
- data/ext/pg_query/src_backend_parser_parser.c +34 -8
- data/ext/pg_query/src_backend_parser_scan.c +6971 -3373
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +99 -96
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +488 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +177 -30
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +397 -270
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +36 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +20 -5
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +31 -84
- 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 +704 -497
- 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 +637 -233
- 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 +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +586 -517
- 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 +100 -116
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +829 -763
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +251 -32
- data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
- data/ext/pg_query/src_port_snprintf.c +20 -27
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +5 -8
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/param_refs.rb +2 -2
- data/lib/pg_query/parse.rb +6 -8
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +173 -3196
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +52 -11
- data/lib/pg_query/truncate.rb +18 -20
- data/lib/pg_query/version.rb +1 -1
- metadata +443 -442
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -290
- 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 -63
- data/ext/pg_query/include/access/commit_ts.h +0 -74
- data/ext/pg_query/include/access/detoast.h +0 -82
- data/ext/pg_query/include/access/genam.h +0 -231
- 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 -807
- data/ext/pg_query/include/access/itup.h +0 -167
- data/ext/pg_query/include/access/parallel.h +0 -82
- data/ext/pg_query/include/access/printtup.h +0 -35
- data/ext/pg_query/include/access/relation.h +0 -28
- data/ext/pg_query/include/access/relscan.h +0 -191
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -58
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -85
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -28
- data/ext/pg_query/include/access/tableam.h +0 -2077
- data/ext/pg_query/include/access/toast_compression.h +0 -73
- data/ext/pg_query/include/access/transam.h +0 -375
- data/ext/pg_query/include/access/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 -65
- data/ext/pg_query/include/access/xact.h +0 -523
- data/ext/pg_query/include/access/xlog.h +0 -303
- data/ext/pg_query/include/access/xlog_internal.h +0 -366
- data/ext/pg_query/include/access/xlogdefs.h +0 -101
- data/ext/pg_query/include/access/xlogprefetcher.h +0 -55
- data/ext/pg_query/include/access/xlogreader.h +0 -443
- data/ext/pg_query/include/access/xlogrecord.h +0 -236
- data/ext/pg_query/include/access/xlogrecovery.h +0 -157
- data/ext/pg_query/include/c.h +0 -1391
- data/ext/pg_query/include/catalog/catalog.h +0 -44
- data/ext/pg_query/include/catalog/catversion.h +0 -58
- data/ext/pg_query/include/catalog/dependency.h +0 -269
- data/ext/pg_query/include/catalog/genbki.h +0 -142
- data/ext/pg_query/include/catalog/index.h +0 -214
- data/ext/pg_query/include/catalog/indexing.h +0 -54
- data/ext/pg_query/include/catalog/namespace.h +0 -190
- data/ext/pg_query/include/catalog/objectaccess.h +0 -265
- data/ext/pg_query/include/catalog/objectaddress.h +0 -89
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -180
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -78
- data/ext/pg_query/include/catalog/pg_am.h +0 -63
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -221
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -62
- data/ext/pg_query/include/catalog/pg_authid.h +0 -63
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -57
- data/ext/pg_query/include/catalog/pg_class.h +0 -230
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -132
- data/ext/pg_query/include/catalog/pg_collation.h +0 -98
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -62
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -273
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -73
- data/ext/pg_query/include/catalog/pg_control.h +0 -250
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -75
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_depend.h +0 -77
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -57
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_index.h +0 -90
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_language.h +0 -72
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -41
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -64
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -88
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -51
- data/ext/pg_query/include/catalog/pg_operator.h +0 -107
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -142
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -63
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -74
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_proc.h +0 -220
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -101
- data/ext/pg_query/include/catalog/pg_publication.h +0 -161
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -62
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -282
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -195
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -88
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform.h +0 -48
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -153
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -109
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -53
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -59
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -60
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -37
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -51
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_type.h +0 -404
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -324
- data/ext/pg_query/include/catalog/storage.h +0 -50
- data/ext/pg_query/include/commands/async.h +0 -53
- data/ext/pg_query/include/commands/dbcommands.h +0 -36
- data/ext/pg_query/include/commands/defrem.h +0 -160
- 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 -287
- data/ext/pg_query/include/commands/user.h +0 -37
- data/ext/pg_query/include/commands/vacuum.h +0 -340
- 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 -31
- data/ext/pg_query/include/common/keywords.h +0 -29
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/pg_prng.h +0 -60
- data/ext/pg_query/include/common/relpath.h +0 -90
- data/ext/pg_query/include/common/string.h +0 -42
- data/ext/pg_query/include/common/unicode_combining_table.h +0 -308
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +0 -125
- data/ext/pg_query/include/datatype/timestamp.h +0 -236
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -663
- data/ext/pg_query/include/executor/functions.h +0 -55
- data/ext/pg_query/include/executor/instrument.h +0 -118
- data/ext/pg_query/include/executor/spi.h +0 -213
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -487
- data/ext/pg_query/include/fmgr.h +0 -781
- data/ext/pg_query/include/funcapi.h +0 -360
- 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 -1095
- data/ext/pg_query/include/lib/dshash.h +0 -112
- data/ext/pg_query/include/lib/ilist.h +0 -746
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1184
- data/ext/pg_query/include/lib/sort_template.h +0 -432
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -31
- data/ext/pg_query/include/libpq/crypt.h +0 -47
- data/ext/pg_query/include/libpq/hba.h +0 -179
- data/ext/pg_query/include/libpq/libpq-be.h +0 -343
- data/ext/pg_query/include/libpq/libpq.h +0 -144
- data/ext/pg_query/include/libpq/pqcomm.h +0 -194
- 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 -755
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -495
- data/ext/pg_query/include/nodes/bitmapset.h +0 -122
- data/ext/pg_query/include/nodes/execnodes.h +0 -2715
- data/ext/pg_query/include/nodes/extensible.h +0 -162
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -109
- data/ext/pg_query/include/nodes/memnodes.h +0 -110
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
- data/ext/pg_query/include/nodes/nodes.h +0 -861
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -3812
- data/ext/pg_query/include/nodes/pathnodes.h +0 -2734
- data/ext/pg_query/include/nodes/pg_list.h +0 -612
- data/ext/pg_query/include/nodes/plannodes.h +0 -1349
- data/ext/pg_query/include/nodes/primnodes.h +0 -1593
- 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 -80
- data/ext/pg_query/include/optimizer/cost.h +0 -213
- data/ext/pg_query/include/optimizer/geqo.h +0 -90
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -202
- data/ext/pg_query/include/optimizer/paths.h +0 -257
- data/ext/pg_query/include/optimizer/planmain.h +0 -120
- data/ext/pg_query/include/parser/analyze.h +0 -63
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/parser/gramparse.h +0 -75
- data/ext/pg_query/include/parser/kwlist.h +0 -487
- data/ext/pg_query/include/parser/parse_agg.h +0 -63
- data/ext/pg_query/include/parser/parse_coerce.h +0 -100
- data/ext/pg_query/include/parser/parse_expr.h +0 -25
- data/ext/pg_query/include/parser/parse_func.h +0 -74
- data/ext/pg_query/include/parser/parse_node.h +0 -339
- data/ext/pg_query/include/parser/parse_oper.h +0 -65
- data/ext/pg_query/include/parser/parse_relation.h +0 -124
- data/ext/pg_query/include/parser/parse_type.h +0 -60
- data/ext/pg_query/include/parser/parser.h +0 -68
- data/ext/pg_query/include/parser/parsetree.h +0 -61
- data/ext/pg_query/include/parser/scanner.h +0 -152
- data/ext/pg_query/include/parser/scansup.h +0 -27
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -1037
- data/ext/pg_query/include/pg_config_manual.h +0 -410
- 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 -699
- data/ext/pg_query/include/pgtime.h +0 -94
- data/ext/pg_query/include/pl_gram.h +0 -383
- 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 -111
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -244
- data/ext/pg_query/include/plerrcodes.h +0 -998
- data/ext/pg_query/include/plpgsql.h +0 -1345
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -32
- data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
- data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
- data/ext/pg_query/include/port/atomics/fallback.h +0 -170
- data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
- data/ext/pg_query/include/port/atomics/generic.h +0 -401
- data/ext/pg_query/include/port/atomics.h +0 -524
- data/ext/pg_query/include/port/pg_bitutils.h +0 -302
- 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 -553
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postgres.h +0 -808
- 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/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/bgworker.h +0 -162
- data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
- data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/interrupt.h +0 -32
- data/ext/pg_query/include/postmaster/pgarch.h +0 -73
- data/ext/pg_query/include/postmaster/postmaster.h +0 -78
- data/ext/pg_query/include/postmaster/startup.h +0 -39
- data/ext/pg_query/include/postmaster/syslogger.h +0 -103
- data/ext/pg_query/include/postmaster/walwriter.h +0 -21
- data/ext/pg_query/include/regex/regex.h +0 -186
- data/ext/pg_query/include/replication/logicallauncher.h +0 -29
- data/ext/pg_query/include/replication/logicalproto.h +0 -254
- 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 -685
- data/ext/pg_query/include/replication/slot.h +0 -230
- data/ext/pg_query/include/replication/syncrep.h +0 -115
- data/ext/pg_query/include/replication/walreceiver.h +0 -472
- 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 -38
- 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 -115
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -297
- data/ext/pg_query/include/storage/bufpage.h +0 -457
- data/ext/pg_query/include/storage/condition_variable.h +0 -73
- data/ext/pg_query/include/storage/dsm.h +0 -64
- data/ext/pg_query/include/storage/dsm_impl.h +0 -76
- data/ext/pg_query/include/storage/fd.h +0 -198
- data/ext/pg_query/include/storage/fileset.h +0 -40
- data/ext/pg_query/include/storage/ipc.h +0 -84
- data/ext/pg_query/include/storage/item.h +0 -19
- data/ext/pg_query/include/storage/itemid.h +0 -184
- data/ext/pg_query/include/storage/itemptr.h +0 -208
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -186
- data/ext/pg_query/include/storage/lmgr.h +0 -115
- data/ext/pg_query/include/storage/lock.h +0 -616
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -206
- data/ext/pg_query/include/storage/lwlocknames.h +0 -50
- data/ext/pg_query/include/storage/off.h +0 -57
- data/ext/pg_query/include/storage/pg_sema.h +0 -61
- data/ext/pg_query/include/storage/pg_shmem.h +0 -92
- data/ext/pg_query/include/storage/pmsignal.h +0 -105
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -461
- data/ext/pg_query/include/storage/procarray.h +0 -98
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -71
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -1110
- data/ext/pg_query/include/storage/sharedfileset.h +0 -37
- data/ext/pg_query/include/storage/shm_mq.h +0 -86
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -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 -111
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -98
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -66
- data/ext/pg_query/include/tcop/cmdtag.h +0 -58
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -218
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -149
- data/ext/pg_query/include/tcop/fastpath.h +0 -20
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -97
- data/ext/pg_query/include/tcop/utility.h +0 -112
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
- data/ext/pg_query/include/utils/acl.h +0 -333
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -464
- data/ext/pg_query/include/utils/backend_progress.h +0 -44
- data/ext/pg_query/include/utils/backend_status.h +0 -321
- data/ext/pg_query/include/utils/builtins.h +0 -127
- data/ext/pg_query/include/utils/bytea.h +0 -28
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -90
- data/ext/pg_query/include/utils/datetime.h +0 -344
- data/ext/pg_query/include/utils/datum.h +0 -76
- data/ext/pg_query/include/utils/dsa.h +0 -123
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/elog.h +0 -470
- data/ext/pg_query/include/utils/errcodes.h +0 -354
- 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 -3261
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2829
- data/ext/pg_query/include/utils/fmgrtab.h +0 -49
- data/ext/pg_query/include/utils/guc.h +0 -469
- data/ext/pg_query/include/utils/guc_tables.h +0 -276
- data/ext/pg_query/include/utils/hsearch.h +0 -153
- data/ext/pg_query/include/utils/inval.h +0 -68
- data/ext/pg_query/include/utils/lsyscache.h +0 -208
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -230
- data/ext/pg_query/include/utils/numeric.h +0 -90
- data/ext/pg_query/include/utils/palloc.h +0 -158
- data/ext/pg_query/include/utils/partcache.h +0 -102
- data/ext/pg_query/include/utils/pg_locale.h +0 -127
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pgstat_internal.h +0 -784
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/plancache.h +0 -236
- data/ext/pg_query/include/utils/portal.h +0 -252
- data/ext/pg_query/include/utils/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/queryjumble.h +0 -88
- data/ext/pg_query/include/utils/regproc.h +0 -39
- data/ext/pg_query/include/utils/rel.h +0 -695
- data/ext/pg_query/include/utils/relcache.h +0 -153
- 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 -47
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -179
- data/ext/pg_query/include/utils/snapshot.h +0 -219
- data/ext/pg_query/include/utils/sortsupport.h +0 -391
- data/ext/pg_query/include/utils/syscache.h +0 -224
- data/ext/pg_query/include/utils/timeout.h +0 -95
- data/ext/pg_query/include/utils/timestamp.h +0 -117
- data/ext/pg_query/include/utils/tuplesort.h +0 -291
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -209
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/include/utils/varlena.h +0 -41
- data/ext/pg_query/include/utils/wait_event.h +0 -289
- data/ext/pg_query/include/utils/xml.h +0 -84
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
- data/ext/pg_query/src_common_pg_prng.c +0 -152
- data/ext/pg_query/src_common_string.c +0 -92
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
- /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* tidstore.h
|
4
|
+
* TidStore interface.
|
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/access/tidstore.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef TIDSTORE_H
|
15
|
+
#define TIDSTORE_H
|
16
|
+
|
17
|
+
#include "storage/itemptr.h"
|
18
|
+
#include "utils/dsa.h"
|
19
|
+
|
20
|
+
typedef struct TidStore TidStore;
|
21
|
+
typedef struct TidStoreIter TidStoreIter;
|
22
|
+
|
23
|
+
/* Result struct for TidStoreIterateNext */
|
24
|
+
typedef struct TidStoreIterResult
|
25
|
+
{
|
26
|
+
BlockNumber blkno;
|
27
|
+
int max_offset;
|
28
|
+
int num_offsets;
|
29
|
+
OffsetNumber *offsets;
|
30
|
+
} TidStoreIterResult;
|
31
|
+
|
32
|
+
extern TidStore *TidStoreCreateLocal(size_t max_bytes, bool insert_only);
|
33
|
+
extern TidStore *TidStoreCreateShared(size_t max_bytes, int tranche_id);
|
34
|
+
extern TidStore *TidStoreAttach(dsa_handle area_handle, dsa_pointer handle);
|
35
|
+
extern void TidStoreDetach(TidStore *ts);
|
36
|
+
extern void TidStoreLockExclusive(TidStore *ts);
|
37
|
+
extern void TidStoreLockShare(TidStore *ts);
|
38
|
+
extern void TidStoreUnlock(TidStore *ts);
|
39
|
+
extern void TidStoreDestroy(TidStore *ts);
|
40
|
+
extern void TidStoreSetBlockOffsets(TidStore *ts, BlockNumber blkno, OffsetNumber *offsets,
|
41
|
+
int num_offsets);
|
42
|
+
extern bool TidStoreIsMember(TidStore *ts, ItemPointer tid);
|
43
|
+
extern TidStoreIter *TidStoreBeginIterate(TidStore *ts);
|
44
|
+
extern TidStoreIterResult *TidStoreIterateNext(TidStoreIter *iter);
|
45
|
+
extern void TidStoreEndIterate(TidStoreIter *iter);
|
46
|
+
extern size_t TidStoreMemoryUsage(TidStore *ts);
|
47
|
+
extern dsa_pointer TidStoreGetHandle(TidStore *ts);
|
48
|
+
extern dsa_area *TidStoreGetDSA(TidStore *ts);
|
49
|
+
|
50
|
+
#endif /* TIDSTORE_H */
|
@@ -0,0 +1,73 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* toast_compression.h
|
4
|
+
* Functions for toast compression.
|
5
|
+
*
|
6
|
+
* Copyright (c) 2021-2024, PostgreSQL Global Development Group
|
7
|
+
*
|
8
|
+
* src/include/access/toast_compression.h
|
9
|
+
*
|
10
|
+
*-------------------------------------------------------------------------
|
11
|
+
*/
|
12
|
+
|
13
|
+
#ifndef TOAST_COMPRESSION_H
|
14
|
+
#define TOAST_COMPRESSION_H
|
15
|
+
|
16
|
+
/*
|
17
|
+
* GUC support.
|
18
|
+
*
|
19
|
+
* default_toast_compression is an integer for purposes of the GUC machinery,
|
20
|
+
* but the value is one of the char values defined below, as they appear in
|
21
|
+
* pg_attribute.attcompression, e.g. TOAST_PGLZ_COMPRESSION.
|
22
|
+
*/
|
23
|
+
extern PGDLLIMPORT int default_toast_compression;
|
24
|
+
|
25
|
+
/*
|
26
|
+
* Built-in compression method ID. The toast compression header will store
|
27
|
+
* this in the first 2 bits of the raw length. These built-in compression
|
28
|
+
* method IDs are directly mapped to the built-in compression methods.
|
29
|
+
*
|
30
|
+
* Don't use these values for anything other than understanding the meaning
|
31
|
+
* of the raw bits from a varlena; in particular, if the goal is to identify
|
32
|
+
* a compression method, use the constants TOAST_PGLZ_COMPRESSION, etc.
|
33
|
+
* below. We might someday support more than 4 compression methods, but
|
34
|
+
* we can never have more than 4 values in this enum, because there are
|
35
|
+
* only 2 bits available in the places where this is stored.
|
36
|
+
*/
|
37
|
+
typedef enum ToastCompressionId
|
38
|
+
{
|
39
|
+
TOAST_PGLZ_COMPRESSION_ID = 0,
|
40
|
+
TOAST_LZ4_COMPRESSION_ID = 1,
|
41
|
+
TOAST_INVALID_COMPRESSION_ID = 2,
|
42
|
+
} ToastCompressionId;
|
43
|
+
|
44
|
+
/*
|
45
|
+
* Built-in compression methods. pg_attribute will store these in the
|
46
|
+
* attcompression column. In attcompression, InvalidCompressionMethod
|
47
|
+
* denotes the default behavior.
|
48
|
+
*/
|
49
|
+
#define TOAST_PGLZ_COMPRESSION 'p'
|
50
|
+
#define TOAST_LZ4_COMPRESSION 'l'
|
51
|
+
#define InvalidCompressionMethod '\0'
|
52
|
+
|
53
|
+
#define CompressionMethodIsValid(cm) ((cm) != InvalidCompressionMethod)
|
54
|
+
|
55
|
+
|
56
|
+
/* pglz compression/decompression routines */
|
57
|
+
extern struct varlena *pglz_compress_datum(const struct varlena *value);
|
58
|
+
extern struct varlena *pglz_decompress_datum(const struct varlena *value);
|
59
|
+
extern struct varlena *pglz_decompress_datum_slice(const struct varlena *value,
|
60
|
+
int32 slicelength);
|
61
|
+
|
62
|
+
/* lz4 compression/decompression routines */
|
63
|
+
extern struct varlena *lz4_compress_datum(const struct varlena *value);
|
64
|
+
extern struct varlena *lz4_decompress_datum(const struct varlena *value);
|
65
|
+
extern struct varlena *lz4_decompress_datum_slice(const struct varlena *value,
|
66
|
+
int32 slicelength);
|
67
|
+
|
68
|
+
/* other stuff */
|
69
|
+
extern ToastCompressionId toast_get_compression_id(struct varlena *attr);
|
70
|
+
extern char CompressionNameToMethod(const char *compression);
|
71
|
+
extern const char *GetCompressionMethodName(char method);
|
72
|
+
|
73
|
+
#endif /* TOAST_COMPRESSION_H */
|
@@ -0,0 +1,418 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* transam.h
|
4
|
+
* postgres transaction access method support code
|
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/access/transam.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef TRANSAM_H
|
15
|
+
#define TRANSAM_H
|
16
|
+
|
17
|
+
#include "access/xlogdefs.h"
|
18
|
+
|
19
|
+
|
20
|
+
/* ----------------
|
21
|
+
* Special transaction ID values
|
22
|
+
*
|
23
|
+
* BootstrapTransactionId is the XID for "bootstrap" operations, and
|
24
|
+
* FrozenTransactionId is used for very old tuples. Both should
|
25
|
+
* always be considered valid.
|
26
|
+
*
|
27
|
+
* FirstNormalTransactionId is the first "normal" transaction id.
|
28
|
+
* Note: if you need to change it, you must change pg_class.h as well.
|
29
|
+
* ----------------
|
30
|
+
*/
|
31
|
+
#define InvalidTransactionId ((TransactionId) 0)
|
32
|
+
#define BootstrapTransactionId ((TransactionId) 1)
|
33
|
+
#define FrozenTransactionId ((TransactionId) 2)
|
34
|
+
#define FirstNormalTransactionId ((TransactionId) 3)
|
35
|
+
#define MaxTransactionId ((TransactionId) 0xFFFFFFFF)
|
36
|
+
|
37
|
+
/* ----------------
|
38
|
+
* transaction ID manipulation macros
|
39
|
+
* ----------------
|
40
|
+
*/
|
41
|
+
#define TransactionIdIsValid(xid) ((xid) != InvalidTransactionId)
|
42
|
+
#define TransactionIdIsNormal(xid) ((xid) >= FirstNormalTransactionId)
|
43
|
+
#define TransactionIdEquals(id1, id2) ((id1) == (id2))
|
44
|
+
#define TransactionIdStore(xid, dest) (*(dest) = (xid))
|
45
|
+
#define StoreInvalidTransactionId(dest) (*(dest) = InvalidTransactionId)
|
46
|
+
|
47
|
+
#define EpochFromFullTransactionId(x) ((uint32) ((x).value >> 32))
|
48
|
+
#define XidFromFullTransactionId(x) ((uint32) (x).value)
|
49
|
+
#define U64FromFullTransactionId(x) ((x).value)
|
50
|
+
#define FullTransactionIdEquals(a, b) ((a).value == (b).value)
|
51
|
+
#define FullTransactionIdPrecedes(a, b) ((a).value < (b).value)
|
52
|
+
#define FullTransactionIdPrecedesOrEquals(a, b) ((a).value <= (b).value)
|
53
|
+
#define FullTransactionIdFollows(a, b) ((a).value > (b).value)
|
54
|
+
#define FullTransactionIdFollowsOrEquals(a, b) ((a).value >= (b).value)
|
55
|
+
#define FullTransactionIdIsValid(x) TransactionIdIsValid(XidFromFullTransactionId(x))
|
56
|
+
#define InvalidFullTransactionId FullTransactionIdFromEpochAndXid(0, InvalidTransactionId)
|
57
|
+
#define FirstNormalFullTransactionId FullTransactionIdFromEpochAndXid(0, FirstNormalTransactionId)
|
58
|
+
#define FullTransactionIdIsNormal(x) FullTransactionIdFollowsOrEquals(x, FirstNormalFullTransactionId)
|
59
|
+
|
60
|
+
/*
|
61
|
+
* A 64 bit value that contains an epoch and a TransactionId. This is
|
62
|
+
* wrapped in a struct to prevent implicit conversion to/from TransactionId.
|
63
|
+
* Not all values represent valid normal XIDs.
|
64
|
+
*/
|
65
|
+
typedef struct FullTransactionId
|
66
|
+
{
|
67
|
+
uint64 value;
|
68
|
+
} FullTransactionId;
|
69
|
+
|
70
|
+
static inline FullTransactionId
|
71
|
+
FullTransactionIdFromEpochAndXid(uint32 epoch, TransactionId xid)
|
72
|
+
{
|
73
|
+
FullTransactionId result;
|
74
|
+
|
75
|
+
result.value = ((uint64) epoch) << 32 | xid;
|
76
|
+
|
77
|
+
return result;
|
78
|
+
}
|
79
|
+
|
80
|
+
static inline FullTransactionId
|
81
|
+
FullTransactionIdFromU64(uint64 value)
|
82
|
+
{
|
83
|
+
FullTransactionId result;
|
84
|
+
|
85
|
+
result.value = value;
|
86
|
+
|
87
|
+
return result;
|
88
|
+
}
|
89
|
+
|
90
|
+
/* advance a transaction ID variable, handling wraparound correctly */
|
91
|
+
#define TransactionIdAdvance(dest) \
|
92
|
+
do { \
|
93
|
+
(dest)++; \
|
94
|
+
if ((dest) < FirstNormalTransactionId) \
|
95
|
+
(dest) = FirstNormalTransactionId; \
|
96
|
+
} while(0)
|
97
|
+
|
98
|
+
/*
|
99
|
+
* Retreat a FullTransactionId variable, stepping over xids that would appear
|
100
|
+
* to be special only when viewed as 32bit XIDs.
|
101
|
+
*/
|
102
|
+
static inline void
|
103
|
+
FullTransactionIdRetreat(FullTransactionId *dest)
|
104
|
+
{
|
105
|
+
dest->value--;
|
106
|
+
|
107
|
+
/*
|
108
|
+
* In contrast to 32bit XIDs don't step over the "actual" special xids.
|
109
|
+
* For 64bit xids these can't be reached as part of a wraparound as they
|
110
|
+
* can in the 32bit case.
|
111
|
+
*/
|
112
|
+
if (FullTransactionIdPrecedes(*dest, FirstNormalFullTransactionId))
|
113
|
+
return;
|
114
|
+
|
115
|
+
/*
|
116
|
+
* But we do need to step over XIDs that'd appear special only for 32bit
|
117
|
+
* XIDs.
|
118
|
+
*/
|
119
|
+
while (XidFromFullTransactionId(*dest) < FirstNormalTransactionId)
|
120
|
+
dest->value--;
|
121
|
+
}
|
122
|
+
|
123
|
+
/*
|
124
|
+
* Advance a FullTransactionId variable, stepping over xids that would appear
|
125
|
+
* to be special only when viewed as 32bit XIDs.
|
126
|
+
*/
|
127
|
+
static inline void
|
128
|
+
FullTransactionIdAdvance(FullTransactionId *dest)
|
129
|
+
{
|
130
|
+
dest->value++;
|
131
|
+
|
132
|
+
/* see FullTransactionIdAdvance() */
|
133
|
+
if (FullTransactionIdPrecedes(*dest, FirstNormalFullTransactionId))
|
134
|
+
return;
|
135
|
+
|
136
|
+
while (XidFromFullTransactionId(*dest) < FirstNormalTransactionId)
|
137
|
+
dest->value++;
|
138
|
+
}
|
139
|
+
|
140
|
+
/* back up a transaction ID variable, handling wraparound correctly */
|
141
|
+
#define TransactionIdRetreat(dest) \
|
142
|
+
do { \
|
143
|
+
(dest)--; \
|
144
|
+
} while ((dest) < FirstNormalTransactionId)
|
145
|
+
|
146
|
+
/* compare two XIDs already known to be normal; this is a macro for speed */
|
147
|
+
#define NormalTransactionIdPrecedes(id1, id2) \
|
148
|
+
(AssertMacro(TransactionIdIsNormal(id1) && TransactionIdIsNormal(id2)), \
|
149
|
+
(int32) ((id1) - (id2)) < 0)
|
150
|
+
|
151
|
+
/* compare two XIDs already known to be normal; this is a macro for speed */
|
152
|
+
#define NormalTransactionIdFollows(id1, id2) \
|
153
|
+
(AssertMacro(TransactionIdIsNormal(id1) && TransactionIdIsNormal(id2)), \
|
154
|
+
(int32) ((id1) - (id2)) > 0)
|
155
|
+
|
156
|
+
/* ----------
|
157
|
+
* Object ID (OID) zero is InvalidOid.
|
158
|
+
*
|
159
|
+
* OIDs 1-9999 are reserved for manual assignment (see .dat files in
|
160
|
+
* src/include/catalog/). Of these, 8000-9999 are reserved for
|
161
|
+
* development purposes (such as in-progress patches and forks);
|
162
|
+
* they should not appear in released versions.
|
163
|
+
*
|
164
|
+
* OIDs 10000-11999 are reserved for assignment by genbki.pl, for use
|
165
|
+
* when the .dat files in src/include/catalog/ do not specify an OID
|
166
|
+
* for a catalog entry that requires one. Note that genbki.pl assigns
|
167
|
+
* these OIDs independently in each catalog, so they're not guaranteed
|
168
|
+
* to be globally unique. Furthermore, the bootstrap backend and
|
169
|
+
* initdb's post-bootstrap processing can also assign OIDs in this range.
|
170
|
+
* The normal OID-generation logic takes care of any OID conflicts that
|
171
|
+
* might arise from that.
|
172
|
+
*
|
173
|
+
* OIDs 12000-16383 are reserved for unpinned objects created by initdb's
|
174
|
+
* post-bootstrap processing. initdb forces the OID generator up to
|
175
|
+
* 12000 as soon as it's made the pinned objects it's responsible for.
|
176
|
+
*
|
177
|
+
* OIDs beginning at 16384 are assigned from the OID generator
|
178
|
+
* during normal multiuser operation. (We force the generator up to
|
179
|
+
* 16384 as soon as we are in normal operation.)
|
180
|
+
*
|
181
|
+
* The choices of 8000, 10000 and 12000 are completely arbitrary, and can be
|
182
|
+
* moved if we run low on OIDs in any category. Changing the macros below,
|
183
|
+
* and updating relevant documentation (see bki.sgml and RELEASE_CHANGES),
|
184
|
+
* should be sufficient to do this. Moving the 16384 boundary between
|
185
|
+
* initdb-assigned OIDs and user-defined objects would be substantially
|
186
|
+
* more painful, however, since some user-defined OIDs will appear in
|
187
|
+
* on-disk data; such a change would probably break pg_upgrade.
|
188
|
+
*
|
189
|
+
* NOTE: if the OID generator wraps around, we skip over OIDs 0-16383
|
190
|
+
* and resume with 16384. This minimizes the odds of OID conflict, by not
|
191
|
+
* reassigning OIDs that might have been assigned during initdb. Critically,
|
192
|
+
* it also ensures that no user-created object will be considered pinned.
|
193
|
+
* ----------
|
194
|
+
*/
|
195
|
+
#define FirstGenbkiObjectId 10000
|
196
|
+
#define FirstUnpinnedObjectId 12000
|
197
|
+
#define FirstNormalObjectId 16384
|
198
|
+
|
199
|
+
/*
|
200
|
+
* TransamVariables is a data structure in shared memory that is used to track
|
201
|
+
* OID and XID assignment state. For largely historical reasons, there is
|
202
|
+
* just one struct with different fields that are protected by different
|
203
|
+
* LWLocks.
|
204
|
+
*
|
205
|
+
* Note: xidWrapLimit and oldestXidDB are not "active" values, but are
|
206
|
+
* used just to generate useful messages when xidWarnLimit or xidStopLimit
|
207
|
+
* are exceeded.
|
208
|
+
*/
|
209
|
+
typedef struct TransamVariablesData
|
210
|
+
{
|
211
|
+
/*
|
212
|
+
* These fields are protected by OidGenLock.
|
213
|
+
*/
|
214
|
+
Oid nextOid; /* next OID to assign */
|
215
|
+
uint32 oidCount; /* OIDs available before must do XLOG work */
|
216
|
+
|
217
|
+
/*
|
218
|
+
* These fields are protected by XidGenLock.
|
219
|
+
*/
|
220
|
+
FullTransactionId nextXid; /* next XID to assign */
|
221
|
+
|
222
|
+
TransactionId oldestXid; /* cluster-wide minimum datfrozenxid */
|
223
|
+
TransactionId xidVacLimit; /* start forcing autovacuums here */
|
224
|
+
TransactionId xidWarnLimit; /* start complaining here */
|
225
|
+
TransactionId xidStopLimit; /* refuse to advance nextXid beyond here */
|
226
|
+
TransactionId xidWrapLimit; /* where the world ends */
|
227
|
+
Oid oldestXidDB; /* database with minimum datfrozenxid */
|
228
|
+
|
229
|
+
/*
|
230
|
+
* These fields are protected by CommitTsLock
|
231
|
+
*/
|
232
|
+
TransactionId oldestCommitTsXid;
|
233
|
+
TransactionId newestCommitTsXid;
|
234
|
+
|
235
|
+
/*
|
236
|
+
* These fields are protected by ProcArrayLock.
|
237
|
+
*/
|
238
|
+
FullTransactionId latestCompletedXid; /* newest full XID that has
|
239
|
+
* committed or aborted */
|
240
|
+
|
241
|
+
/*
|
242
|
+
* Number of top-level transactions with xids (i.e. which may have
|
243
|
+
* modified the database) that completed in some form since the start of
|
244
|
+
* the server. This currently is solely used to check whether
|
245
|
+
* GetSnapshotData() needs to recompute the contents of the snapshot, or
|
246
|
+
* not. There are likely other users of this. Always above 1.
|
247
|
+
*/
|
248
|
+
uint64 xactCompletionCount;
|
249
|
+
|
250
|
+
/*
|
251
|
+
* These fields are protected by XactTruncationLock
|
252
|
+
*/
|
253
|
+
TransactionId oldestClogXid; /* oldest it's safe to look up in clog */
|
254
|
+
|
255
|
+
} TransamVariablesData;
|
256
|
+
|
257
|
+
|
258
|
+
/* ----------------
|
259
|
+
* extern declarations
|
260
|
+
* ----------------
|
261
|
+
*/
|
262
|
+
|
263
|
+
/* in transam/xact.c */
|
264
|
+
extern bool TransactionStartedDuringRecovery(void);
|
265
|
+
|
266
|
+
/* in transam/varsup.c */
|
267
|
+
extern PGDLLIMPORT TransamVariablesData *TransamVariables;
|
268
|
+
|
269
|
+
/*
|
270
|
+
* prototypes for functions in transam/transam.c
|
271
|
+
*/
|
272
|
+
extern bool TransactionIdDidCommit(TransactionId transactionId);
|
273
|
+
extern bool TransactionIdDidAbort(TransactionId transactionId);
|
274
|
+
extern void TransactionIdCommitTree(TransactionId xid, int nxids, TransactionId *xids);
|
275
|
+
extern void TransactionIdAsyncCommitTree(TransactionId xid, int nxids, TransactionId *xids, XLogRecPtr lsn);
|
276
|
+
extern void TransactionIdAbortTree(TransactionId xid, int nxids, TransactionId *xids);
|
277
|
+
extern bool TransactionIdPrecedes(TransactionId id1, TransactionId id2);
|
278
|
+
extern bool TransactionIdPrecedesOrEquals(TransactionId id1, TransactionId id2);
|
279
|
+
extern bool TransactionIdFollows(TransactionId id1, TransactionId id2);
|
280
|
+
extern bool TransactionIdFollowsOrEquals(TransactionId id1, TransactionId id2);
|
281
|
+
extern TransactionId TransactionIdLatest(TransactionId mainxid,
|
282
|
+
int nxids, const TransactionId *xids);
|
283
|
+
extern XLogRecPtr TransactionIdGetCommitLSN(TransactionId xid);
|
284
|
+
|
285
|
+
/* in transam/varsup.c */
|
286
|
+
extern Size VarsupShmemSize(void);
|
287
|
+
extern void VarsupShmemInit(void);
|
288
|
+
extern FullTransactionId GetNewTransactionId(bool isSubXact);
|
289
|
+
extern void AdvanceNextFullTransactionIdPastXid(TransactionId xid);
|
290
|
+
extern FullTransactionId ReadNextFullTransactionId(void);
|
291
|
+
extern void SetTransactionIdLimit(TransactionId oldest_datfrozenxid,
|
292
|
+
Oid oldest_datoid);
|
293
|
+
extern void AdvanceOldestClogXid(TransactionId oldest_datfrozenxid);
|
294
|
+
extern bool ForceTransactionIdLimitUpdate(void);
|
295
|
+
extern Oid GetNewObjectId(void);
|
296
|
+
extern void StopGeneratingPinnedObjectIds(void);
|
297
|
+
|
298
|
+
#ifdef USE_ASSERT_CHECKING
|
299
|
+
extern void AssertTransactionIdInAllowableRange(TransactionId xid);
|
300
|
+
#else
|
301
|
+
#define AssertTransactionIdInAllowableRange(xid) ((void)true)
|
302
|
+
#endif
|
303
|
+
|
304
|
+
/*
|
305
|
+
* Some frontend programs include this header. For compilers that emit static
|
306
|
+
* inline functions even when they're unused, that leads to unsatisfied
|
307
|
+
* external references; hence hide them with #ifndef FRONTEND.
|
308
|
+
*/
|
309
|
+
#ifndef FRONTEND
|
310
|
+
|
311
|
+
/*
|
312
|
+
* For callers that just need the XID part of the next transaction ID.
|
313
|
+
*/
|
314
|
+
static inline TransactionId
|
315
|
+
ReadNextTransactionId(void)
|
316
|
+
{
|
317
|
+
return XidFromFullTransactionId(ReadNextFullTransactionId());
|
318
|
+
}
|
319
|
+
|
320
|
+
/* return transaction ID backed up by amount, handling wraparound correctly */
|
321
|
+
static inline TransactionId
|
322
|
+
TransactionIdRetreatedBy(TransactionId xid, uint32 amount)
|
323
|
+
{
|
324
|
+
xid -= amount;
|
325
|
+
|
326
|
+
while (xid < FirstNormalTransactionId)
|
327
|
+
xid--;
|
328
|
+
|
329
|
+
return xid;
|
330
|
+
}
|
331
|
+
|
332
|
+
/* return the older of the two IDs */
|
333
|
+
static inline TransactionId
|
334
|
+
TransactionIdOlder(TransactionId a, TransactionId b)
|
335
|
+
{
|
336
|
+
if (!TransactionIdIsValid(a))
|
337
|
+
return b;
|
338
|
+
|
339
|
+
if (!TransactionIdIsValid(b))
|
340
|
+
return a;
|
341
|
+
|
342
|
+
if (TransactionIdPrecedes(a, b))
|
343
|
+
return a;
|
344
|
+
return b;
|
345
|
+
}
|
346
|
+
|
347
|
+
/* return the older of the two IDs, assuming they're both normal */
|
348
|
+
static inline TransactionId
|
349
|
+
NormalTransactionIdOlder(TransactionId a, TransactionId b)
|
350
|
+
{
|
351
|
+
Assert(TransactionIdIsNormal(a));
|
352
|
+
Assert(TransactionIdIsNormal(b));
|
353
|
+
if (NormalTransactionIdPrecedes(a, b))
|
354
|
+
return a;
|
355
|
+
return b;
|
356
|
+
}
|
357
|
+
|
358
|
+
/* return the newer of the two IDs */
|
359
|
+
static inline FullTransactionId
|
360
|
+
FullTransactionIdNewer(FullTransactionId a, FullTransactionId b)
|
361
|
+
{
|
362
|
+
if (!FullTransactionIdIsValid(a))
|
363
|
+
return b;
|
364
|
+
|
365
|
+
if (!FullTransactionIdIsValid(b))
|
366
|
+
return a;
|
367
|
+
|
368
|
+
if (FullTransactionIdFollows(a, b))
|
369
|
+
return a;
|
370
|
+
return b;
|
371
|
+
}
|
372
|
+
|
373
|
+
/*
|
374
|
+
* Compute FullTransactionId for the given TransactionId, assuming xid was
|
375
|
+
* between [oldestXid, nextXid] at the time when TransamVariables->nextXid was
|
376
|
+
* nextFullXid. When adding calls, evaluate what prevents xid from preceding
|
377
|
+
* oldestXid if SetTransactionIdLimit() runs between the collection of xid and
|
378
|
+
* the collection of nextFullXid.
|
379
|
+
*/
|
380
|
+
static inline FullTransactionId
|
381
|
+
FullTransactionIdFromAllowableAt(FullTransactionId nextFullXid,
|
382
|
+
TransactionId xid)
|
383
|
+
{
|
384
|
+
uint32 epoch;
|
385
|
+
|
386
|
+
/* Special transaction ID. */
|
387
|
+
if (!TransactionIdIsNormal(xid))
|
388
|
+
return FullTransactionIdFromEpochAndXid(0, xid);
|
389
|
+
|
390
|
+
Assert(TransactionIdPrecedesOrEquals(xid,
|
391
|
+
XidFromFullTransactionId(nextFullXid)));
|
392
|
+
|
393
|
+
/*
|
394
|
+
* The 64 bit result must be <= nextFullXid, since nextFullXid hadn't been
|
395
|
+
* issued yet when xid was in the past. The xid must therefore be from
|
396
|
+
* the epoch of nextFullXid or the epoch before. We know this because we
|
397
|
+
* must remove (by freezing) an XID before assigning the XID half an epoch
|
398
|
+
* ahead of it.
|
399
|
+
*
|
400
|
+
* The unlikely() branch hint is dubious. It's perfect for the first 2^32
|
401
|
+
* XIDs of a cluster's life. Right at 2^32 XIDs, misprediction shoots to
|
402
|
+
* 100%, then improves until perfection returns 2^31 XIDs later. Since
|
403
|
+
* current callers pass relatively-recent XIDs, expect >90% prediction
|
404
|
+
* accuracy overall. This favors average latency over tail latency.
|
405
|
+
*/
|
406
|
+
epoch = EpochFromFullTransactionId(nextFullXid);
|
407
|
+
if (unlikely(xid > XidFromFullTransactionId(nextFullXid)))
|
408
|
+
{
|
409
|
+
Assert(epoch != 0);
|
410
|
+
epoch--;
|
411
|
+
}
|
412
|
+
|
413
|
+
return FullTransactionIdFromEpochAndXid(epoch, xid);
|
414
|
+
}
|
415
|
+
|
416
|
+
#endif /* FRONTEND */
|
417
|
+
|
418
|
+
#endif /* TRANSAM_H */
|
@@ -0,0 +1,82 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* tsmapi.h
|
4
|
+
* API for tablesample methods
|
5
|
+
*
|
6
|
+
* Copyright (c) 2015-2024, PostgreSQL Global Development Group
|
7
|
+
*
|
8
|
+
* src/include/access/tsmapi.h
|
9
|
+
*
|
10
|
+
*-------------------------------------------------------------------------
|
11
|
+
*/
|
12
|
+
#ifndef TSMAPI_H
|
13
|
+
#define TSMAPI_H
|
14
|
+
|
15
|
+
#include "nodes/execnodes.h"
|
16
|
+
#include "nodes/pathnodes.h"
|
17
|
+
|
18
|
+
|
19
|
+
/*
|
20
|
+
* Callback function signatures --- see tablesample-method.sgml for more info.
|
21
|
+
*/
|
22
|
+
|
23
|
+
typedef void (*SampleScanGetSampleSize_function) (PlannerInfo *root,
|
24
|
+
RelOptInfo *baserel,
|
25
|
+
List *paramexprs,
|
26
|
+
BlockNumber *pages,
|
27
|
+
double *tuples);
|
28
|
+
|
29
|
+
typedef void (*InitSampleScan_function) (SampleScanState *node,
|
30
|
+
int eflags);
|
31
|
+
|
32
|
+
typedef void (*BeginSampleScan_function) (SampleScanState *node,
|
33
|
+
Datum *params,
|
34
|
+
int nparams,
|
35
|
+
uint32 seed);
|
36
|
+
|
37
|
+
typedef BlockNumber (*NextSampleBlock_function) (SampleScanState *node,
|
38
|
+
BlockNumber nblocks);
|
39
|
+
|
40
|
+
typedef OffsetNumber (*NextSampleTuple_function) (SampleScanState *node,
|
41
|
+
BlockNumber blockno,
|
42
|
+
OffsetNumber maxoffset);
|
43
|
+
|
44
|
+
typedef void (*EndSampleScan_function) (SampleScanState *node);
|
45
|
+
|
46
|
+
/*
|
47
|
+
* TsmRoutine is the struct returned by a tablesample method's handler
|
48
|
+
* function. It provides pointers to the callback functions needed by the
|
49
|
+
* planner and executor, as well as additional information about the method.
|
50
|
+
*
|
51
|
+
* More function pointers are likely to be added in the future.
|
52
|
+
* Therefore it's recommended that the handler initialize the struct with
|
53
|
+
* makeNode(TsmRoutine) so that all fields are set to NULL. This will
|
54
|
+
* ensure that no fields are accidentally left undefined.
|
55
|
+
*/
|
56
|
+
typedef struct TsmRoutine
|
57
|
+
{
|
58
|
+
NodeTag type;
|
59
|
+
|
60
|
+
/* List of datatype OIDs for the arguments of the TABLESAMPLE clause */
|
61
|
+
List *parameterTypes;
|
62
|
+
|
63
|
+
/* Can method produce repeatable samples across, or even within, queries? */
|
64
|
+
bool repeatable_across_queries;
|
65
|
+
bool repeatable_across_scans;
|
66
|
+
|
67
|
+
/* Functions for planning a SampleScan on a physical table */
|
68
|
+
SampleScanGetSampleSize_function SampleScanGetSampleSize;
|
69
|
+
|
70
|
+
/* Functions for executing a SampleScan on a physical table */
|
71
|
+
InitSampleScan_function InitSampleScan; /* can be NULL */
|
72
|
+
BeginSampleScan_function BeginSampleScan;
|
73
|
+
NextSampleBlock_function NextSampleBlock; /* can be NULL */
|
74
|
+
NextSampleTuple_function NextSampleTuple;
|
75
|
+
EndSampleScan_function EndSampleScan; /* can be NULL */
|
76
|
+
} TsmRoutine;
|
77
|
+
|
78
|
+
|
79
|
+
/* Functions in access/tablesample/tablesample.c */
|
80
|
+
extern TsmRoutine *GetTsmRoutine(Oid tsmhandler);
|
81
|
+
|
82
|
+
#endif /* TSMAPI_H */
|
@@ -0,0 +1,54 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* tupconvert.h
|
4
|
+
* Tuple conversion support.
|
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/access/tupconvert.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef TUPCONVERT_H
|
15
|
+
#define TUPCONVERT_H
|
16
|
+
|
17
|
+
#include "access/attmap.h"
|
18
|
+
#include "access/htup.h"
|
19
|
+
#include "access/tupdesc.h"
|
20
|
+
#include "executor/tuptable.h"
|
21
|
+
#include "nodes/bitmapset.h"
|
22
|
+
|
23
|
+
|
24
|
+
typedef struct TupleConversionMap
|
25
|
+
{
|
26
|
+
TupleDesc indesc; /* tupdesc for source rowtype */
|
27
|
+
TupleDesc outdesc; /* tupdesc for result rowtype */
|
28
|
+
AttrMap *attrMap; /* indexes of input fields, or 0 for null */
|
29
|
+
Datum *invalues; /* workspace for deconstructing source */
|
30
|
+
bool *inisnull;
|
31
|
+
Datum *outvalues; /* workspace for constructing result */
|
32
|
+
bool *outisnull;
|
33
|
+
} TupleConversionMap;
|
34
|
+
|
35
|
+
|
36
|
+
extern TupleConversionMap *convert_tuples_by_position(TupleDesc indesc,
|
37
|
+
TupleDesc outdesc,
|
38
|
+
const char *msg);
|
39
|
+
|
40
|
+
extern TupleConversionMap *convert_tuples_by_name(TupleDesc indesc,
|
41
|
+
TupleDesc outdesc);
|
42
|
+
extern TupleConversionMap *convert_tuples_by_name_attrmap(TupleDesc indesc,
|
43
|
+
TupleDesc outdesc,
|
44
|
+
AttrMap *attrMap);
|
45
|
+
|
46
|
+
extern HeapTuple execute_attr_map_tuple(HeapTuple tuple, TupleConversionMap *map);
|
47
|
+
extern TupleTableSlot *execute_attr_map_slot(AttrMap *attrMap,
|
48
|
+
TupleTableSlot *in_slot,
|
49
|
+
TupleTableSlot *out_slot);
|
50
|
+
extern Bitmapset *execute_attr_map_cols(AttrMap *attrMap, Bitmapset *in_cols);
|
51
|
+
|
52
|
+
extern void free_conversion_map(TupleConversionMap *map);
|
53
|
+
|
54
|
+
#endif /* TUPCONVERT_H */
|