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,303 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* amapi.h
|
4
|
+
* API for Postgres index access methods.
|
5
|
+
*
|
6
|
+
* Copyright (c) 2015-2024, PostgreSQL Global Development Group
|
7
|
+
*
|
8
|
+
* src/include/access/amapi.h
|
9
|
+
*
|
10
|
+
*-------------------------------------------------------------------------
|
11
|
+
*/
|
12
|
+
#ifndef AMAPI_H
|
13
|
+
#define AMAPI_H
|
14
|
+
|
15
|
+
#include "access/genam.h"
|
16
|
+
|
17
|
+
/*
|
18
|
+
* We don't wish to include planner header files here, since most of an index
|
19
|
+
* AM's implementation isn't concerned with those data structures. To allow
|
20
|
+
* declaring amcostestimate_function here, use forward struct references.
|
21
|
+
*/
|
22
|
+
struct PlannerInfo;
|
23
|
+
struct IndexPath;
|
24
|
+
|
25
|
+
/* Likewise, this file shouldn't depend on execnodes.h. */
|
26
|
+
struct IndexInfo;
|
27
|
+
|
28
|
+
|
29
|
+
/*
|
30
|
+
* Properties for amproperty API. This list covers properties known to the
|
31
|
+
* core code, but an index AM can define its own properties, by matching the
|
32
|
+
* string property name.
|
33
|
+
*/
|
34
|
+
typedef enum IndexAMProperty
|
35
|
+
{
|
36
|
+
AMPROP_UNKNOWN = 0, /* anything not known to core code */
|
37
|
+
AMPROP_ASC, /* column properties */
|
38
|
+
AMPROP_DESC,
|
39
|
+
AMPROP_NULLS_FIRST,
|
40
|
+
AMPROP_NULLS_LAST,
|
41
|
+
AMPROP_ORDERABLE,
|
42
|
+
AMPROP_DISTANCE_ORDERABLE,
|
43
|
+
AMPROP_RETURNABLE,
|
44
|
+
AMPROP_SEARCH_ARRAY,
|
45
|
+
AMPROP_SEARCH_NULLS,
|
46
|
+
AMPROP_CLUSTERABLE, /* index properties */
|
47
|
+
AMPROP_INDEX_SCAN,
|
48
|
+
AMPROP_BITMAP_SCAN,
|
49
|
+
AMPROP_BACKWARD_SCAN,
|
50
|
+
AMPROP_CAN_ORDER, /* AM properties */
|
51
|
+
AMPROP_CAN_UNIQUE,
|
52
|
+
AMPROP_CAN_MULTI_COL,
|
53
|
+
AMPROP_CAN_EXCLUDE,
|
54
|
+
AMPROP_CAN_INCLUDE,
|
55
|
+
} IndexAMProperty;
|
56
|
+
|
57
|
+
/*
|
58
|
+
* We use lists of this struct type to keep track of both operators and
|
59
|
+
* support functions while building or adding to an opclass or opfamily.
|
60
|
+
* amadjustmembers functions receive lists of these structs, and are allowed
|
61
|
+
* to alter their "ref" fields.
|
62
|
+
*
|
63
|
+
* The "ref" fields define how the pg_amop or pg_amproc entry should depend
|
64
|
+
* on the associated objects (that is, which dependency type to use, and
|
65
|
+
* which opclass or opfamily it should depend on).
|
66
|
+
*
|
67
|
+
* If ref_is_hard is true, the entry will have a NORMAL dependency on the
|
68
|
+
* operator or support func, and an INTERNAL dependency on the opclass or
|
69
|
+
* opfamily. This forces the opclass or opfamily to be dropped if the
|
70
|
+
* operator or support func is dropped, and requires the CASCADE option
|
71
|
+
* to do so. Nor will ALTER OPERATOR FAMILY DROP be allowed. This is
|
72
|
+
* the right behavior for objects that are essential to an opclass.
|
73
|
+
*
|
74
|
+
* If ref_is_hard is false, the entry will have an AUTO dependency on the
|
75
|
+
* operator or support func, and also an AUTO dependency on the opclass or
|
76
|
+
* opfamily. This allows ALTER OPERATOR FAMILY DROP, and causes that to
|
77
|
+
* happen automatically if the operator or support func is dropped. This
|
78
|
+
* is the right behavior for inessential ("loose") objects.
|
79
|
+
*
|
80
|
+
* We also make dependencies on lefttype/righttype, of the same strength as
|
81
|
+
* the dependency on the operator or support func, unless these dependencies
|
82
|
+
* are redundant with the dependency on the operator or support func.
|
83
|
+
*/
|
84
|
+
typedef struct OpFamilyMember
|
85
|
+
{
|
86
|
+
bool is_func; /* is this an operator, or support func? */
|
87
|
+
Oid object; /* operator or support func's OID */
|
88
|
+
int number; /* strategy or support func number */
|
89
|
+
Oid lefttype; /* lefttype */
|
90
|
+
Oid righttype; /* righttype */
|
91
|
+
Oid sortfamily; /* ordering operator's sort opfamily, or 0 */
|
92
|
+
bool ref_is_hard; /* hard or soft dependency? */
|
93
|
+
bool ref_is_family; /* is dependency on opclass or opfamily? */
|
94
|
+
Oid refobjid; /* OID of opclass or opfamily */
|
95
|
+
} OpFamilyMember;
|
96
|
+
|
97
|
+
|
98
|
+
/*
|
99
|
+
* Callback function signatures --- see indexam.sgml for more info.
|
100
|
+
*/
|
101
|
+
|
102
|
+
/* build new index */
|
103
|
+
typedef IndexBuildResult *(*ambuild_function) (Relation heapRelation,
|
104
|
+
Relation indexRelation,
|
105
|
+
struct IndexInfo *indexInfo);
|
106
|
+
|
107
|
+
/* build empty index */
|
108
|
+
typedef void (*ambuildempty_function) (Relation indexRelation);
|
109
|
+
|
110
|
+
/* insert this tuple */
|
111
|
+
typedef bool (*aminsert_function) (Relation indexRelation,
|
112
|
+
Datum *values,
|
113
|
+
bool *isnull,
|
114
|
+
ItemPointer heap_tid,
|
115
|
+
Relation heapRelation,
|
116
|
+
IndexUniqueCheck checkUnique,
|
117
|
+
bool indexUnchanged,
|
118
|
+
struct IndexInfo *indexInfo);
|
119
|
+
|
120
|
+
/* cleanup after insert */
|
121
|
+
typedef void (*aminsertcleanup_function) (Relation indexRelation,
|
122
|
+
struct IndexInfo *indexInfo);
|
123
|
+
|
124
|
+
/* bulk delete */
|
125
|
+
typedef IndexBulkDeleteResult *(*ambulkdelete_function) (IndexVacuumInfo *info,
|
126
|
+
IndexBulkDeleteResult *stats,
|
127
|
+
IndexBulkDeleteCallback callback,
|
128
|
+
void *callback_state);
|
129
|
+
|
130
|
+
/* post-VACUUM cleanup */
|
131
|
+
typedef IndexBulkDeleteResult *(*amvacuumcleanup_function) (IndexVacuumInfo *info,
|
132
|
+
IndexBulkDeleteResult *stats);
|
133
|
+
|
134
|
+
/* can indexscan return IndexTuples? */
|
135
|
+
typedef bool (*amcanreturn_function) (Relation indexRelation, int attno);
|
136
|
+
|
137
|
+
/* estimate cost of an indexscan */
|
138
|
+
typedef void (*amcostestimate_function) (struct PlannerInfo *root,
|
139
|
+
struct IndexPath *path,
|
140
|
+
double loop_count,
|
141
|
+
Cost *indexStartupCost,
|
142
|
+
Cost *indexTotalCost,
|
143
|
+
Selectivity *indexSelectivity,
|
144
|
+
double *indexCorrelation,
|
145
|
+
double *indexPages);
|
146
|
+
|
147
|
+
/* parse index reloptions */
|
148
|
+
typedef bytea *(*amoptions_function) (Datum reloptions,
|
149
|
+
bool validate);
|
150
|
+
|
151
|
+
/* report AM, index, or index column property */
|
152
|
+
typedef bool (*amproperty_function) (Oid index_oid, int attno,
|
153
|
+
IndexAMProperty prop, const char *propname,
|
154
|
+
bool *res, bool *isnull);
|
155
|
+
|
156
|
+
/* name of phase as used in progress reporting */
|
157
|
+
typedef char *(*ambuildphasename_function) (int64 phasenum);
|
158
|
+
|
159
|
+
/* validate definition of an opclass for this AM */
|
160
|
+
typedef bool (*amvalidate_function) (Oid opclassoid);
|
161
|
+
|
162
|
+
/* validate operators and support functions to be added to an opclass/family */
|
163
|
+
typedef void (*amadjustmembers_function) (Oid opfamilyoid,
|
164
|
+
Oid opclassoid,
|
165
|
+
List *operators,
|
166
|
+
List *functions);
|
167
|
+
|
168
|
+
/* prepare for index scan */
|
169
|
+
typedef IndexScanDesc (*ambeginscan_function) (Relation indexRelation,
|
170
|
+
int nkeys,
|
171
|
+
int norderbys);
|
172
|
+
|
173
|
+
/* (re)start index scan */
|
174
|
+
typedef void (*amrescan_function) (IndexScanDesc scan,
|
175
|
+
ScanKey keys,
|
176
|
+
int nkeys,
|
177
|
+
ScanKey orderbys,
|
178
|
+
int norderbys);
|
179
|
+
|
180
|
+
/* next valid tuple */
|
181
|
+
typedef bool (*amgettuple_function) (IndexScanDesc scan,
|
182
|
+
ScanDirection direction);
|
183
|
+
|
184
|
+
/* fetch all valid tuples */
|
185
|
+
typedef int64 (*amgetbitmap_function) (IndexScanDesc scan,
|
186
|
+
TIDBitmap *tbm);
|
187
|
+
|
188
|
+
/* end index scan */
|
189
|
+
typedef void (*amendscan_function) (IndexScanDesc scan);
|
190
|
+
|
191
|
+
/* mark current scan position */
|
192
|
+
typedef void (*ammarkpos_function) (IndexScanDesc scan);
|
193
|
+
|
194
|
+
/* restore marked scan position */
|
195
|
+
typedef void (*amrestrpos_function) (IndexScanDesc scan);
|
196
|
+
|
197
|
+
/*
|
198
|
+
* Callback function signatures - for parallel index scans.
|
199
|
+
*/
|
200
|
+
|
201
|
+
/* estimate size of parallel scan descriptor */
|
202
|
+
typedef Size (*amestimateparallelscan_function) (int nkeys, int norderbys);
|
203
|
+
|
204
|
+
/* prepare for parallel index scan */
|
205
|
+
typedef void (*aminitparallelscan_function) (void *target);
|
206
|
+
|
207
|
+
/* (re)start parallel index scan */
|
208
|
+
typedef void (*amparallelrescan_function) (IndexScanDesc scan);
|
209
|
+
|
210
|
+
/*
|
211
|
+
* API struct for an index AM. Note this must be stored in a single palloc'd
|
212
|
+
* chunk of memory.
|
213
|
+
*/
|
214
|
+
typedef struct IndexAmRoutine
|
215
|
+
{
|
216
|
+
NodeTag type;
|
217
|
+
|
218
|
+
/*
|
219
|
+
* Total number of strategies (operators) by which we can traverse/search
|
220
|
+
* this AM. Zero if AM does not have a fixed set of strategy assignments.
|
221
|
+
*/
|
222
|
+
uint16 amstrategies;
|
223
|
+
/* total number of support functions that this AM uses */
|
224
|
+
uint16 amsupport;
|
225
|
+
/* opclass options support function number or 0 */
|
226
|
+
uint16 amoptsprocnum;
|
227
|
+
/* does AM support ORDER BY indexed column's value? */
|
228
|
+
bool amcanorder;
|
229
|
+
/* does AM support ORDER BY result of an operator on indexed column? */
|
230
|
+
bool amcanorderbyop;
|
231
|
+
/* does AM support backward scanning? */
|
232
|
+
bool amcanbackward;
|
233
|
+
/* does AM support UNIQUE indexes? */
|
234
|
+
bool amcanunique;
|
235
|
+
/* does AM support multi-column indexes? */
|
236
|
+
bool amcanmulticol;
|
237
|
+
/* does AM require scans to have a constraint on the first index column? */
|
238
|
+
bool amoptionalkey;
|
239
|
+
/* does AM handle ScalarArrayOpExpr quals? */
|
240
|
+
bool amsearcharray;
|
241
|
+
/* does AM handle IS NULL/IS NOT NULL quals? */
|
242
|
+
bool amsearchnulls;
|
243
|
+
/* can index storage data type differ from column data type? */
|
244
|
+
bool amstorage;
|
245
|
+
/* can an index of this type be clustered on? */
|
246
|
+
bool amclusterable;
|
247
|
+
/* does AM handle predicate locks? */
|
248
|
+
bool ampredlocks;
|
249
|
+
/* does AM support parallel scan? */
|
250
|
+
bool amcanparallel;
|
251
|
+
/* does AM support parallel build? */
|
252
|
+
bool amcanbuildparallel;
|
253
|
+
/* does AM support columns included with clause INCLUDE? */
|
254
|
+
bool amcaninclude;
|
255
|
+
/* does AM use maintenance_work_mem? */
|
256
|
+
bool amusemaintenanceworkmem;
|
257
|
+
/* does AM store tuple information only at block granularity? */
|
258
|
+
bool amsummarizing;
|
259
|
+
/* OR of parallel vacuum flags. See vacuum.h for flags. */
|
260
|
+
uint8 amparallelvacuumoptions;
|
261
|
+
/* type of data stored in index, or InvalidOid if variable */
|
262
|
+
Oid amkeytype;
|
263
|
+
|
264
|
+
/*
|
265
|
+
* If you add new properties to either the above or the below lists, then
|
266
|
+
* they should also (usually) be exposed via the property API (see
|
267
|
+
* IndexAMProperty at the top of the file, and utils/adt/amutils.c).
|
268
|
+
*/
|
269
|
+
|
270
|
+
/* interface functions */
|
271
|
+
ambuild_function ambuild;
|
272
|
+
ambuildempty_function ambuildempty;
|
273
|
+
aminsert_function aminsert;
|
274
|
+
aminsertcleanup_function aminsertcleanup;
|
275
|
+
ambulkdelete_function ambulkdelete;
|
276
|
+
amvacuumcleanup_function amvacuumcleanup;
|
277
|
+
amcanreturn_function amcanreturn; /* can be NULL */
|
278
|
+
amcostestimate_function amcostestimate;
|
279
|
+
amoptions_function amoptions;
|
280
|
+
amproperty_function amproperty; /* can be NULL */
|
281
|
+
ambuildphasename_function ambuildphasename; /* can be NULL */
|
282
|
+
amvalidate_function amvalidate;
|
283
|
+
amadjustmembers_function amadjustmembers; /* can be NULL */
|
284
|
+
ambeginscan_function ambeginscan;
|
285
|
+
amrescan_function amrescan;
|
286
|
+
amgettuple_function amgettuple; /* can be NULL */
|
287
|
+
amgetbitmap_function amgetbitmap; /* can be NULL */
|
288
|
+
amendscan_function amendscan;
|
289
|
+
ammarkpos_function ammarkpos; /* can be NULL */
|
290
|
+
amrestrpos_function amrestrpos; /* can be NULL */
|
291
|
+
|
292
|
+
/* interface functions to support parallel index scans */
|
293
|
+
amestimateparallelscan_function amestimateparallelscan; /* can be NULL */
|
294
|
+
aminitparallelscan_function aminitparallelscan; /* can be NULL */
|
295
|
+
amparallelrescan_function amparallelrescan; /* can be NULL */
|
296
|
+
} IndexAmRoutine;
|
297
|
+
|
298
|
+
|
299
|
+
/* Functions in access/index/amapi.c */
|
300
|
+
extern IndexAmRoutine *GetIndexAmRoutine(Oid amhandler);
|
301
|
+
extern IndexAmRoutine *GetIndexAmRoutineByAmId(Oid amoid, bool noerror);
|
302
|
+
|
303
|
+
#endif /* AMAPI_H */
|
@@ -0,0 +1,54 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* attmap.h
|
4
|
+
* Definitions for PostgreSQL attribute mappings
|
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/attmap.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef ATTMAP_H
|
15
|
+
#define ATTMAP_H
|
16
|
+
|
17
|
+
#include "access/attnum.h"
|
18
|
+
#include "access/tupdesc.h"
|
19
|
+
|
20
|
+
/*
|
21
|
+
* Attribute mapping structure
|
22
|
+
*
|
23
|
+
* This maps attribute numbers between a pair of relations, designated
|
24
|
+
* 'input' and 'output' (most typically inheritance parent and child
|
25
|
+
* relations), whose common columns may have different attribute numbers.
|
26
|
+
* Such difference may arise due to the columns being ordered differently
|
27
|
+
* in the two relations or the two relations having dropped columns at
|
28
|
+
* different positions.
|
29
|
+
*
|
30
|
+
* 'maplen' is set to the number of attributes of the 'output' relation,
|
31
|
+
* taking into account any of its dropped attributes, with the corresponding
|
32
|
+
* elements of the 'attnums' array set to 0.
|
33
|
+
*/
|
34
|
+
typedef struct AttrMap
|
35
|
+
{
|
36
|
+
AttrNumber *attnums;
|
37
|
+
int maplen;
|
38
|
+
} AttrMap;
|
39
|
+
|
40
|
+
extern AttrMap *make_attrmap(int maplen);
|
41
|
+
extern void free_attrmap(AttrMap *map);
|
42
|
+
|
43
|
+
/* Conversion routines to build mappings */
|
44
|
+
extern AttrMap *build_attrmap_by_name(TupleDesc indesc,
|
45
|
+
TupleDesc outdesc,
|
46
|
+
bool missing_ok);
|
47
|
+
extern AttrMap *build_attrmap_by_name_if_req(TupleDesc indesc,
|
48
|
+
TupleDesc outdesc,
|
49
|
+
bool missing_ok);
|
50
|
+
extern AttrMap *build_attrmap_by_position(TupleDesc indesc,
|
51
|
+
TupleDesc outdesc,
|
52
|
+
const char *msg);
|
53
|
+
|
54
|
+
#endif /* ATTMAP_H */
|
@@ -0,0 +1,64 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* attnum.h
|
4
|
+
* POSTGRES attribute number definitions.
|
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/attnum.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef ATTNUM_H
|
15
|
+
#define ATTNUM_H
|
16
|
+
|
17
|
+
|
18
|
+
/*
|
19
|
+
* user defined attribute numbers start at 1. -ay 2/95
|
20
|
+
*/
|
21
|
+
typedef int16 AttrNumber;
|
22
|
+
|
23
|
+
#define InvalidAttrNumber 0
|
24
|
+
#define MaxAttrNumber 32767
|
25
|
+
|
26
|
+
/* ----------------
|
27
|
+
* support macros
|
28
|
+
* ----------------
|
29
|
+
*/
|
30
|
+
/*
|
31
|
+
* AttributeNumberIsValid
|
32
|
+
* True iff the attribute number is valid.
|
33
|
+
*/
|
34
|
+
#define AttributeNumberIsValid(attributeNumber) \
|
35
|
+
((bool) ((attributeNumber) != InvalidAttrNumber))
|
36
|
+
|
37
|
+
/*
|
38
|
+
* AttrNumberIsForUserDefinedAttr
|
39
|
+
* True iff the attribute number corresponds to a user defined attribute.
|
40
|
+
*/
|
41
|
+
#define AttrNumberIsForUserDefinedAttr(attributeNumber) \
|
42
|
+
((bool) ((attributeNumber) > 0))
|
43
|
+
|
44
|
+
/*
|
45
|
+
* AttrNumberGetAttrOffset
|
46
|
+
* Returns the attribute offset for an attribute number.
|
47
|
+
*
|
48
|
+
* Note:
|
49
|
+
* Assumes the attribute number is for a user defined attribute.
|
50
|
+
*/
|
51
|
+
#define AttrNumberGetAttrOffset(attNum) \
|
52
|
+
( \
|
53
|
+
AssertMacro(AttrNumberIsForUserDefinedAttr(attNum)), \
|
54
|
+
((attNum) - 1) \
|
55
|
+
)
|
56
|
+
|
57
|
+
/*
|
58
|
+
* AttrOffsetGetAttrNumber
|
59
|
+
* Returns the attribute number for an attribute offset.
|
60
|
+
*/
|
61
|
+
#define AttrOffsetGetAttrNumber(attributeOffset) \
|
62
|
+
((AttrNumber) (1 + (attributeOffset)))
|
63
|
+
|
64
|
+
#endif /* ATTNUM_H */
|
@@ -0,0 +1,116 @@
|
|
1
|
+
/*
|
2
|
+
* brin_internal.h
|
3
|
+
* internal declarations for BRIN indexes
|
4
|
+
*
|
5
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
6
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
7
|
+
*
|
8
|
+
* IDENTIFICATION
|
9
|
+
* src/include/access/brin_internal.h
|
10
|
+
*/
|
11
|
+
#ifndef BRIN_INTERNAL_H
|
12
|
+
#define BRIN_INTERNAL_H
|
13
|
+
|
14
|
+
#include "access/amapi.h"
|
15
|
+
#include "storage/bufpage.h"
|
16
|
+
#include "utils/typcache.h"
|
17
|
+
|
18
|
+
|
19
|
+
/*
|
20
|
+
* A BrinDesc is a struct designed to enable decoding a BRIN tuple from the
|
21
|
+
* on-disk format to an in-memory tuple and vice-versa.
|
22
|
+
*/
|
23
|
+
|
24
|
+
/* struct returned by "OpcInfo" amproc */
|
25
|
+
typedef struct BrinOpcInfo
|
26
|
+
{
|
27
|
+
/* Number of columns stored in an index column of this opclass */
|
28
|
+
uint16 oi_nstored;
|
29
|
+
|
30
|
+
/* Regular processing of NULLs in BrinValues? */
|
31
|
+
bool oi_regular_nulls;
|
32
|
+
|
33
|
+
/* Opaque pointer for the opclass' private use */
|
34
|
+
void *oi_opaque;
|
35
|
+
|
36
|
+
/* Type cache entries of the stored columns */
|
37
|
+
TypeCacheEntry *oi_typcache[FLEXIBLE_ARRAY_MEMBER];
|
38
|
+
} BrinOpcInfo;
|
39
|
+
|
40
|
+
/* the size of a BrinOpcInfo for the given number of columns */
|
41
|
+
#define SizeofBrinOpcInfo(ncols) \
|
42
|
+
(offsetof(BrinOpcInfo, oi_typcache) + sizeof(TypeCacheEntry *) * ncols)
|
43
|
+
|
44
|
+
typedef struct BrinDesc
|
45
|
+
{
|
46
|
+
/* Containing memory context */
|
47
|
+
MemoryContext bd_context;
|
48
|
+
|
49
|
+
/* the index relation itself */
|
50
|
+
Relation bd_index;
|
51
|
+
|
52
|
+
/* tuple descriptor of the index relation */
|
53
|
+
TupleDesc bd_tupdesc;
|
54
|
+
|
55
|
+
/* cached copy for on-disk tuples; generated at first use */
|
56
|
+
TupleDesc bd_disktdesc;
|
57
|
+
|
58
|
+
/* total number of Datum entries that are stored on-disk for all columns */
|
59
|
+
int bd_totalstored;
|
60
|
+
|
61
|
+
/* per-column info; bd_tupdesc->natts entries long */
|
62
|
+
BrinOpcInfo *bd_info[FLEXIBLE_ARRAY_MEMBER];
|
63
|
+
} BrinDesc;
|
64
|
+
|
65
|
+
/*
|
66
|
+
* Globally-known function support numbers for BRIN indexes. Individual
|
67
|
+
* opclasses can define more function support numbers, which must fall into
|
68
|
+
* BRIN_FIRST_OPTIONAL_PROCNUM .. BRIN_LAST_OPTIONAL_PROCNUM.
|
69
|
+
*/
|
70
|
+
#define BRIN_PROCNUM_OPCINFO 1
|
71
|
+
#define BRIN_PROCNUM_ADDVALUE 2
|
72
|
+
#define BRIN_PROCNUM_CONSISTENT 3
|
73
|
+
#define BRIN_PROCNUM_UNION 4
|
74
|
+
#define BRIN_MANDATORY_NPROCS 4
|
75
|
+
#define BRIN_PROCNUM_OPTIONS 5 /* optional */
|
76
|
+
/* procedure numbers up to 10 are reserved for BRIN future expansion */
|
77
|
+
#define BRIN_FIRST_OPTIONAL_PROCNUM 11
|
78
|
+
#define BRIN_LAST_OPTIONAL_PROCNUM 15
|
79
|
+
|
80
|
+
#undef BRIN_DEBUG
|
81
|
+
|
82
|
+
#ifdef BRIN_DEBUG
|
83
|
+
#define BRIN_elog(args) elog args
|
84
|
+
#else
|
85
|
+
#define BRIN_elog(args) ((void) 0)
|
86
|
+
#endif
|
87
|
+
|
88
|
+
/* brin.c */
|
89
|
+
extern BrinDesc *brin_build_desc(Relation rel);
|
90
|
+
extern void brin_free_desc(BrinDesc *bdesc);
|
91
|
+
extern IndexBuildResult *brinbuild(Relation heap, Relation index,
|
92
|
+
struct IndexInfo *indexInfo);
|
93
|
+
extern void brinbuildempty(Relation index);
|
94
|
+
extern bool brininsert(Relation idxRel, Datum *values, bool *nulls,
|
95
|
+
ItemPointer heaptid, Relation heapRel,
|
96
|
+
IndexUniqueCheck checkUnique,
|
97
|
+
bool indexUnchanged,
|
98
|
+
struct IndexInfo *indexInfo);
|
99
|
+
extern void brininsertcleanup(Relation index, struct IndexInfo *indexInfo);
|
100
|
+
extern IndexScanDesc brinbeginscan(Relation r, int nkeys, int norderbys);
|
101
|
+
extern int64 bringetbitmap(IndexScanDesc scan, TIDBitmap *tbm);
|
102
|
+
extern void brinrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys,
|
103
|
+
ScanKey orderbys, int norderbys);
|
104
|
+
extern void brinendscan(IndexScanDesc scan);
|
105
|
+
extern IndexBulkDeleteResult *brinbulkdelete(IndexVacuumInfo *info,
|
106
|
+
IndexBulkDeleteResult *stats,
|
107
|
+
IndexBulkDeleteCallback callback,
|
108
|
+
void *callback_state);
|
109
|
+
extern IndexBulkDeleteResult *brinvacuumcleanup(IndexVacuumInfo *info,
|
110
|
+
IndexBulkDeleteResult *stats);
|
111
|
+
extern bytea *brinoptions(Datum reloptions, bool validate);
|
112
|
+
|
113
|
+
/* brin_validate.c */
|
114
|
+
extern bool brinvalidate(Oid opclassoid);
|
115
|
+
|
116
|
+
#endif /* BRIN_INTERNAL_H */
|
@@ -0,0 +1,112 @@
|
|
1
|
+
/*
|
2
|
+
* brin_tuple.h
|
3
|
+
* Declarations for dealing with BRIN-specific tuples.
|
4
|
+
*
|
5
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
6
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
7
|
+
*
|
8
|
+
* IDENTIFICATION
|
9
|
+
* src/include/access/brin_tuple.h
|
10
|
+
*/
|
11
|
+
#ifndef BRIN_TUPLE_H
|
12
|
+
#define BRIN_TUPLE_H
|
13
|
+
|
14
|
+
#include "access/brin_internal.h"
|
15
|
+
#include "access/tupdesc.h"
|
16
|
+
|
17
|
+
/*
|
18
|
+
* The BRIN opclasses may register serialization callback, in case the on-disk
|
19
|
+
* and in-memory representations differ (e.g. for performance reasons).
|
20
|
+
*/
|
21
|
+
typedef void (*brin_serialize_callback_type) (BrinDesc *bdesc, Datum src, Datum *dst);
|
22
|
+
|
23
|
+
/*
|
24
|
+
* A BRIN index stores one index tuple per page range. Each index tuple
|
25
|
+
* has one BrinValues struct for each indexed column; in turn, each BrinValues
|
26
|
+
* has (besides the null flags) an array of Datum whose size is determined by
|
27
|
+
* the opclass.
|
28
|
+
*/
|
29
|
+
typedef struct BrinValues
|
30
|
+
{
|
31
|
+
AttrNumber bv_attno; /* index attribute number */
|
32
|
+
bool bv_hasnulls; /* are there any nulls in the page range? */
|
33
|
+
bool bv_allnulls; /* are all values nulls in the page range? */
|
34
|
+
Datum *bv_values; /* current accumulated values */
|
35
|
+
Datum bv_mem_value; /* expanded accumulated values */
|
36
|
+
MemoryContext bv_context;
|
37
|
+
brin_serialize_callback_type bv_serialize;
|
38
|
+
} BrinValues;
|
39
|
+
|
40
|
+
/*
|
41
|
+
* This struct is used to represent an in-memory index tuple. The values can
|
42
|
+
* only be meaningfully decoded with an appropriate BrinDesc.
|
43
|
+
*/
|
44
|
+
typedef struct BrinMemTuple
|
45
|
+
{
|
46
|
+
bool bt_placeholder; /* this is a placeholder tuple */
|
47
|
+
bool bt_empty_range; /* range represents no tuples */
|
48
|
+
BlockNumber bt_blkno; /* heap blkno that the tuple is for */
|
49
|
+
MemoryContext bt_context; /* memcxt holding the bt_columns values */
|
50
|
+
/* output arrays for brin_deform_tuple: */
|
51
|
+
Datum *bt_values; /* values array */
|
52
|
+
bool *bt_allnulls; /* allnulls array */
|
53
|
+
bool *bt_hasnulls; /* hasnulls array */
|
54
|
+
/* not an output array, but must be last */
|
55
|
+
BrinValues bt_columns[FLEXIBLE_ARRAY_MEMBER];
|
56
|
+
} BrinMemTuple;
|
57
|
+
|
58
|
+
/*
|
59
|
+
* An on-disk BRIN tuple. This is possibly followed by a nulls bitmask, with
|
60
|
+
* room for 2 null bits (two bits for each indexed column); an opclass-defined
|
61
|
+
* number of Datum values for each column follow.
|
62
|
+
*/
|
63
|
+
typedef struct BrinTuple
|
64
|
+
{
|
65
|
+
/* heap block number that the tuple is for */
|
66
|
+
BlockNumber bt_blkno;
|
67
|
+
|
68
|
+
/* ---------------
|
69
|
+
* bt_info is laid out in the following fashion:
|
70
|
+
*
|
71
|
+
* 7th (high) bit: has nulls
|
72
|
+
* 6th bit: is placeholder tuple
|
73
|
+
* 5th bit: range is empty
|
74
|
+
* 4-0 bit: offset of data
|
75
|
+
* ---------------
|
76
|
+
*/
|
77
|
+
uint8 bt_info;
|
78
|
+
} BrinTuple;
|
79
|
+
|
80
|
+
#define SizeOfBrinTuple (offsetof(BrinTuple, bt_info) + sizeof(uint8))
|
81
|
+
|
82
|
+
/*
|
83
|
+
* bt_info manipulation macros
|
84
|
+
*/
|
85
|
+
#define BRIN_OFFSET_MASK 0x1F
|
86
|
+
#define BRIN_EMPTY_RANGE_MASK 0x20
|
87
|
+
#define BRIN_PLACEHOLDER_MASK 0x40
|
88
|
+
#define BRIN_NULLS_MASK 0x80
|
89
|
+
|
90
|
+
#define BrinTupleDataOffset(tup) ((Size) (((BrinTuple *) (tup))->bt_info & BRIN_OFFSET_MASK))
|
91
|
+
#define BrinTupleHasNulls(tup) (((((BrinTuple *) (tup))->bt_info & BRIN_NULLS_MASK)) != 0)
|
92
|
+
#define BrinTupleIsPlaceholder(tup) (((((BrinTuple *) (tup))->bt_info & BRIN_PLACEHOLDER_MASK)) != 0)
|
93
|
+
#define BrinTupleIsEmptyRange(tup) (((((BrinTuple *) (tup))->bt_info & BRIN_EMPTY_RANGE_MASK)) != 0)
|
94
|
+
|
95
|
+
|
96
|
+
extern BrinTuple *brin_form_tuple(BrinDesc *brdesc, BlockNumber blkno,
|
97
|
+
BrinMemTuple *tuple, Size *size);
|
98
|
+
extern BrinTuple *brin_form_placeholder_tuple(BrinDesc *brdesc,
|
99
|
+
BlockNumber blkno, Size *size);
|
100
|
+
extern void brin_free_tuple(BrinTuple *tuple);
|
101
|
+
extern BrinTuple *brin_copy_tuple(BrinTuple *tuple, Size len,
|
102
|
+
BrinTuple *dest, Size *destsz);
|
103
|
+
extern bool brin_tuples_equal(const BrinTuple *a, Size alen,
|
104
|
+
const BrinTuple *b, Size blen);
|
105
|
+
|
106
|
+
extern BrinMemTuple *brin_new_memtuple(BrinDesc *brdesc);
|
107
|
+
extern BrinMemTuple *brin_memtuple_initialize(BrinMemTuple *dtuple,
|
108
|
+
BrinDesc *brdesc);
|
109
|
+
extern BrinMemTuple *brin_deform_tuple(BrinDesc *brdesc,
|
110
|
+
BrinTuple *tuple, BrinMemTuple *dMemtuple);
|
111
|
+
|
112
|
+
#endif /* BRIN_TUPLE_H */
|