pg_query 2.2.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +86 -0
- data/README.md +57 -31
- data/Rakefile +5 -6
- data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
- data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
- data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/extconf.rb +33 -9
- data/ext/pg_query/include/pg_query.h +30 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +839 -290
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +638 -481
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +6786 -4193
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +450 -330
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1489 -1044
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +157 -118
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1933 -1410
- data/ext/pg_query/include/postgres/access/amapi.h +303 -0
- data/ext/pg_query/include/postgres/access/attmap.h +54 -0
- data/ext/pg_query/include/postgres/access/attnum.h +64 -0
- data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
- data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
- data/ext/pg_query/include/postgres/access/clog.h +62 -0
- data/ext/pg_query/include/postgres/access/commit_ts.h +73 -0
- data/ext/pg_query/include/postgres/access/detoast.h +82 -0
- data/ext/pg_query/include/postgres/access/genam.h +246 -0
- data/ext/pg_query/include/postgres/access/gin.h +91 -0
- data/ext/pg_query/include/postgres/access/htup.h +89 -0
- data/ext/pg_query/include/postgres/access/htup_details.h +811 -0
- data/ext/pg_query/include/postgres/access/itup.h +170 -0
- data/ext/pg_query/include/postgres/access/parallel.h +81 -0
- data/ext/pg_query/include/postgres/access/printtup.h +35 -0
- data/ext/pg_query/include/postgres/access/relation.h +28 -0
- data/ext/pg_query/include/postgres/access/relscan.h +191 -0
- data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
- data/ext/pg_query/include/postgres/access/rmgrlist.h +49 -0
- data/ext/pg_query/include/postgres/access/sdir.h +67 -0
- data/ext/pg_query/include/postgres/access/skey.h +151 -0
- data/ext/pg_query/include/postgres/access/slru.h +218 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +85 -0
- data/ext/pg_query/include/postgres/access/sysattr.h +29 -0
- data/ext/pg_query/include/postgres/access/table.h +28 -0
- data/ext/pg_query/include/postgres/access/tableam.h +2110 -0
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
- data/ext/pg_query/include/postgres/access/transam.h +418 -0
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/postgres/access/tupconvert.h +54 -0
- data/ext/pg_query/include/postgres/access/tupdesc.h +154 -0
- data/ext/pg_query/include/postgres/access/tupmacs.h +207 -0
- data/ext/pg_query/include/postgres/access/twophase.h +65 -0
- data/ext/pg_query/include/postgres/access/xact.h +530 -0
- data/ext/pg_query/include/postgres/access/xlog.h +310 -0
- data/ext/pg_query/include/postgres/access/xlog_internal.h +405 -0
- data/ext/pg_query/include/postgres/access/xlogbackup.h +43 -0
- data/ext/pg_query/include/postgres/access/xlogdefs.h +82 -0
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/postgres/access/xlogreader.h +444 -0
- data/ext/pg_query/include/postgres/access/xlogrecord.h +248 -0
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
- data/ext/pg_query/include/postgres/archive/archive_module.h +67 -0
- data/ext/pg_query/include/postgres/c.h +1374 -0
- data/ext/pg_query/include/postgres/catalog/catalog.h +47 -0
- data/ext/pg_query/include/postgres/catalog/catversion.h +62 -0
- data/ext/pg_query/include/postgres/catalog/dependency.h +228 -0
- data/ext/pg_query/include/postgres/catalog/genbki.h +149 -0
- data/ext/pg_query/include/postgres/catalog/index.h +218 -0
- data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
- data/ext/pg_query/include/postgres/catalog/namespace.h +189 -0
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +267 -0
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +93 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +182 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +78 -0
- data/ext/pg_query/include/postgres/catalog/pg_am.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +47 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +240 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_class.h +235 -0
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +134 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +106 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +278 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +74 -0
- data/ext/pg_query/include/postgres/catalog/pg_control.h +260 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +79 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_database.h +129 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +53 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +77 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_index.h +92 -0
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +59 -0
- data/ext/pg_query/include/postgres/catalog/pg_language.h +75 -0
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +41 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +142 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +76 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +223 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +101 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +161 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +65 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +33 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +288 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +199 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +45 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +153 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +109 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +56 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +35 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +63 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +37 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +54 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_type.h +407 -0
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +324 -0
- data/ext/pg_query/include/postgres/catalog/storage.h +50 -0
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +49 -0
- data/ext/pg_query/include/postgres/commands/dbcommands.h +37 -0
- data/ext/pg_query/include/postgres/commands/defrem.h +161 -0
- data/ext/pg_query/include/postgres/commands/event_trigger.h +97 -0
- data/ext/pg_query/include/postgres/commands/explain.h +145 -0
- data/ext/pg_query/include/postgres/commands/prepare.h +61 -0
- data/ext/pg_query/include/postgres/commands/tablespace.h +69 -0
- data/ext/pg_query/include/postgres/commands/trigger.h +288 -0
- data/ext/pg_query/include/postgres/commands/user.h +43 -0
- data/ext/pg_query/include/postgres/commands/vacuum.h +388 -0
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/postgres/common/file_perm.h +56 -0
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +119 -0
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
- data/ext/pg_query/include/postgres/common/int.h +512 -0
- data/ext/pg_query/include/postgres/common/keywords.h +29 -0
- data/ext/pg_query/include/postgres/common/kwlookup.h +44 -0
- data/ext/pg_query/include/postgres/common/pg_prng.h +62 -0
- data/ext/pg_query/include/postgres/common/relpath.h +97 -0
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/postgres/common/string.h +44 -0
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +124 -0
- data/ext/pg_query/include/postgres/common/unicode_nonspacing_table.h +326 -0
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5261 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +989 -0
- data/ext/pg_query/include/postgres/datatype/timestamp.h +269 -0
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3310 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +836 -0
- data/ext/pg_query/include/postgres/executor/execdesc.h +70 -0
- data/ext/pg_query/include/postgres/executor/executor.h +681 -0
- data/ext/pg_query/include/postgres/executor/functions.h +56 -0
- data/ext/pg_query/include/postgres/executor/instrument.h +120 -0
- data/ext/pg_query/include/postgres/executor/spi.h +207 -0
- data/ext/pg_query/include/postgres/executor/tablefunc.h +67 -0
- data/ext/pg_query/include/postgres/executor/tuptable.h +523 -0
- data/ext/pg_query/include/postgres/fmgr.h +800 -0
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/postgres/funcapi.h +360 -0
- data/ext/pg_query/include/postgres/gram.h +1168 -0
- data/ext/pg_query/include/postgres/gramparse.h +75 -0
- data/ext/pg_query/include/postgres/jit/jit.h +106 -0
- data/ext/pg_query/include/postgres/kwlist_d.h +1164 -0
- data/ext/pg_query/include/postgres/lib/dshash.h +130 -0
- data/ext/pg_query/include/postgres/lib/ilist.h +1159 -0
- data/ext/pg_query/include/postgres/lib/pairingheap.h +102 -0
- data/ext/pg_query/include/postgres/lib/simplehash.h +1206 -0
- data/ext/pg_query/include/postgres/lib/sort_template.h +445 -0
- data/ext/pg_query/include/postgres/lib/stringinfo.h +243 -0
- data/ext/pg_query/include/postgres/libpq/auth.h +37 -0
- data/ext/pg_query/include/postgres/libpq/crypt.h +47 -0
- data/ext/pg_query/include/postgres/libpq/hba.h +186 -0
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +361 -0
- data/ext/pg_query/include/postgres/libpq/libpq.h +143 -0
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +169 -0
- data/ext/pg_query/include/postgres/libpq/pqformat.h +209 -0
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +54 -0
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/postgres/mb/pg_wchar.h +793 -0
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
- data/ext/pg_query/include/postgres/miscadmin.h +527 -0
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
- data/ext/pg_query/include/postgres/nodes/execnodes.h +2855 -0
- data/ext/pg_query/include/postgres/nodes/extensible.h +164 -0
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +61 -0
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +127 -0
- data/ext/pg_query/include/postgres/nodes/memnodes.h +152 -0
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +222 -0
- data/ext/pg_query/include/postgres/nodes/nodes.h +435 -0
- data/ext/pg_query/include/postgres/nodes/nodetags.h +491 -0
- data/ext/pg_query/include/postgres/nodes/params.h +170 -0
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +4233 -0
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +3438 -0
- data/ext/pg_query/include/postgres/nodes/pg_list.h +686 -0
- data/ext/pg_query/include/postgres/nodes/plannodes.h +1593 -0
- data/ext/pg_query/include/postgres/nodes/primnodes.h +2339 -0
- data/ext/pg_query/include/postgres/nodes/print.h +34 -0
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
- data/ext/pg_query/include/postgres/nodes/replnodes.h +132 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +75 -0
- data/ext/pg_query/include/postgres/nodes/value.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/cost.h +216 -0
- data/ext/pg_query/include/postgres/optimizer/geqo.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +45 -0
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +205 -0
- data/ext/pg_query/include/postgres/optimizer/paths.h +271 -0
- data/ext/pg_query/include/postgres/optimizer/planmain.h +123 -0
- data/ext/pg_query/include/postgres/parser/analyze.h +66 -0
- data/ext/pg_query/include/postgres/parser/kwlist.h +518 -0
- data/ext/pg_query/include/postgres/parser/parse_agg.h +65 -0
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +105 -0
- data/ext/pg_query/include/postgres/parser/parse_expr.h +25 -0
- data/ext/pg_query/include/postgres/parser/parse_func.h +74 -0
- data/ext/pg_query/include/postgres/parser/parse_node.h +358 -0
- data/ext/pg_query/include/postgres/parser/parse_oper.h +68 -0
- data/ext/pg_query/include/postgres/parser/parse_relation.h +129 -0
- data/ext/pg_query/include/postgres/parser/parse_type.h +61 -0
- data/ext/pg_query/include/postgres/parser/parser.h +68 -0
- data/ext/pg_query/include/postgres/parser/parsetree.h +61 -0
- data/ext/pg_query/include/postgres/parser/scanner.h +152 -0
- data/ext/pg_query/include/postgres/parser/scansup.h +27 -0
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +26 -0
- data/ext/pg_query/include/postgres/pg_config.h +985 -0
- data/ext/pg_query/include/postgres/pg_config_manual.h +385 -0
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/postgres/pg_getopt.h +56 -0
- data/ext/pg_query/include/postgres/pg_trace.h +17 -0
- data/ext/pg_query/include/postgres/pgstat.h +780 -0
- data/ext/pg_query/include/postgres/pgtime.h +94 -0
- data/ext/pg_query/include/postgres/pl_gram.h +385 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +52 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +114 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +112 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +246 -0
- data/ext/pg_query/include/postgres/plerrcodes.h +998 -0
- data/ext/pg_query/include/postgres/plpgsql.h +1342 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +32 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +256 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +254 -0
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +170 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +323 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +119 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +121 -0
- data/ext/pg_query/include/postgres/port/atomics/generic.h +437 -0
- data/ext/pg_query/include/postgres/port/atomics.h +606 -0
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +421 -0
- data/ext/pg_query/include/postgres/port/pg_bswap.h +161 -0
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +110 -0
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +422 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +34 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +582 -0
- data/ext/pg_query/include/postgres/port.h +555 -0
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/postgres/postgres_ext.h +73 -0
- data/ext/pg_query/include/postgres/postmaster/autovacuum.h +69 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +164 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +60 -0
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +45 -0
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +32 -0
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +23 -0
- data/ext/pg_query/include/postgres/regex/regex.h +272 -0
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +34 -0
- data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
- data/ext/pg_query/include/postgres/replication/logicalworker.h +33 -0
- data/ext/pg_query/include/postgres/replication/origin.h +73 -0
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +734 -0
- data/ext/pg_query/include/postgres/replication/slot.h +289 -0
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +109 -0
- data/ext/pg_query/include/postgres/replication/walreceiver.h +504 -0
- data/ext/pg_query/include/postgres/replication/walsender.h +76 -0
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +46 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +41 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +96 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +26 -0
- data/ext/pg_query/include/postgres/storage/block.h +108 -0
- data/ext/pg_query/include/postgres/storage/buf.h +46 -0
- data/ext/pg_query/include/postgres/storage/bufmgr.h +411 -0
- data/ext/pg_query/include/postgres/storage/bufpage.h +510 -0
- data/ext/pg_query/include/postgres/storage/condition_variable.h +73 -0
- data/ext/pg_query/include/postgres/storage/dsm.h +61 -0
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +79 -0
- data/ext/pg_query/include/postgres/storage/fd.h +219 -0
- data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
- data/ext/pg_query/include/postgres/storage/ipc.h +87 -0
- data/ext/pg_query/include/postgres/storage/item.h +19 -0
- data/ext/pg_query/include/postgres/storage/itemid.h +184 -0
- data/ext/pg_query/include/postgres/storage/itemptr.h +245 -0
- data/ext/pg_query/include/postgres/storage/large_object.h +100 -0
- data/ext/pg_query/include/postgres/storage/latch.h +196 -0
- data/ext/pg_query/include/postgres/storage/lmgr.h +126 -0
- data/ext/pg_query/include/postgres/storage/lock.h +624 -0
- data/ext/pg_query/include/postgres/storage/lockdefs.h +61 -0
- data/ext/pg_query/include/postgres/storage/lwlock.h +228 -0
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +47 -0
- data/ext/pg_query/include/postgres/storage/off.h +57 -0
- data/ext/pg_query/include/postgres/storage/pg_sema.h +61 -0
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +93 -0
- data/ext/pg_query/include/postgres/storage/pmsignal.h +105 -0
- data/ext/pg_query/include/postgres/storage/predicate.h +83 -0
- data/ext/pg_query/include/postgres/storage/proc.h +488 -0
- data/ext/pg_query/include/postgres/storage/procarray.h +103 -0
- data/ext/pg_query/include/postgres/storage/proclist_types.h +53 -0
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +75 -0
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +100 -0
- data/ext/pg_query/include/postgres/storage/s_lock.h +847 -0
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +37 -0
- data/ext/pg_query/include/postgres/storage/shm_mq.h +86 -0
- data/ext/pg_query/include/postgres/storage/shm_toc.h +58 -0
- data/ext/pg_query/include/postgres/storage/shmem.h +59 -0
- data/ext/pg_query/include/postgres/storage/sinval.h +153 -0
- data/ext/pg_query/include/postgres/storage/smgr.h +130 -0
- data/ext/pg_query/include/postgres/storage/spin.h +77 -0
- data/ext/pg_query/include/postgres/storage/standby.h +109 -0
- data/ext/pg_query/include/postgres/storage/standbydefs.h +74 -0
- data/ext/pg_query/include/postgres/storage/sync.h +66 -0
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +62 -0
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +219 -0
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +108 -0
- data/ext/pg_query/include/postgres/tcop/dest.h +148 -0
- data/ext/pg_query/include/postgres/tcop/fastpath.h +20 -0
- data/ext/pg_query/include/postgres/tcop/pquery.h +51 -0
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +98 -0
- data/ext/pg_query/include/postgres/tcop/utility.h +112 -0
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +96 -0
- data/ext/pg_query/include/postgres/utils/acl.h +290 -0
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +45 -0
- data/ext/pg_query/include/postgres/utils/array.h +481 -0
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +46 -0
- data/ext/pg_query/include/postgres/utils/backend_status.h +340 -0
- data/ext/pg_query/include/postgres/utils/builtins.h +139 -0
- data/ext/pg_query/include/postgres/utils/bytea.h +28 -0
- data/ext/pg_query/include/postgres/utils/catcache.h +231 -0
- data/ext/pg_query/include/postgres/utils/date.h +118 -0
- data/ext/pg_query/include/postgres/utils/datetime.h +367 -0
- data/ext/pg_query/include/postgres/utils/datum.h +76 -0
- data/ext/pg_query/include/postgres/utils/dsa.h +166 -0
- data/ext/pg_query/include/postgres/utils/elog.h +540 -0
- data/ext/pg_query/include/postgres/utils/errcodes.h +352 -0
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +170 -0
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +241 -0
- data/ext/pg_query/include/postgres/utils/float.h +357 -0
- data/ext/pg_query/include/postgres/utils/fmgroids.h +3347 -0
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +2904 -0
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +49 -0
- data/ext/pg_query/include/postgres/utils/guc.h +456 -0
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +184 -0
- data/ext/pg_query/include/postgres/utils/guc_tables.h +323 -0
- data/ext/pg_query/include/postgres/utils/hsearch.h +153 -0
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +68 -0
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/postgres/utils/lsyscache.h +215 -0
- data/ext/pg_query/include/postgres/utils/memdebug.h +82 -0
- data/ext/pg_query/include/postgres/utils/memutils.h +193 -0
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +176 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +253 -0
- data/ext/pg_query/include/postgres/utils/numeric.h +110 -0
- data/ext/pg_query/include/postgres/utils/palloc.h +151 -0
- data/ext/pg_query/include/postgres/utils/partcache.h +103 -0
- data/ext/pg_query/include/postgres/utils/pg_locale.h +136 -0
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +827 -0
- data/ext/pg_query/include/postgres/utils/plancache.h +238 -0
- data/ext/pg_query/include/postgres/utils/portal.h +252 -0
- data/ext/pg_query/include/postgres/utils/probes.h +114 -0
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +74 -0
- data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
- data/ext/pg_query/include/postgres/utils/rel.h +711 -0
- data/ext/pg_query/include/postgres/utils/relcache.h +155 -0
- data/ext/pg_query/include/postgres/utils/reltrigger.h +81 -0
- data/ext/pg_query/include/postgres/utils/resowner.h +167 -0
- data/ext/pg_query/include/postgres/utils/ruleutils.h +52 -0
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +61 -0
- data/ext/pg_query/include/postgres/utils/snapmgr.h +130 -0
- data/ext/pg_query/include/postgres/utils/snapshot.h +219 -0
- data/ext/pg_query/include/postgres/utils/sortsupport.h +391 -0
- data/ext/pg_query/include/postgres/utils/syscache.h +136 -0
- data/ext/pg_query/include/postgres/utils/timeout.h +96 -0
- data/ext/pg_query/include/postgres/utils/timestamp.h +147 -0
- data/ext/pg_query/include/postgres/utils/tuplesort.h +472 -0
- data/ext/pg_query/include/postgres/utils/tuplestore.h +88 -0
- data/ext/pg_query/include/postgres/utils/typcache.h +210 -0
- data/ext/pg_query/include/postgres/utils/varlena.h +53 -0
- data/ext/pg_query/include/postgres/utils/wait_event.h +108 -0
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +94 -0
- data/ext/pg_query/include/postgres/varatt.h +358 -0
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +8077 -6217
- data/ext/pg_query/include/protobuf/pg_query.pb.h +132024 -88124
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +24028 -17173
- data/ext/pg_query/pg_query_deparse.c +1 -9902
- data/ext/pg_query/pg_query_fingerprint.c +42 -18
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -25
- data/ext/pg_query/pg_query_normalize.c +44 -3
- data/ext/pg_query/pg_query_outfuncs_json.c +62 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +19 -18
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +45 -10
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_scan.c +4 -3
- data/ext/pg_query/pg_query_split.c +6 -5
- data/ext/pg_query/postgres_deparse.c +11496 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +262 -71
- data/ext/pg_query/src_backend_catalog_pg_proc.c +3 -2
- data/ext/pg_query/src_backend_commands_define.c +12 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +142 -156
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +100 -5881
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3831
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +89 -18
- data/ext/pg_query/src_backend_nodes_makefuncs.c +138 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +433 -132
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +45255 -38885
- data/ext/pg_query/src_backend_parser_parser.c +53 -8
- data/ext/pg_query/src_backend_parser_scan.c +6999 -3438
- data/ext/pg_query/src_backend_parser_scansup.c +5 -28
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +156 -114
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +14 -2
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
- data/ext/pg_query/src_backend_utils_adt_numutils.c +488 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +247 -34
- data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
- data/ext/pg_query/src_backend_utils_error_elog.c +543 -343
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +47 -18
- data/ext/pg_query/src_backend_utils_init_globals.c +22 -7
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +84 -148
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +502 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +166 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +708 -499
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1115 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +710 -218
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1079 -0
- data/ext/pg_query/src_common_encnames.c +46 -44
- data/ext/pg_query/src_common_hashfn.c +3 -3
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +602 -510
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +3 -3
- data/ext/pg_query/src_common_stringinfo.c +21 -4
- data/ext/pg_query/src_common_wchar.c +754 -178
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +143 -24
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1295 -1255
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +20 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
- data/ext/pg_query/src_port_pg_bitutils.c +283 -54
- data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +56 -39
- data/ext/pg_query/src_port_strerror.c +9 -21
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/filter_columns.rb +1 -1
- data/lib/pg_query/fingerprint.rb +10 -9
- data/lib/pg_query/node.rb +18 -13
- data/lib/pg_query/param_refs.rb +3 -3
- data/lib/pg_query/parse.rb +25 -15
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +181 -3038
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +55 -8
- data/lib/pg_query/truncate.rb +19 -21
- data/lib/pg_query/version.rb +1 -1
- metadata +447 -436
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -246
- data/ext/pg_query/include/access/attmap.h +0 -52
- data/ext/pg_query/include/access/attnum.h +0 -64
- data/ext/pg_query/include/access/clog.h +0 -61
- data/ext/pg_query/include/access/commit_ts.h +0 -77
- data/ext/pg_query/include/access/detoast.h +0 -92
- data/ext/pg_query/include/access/genam.h +0 -228
- data/ext/pg_query/include/access/gin.h +0 -78
- data/ext/pg_query/include/access/htup.h +0 -89
- data/ext/pg_query/include/access/htup_details.h +0 -819
- data/ext/pg_query/include/access/itup.h +0 -161
- data/ext/pg_query/include/access/parallel.h +0 -82
- data/ext/pg_query/include/access/printtup.h +0 -35
- data/ext/pg_query/include/access/relation.h +0 -28
- data/ext/pg_query/include/access/relscan.h +0 -176
- data/ext/pg_query/include/access/rmgr.h +0 -35
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -58
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -83
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -27
- data/ext/pg_query/include/access/tableam.h +0 -1825
- data/ext/pg_query/include/access/transam.h +0 -265
- data/ext/pg_query/include/access/tupconvert.h +0 -51
- data/ext/pg_query/include/access/tupdesc.h +0 -154
- data/ext/pg_query/include/access/tupmacs.h +0 -247
- data/ext/pg_query/include/access/twophase.h +0 -63
- data/ext/pg_query/include/access/xact.h +0 -469
- data/ext/pg_query/include/access/xlog.h +0 -398
- data/ext/pg_query/include/access/xlog_internal.h +0 -339
- data/ext/pg_query/include/access/xlogdefs.h +0 -109
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/access/xlogreader.h +0 -337
- data/ext/pg_query/include/access/xlogrecord.h +0 -227
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/c.h +0 -1334
- data/ext/pg_query/include/catalog/catalog.h +0 -42
- data/ext/pg_query/include/catalog/catversion.h +0 -58
- data/ext/pg_query/include/catalog/dependency.h +0 -277
- data/ext/pg_query/include/catalog/genbki.h +0 -64
- data/ext/pg_query/include/catalog/index.h +0 -199
- data/ext/pg_query/include/catalog/indexing.h +0 -366
- data/ext/pg_query/include/catalog/namespace.h +0 -188
- data/ext/pg_query/include/catalog/objectaccess.h +0 -197
- data/ext/pg_query/include/catalog/objectaddress.h +0 -84
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -176
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -77
- data/ext/pg_query/include/catalog/pg_am.h +0 -60
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -204
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_authid.h +0 -58
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_class.h +0 -200
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -103
- data/ext/pg_query/include/catalog/pg_collation.h +0 -73
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -247
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -67
- data/ext/pg_query/include/catalog/pg_control.h +0 -252
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -72
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_depend.h +0 -73
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -51
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_index.h +0 -80
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -56
- data/ext/pg_query/include/catalog/pg_language.h +0 -67
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -39
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -59
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -85
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_operator.h +0 -104
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -60
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -63
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_proc.h +0 -211
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -99
- data/ext/pg_query/include/catalog/pg_publication.h +0 -118
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -57
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -29
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -275
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -194
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -74
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -40
- data/ext/pg_query/include/catalog/pg_transform.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -137
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -50
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -54
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -57
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -48
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_type.h +0 -373
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -285
- data/ext/pg_query/include/catalog/storage.h +0 -48
- data/ext/pg_query/include/commands/async.h +0 -54
- data/ext/pg_query/include/commands/dbcommands.h +0 -35
- data/ext/pg_query/include/commands/defrem.h +0 -173
- data/ext/pg_query/include/commands/event_trigger.h +0 -88
- data/ext/pg_query/include/commands/explain.h +0 -127
- data/ext/pg_query/include/commands/prepare.h +0 -61
- data/ext/pg_query/include/commands/tablespace.h +0 -69
- data/ext/pg_query/include/commands/trigger.h +0 -285
- data/ext/pg_query/include/commands/user.h +0 -37
- data/ext/pg_query/include/commands/vacuum.h +0 -293
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/file_perm.h +0 -56
- data/ext/pg_query/include/common/hashfn.h +0 -104
- data/ext/pg_query/include/common/ip.h +0 -37
- data/ext/pg_query/include/common/keywords.h +0 -33
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/relpath.h +0 -90
- data/ext/pg_query/include/common/string.h +0 -19
- data/ext/pg_query/include/common/unicode_combining_table.h +0 -196
- data/ext/pg_query/include/datatype/timestamp.h +0 -197
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -620
- data/ext/pg_query/include/executor/functions.h +0 -41
- data/ext/pg_query/include/executor/instrument.h +0 -101
- data/ext/pg_query/include/executor/spi.h +0 -175
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -487
- data/ext/pg_query/include/fmgr.h +0 -775
- data/ext/pg_query/include/funcapi.h +0 -348
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/jit/jit.h +0 -105
- data/ext/pg_query/include/kwlist_d.h +0 -1072
- data/ext/pg_query/include/lib/ilist.h +0 -727
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1059
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -29
- data/ext/pg_query/include/libpq/crypt.h +0 -46
- data/ext/pg_query/include/libpq/hba.h +0 -140
- data/ext/pg_query/include/libpq/libpq-be.h +0 -326
- data/ext/pg_query/include/libpq/libpq.h +0 -134
- data/ext/pg_query/include/libpq/pqcomm.h +0 -208
- data/ext/pg_query/include/libpq/pqformat.h +0 -210
- data/ext/pg_query/include/libpq/pqsignal.h +0 -42
- data/ext/pg_query/include/mb/pg_wchar.h +0 -673
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -489
- data/ext/pg_query/include/nodes/bitmapset.h +0 -122
- data/ext/pg_query/include/nodes/execnodes.h +0 -2523
- data/ext/pg_query/include/nodes/extensible.h +0 -160
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -108
- data/ext/pg_query/include/nodes/memnodes.h +0 -108
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
- data/ext/pg_query/include/nodes/nodes.h +0 -842
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -3580
- data/ext/pg_query/include/nodes/pathnodes.h +0 -2557
- data/ext/pg_query/include/nodes/pg_list.h +0 -606
- data/ext/pg_query/include/nodes/plannodes.h +0 -1266
- data/ext/pg_query/include/nodes/primnodes.h +0 -1541
- data/ext/pg_query/include/nodes/print.h +0 -34
- data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
- data/ext/pg_query/include/nodes/value.h +0 -61
- data/ext/pg_query/include/optimizer/cost.h +0 -206
- data/ext/pg_query/include/optimizer/geqo.h +0 -88
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -194
- data/ext/pg_query/include/optimizer/paths.h +0 -257
- data/ext/pg_query/include/optimizer/planmain.h +0 -119
- data/ext/pg_query/include/parser/analyze.h +0 -49
- data/ext/pg_query/include/parser/gram.h +0 -1067
- data/ext/pg_query/include/parser/gramparse.h +0 -75
- data/ext/pg_query/include/parser/kwlist.h +0 -477
- data/ext/pg_query/include/parser/parse_agg.h +0 -68
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_coerce.h +0 -98
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_expr.h +0 -26
- data/ext/pg_query/include/parser/parse_func.h +0 -73
- data/ext/pg_query/include/parser/parse_node.h +0 -327
- data/ext/pg_query/include/parser/parse_oper.h +0 -67
- data/ext/pg_query/include/parser/parse_relation.h +0 -123
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/include/parser/parse_type.h +0 -60
- data/ext/pg_query/include/parser/parser.h +0 -41
- data/ext/pg_query/include/parser/parsetree.h +0 -61
- data/ext/pg_query/include/parser/scanner.h +0 -152
- data/ext/pg_query/include/parser/scansup.h +0 -30
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -995
- data/ext/pg_query/include/pg_config_manual.h +0 -357
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/pg_getopt.h +0 -56
- data/ext/pg_query/include/pg_trace.h +0 -17
- data/ext/pg_query/include/pgstat.h +0 -1488
- data/ext/pg_query/include/pgtime.h +0 -84
- data/ext/pg_query/include/pl_gram.h +0 -385
- data/ext/pg_query/include/pl_reserved_kwlist.h +0 -52
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +0 -114
- data/ext/pg_query/include/pl_unreserved_kwlist.h +0 -112
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -246
- data/ext/pg_query/include/plerrcodes.h +0 -990
- data/ext/pg_query/include/plpgsql.h +0 -1347
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -26
- data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
- data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
- data/ext/pg_query/include/port/atomics/fallback.h +0 -170
- data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
- data/ext/pg_query/include/port/atomics/generic.h +0 -401
- data/ext/pg_query/include/port/atomics.h +0 -524
- data/ext/pg_query/include/port/pg_bitutils.h +0 -272
- data/ext/pg_query/include/port/pg_bswap.h +0 -161
- data/ext/pg_query/include/port/pg_crc32c.h +0 -101
- data/ext/pg_query/include/port.h +0 -528
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postgres.h +0 -764
- data/ext/pg_query/include/postgres_ext.h +0 -74
- data/ext/pg_query/include/postmaster/autovacuum.h +0 -83
- data/ext/pg_query/include/postmaster/bgworker.h +0 -161
- data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
- data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/interrupt.h +0 -32
- data/ext/pg_query/include/postmaster/pgarch.h +0 -39
- data/ext/pg_query/include/postmaster/postmaster.h +0 -77
- data/ext/pg_query/include/postmaster/syslogger.h +0 -98
- data/ext/pg_query/include/postmaster/walwriter.h +0 -21
- data/ext/pg_query/include/regex/regex.h +0 -184
- data/ext/pg_query/include/replication/logicallauncher.h +0 -31
- data/ext/pg_query/include/replication/logicalproto.h +0 -110
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/replication/origin.h +0 -73
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -468
- data/ext/pg_query/include/replication/slot.h +0 -219
- data/ext/pg_query/include/replication/syncrep.h +0 -115
- data/ext/pg_query/include/replication/walreceiver.h +0 -340
- data/ext/pg_query/include/replication/walsender.h +0 -74
- data/ext/pg_query/include/rewrite/prs2lock.h +0 -46
- data/ext/pg_query/include/rewrite/rewriteHandler.h +0 -40
- data/ext/pg_query/include/rewrite/rewriteManip.h +0 -87
- data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
- data/ext/pg_query/include/storage/backendid.h +0 -37
- data/ext/pg_query/include/storage/block.h +0 -121
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -292
- data/ext/pg_query/include/storage/bufpage.h +0 -459
- data/ext/pg_query/include/storage/condition_variable.h +0 -62
- data/ext/pg_query/include/storage/dsm.h +0 -61
- data/ext/pg_query/include/storage/dsm_impl.h +0 -75
- data/ext/pg_query/include/storage/fd.h +0 -168
- data/ext/pg_query/include/storage/ipc.h +0 -81
- data/ext/pg_query/include/storage/item.h +0 -19
- data/ext/pg_query/include/storage/itemid.h +0 -184
- data/ext/pg_query/include/storage/itemptr.h +0 -206
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -190
- data/ext/pg_query/include/storage/lmgr.h +0 -114
- data/ext/pg_query/include/storage/lock.h +0 -613
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -233
- data/ext/pg_query/include/storage/lwlocknames.h +0 -51
- data/ext/pg_query/include/storage/off.h +0 -57
- data/ext/pg_query/include/storage/pg_sema.h +0 -61
- data/ext/pg_query/include/storage/pg_shmem.h +0 -90
- data/ext/pg_query/include/storage/pmsignal.h +0 -94
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -347
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -75
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -1071
- data/ext/pg_query/include/storage/sharedfileset.h +0 -45
- data/ext/pg_query/include/storage/shm_mq.h +0 -85
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -81
- data/ext/pg_query/include/storage/sinval.h +0 -153
- data/ext/pg_query/include/storage/sinvaladt.h +0 -43
- data/ext/pg_query/include/storage/smgr.h +0 -109
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -91
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -62
- data/ext/pg_query/include/tcop/cmdtag.h +0 -58
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -217
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -149
- data/ext/pg_query/include/tcop/fastpath.h +0 -21
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -89
- data/ext/pg_query/include/tcop/utility.h +0 -108
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
- data/ext/pg_query/include/utils/acl.h +0 -312
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -459
- data/ext/pg_query/include/utils/builtins.h +0 -128
- data/ext/pg_query/include/utils/bytea.h +0 -27
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -90
- data/ext/pg_query/include/utils/datetime.h +0 -343
- data/ext/pg_query/include/utils/datum.h +0 -68
- data/ext/pg_query/include/utils/dsa.h +0 -123
- data/ext/pg_query/include/utils/dynahash.h +0 -19
- data/ext/pg_query/include/utils/elog.h +0 -439
- data/ext/pg_query/include/utils/errcodes.h +0 -352
- data/ext/pg_query/include/utils/expandeddatum.h +0 -159
- data/ext/pg_query/include/utils/expandedrecord.h +0 -231
- data/ext/pg_query/include/utils/float.h +0 -356
- data/ext/pg_query/include/utils/fmgroids.h +0 -2657
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2646
- data/ext/pg_query/include/utils/fmgrtab.h +0 -48
- data/ext/pg_query/include/utils/guc.h +0 -443
- data/ext/pg_query/include/utils/guc_tables.h +0 -272
- data/ext/pg_query/include/utils/hsearch.h +0 -149
- data/ext/pg_query/include/utils/inval.h +0 -65
- data/ext/pg_query/include/utils/lsyscache.h +0 -198
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -225
- data/ext/pg_query/include/utils/numeric.h +0 -76
- data/ext/pg_query/include/utils/palloc.h +0 -136
- data/ext/pg_query/include/utils/partcache.h +0 -102
- data/ext/pg_query/include/utils/pg_locale.h +0 -119
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/plancache.h +0 -235
- data/ext/pg_query/include/utils/portal.h +0 -254
- data/ext/pg_query/include/utils/probes.h +0 -114
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/queryenvironment.h +0 -74
- data/ext/pg_query/include/utils/regproc.h +0 -28
- data/ext/pg_query/include/utils/rel.h +0 -643
- data/ext/pg_query/include/utils/relcache.h +0 -150
- data/ext/pg_query/include/utils/reltrigger.h +0 -81
- data/ext/pg_query/include/utils/resowner.h +0 -86
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/ruleutils.h +0 -44
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -159
- data/ext/pg_query/include/utils/snapshot.h +0 -206
- data/ext/pg_query/include/utils/sortsupport.h +0 -276
- data/ext/pg_query/include/utils/syscache.h +0 -219
- data/ext/pg_query/include/utils/timeout.h +0 -88
- data/ext/pg_query/include/utils/timestamp.h +0 -116
- data/ext/pg_query/include/utils/tuplesort.h +0 -277
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -202
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/include/utils/varlena.h +0 -39
- data/ext/pg_query/include/utils/xml.h +0 -84
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1832
- data/ext/pg_query/src_common_string.c +0 -86
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_random.c +0 -31
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -0,0 +1,253 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* memutils_memorychunk.h
|
4
|
+
* Here we define a struct named MemoryChunk which implementations of
|
5
|
+
* MemoryContexts may use as a header for chunks of memory they allocate.
|
6
|
+
*
|
7
|
+
* MemoryChunk provides a lightweight header that a MemoryContext can use to
|
8
|
+
* store a reference back to the block which the given chunk is allocated on
|
9
|
+
* and also an additional 30-bits to store another value such as the size of
|
10
|
+
* the allocated chunk.
|
11
|
+
*
|
12
|
+
* Although MemoryChunks are used by each of our MemoryContexts, future
|
13
|
+
* implementations may choose to implement their own method for storing chunk
|
14
|
+
* headers. The only requirement is that the header ends with an 8-byte value
|
15
|
+
* which the least significant 4-bits of are set to the MemoryContextMethodID
|
16
|
+
* of the given context.
|
17
|
+
*
|
18
|
+
* By default, a MemoryChunk is 8 bytes in size, however, when
|
19
|
+
* MEMORY_CONTEXT_CHECKING is defined the header becomes 16 bytes in size due
|
20
|
+
* to the additional requested_size field. The MemoryContext may use this
|
21
|
+
* field for whatever they wish, but it is intended to be used for additional
|
22
|
+
* checks which are only done in MEMORY_CONTEXT_CHECKING builds.
|
23
|
+
*
|
24
|
+
* The MemoryChunk contains a uint64 field named 'hdrmask'. This field is
|
25
|
+
* used to encode 4 separate pieces of information. Starting with the least
|
26
|
+
* significant bits of 'hdrmask', the bit space is reserved as follows:
|
27
|
+
*
|
28
|
+
* 1. 4-bits to indicate the MemoryContextMethodID as defined by
|
29
|
+
* MEMORY_CONTEXT_METHODID_MASK
|
30
|
+
* 2. 1-bit to denote an "external" chunk (see below)
|
31
|
+
* 3. 30-bits reserved for the MemoryContext to use for anything it
|
32
|
+
* requires. Most MemoryContexts likely want to store the size of the
|
33
|
+
* chunk here.
|
34
|
+
* 4. 30-bits for the number of bytes that must be subtracted from the chunk
|
35
|
+
* to obtain the address of the block that the chunk is stored on.
|
36
|
+
*
|
37
|
+
* If you're paying close attention, you'll notice this adds up to 65 bits
|
38
|
+
* rather than 64 bits. This is because the highest-order bit of #3 is the
|
39
|
+
* same bit as the lowest-order bit of #4. We can do this as we insist that
|
40
|
+
* the chunk and block pointers are both MAXALIGNed, therefore the relative
|
41
|
+
* offset between those will always be a MAXALIGNed value which means the
|
42
|
+
* lowest order bit is always 0. When fetching the chunk to block offset we
|
43
|
+
* mask out the lowest-order bit to ensure it's still zero.
|
44
|
+
*
|
45
|
+
* In some cases, for example when memory allocations become large, it's
|
46
|
+
* possible fields 3 and 4 above are not large enough to store the values
|
47
|
+
* required for the chunk. In this case, the MemoryContext can choose to mark
|
48
|
+
* the chunk as "external" by calling the MemoryChunkSetHdrMaskExternal()
|
49
|
+
* function. When this is done, fields 3 and 4 are unavailable for use by the
|
50
|
+
* MemoryContext and it's up to the MemoryContext itself to devise its own
|
51
|
+
* method for getting the reference to the block.
|
52
|
+
*
|
53
|
+
* Interface:
|
54
|
+
*
|
55
|
+
* MemoryChunkSetHdrMask:
|
56
|
+
* Used to set up a non-external MemoryChunk.
|
57
|
+
*
|
58
|
+
* MemoryChunkSetHdrMaskExternal:
|
59
|
+
* Used to set up an externally managed MemoryChunk.
|
60
|
+
*
|
61
|
+
* MemoryChunkIsExternal:
|
62
|
+
* Determine if the given MemoryChunk is externally managed, i.e.
|
63
|
+
* MemoryChunkSetHdrMaskExternal() was called on the chunk.
|
64
|
+
*
|
65
|
+
* MemoryChunkGetValue:
|
66
|
+
* For non-external chunks, return the stored 30-bit value as it was set
|
67
|
+
* in the call to MemoryChunkSetHdrMask().
|
68
|
+
*
|
69
|
+
* MemoryChunkGetBlock:
|
70
|
+
* For non-external chunks, return a pointer to the block as it was set
|
71
|
+
* in the call to MemoryChunkSetHdrMask().
|
72
|
+
*
|
73
|
+
* Also exports:
|
74
|
+
* MEMORYCHUNK_MAX_VALUE
|
75
|
+
* MEMORYCHUNK_MAX_BLOCKOFFSET
|
76
|
+
* PointerGetMemoryChunk
|
77
|
+
* MemoryChunkGetPointer
|
78
|
+
*
|
79
|
+
* Portions Copyright (c) 2022-2024, PostgreSQL Global Development Group
|
80
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
81
|
+
*
|
82
|
+
* src/include/utils/memutils_memorychunk.h
|
83
|
+
*
|
84
|
+
*-------------------------------------------------------------------------
|
85
|
+
*/
|
86
|
+
|
87
|
+
#ifndef MEMUTILS_MEMORYCHUNK_H
|
88
|
+
#define MEMUTILS_MEMORYCHUNK_H
|
89
|
+
|
90
|
+
#include "utils/memutils_internal.h"
|
91
|
+
|
92
|
+
/*
|
93
|
+
* The maximum allowed value that MemoryContexts can store in the value
|
94
|
+
* field. Must be 1 less than a power of 2.
|
95
|
+
*/
|
96
|
+
#define MEMORYCHUNK_MAX_VALUE UINT64CONST(0x3FFFFFFF)
|
97
|
+
|
98
|
+
/*
|
99
|
+
* The maximum distance in bytes that a MemoryChunk can be offset from the
|
100
|
+
* block that is storing the chunk. Must be 1 less than a power of 2.
|
101
|
+
*/
|
102
|
+
#define MEMORYCHUNK_MAX_BLOCKOFFSET UINT64CONST(0x3FFFFFFF)
|
103
|
+
|
104
|
+
/*
|
105
|
+
* As above, but mask out the lowest-order (always zero) bit as this is shared
|
106
|
+
* with the MemoryChunkGetValue field.
|
107
|
+
*/
|
108
|
+
#define MEMORYCHUNK_BLOCKOFFSET_MASK UINT64CONST(0x3FFFFFFE)
|
109
|
+
|
110
|
+
/* define the least significant base-0 bit of each portion of the hdrmask */
|
111
|
+
#define MEMORYCHUNK_EXTERNAL_BASEBIT MEMORY_CONTEXT_METHODID_BITS
|
112
|
+
#define MEMORYCHUNK_VALUE_BASEBIT (MEMORYCHUNK_EXTERNAL_BASEBIT + 1)
|
113
|
+
#define MEMORYCHUNK_BLOCKOFFSET_BASEBIT (MEMORYCHUNK_VALUE_BASEBIT + 29)
|
114
|
+
|
115
|
+
/*
|
116
|
+
* A magic number for storing in the free bits of an external chunk. This
|
117
|
+
* must mask out the bits used for storing the MemoryContextMethodID and the
|
118
|
+
* external bit.
|
119
|
+
*/
|
120
|
+
#define MEMORYCHUNK_MAGIC (UINT64CONST(0xB1A8DB858EB6EFBA) >> \
|
121
|
+
MEMORYCHUNK_VALUE_BASEBIT << \
|
122
|
+
MEMORYCHUNK_VALUE_BASEBIT)
|
123
|
+
|
124
|
+
typedef struct MemoryChunk
|
125
|
+
{
|
126
|
+
#ifdef MEMORY_CONTEXT_CHECKING
|
127
|
+
Size requested_size;
|
128
|
+
#endif
|
129
|
+
|
130
|
+
/* bitfield for storing details about the chunk */
|
131
|
+
uint64 hdrmask; /* must be last */
|
132
|
+
} MemoryChunk;
|
133
|
+
|
134
|
+
/* Get the MemoryChunk from the pointer */
|
135
|
+
#define PointerGetMemoryChunk(p) \
|
136
|
+
((MemoryChunk *) ((char *) (p) - sizeof(MemoryChunk)))
|
137
|
+
/* Get the pointer from the MemoryChunk */
|
138
|
+
#define MemoryChunkGetPointer(c) \
|
139
|
+
((void *) ((char *) (c) + sizeof(MemoryChunk)))
|
140
|
+
|
141
|
+
/* private macros for making the inline functions below more simple */
|
142
|
+
#define HdrMaskIsExternal(hdrmask) \
|
143
|
+
((hdrmask) & (((uint64) 1) << MEMORYCHUNK_EXTERNAL_BASEBIT))
|
144
|
+
#define HdrMaskGetValue(hdrmask) \
|
145
|
+
(((hdrmask) >> MEMORYCHUNK_VALUE_BASEBIT) & MEMORYCHUNK_MAX_VALUE)
|
146
|
+
|
147
|
+
/*
|
148
|
+
* Shift the block offset down to the 0th bit position and mask off the single
|
149
|
+
* bit that's shared with the MemoryChunkGetValue field.
|
150
|
+
*/
|
151
|
+
#define HdrMaskBlockOffset(hdrmask) \
|
152
|
+
(((hdrmask) >> MEMORYCHUNK_BLOCKOFFSET_BASEBIT) & MEMORYCHUNK_BLOCKOFFSET_MASK)
|
153
|
+
|
154
|
+
/* For external chunks only, check the magic number matches */
|
155
|
+
#define HdrMaskCheckMagic(hdrmask) \
|
156
|
+
(MEMORYCHUNK_MAGIC == \
|
157
|
+
((hdrmask) >> MEMORYCHUNK_VALUE_BASEBIT << MEMORYCHUNK_VALUE_BASEBIT))
|
158
|
+
/*
|
159
|
+
* MemoryChunkSetHdrMask
|
160
|
+
* Store the given 'block', 'chunk_size' and 'methodid' in the given
|
161
|
+
* MemoryChunk.
|
162
|
+
*
|
163
|
+
* The number of bytes between 'block' and 'chunk' must be <=
|
164
|
+
* MEMORYCHUNK_MAX_BLOCKOFFSET.
|
165
|
+
* 'value' must be <= MEMORYCHUNK_MAX_VALUE.
|
166
|
+
* Both 'chunk' and 'block' must be MAXALIGNed pointers.
|
167
|
+
*/
|
168
|
+
static inline void
|
169
|
+
MemoryChunkSetHdrMask(MemoryChunk *chunk, void *block,
|
170
|
+
Size value, MemoryContextMethodID methodid)
|
171
|
+
{
|
172
|
+
Size blockoffset = (char *) chunk - (char *) block;
|
173
|
+
|
174
|
+
Assert((char *) chunk >= (char *) block);
|
175
|
+
Assert((blockoffset & MEMORYCHUNK_BLOCKOFFSET_MASK) == blockoffset);
|
176
|
+
Assert(value <= MEMORYCHUNK_MAX_VALUE);
|
177
|
+
Assert((int) methodid <= MEMORY_CONTEXT_METHODID_MASK);
|
178
|
+
|
179
|
+
chunk->hdrmask = (((uint64) blockoffset) << MEMORYCHUNK_BLOCKOFFSET_BASEBIT) |
|
180
|
+
(((uint64) value) << MEMORYCHUNK_VALUE_BASEBIT) |
|
181
|
+
methodid;
|
182
|
+
}
|
183
|
+
|
184
|
+
/*
|
185
|
+
* MemoryChunkSetHdrMaskExternal
|
186
|
+
* Set 'chunk' as an externally managed chunk. Here we only record the
|
187
|
+
* MemoryContextMethodID and set the external chunk bit.
|
188
|
+
*/
|
189
|
+
static inline void
|
190
|
+
MemoryChunkSetHdrMaskExternal(MemoryChunk *chunk,
|
191
|
+
MemoryContextMethodID methodid)
|
192
|
+
{
|
193
|
+
Assert((int) methodid <= MEMORY_CONTEXT_METHODID_MASK);
|
194
|
+
|
195
|
+
chunk->hdrmask = MEMORYCHUNK_MAGIC | (((uint64) 1) << MEMORYCHUNK_EXTERNAL_BASEBIT) |
|
196
|
+
methodid;
|
197
|
+
}
|
198
|
+
|
199
|
+
/*
|
200
|
+
* MemoryChunkIsExternal
|
201
|
+
* Return true if 'chunk' is marked as external.
|
202
|
+
*/
|
203
|
+
static inline bool
|
204
|
+
MemoryChunkIsExternal(MemoryChunk *chunk)
|
205
|
+
{
|
206
|
+
/*
|
207
|
+
* External chunks should always store MEMORYCHUNK_MAGIC in the upper
|
208
|
+
* portion of the hdrmask, check that nothing has stomped on that.
|
209
|
+
*/
|
210
|
+
Assert(!HdrMaskIsExternal(chunk->hdrmask) ||
|
211
|
+
HdrMaskCheckMagic(chunk->hdrmask));
|
212
|
+
|
213
|
+
return HdrMaskIsExternal(chunk->hdrmask);
|
214
|
+
}
|
215
|
+
|
216
|
+
/*
|
217
|
+
* MemoryChunkGetValue
|
218
|
+
* For non-external chunks, returns the value field as it was set in
|
219
|
+
* MemoryChunkSetHdrMask.
|
220
|
+
*/
|
221
|
+
static inline Size
|
222
|
+
MemoryChunkGetValue(MemoryChunk *chunk)
|
223
|
+
{
|
224
|
+
Assert(!HdrMaskIsExternal(chunk->hdrmask));
|
225
|
+
|
226
|
+
return HdrMaskGetValue(chunk->hdrmask);
|
227
|
+
}
|
228
|
+
|
229
|
+
/*
|
230
|
+
* MemoryChunkGetBlock
|
231
|
+
* For non-external chunks, returns the pointer to the block as was set
|
232
|
+
* in MemoryChunkSetHdrMask.
|
233
|
+
*/
|
234
|
+
static inline void *
|
235
|
+
MemoryChunkGetBlock(MemoryChunk *chunk)
|
236
|
+
{
|
237
|
+
Assert(!HdrMaskIsExternal(chunk->hdrmask));
|
238
|
+
|
239
|
+
return (void *) ((char *) chunk - HdrMaskBlockOffset(chunk->hdrmask));
|
240
|
+
}
|
241
|
+
|
242
|
+
/* cleanup all internal definitions */
|
243
|
+
#undef MEMORYCHUNK_BLOCKOFFSET_MASK
|
244
|
+
#undef MEMORYCHUNK_EXTERNAL_BASEBIT
|
245
|
+
#undef MEMORYCHUNK_VALUE_BASEBIT
|
246
|
+
#undef MEMORYCHUNK_BLOCKOFFSET_BASEBIT
|
247
|
+
#undef MEMORYCHUNK_MAGIC
|
248
|
+
#undef HdrMaskIsExternal
|
249
|
+
#undef HdrMaskGetValue
|
250
|
+
#undef HdrMaskBlockOffset
|
251
|
+
#undef HdrMaskCheckMagic
|
252
|
+
|
253
|
+
#endif /* MEMUTILS_MEMORYCHUNK_H */
|
@@ -0,0 +1,110 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* numeric.h
|
4
|
+
* Definitions for the exact numeric data type of Postgres
|
5
|
+
*
|
6
|
+
* Original coding 1998, Jan Wieck. Heavily revised 2003, Tom Lane.
|
7
|
+
*
|
8
|
+
* Copyright (c) 1998-2024, PostgreSQL Global Development Group
|
9
|
+
*
|
10
|
+
* src/include/utils/numeric.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef _PG_NUMERIC_H_
|
15
|
+
#define _PG_NUMERIC_H_
|
16
|
+
|
17
|
+
#include "common/pg_prng.h"
|
18
|
+
#include "fmgr.h"
|
19
|
+
|
20
|
+
/*
|
21
|
+
* Limits on the precision and scale specifiable in a NUMERIC typmod. The
|
22
|
+
* precision is strictly positive, but the scale may be positive or negative.
|
23
|
+
* A negative scale implies rounding before the decimal point.
|
24
|
+
*
|
25
|
+
* Note that the minimum display scale defined below is zero --- we always
|
26
|
+
* display all digits before the decimal point, even when the scale is
|
27
|
+
* negative.
|
28
|
+
*
|
29
|
+
* Note that the implementation limits on the precision and display scale of a
|
30
|
+
* numeric value are much larger --- beware of what you use these for!
|
31
|
+
*/
|
32
|
+
#define NUMERIC_MAX_PRECISION 1000
|
33
|
+
|
34
|
+
#define NUMERIC_MIN_SCALE (-1000)
|
35
|
+
#define NUMERIC_MAX_SCALE 1000
|
36
|
+
|
37
|
+
/*
|
38
|
+
* Internal limits on the scales chosen for calculation results
|
39
|
+
*/
|
40
|
+
#define NUMERIC_MAX_DISPLAY_SCALE NUMERIC_MAX_PRECISION
|
41
|
+
#define NUMERIC_MIN_DISPLAY_SCALE 0
|
42
|
+
|
43
|
+
#define NUMERIC_MAX_RESULT_SCALE (NUMERIC_MAX_PRECISION * 2)
|
44
|
+
|
45
|
+
/*
|
46
|
+
* For inherently inexact calculations such as division and square root,
|
47
|
+
* we try to get at least this many significant digits; the idea is to
|
48
|
+
* deliver a result no worse than float8 would.
|
49
|
+
*/
|
50
|
+
#define NUMERIC_MIN_SIG_DIGITS 16
|
51
|
+
|
52
|
+
/* The actual contents of Numeric are private to numeric.c */
|
53
|
+
struct NumericData;
|
54
|
+
typedef struct NumericData *Numeric;
|
55
|
+
|
56
|
+
/*
|
57
|
+
* fmgr interface macros
|
58
|
+
*/
|
59
|
+
|
60
|
+
static inline Numeric
|
61
|
+
DatumGetNumeric(Datum X)
|
62
|
+
{
|
63
|
+
return (Numeric) PG_DETOAST_DATUM(X);
|
64
|
+
}
|
65
|
+
|
66
|
+
static inline Numeric
|
67
|
+
DatumGetNumericCopy(Datum X)
|
68
|
+
{
|
69
|
+
return (Numeric) PG_DETOAST_DATUM_COPY(X);
|
70
|
+
}
|
71
|
+
|
72
|
+
static inline Datum
|
73
|
+
NumericGetDatum(Numeric X)
|
74
|
+
{
|
75
|
+
return PointerGetDatum(X);
|
76
|
+
}
|
77
|
+
|
78
|
+
#define PG_GETARG_NUMERIC(n) DatumGetNumeric(PG_GETARG_DATUM(n))
|
79
|
+
#define PG_GETARG_NUMERIC_COPY(n) DatumGetNumericCopy(PG_GETARG_DATUM(n))
|
80
|
+
#define PG_RETURN_NUMERIC(x) return NumericGetDatum(x)
|
81
|
+
|
82
|
+
/*
|
83
|
+
* Utility functions in numeric.c
|
84
|
+
*/
|
85
|
+
extern bool numeric_is_nan(Numeric num);
|
86
|
+
extern bool numeric_is_inf(Numeric num);
|
87
|
+
extern int32 numeric_maximum_size(int32 typmod);
|
88
|
+
extern char *numeric_out_sci(Numeric num, int scale);
|
89
|
+
extern char *numeric_normalize(Numeric num);
|
90
|
+
|
91
|
+
extern Numeric int64_to_numeric(int64 val);
|
92
|
+
extern Numeric int64_div_fast_to_numeric(int64 val1, int log10val2);
|
93
|
+
|
94
|
+
extern Numeric numeric_add_opt_error(Numeric num1, Numeric num2,
|
95
|
+
bool *have_error);
|
96
|
+
extern Numeric numeric_sub_opt_error(Numeric num1, Numeric num2,
|
97
|
+
bool *have_error);
|
98
|
+
extern Numeric numeric_mul_opt_error(Numeric num1, Numeric num2,
|
99
|
+
bool *have_error);
|
100
|
+
extern Numeric numeric_div_opt_error(Numeric num1, Numeric num2,
|
101
|
+
bool *have_error);
|
102
|
+
extern Numeric numeric_mod_opt_error(Numeric num1, Numeric num2,
|
103
|
+
bool *have_error);
|
104
|
+
extern int32 numeric_int4_opt_error(Numeric num, bool *have_error);
|
105
|
+
extern int64 numeric_int8_opt_error(Numeric num, bool *have_error);
|
106
|
+
|
107
|
+
extern Numeric random_numeric(pg_prng_state *state,
|
108
|
+
Numeric rmin, Numeric rmax);
|
109
|
+
|
110
|
+
#endif /* _PG_NUMERIC_H_ */
|
@@ -0,0 +1,151 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* palloc.h
|
4
|
+
* POSTGRES memory allocator definitions.
|
5
|
+
*
|
6
|
+
* This file contains the basic memory allocation interface that is
|
7
|
+
* needed by almost every backend module. It is included directly by
|
8
|
+
* postgres.h, so the definitions here are automatically available
|
9
|
+
* everywhere. Keep it lean!
|
10
|
+
*
|
11
|
+
* Memory allocation occurs within "contexts". Every chunk obtained from
|
12
|
+
* palloc()/MemoryContextAlloc() is allocated within a specific context.
|
13
|
+
* The entire contents of a context can be freed easily and quickly by
|
14
|
+
* resetting or deleting the context --- this is both faster and less
|
15
|
+
* prone to memory-leakage bugs than releasing chunks individually.
|
16
|
+
* We organize contexts into context trees to allow fine-grain control
|
17
|
+
* over chunk lifetime while preserving the certainty that we will free
|
18
|
+
* everything that should be freed. See utils/mmgr/README for more info.
|
19
|
+
*
|
20
|
+
*
|
21
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
22
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
23
|
+
*
|
24
|
+
* src/include/utils/palloc.h
|
25
|
+
*
|
26
|
+
*-------------------------------------------------------------------------
|
27
|
+
*/
|
28
|
+
#ifndef PALLOC_H
|
29
|
+
#define PALLOC_H
|
30
|
+
|
31
|
+
/*
|
32
|
+
* Type MemoryContextData is declared in nodes/memnodes.h. Most users
|
33
|
+
* of memory allocation should just treat it as an abstract type, so we
|
34
|
+
* do not provide the struct contents here.
|
35
|
+
*/
|
36
|
+
typedef struct MemoryContextData *MemoryContext;
|
37
|
+
|
38
|
+
/*
|
39
|
+
* A memory context can have callback functions registered on it. Any such
|
40
|
+
* function will be called once just before the context is next reset or
|
41
|
+
* deleted. The MemoryContextCallback struct describing such a callback
|
42
|
+
* typically would be allocated within the context itself, thereby avoiding
|
43
|
+
* any need to manage it explicitly (the reset/delete action will free it).
|
44
|
+
*/
|
45
|
+
typedef void (*MemoryContextCallbackFunction) (void *arg);
|
46
|
+
|
47
|
+
typedef struct MemoryContextCallback
|
48
|
+
{
|
49
|
+
MemoryContextCallbackFunction func; /* function to call */
|
50
|
+
void *arg; /* argument to pass it */
|
51
|
+
struct MemoryContextCallback *next; /* next in list of callbacks */
|
52
|
+
} MemoryContextCallback;
|
53
|
+
|
54
|
+
/*
|
55
|
+
* CurrentMemoryContext is the default allocation context for palloc().
|
56
|
+
* Avoid accessing it directly! Instead, use MemoryContextSwitchTo()
|
57
|
+
* to change the setting.
|
58
|
+
*/
|
59
|
+
extern PGDLLIMPORT __thread MemoryContext CurrentMemoryContext;
|
60
|
+
|
61
|
+
/*
|
62
|
+
* Flags for MemoryContextAllocExtended.
|
63
|
+
*/
|
64
|
+
#define MCXT_ALLOC_HUGE 0x01 /* allow huge allocation (> 1 GB) */
|
65
|
+
#define MCXT_ALLOC_NO_OOM 0x02 /* no failure if out-of-memory */
|
66
|
+
#define MCXT_ALLOC_ZERO 0x04 /* zero allocated memory */
|
67
|
+
|
68
|
+
/*
|
69
|
+
* Fundamental memory-allocation operations (more are in utils/memutils.h)
|
70
|
+
*/
|
71
|
+
extern void *MemoryContextAlloc(MemoryContext context, Size size);
|
72
|
+
extern void *MemoryContextAllocZero(MemoryContext context, Size size);
|
73
|
+
extern void *MemoryContextAllocExtended(MemoryContext context,
|
74
|
+
Size size, int flags);
|
75
|
+
extern void *MemoryContextAllocAligned(MemoryContext context,
|
76
|
+
Size size, Size alignto, int flags);
|
77
|
+
|
78
|
+
extern void *palloc(Size size);
|
79
|
+
extern void *palloc0(Size size);
|
80
|
+
extern void *palloc_extended(Size size, int flags);
|
81
|
+
extern void *palloc_aligned(Size size, Size alignto, int flags);
|
82
|
+
extern pg_nodiscard void *repalloc(void *pointer, Size size);
|
83
|
+
extern pg_nodiscard void *repalloc_extended(void *pointer,
|
84
|
+
Size size, int flags);
|
85
|
+
extern pg_nodiscard void *repalloc0(void *pointer, Size oldsize, Size size);
|
86
|
+
extern void pfree(void *pointer);
|
87
|
+
|
88
|
+
/*
|
89
|
+
* Variants with easier notation and more type safety
|
90
|
+
*/
|
91
|
+
|
92
|
+
/*
|
93
|
+
* Allocate space for one object of type "type"
|
94
|
+
*/
|
95
|
+
#define palloc_object(type) ((type *) palloc(sizeof(type)))
|
96
|
+
#define palloc0_object(type) ((type *) palloc0(sizeof(type)))
|
97
|
+
|
98
|
+
/*
|
99
|
+
* Allocate space for "count" objects of type "type"
|
100
|
+
*/
|
101
|
+
#define palloc_array(type, count) ((type *) palloc(sizeof(type) * (count)))
|
102
|
+
#define palloc0_array(type, count) ((type *) palloc0(sizeof(type) * (count)))
|
103
|
+
|
104
|
+
/*
|
105
|
+
* Change size of allocation pointed to by "pointer" to have space for "count"
|
106
|
+
* objects of type "type"
|
107
|
+
*/
|
108
|
+
#define repalloc_array(pointer, type, count) ((type *) repalloc(pointer, sizeof(type) * (count)))
|
109
|
+
#define repalloc0_array(pointer, type, oldcount, count) ((type *) repalloc0(pointer, sizeof(type) * (oldcount), sizeof(type) * (count)))
|
110
|
+
|
111
|
+
/* Higher-limit allocators. */
|
112
|
+
extern void *MemoryContextAllocHuge(MemoryContext context, Size size);
|
113
|
+
extern pg_nodiscard void *repalloc_huge(void *pointer, Size size);
|
114
|
+
|
115
|
+
/*
|
116
|
+
* Although this header file is nominally backend-only, certain frontend
|
117
|
+
* programs like pg_controldata include it via postgres.h. For some compilers
|
118
|
+
* it's necessary to hide the inline definition of MemoryContextSwitchTo in
|
119
|
+
* this scenario; hence the #ifndef FRONTEND.
|
120
|
+
*/
|
121
|
+
|
122
|
+
#ifndef FRONTEND
|
123
|
+
static inline MemoryContext
|
124
|
+
MemoryContextSwitchTo(MemoryContext context)
|
125
|
+
{
|
126
|
+
MemoryContext old = CurrentMemoryContext;
|
127
|
+
|
128
|
+
CurrentMemoryContext = context;
|
129
|
+
return old;
|
130
|
+
}
|
131
|
+
#endif /* FRONTEND */
|
132
|
+
|
133
|
+
/* Registration of memory context reset/delete callbacks */
|
134
|
+
extern void MemoryContextRegisterResetCallback(MemoryContext context,
|
135
|
+
MemoryContextCallback *cb);
|
136
|
+
|
137
|
+
/*
|
138
|
+
* These are like standard strdup() except the copied string is
|
139
|
+
* allocated in a context, not with malloc().
|
140
|
+
*/
|
141
|
+
extern char *MemoryContextStrdup(MemoryContext context, const char *string);
|
142
|
+
extern char *pstrdup(const char *in);
|
143
|
+
extern char *pnstrdup(const char *in, Size len);
|
144
|
+
|
145
|
+
extern char *pchomp(const char *in);
|
146
|
+
|
147
|
+
/* sprintf into a palloc'd buffer --- these are in psprintf.c */
|
148
|
+
extern char *psprintf(const char *fmt,...) pg_attribute_printf(1, 2);
|
149
|
+
extern size_t pvsnprintf(char *buf, size_t len, const char *fmt, va_list args) pg_attribute_printf(3, 0);
|
150
|
+
|
151
|
+
#endif /* PALLOC_H */
|
@@ -0,0 +1,103 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* partcache.h
|
4
|
+
*
|
5
|
+
* Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
6
|
+
*
|
7
|
+
* src/include/utils/partcache.h
|
8
|
+
*
|
9
|
+
*-------------------------------------------------------------------------
|
10
|
+
*/
|
11
|
+
#ifndef PARTCACHE_H
|
12
|
+
#define PARTCACHE_H
|
13
|
+
|
14
|
+
#include "access/attnum.h"
|
15
|
+
#include "fmgr.h"
|
16
|
+
#include "nodes/parsenodes.h"
|
17
|
+
#include "nodes/pg_list.h"
|
18
|
+
#include "nodes/primnodes.h"
|
19
|
+
#include "partitioning/partdefs.h"
|
20
|
+
#include "utils/relcache.h"
|
21
|
+
|
22
|
+
/*
|
23
|
+
* Information about the partition key of a relation
|
24
|
+
*/
|
25
|
+
typedef struct PartitionKeyData
|
26
|
+
{
|
27
|
+
PartitionStrategy strategy; /* partitioning strategy */
|
28
|
+
int16 partnatts; /* number of columns in the partition key */
|
29
|
+
AttrNumber *partattrs; /* attribute numbers of columns in the
|
30
|
+
* partition key or 0 if it's an expr */
|
31
|
+
List *partexprs; /* list of expressions in the partitioning
|
32
|
+
* key, one for each zero-valued partattrs */
|
33
|
+
|
34
|
+
Oid *partopfamily; /* OIDs of operator families */
|
35
|
+
Oid *partopcintype; /* OIDs of opclass declared input data types */
|
36
|
+
FmgrInfo *partsupfunc; /* lookup info for support funcs */
|
37
|
+
|
38
|
+
/* Partitioning collation per attribute */
|
39
|
+
Oid *partcollation;
|
40
|
+
|
41
|
+
/* Type information per attribute */
|
42
|
+
Oid *parttypid;
|
43
|
+
int32 *parttypmod;
|
44
|
+
int16 *parttyplen;
|
45
|
+
bool *parttypbyval;
|
46
|
+
char *parttypalign;
|
47
|
+
Oid *parttypcoll;
|
48
|
+
} PartitionKeyData;
|
49
|
+
|
50
|
+
|
51
|
+
extern PartitionKey RelationGetPartitionKey(Relation rel);
|
52
|
+
extern List *RelationGetPartitionQual(Relation rel);
|
53
|
+
extern Expr *get_partition_qual_relid(Oid relid);
|
54
|
+
|
55
|
+
/*
|
56
|
+
* PartitionKey inquiry functions
|
57
|
+
*/
|
58
|
+
static inline int
|
59
|
+
get_partition_strategy(PartitionKey key)
|
60
|
+
{
|
61
|
+
return key->strategy;
|
62
|
+
}
|
63
|
+
|
64
|
+
static inline int
|
65
|
+
get_partition_natts(PartitionKey key)
|
66
|
+
{
|
67
|
+
return key->partnatts;
|
68
|
+
}
|
69
|
+
|
70
|
+
static inline List *
|
71
|
+
get_partition_exprs(PartitionKey key)
|
72
|
+
{
|
73
|
+
return key->partexprs;
|
74
|
+
}
|
75
|
+
|
76
|
+
/*
|
77
|
+
* PartitionKey inquiry functions - one column
|
78
|
+
*/
|
79
|
+
static inline int16
|
80
|
+
get_partition_col_attnum(PartitionKey key, int col)
|
81
|
+
{
|
82
|
+
return key->partattrs[col];
|
83
|
+
}
|
84
|
+
|
85
|
+
static inline Oid
|
86
|
+
get_partition_col_typid(PartitionKey key, int col)
|
87
|
+
{
|
88
|
+
return key->parttypid[col];
|
89
|
+
}
|
90
|
+
|
91
|
+
static inline int32
|
92
|
+
get_partition_col_typmod(PartitionKey key, int col)
|
93
|
+
{
|
94
|
+
return key->parttypmod[col];
|
95
|
+
}
|
96
|
+
|
97
|
+
static inline Oid
|
98
|
+
get_partition_col_collation(PartitionKey key, int col)
|
99
|
+
{
|
100
|
+
return key->partcollation[col];
|
101
|
+
}
|
102
|
+
|
103
|
+
#endif /* PARTCACHE_H */
|