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,90 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* value.h
|
4
|
+
* interface for value nodes
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* Copyright (c) 2003-2024, PostgreSQL Global Development Group
|
8
|
+
*
|
9
|
+
* src/include/nodes/value.h
|
10
|
+
*
|
11
|
+
*-------------------------------------------------------------------------
|
12
|
+
*/
|
13
|
+
|
14
|
+
#ifndef VALUE_H
|
15
|
+
#define VALUE_H
|
16
|
+
|
17
|
+
#include "nodes/nodes.h"
|
18
|
+
|
19
|
+
/*
|
20
|
+
* The node types Integer, Float, String, and BitString are used to represent
|
21
|
+
* literals in the lexer and are also used to pass constants around in the
|
22
|
+
* parser. One difference between these node types and, say, a plain int or
|
23
|
+
* char * is that the nodes can be put into a List.
|
24
|
+
*
|
25
|
+
* (There used to be a Value node, which encompassed all these different node types. Hence the name of this file.)
|
26
|
+
*/
|
27
|
+
|
28
|
+
typedef struct Integer
|
29
|
+
{
|
30
|
+
pg_node_attr(special_read_write)
|
31
|
+
|
32
|
+
NodeTag type;
|
33
|
+
int ival;
|
34
|
+
} Integer;
|
35
|
+
|
36
|
+
/*
|
37
|
+
* Float is internally represented as string. Using T_Float as the node type
|
38
|
+
* simply indicates that the contents of the string look like a valid numeric
|
39
|
+
* literal. The value might end up being converted to NUMERIC, so we can't
|
40
|
+
* store it internally as a C double, since that could lose precision. Since
|
41
|
+
* these nodes are generally only used in the parsing process, not for runtime
|
42
|
+
* data, it's better to use the more general representation.
|
43
|
+
*
|
44
|
+
* Note that an integer-looking string will get lexed as T_Float if the value
|
45
|
+
* is too large to fit in an 'int'.
|
46
|
+
*/
|
47
|
+
typedef struct Float
|
48
|
+
{
|
49
|
+
pg_node_attr(special_read_write)
|
50
|
+
|
51
|
+
NodeTag type;
|
52
|
+
char *fval;
|
53
|
+
} Float;
|
54
|
+
|
55
|
+
typedef struct Boolean
|
56
|
+
{
|
57
|
+
pg_node_attr(special_read_write)
|
58
|
+
|
59
|
+
NodeTag type;
|
60
|
+
bool boolval;
|
61
|
+
} Boolean;
|
62
|
+
|
63
|
+
typedef struct String
|
64
|
+
{
|
65
|
+
pg_node_attr(special_read_write)
|
66
|
+
|
67
|
+
NodeTag type;
|
68
|
+
char *sval;
|
69
|
+
} String;
|
70
|
+
|
71
|
+
typedef struct BitString
|
72
|
+
{
|
73
|
+
pg_node_attr(special_read_write)
|
74
|
+
|
75
|
+
NodeTag type;
|
76
|
+
char *bsval;
|
77
|
+
} BitString;
|
78
|
+
|
79
|
+
#define intVal(v) (castNode(Integer, v)->ival)
|
80
|
+
#define floatVal(v) atof(castNode(Float, v)->fval)
|
81
|
+
#define boolVal(v) (castNode(Boolean, v)->boolval)
|
82
|
+
#define strVal(v) (castNode(String, v)->sval)
|
83
|
+
|
84
|
+
extern Integer *makeInteger(int i);
|
85
|
+
extern Float *makeFloat(char *numericStr);
|
86
|
+
extern Boolean *makeBoolean(bool val);
|
87
|
+
extern String *makeString(char *str);
|
88
|
+
extern BitString *makeBitString(char *str);
|
89
|
+
|
90
|
+
#endif /* VALUE_H */
|
@@ -0,0 +1,216 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* cost.h
|
4
|
+
* prototypes for costsize.c and clausesel.c.
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
+
*
|
10
|
+
* src/include/optimizer/cost.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef COST_H
|
15
|
+
#define COST_H
|
16
|
+
|
17
|
+
#include "nodes/pathnodes.h"
|
18
|
+
#include "nodes/plannodes.h"
|
19
|
+
|
20
|
+
|
21
|
+
/* defaults for costsize.c's Cost parameters */
|
22
|
+
/* NB: cost-estimation code should use the variables, not these constants! */
|
23
|
+
/* If you change these, update backend/utils/misc/postgresql.conf.sample */
|
24
|
+
#define DEFAULT_SEQ_PAGE_COST 1.0
|
25
|
+
#define DEFAULT_RANDOM_PAGE_COST 4.0
|
26
|
+
#define DEFAULT_CPU_TUPLE_COST 0.01
|
27
|
+
#define DEFAULT_CPU_INDEX_TUPLE_COST 0.005
|
28
|
+
#define DEFAULT_CPU_OPERATOR_COST 0.0025
|
29
|
+
#define DEFAULT_PARALLEL_TUPLE_COST 0.1
|
30
|
+
#define DEFAULT_PARALLEL_SETUP_COST 1000.0
|
31
|
+
|
32
|
+
/* defaults for non-Cost parameters */
|
33
|
+
#define DEFAULT_RECURSIVE_WORKTABLE_FACTOR 10.0
|
34
|
+
#define DEFAULT_EFFECTIVE_CACHE_SIZE 524288 /* measured in pages */
|
35
|
+
|
36
|
+
typedef enum
|
37
|
+
{
|
38
|
+
CONSTRAINT_EXCLUSION_OFF, /* do not use c_e */
|
39
|
+
CONSTRAINT_EXCLUSION_ON, /* apply c_e to all rels */
|
40
|
+
CONSTRAINT_EXCLUSION_PARTITION, /* apply c_e to otherrels only */
|
41
|
+
} ConstraintExclusionType;
|
42
|
+
|
43
|
+
|
44
|
+
/*
|
45
|
+
* prototypes for costsize.c
|
46
|
+
* routines to compute costs and sizes
|
47
|
+
*/
|
48
|
+
|
49
|
+
/* parameter variables and flags (see also optimizer.h) */
|
50
|
+
extern PGDLLIMPORT Cost disable_cost;
|
51
|
+
extern PGDLLIMPORT int max_parallel_workers_per_gather;
|
52
|
+
extern PGDLLIMPORT bool enable_seqscan;
|
53
|
+
extern PGDLLIMPORT bool enable_indexscan;
|
54
|
+
extern PGDLLIMPORT bool enable_indexonlyscan;
|
55
|
+
extern PGDLLIMPORT bool enable_bitmapscan;
|
56
|
+
extern PGDLLIMPORT bool enable_tidscan;
|
57
|
+
extern PGDLLIMPORT bool enable_sort;
|
58
|
+
extern PGDLLIMPORT bool enable_incremental_sort;
|
59
|
+
extern PGDLLIMPORT bool enable_hashagg;
|
60
|
+
extern PGDLLIMPORT bool enable_nestloop;
|
61
|
+
extern PGDLLIMPORT bool enable_material;
|
62
|
+
extern PGDLLIMPORT bool enable_memoize;
|
63
|
+
extern PGDLLIMPORT bool enable_mergejoin;
|
64
|
+
extern PGDLLIMPORT bool enable_hashjoin;
|
65
|
+
extern PGDLLIMPORT bool enable_gathermerge;
|
66
|
+
extern PGDLLIMPORT bool enable_partitionwise_join;
|
67
|
+
extern PGDLLIMPORT bool enable_partitionwise_aggregate;
|
68
|
+
extern PGDLLIMPORT bool enable_parallel_append;
|
69
|
+
extern PGDLLIMPORT bool enable_parallel_hash;
|
70
|
+
extern PGDLLIMPORT bool enable_partition_pruning;
|
71
|
+
extern PGDLLIMPORT bool enable_presorted_aggregate;
|
72
|
+
extern PGDLLIMPORT bool enable_async_append;
|
73
|
+
extern PGDLLIMPORT int constraint_exclusion;
|
74
|
+
|
75
|
+
extern double index_pages_fetched(double tuples_fetched, BlockNumber pages,
|
76
|
+
double index_pages, PlannerInfo *root);
|
77
|
+
extern void cost_seqscan(Path *path, PlannerInfo *root, RelOptInfo *baserel,
|
78
|
+
ParamPathInfo *param_info);
|
79
|
+
extern void cost_samplescan(Path *path, PlannerInfo *root, RelOptInfo *baserel,
|
80
|
+
ParamPathInfo *param_info);
|
81
|
+
extern void cost_index(IndexPath *path, PlannerInfo *root,
|
82
|
+
double loop_count, bool partial_path);
|
83
|
+
extern void cost_bitmap_heap_scan(Path *path, PlannerInfo *root, RelOptInfo *baserel,
|
84
|
+
ParamPathInfo *param_info,
|
85
|
+
Path *bitmapqual, double loop_count);
|
86
|
+
extern void cost_bitmap_and_node(BitmapAndPath *path, PlannerInfo *root);
|
87
|
+
extern void cost_bitmap_or_node(BitmapOrPath *path, PlannerInfo *root);
|
88
|
+
extern void cost_bitmap_tree_node(Path *path, Cost *cost, Selectivity *selec);
|
89
|
+
extern void cost_tidscan(Path *path, PlannerInfo *root,
|
90
|
+
RelOptInfo *baserel, List *tidquals, ParamPathInfo *param_info);
|
91
|
+
extern void cost_tidrangescan(Path *path, PlannerInfo *root,
|
92
|
+
RelOptInfo *baserel, List *tidrangequals,
|
93
|
+
ParamPathInfo *param_info);
|
94
|
+
extern void cost_subqueryscan(SubqueryScanPath *path, PlannerInfo *root,
|
95
|
+
RelOptInfo *baserel, ParamPathInfo *param_info,
|
96
|
+
bool trivial_pathtarget);
|
97
|
+
extern void cost_functionscan(Path *path, PlannerInfo *root,
|
98
|
+
RelOptInfo *baserel, ParamPathInfo *param_info);
|
99
|
+
extern void cost_valuesscan(Path *path, PlannerInfo *root,
|
100
|
+
RelOptInfo *baserel, ParamPathInfo *param_info);
|
101
|
+
extern void cost_tablefuncscan(Path *path, PlannerInfo *root,
|
102
|
+
RelOptInfo *baserel, ParamPathInfo *param_info);
|
103
|
+
extern void cost_ctescan(Path *path, PlannerInfo *root,
|
104
|
+
RelOptInfo *baserel, ParamPathInfo *param_info);
|
105
|
+
extern void cost_namedtuplestorescan(Path *path, PlannerInfo *root,
|
106
|
+
RelOptInfo *baserel, ParamPathInfo *param_info);
|
107
|
+
extern void cost_resultscan(Path *path, PlannerInfo *root,
|
108
|
+
RelOptInfo *baserel, ParamPathInfo *param_info);
|
109
|
+
extern void cost_recursive_union(Path *runion, Path *nrterm, Path *rterm);
|
110
|
+
extern void cost_sort(Path *path, PlannerInfo *root,
|
111
|
+
List *pathkeys, Cost input_cost, double tuples, int width,
|
112
|
+
Cost comparison_cost, int sort_mem,
|
113
|
+
double limit_tuples);
|
114
|
+
extern void cost_incremental_sort(Path *path,
|
115
|
+
PlannerInfo *root, List *pathkeys, int presorted_keys,
|
116
|
+
Cost input_startup_cost, Cost input_total_cost,
|
117
|
+
double input_tuples, int width, Cost comparison_cost, int sort_mem,
|
118
|
+
double limit_tuples);
|
119
|
+
extern void cost_append(AppendPath *apath);
|
120
|
+
extern void cost_merge_append(Path *path, PlannerInfo *root,
|
121
|
+
List *pathkeys, int n_streams,
|
122
|
+
Cost input_startup_cost, Cost input_total_cost,
|
123
|
+
double tuples);
|
124
|
+
extern void cost_material(Path *path,
|
125
|
+
Cost input_startup_cost, Cost input_total_cost,
|
126
|
+
double tuples, int width);
|
127
|
+
extern void cost_agg(Path *path, PlannerInfo *root,
|
128
|
+
AggStrategy aggstrategy, const AggClauseCosts *aggcosts,
|
129
|
+
int numGroupCols, double numGroups,
|
130
|
+
List *quals,
|
131
|
+
Cost input_startup_cost, Cost input_total_cost,
|
132
|
+
double input_tuples, double input_width);
|
133
|
+
extern void cost_windowagg(Path *path, PlannerInfo *root,
|
134
|
+
List *windowFuncs, WindowClause *winclause,
|
135
|
+
Cost input_startup_cost, Cost input_total_cost,
|
136
|
+
double input_tuples);
|
137
|
+
extern void cost_group(Path *path, PlannerInfo *root,
|
138
|
+
int numGroupCols, double numGroups,
|
139
|
+
List *quals,
|
140
|
+
Cost input_startup_cost, Cost input_total_cost,
|
141
|
+
double input_tuples);
|
142
|
+
extern void initial_cost_nestloop(PlannerInfo *root,
|
143
|
+
JoinCostWorkspace *workspace,
|
144
|
+
JoinType jointype,
|
145
|
+
Path *outer_path, Path *inner_path,
|
146
|
+
JoinPathExtraData *extra);
|
147
|
+
extern void final_cost_nestloop(PlannerInfo *root, NestPath *path,
|
148
|
+
JoinCostWorkspace *workspace,
|
149
|
+
JoinPathExtraData *extra);
|
150
|
+
extern void initial_cost_mergejoin(PlannerInfo *root,
|
151
|
+
JoinCostWorkspace *workspace,
|
152
|
+
JoinType jointype,
|
153
|
+
List *mergeclauses,
|
154
|
+
Path *outer_path, Path *inner_path,
|
155
|
+
List *outersortkeys, List *innersortkeys,
|
156
|
+
JoinPathExtraData *extra);
|
157
|
+
extern void final_cost_mergejoin(PlannerInfo *root, MergePath *path,
|
158
|
+
JoinCostWorkspace *workspace,
|
159
|
+
JoinPathExtraData *extra);
|
160
|
+
extern void initial_cost_hashjoin(PlannerInfo *root,
|
161
|
+
JoinCostWorkspace *workspace,
|
162
|
+
JoinType jointype,
|
163
|
+
List *hashclauses,
|
164
|
+
Path *outer_path, Path *inner_path,
|
165
|
+
JoinPathExtraData *extra,
|
166
|
+
bool parallel_hash);
|
167
|
+
extern void final_cost_hashjoin(PlannerInfo *root, HashPath *path,
|
168
|
+
JoinCostWorkspace *workspace,
|
169
|
+
JoinPathExtraData *extra);
|
170
|
+
extern void cost_gather(GatherPath *path, PlannerInfo *root,
|
171
|
+
RelOptInfo *rel, ParamPathInfo *param_info, double *rows);
|
172
|
+
extern void cost_gather_merge(GatherMergePath *path, PlannerInfo *root,
|
173
|
+
RelOptInfo *rel, ParamPathInfo *param_info,
|
174
|
+
Cost input_startup_cost, Cost input_total_cost,
|
175
|
+
double *rows);
|
176
|
+
extern void cost_subplan(PlannerInfo *root, SubPlan *subplan, Plan *plan);
|
177
|
+
extern void cost_qual_eval(QualCost *cost, List *quals, PlannerInfo *root);
|
178
|
+
extern void cost_qual_eval_node(QualCost *cost, Node *qual, PlannerInfo *root);
|
179
|
+
extern void compute_semi_anti_join_factors(PlannerInfo *root,
|
180
|
+
RelOptInfo *joinrel,
|
181
|
+
RelOptInfo *outerrel,
|
182
|
+
RelOptInfo *innerrel,
|
183
|
+
JoinType jointype,
|
184
|
+
SpecialJoinInfo *sjinfo,
|
185
|
+
List *restrictlist,
|
186
|
+
SemiAntiJoinFactors *semifactors);
|
187
|
+
extern void set_baserel_size_estimates(PlannerInfo *root, RelOptInfo *rel);
|
188
|
+
extern double get_parameterized_baserel_size(PlannerInfo *root,
|
189
|
+
RelOptInfo *rel,
|
190
|
+
List *param_clauses);
|
191
|
+
extern double get_parameterized_joinrel_size(PlannerInfo *root,
|
192
|
+
RelOptInfo *rel,
|
193
|
+
Path *outer_path,
|
194
|
+
Path *inner_path,
|
195
|
+
SpecialJoinInfo *sjinfo,
|
196
|
+
List *restrict_clauses);
|
197
|
+
extern void set_joinrel_size_estimates(PlannerInfo *root, RelOptInfo *rel,
|
198
|
+
RelOptInfo *outer_rel,
|
199
|
+
RelOptInfo *inner_rel,
|
200
|
+
SpecialJoinInfo *sjinfo,
|
201
|
+
List *restrictlist);
|
202
|
+
extern void set_subquery_size_estimates(PlannerInfo *root, RelOptInfo *rel);
|
203
|
+
extern void set_function_size_estimates(PlannerInfo *root, RelOptInfo *rel);
|
204
|
+
extern void set_values_size_estimates(PlannerInfo *root, RelOptInfo *rel);
|
205
|
+
extern void set_cte_size_estimates(PlannerInfo *root, RelOptInfo *rel,
|
206
|
+
double cte_rows);
|
207
|
+
extern void set_tablefunc_size_estimates(PlannerInfo *root, RelOptInfo *rel);
|
208
|
+
extern void set_namedtuplestore_size_estimates(PlannerInfo *root, RelOptInfo *rel);
|
209
|
+
extern void set_result_size_estimates(PlannerInfo *root, RelOptInfo *rel);
|
210
|
+
extern void set_foreign_size_estimates(PlannerInfo *root, RelOptInfo *rel);
|
211
|
+
extern PathTarget *set_pathtarget_cost_width(PlannerInfo *root, PathTarget *target);
|
212
|
+
extern double compute_bitmap_pages(PlannerInfo *root, RelOptInfo *baserel,
|
213
|
+
Path *bitmapqual, double loop_count,
|
214
|
+
Cost *cost_p, double *tuples_p);
|
215
|
+
|
216
|
+
#endif /* COST_H */
|
@@ -0,0 +1,90 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* geqo.h
|
4
|
+
* prototypes for various files in optimizer/geqo
|
5
|
+
*
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
8
|
+
*
|
9
|
+
* src/include/optimizer/geqo.h
|
10
|
+
*
|
11
|
+
*-------------------------------------------------------------------------
|
12
|
+
*/
|
13
|
+
|
14
|
+
/* contributed by:
|
15
|
+
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
|
16
|
+
* Martin Utesch * Institute of Automatic Control *
|
17
|
+
= = University of Mining and Technology =
|
18
|
+
* utesch@aut.tu-freiberg.de * Freiberg, Germany *
|
19
|
+
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
|
20
|
+
*/
|
21
|
+
|
22
|
+
#ifndef GEQO_H
|
23
|
+
#define GEQO_H
|
24
|
+
|
25
|
+
#include "common/pg_prng.h"
|
26
|
+
#include "nodes/pathnodes.h"
|
27
|
+
#include "optimizer/geqo_gene.h"
|
28
|
+
|
29
|
+
|
30
|
+
/* GEQO debug flag */
|
31
|
+
/*
|
32
|
+
#define GEQO_DEBUG
|
33
|
+
*/
|
34
|
+
|
35
|
+
/* choose one recombination mechanism here */
|
36
|
+
/*
|
37
|
+
#define ERX
|
38
|
+
#define PMX
|
39
|
+
#define CX
|
40
|
+
#define PX
|
41
|
+
#define OX1
|
42
|
+
#define OX2
|
43
|
+
*/
|
44
|
+
#define ERX
|
45
|
+
|
46
|
+
|
47
|
+
/*
|
48
|
+
* Configuration options
|
49
|
+
*
|
50
|
+
* If you change these, update backend/utils/misc/postgresql.conf.sample
|
51
|
+
*/
|
52
|
+
extern PGDLLIMPORT int Geqo_effort; /* 1 .. 10, knob for adjustment of
|
53
|
+
* defaults */
|
54
|
+
|
55
|
+
#define DEFAULT_GEQO_EFFORT 5
|
56
|
+
#define MIN_GEQO_EFFORT 1
|
57
|
+
#define MAX_GEQO_EFFORT 10
|
58
|
+
|
59
|
+
extern PGDLLIMPORT int Geqo_pool_size; /* 2 .. inf, or 0 to use default */
|
60
|
+
|
61
|
+
extern PGDLLIMPORT int Geqo_generations; /* 1 .. inf, or 0 to use default */
|
62
|
+
|
63
|
+
extern PGDLLIMPORT double Geqo_selection_bias;
|
64
|
+
|
65
|
+
#define DEFAULT_GEQO_SELECTION_BIAS 2.0
|
66
|
+
#define MIN_GEQO_SELECTION_BIAS 1.5
|
67
|
+
#define MAX_GEQO_SELECTION_BIAS 2.0
|
68
|
+
|
69
|
+
extern PGDLLIMPORT double Geqo_seed; /* 0 .. 1 */
|
70
|
+
|
71
|
+
|
72
|
+
/*
|
73
|
+
* Private state for a GEQO run --- accessible via root->join_search_private
|
74
|
+
*/
|
75
|
+
typedef struct
|
76
|
+
{
|
77
|
+
List *initial_rels; /* the base relations we are joining */
|
78
|
+
pg_prng_state random_state; /* PRNG state */
|
79
|
+
} GeqoPrivateData;
|
80
|
+
|
81
|
+
|
82
|
+
/* routines in geqo_main.c */
|
83
|
+
extern RelOptInfo *geqo(PlannerInfo *root,
|
84
|
+
int number_of_rels, List *initial_rels);
|
85
|
+
|
86
|
+
/* routines in geqo_eval.c */
|
87
|
+
extern Cost geqo_eval(PlannerInfo *root, Gene *tour, int num_gene);
|
88
|
+
extern RelOptInfo *gimme_tree(PlannerInfo *root, Gene *tour, int num_gene);
|
89
|
+
|
90
|
+
#endif /* GEQO_H */
|
@@ -0,0 +1,45 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* geqo_gene.h
|
4
|
+
* genome representation in optimizer/geqo
|
5
|
+
*
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
8
|
+
*
|
9
|
+
* src/include/optimizer/geqo_gene.h
|
10
|
+
*
|
11
|
+
*-------------------------------------------------------------------------
|
12
|
+
*/
|
13
|
+
|
14
|
+
/* contributed by:
|
15
|
+
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
|
16
|
+
* Martin Utesch * Institute of Automatic Control *
|
17
|
+
= = University of Mining and Technology =
|
18
|
+
* utesch@aut.tu-freiberg.de * Freiberg, Germany *
|
19
|
+
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
|
20
|
+
*/
|
21
|
+
|
22
|
+
|
23
|
+
#ifndef GEQO_GENE_H
|
24
|
+
#define GEQO_GENE_H
|
25
|
+
|
26
|
+
#include "nodes/nodes.h"
|
27
|
+
|
28
|
+
/* we presume that int instead of Relid
|
29
|
+
is o.k. for Gene; so don't change it! */
|
30
|
+
typedef int Gene;
|
31
|
+
|
32
|
+
typedef struct Chromosome
|
33
|
+
{
|
34
|
+
Gene *string;
|
35
|
+
Cost worth;
|
36
|
+
} Chromosome;
|
37
|
+
|
38
|
+
typedef struct Pool
|
39
|
+
{
|
40
|
+
Chromosome *data;
|
41
|
+
int size;
|
42
|
+
int string_length;
|
43
|
+
} Pool;
|
44
|
+
|
45
|
+
#endif /* GEQO_GENE_H */
|
@@ -0,0 +1,205 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* optimizer.h
|
4
|
+
* External API for the Postgres planner.
|
5
|
+
*
|
6
|
+
* This header is meant to define everything that the core planner
|
7
|
+
* exposes for use by non-planner modules.
|
8
|
+
*
|
9
|
+
* Note that there are files outside src/backend/optimizer/ that are
|
10
|
+
* considered planner modules, because they're too much in bed with
|
11
|
+
* planner operations to be treated otherwise. FDW planning code is an
|
12
|
+
* example. For the most part, however, code outside the core planner
|
13
|
+
* should not need to include any optimizer/ header except this one.
|
14
|
+
*
|
15
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
16
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
17
|
+
*
|
18
|
+
* src/include/optimizer/optimizer.h
|
19
|
+
*
|
20
|
+
*-------------------------------------------------------------------------
|
21
|
+
*/
|
22
|
+
#ifndef OPTIMIZER_H
|
23
|
+
#define OPTIMIZER_H
|
24
|
+
|
25
|
+
#include "nodes/parsenodes.h"
|
26
|
+
|
27
|
+
/*
|
28
|
+
* We don't want to include nodes/pathnodes.h here, because non-planner
|
29
|
+
* code should generally treat PlannerInfo as an opaque typedef.
|
30
|
+
* But we'd like such code to use that typedef name, so define the
|
31
|
+
* typedef either here or in pathnodes.h, whichever is read first.
|
32
|
+
*/
|
33
|
+
#ifndef HAVE_PLANNERINFO_TYPEDEF
|
34
|
+
typedef struct PlannerInfo PlannerInfo;
|
35
|
+
#define HAVE_PLANNERINFO_TYPEDEF 1
|
36
|
+
#endif
|
37
|
+
|
38
|
+
/* Likewise for IndexOptInfo and SpecialJoinInfo. */
|
39
|
+
#ifndef HAVE_INDEXOPTINFO_TYPEDEF
|
40
|
+
typedef struct IndexOptInfo IndexOptInfo;
|
41
|
+
#define HAVE_INDEXOPTINFO_TYPEDEF 1
|
42
|
+
#endif
|
43
|
+
#ifndef HAVE_SPECIALJOININFO_TYPEDEF
|
44
|
+
typedef struct SpecialJoinInfo SpecialJoinInfo;
|
45
|
+
#define HAVE_SPECIALJOININFO_TYPEDEF 1
|
46
|
+
#endif
|
47
|
+
|
48
|
+
/* It also seems best not to include plannodes.h, params.h, or htup.h here */
|
49
|
+
struct PlannedStmt;
|
50
|
+
struct ParamListInfoData;
|
51
|
+
struct HeapTupleData;
|
52
|
+
|
53
|
+
|
54
|
+
/* in path/clausesel.c: */
|
55
|
+
|
56
|
+
extern Selectivity clause_selectivity(PlannerInfo *root,
|
57
|
+
Node *clause,
|
58
|
+
int varRelid,
|
59
|
+
JoinType jointype,
|
60
|
+
SpecialJoinInfo *sjinfo);
|
61
|
+
extern Selectivity clause_selectivity_ext(PlannerInfo *root,
|
62
|
+
Node *clause,
|
63
|
+
int varRelid,
|
64
|
+
JoinType jointype,
|
65
|
+
SpecialJoinInfo *sjinfo,
|
66
|
+
bool use_extended_stats);
|
67
|
+
extern Selectivity clauselist_selectivity(PlannerInfo *root,
|
68
|
+
List *clauses,
|
69
|
+
int varRelid,
|
70
|
+
JoinType jointype,
|
71
|
+
SpecialJoinInfo *sjinfo);
|
72
|
+
extern Selectivity clauselist_selectivity_ext(PlannerInfo *root,
|
73
|
+
List *clauses,
|
74
|
+
int varRelid,
|
75
|
+
JoinType jointype,
|
76
|
+
SpecialJoinInfo *sjinfo,
|
77
|
+
bool use_extended_stats);
|
78
|
+
|
79
|
+
/* in path/costsize.c: */
|
80
|
+
|
81
|
+
/* widely used cost parameters */
|
82
|
+
extern PGDLLIMPORT double seq_page_cost;
|
83
|
+
extern PGDLLIMPORT double random_page_cost;
|
84
|
+
extern PGDLLIMPORT double cpu_tuple_cost;
|
85
|
+
extern PGDLLIMPORT double cpu_index_tuple_cost;
|
86
|
+
extern PGDLLIMPORT double cpu_operator_cost;
|
87
|
+
extern PGDLLIMPORT double parallel_tuple_cost;
|
88
|
+
extern PGDLLIMPORT double parallel_setup_cost;
|
89
|
+
extern PGDLLIMPORT double recursive_worktable_factor;
|
90
|
+
extern PGDLLIMPORT int effective_cache_size;
|
91
|
+
|
92
|
+
extern double clamp_row_est(double nrows);
|
93
|
+
extern int32 clamp_width_est(int64 tuple_width);
|
94
|
+
extern long clamp_cardinality_to_long(Cardinality x);
|
95
|
+
|
96
|
+
/* in path/indxpath.c: */
|
97
|
+
|
98
|
+
extern bool is_pseudo_constant_for_index(PlannerInfo *root, Node *expr,
|
99
|
+
IndexOptInfo *index);
|
100
|
+
|
101
|
+
/* in plan/planner.c: */
|
102
|
+
|
103
|
+
/* possible values for debug_parallel_query */
|
104
|
+
typedef enum
|
105
|
+
{
|
106
|
+
DEBUG_PARALLEL_OFF,
|
107
|
+
DEBUG_PARALLEL_ON,
|
108
|
+
DEBUG_PARALLEL_REGRESS,
|
109
|
+
} DebugParallelMode;
|
110
|
+
|
111
|
+
/* GUC parameters */
|
112
|
+
extern PGDLLIMPORT int debug_parallel_query;
|
113
|
+
extern PGDLLIMPORT bool parallel_leader_participation;
|
114
|
+
|
115
|
+
extern struct PlannedStmt *planner(Query *parse, const char *query_string,
|
116
|
+
int cursorOptions,
|
117
|
+
struct ParamListInfoData *boundParams);
|
118
|
+
|
119
|
+
extern Expr *expression_planner(Expr *expr);
|
120
|
+
extern Expr *expression_planner_with_deps(Expr *expr,
|
121
|
+
List **relationOids,
|
122
|
+
List **invalItems);
|
123
|
+
|
124
|
+
extern bool plan_cluster_use_sort(Oid tableOid, Oid indexOid);
|
125
|
+
extern int plan_create_index_workers(Oid tableOid, Oid indexOid);
|
126
|
+
|
127
|
+
/* in plan/setrefs.c: */
|
128
|
+
|
129
|
+
extern void extract_query_dependencies(Node *query,
|
130
|
+
List **relationOids,
|
131
|
+
List **invalItems,
|
132
|
+
bool *hasRowSecurity);
|
133
|
+
|
134
|
+
/* in prep/prepqual.c: */
|
135
|
+
|
136
|
+
extern Node *negate_clause(Node *node);
|
137
|
+
extern Expr *canonicalize_qual(Expr *qual, bool is_check);
|
138
|
+
|
139
|
+
/* in util/clauses.c: */
|
140
|
+
|
141
|
+
extern bool contain_mutable_functions(Node *clause);
|
142
|
+
extern bool contain_mutable_functions_after_planning(Expr *expr);
|
143
|
+
extern bool contain_volatile_functions(Node *clause);
|
144
|
+
extern bool contain_volatile_functions_after_planning(Expr *expr);
|
145
|
+
extern bool contain_volatile_functions_not_nextval(Node *clause);
|
146
|
+
|
147
|
+
extern Node *eval_const_expressions(PlannerInfo *root, Node *node);
|
148
|
+
|
149
|
+
extern void convert_saop_to_hashed_saop(Node *node);
|
150
|
+
|
151
|
+
extern Node *estimate_expression_value(PlannerInfo *root, Node *node);
|
152
|
+
|
153
|
+
extern Expr *evaluate_expr(Expr *expr, Oid result_type, int32 result_typmod,
|
154
|
+
Oid result_collation);
|
155
|
+
|
156
|
+
extern List *expand_function_arguments(List *args, bool include_out_arguments,
|
157
|
+
Oid result_type,
|
158
|
+
struct HeapTupleData *func_tuple);
|
159
|
+
|
160
|
+
/* in util/predtest.c: */
|
161
|
+
|
162
|
+
extern bool predicate_implied_by(List *predicate_list, List *clause_list,
|
163
|
+
bool weak);
|
164
|
+
extern bool predicate_refuted_by(List *predicate_list, List *clause_list,
|
165
|
+
bool weak);
|
166
|
+
|
167
|
+
/* in util/tlist.c: */
|
168
|
+
|
169
|
+
extern int count_nonjunk_tlist_entries(List *tlist);
|
170
|
+
extern TargetEntry *get_sortgroupref_tle(Index sortref,
|
171
|
+
List *targetList);
|
172
|
+
extern TargetEntry *get_sortgroupclause_tle(SortGroupClause *sgClause,
|
173
|
+
List *targetList);
|
174
|
+
extern Node *get_sortgroupclause_expr(SortGroupClause *sgClause,
|
175
|
+
List *targetList);
|
176
|
+
extern List *get_sortgrouplist_exprs(List *sgClauses,
|
177
|
+
List *targetList);
|
178
|
+
extern SortGroupClause *get_sortgroupref_clause(Index sortref,
|
179
|
+
List *clauses);
|
180
|
+
extern SortGroupClause *get_sortgroupref_clause_noerr(Index sortref,
|
181
|
+
List *clauses);
|
182
|
+
|
183
|
+
/* in util/var.c: */
|
184
|
+
|
185
|
+
/* Bits that can be OR'd into the flags argument of pull_var_clause() */
|
186
|
+
#define PVC_INCLUDE_AGGREGATES 0x0001 /* include Aggrefs in output list */
|
187
|
+
#define PVC_RECURSE_AGGREGATES 0x0002 /* recurse into Aggref arguments */
|
188
|
+
#define PVC_INCLUDE_WINDOWFUNCS 0x0004 /* include WindowFuncs in output list */
|
189
|
+
#define PVC_RECURSE_WINDOWFUNCS 0x0008 /* recurse into WindowFunc arguments */
|
190
|
+
#define PVC_INCLUDE_PLACEHOLDERS 0x0010 /* include PlaceHolderVars in
|
191
|
+
* output list */
|
192
|
+
#define PVC_RECURSE_PLACEHOLDERS 0x0020 /* recurse into PlaceHolderVar
|
193
|
+
* arguments */
|
194
|
+
|
195
|
+
extern Bitmapset *pull_varnos(PlannerInfo *root, Node *node);
|
196
|
+
extern Bitmapset *pull_varnos_of_level(PlannerInfo *root, Node *node, int levelsup);
|
197
|
+
extern void pull_varattnos(Node *node, Index varno, Bitmapset **varattnos);
|
198
|
+
extern List *pull_vars_of_level(Node *node, int levelsup);
|
199
|
+
extern bool contain_var_clause(Node *node);
|
200
|
+
extern bool contain_vars_of_level(Node *node, int levelsup);
|
201
|
+
extern int locate_var_of_level(Node *node, int levelsup);
|
202
|
+
extern List *pull_var_clause(Node *node, int flags);
|
203
|
+
extern Node *flatten_join_alias_vars(PlannerInfo *root, Query *query, Node *node);
|
204
|
+
|
205
|
+
#endif /* OPTIMIZER_H */
|