pg_query 5.1.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 +30 -0
- data/README.md +1 -1
- data/Rakefile +4 -4
- 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 +20 -6
- data/ext/pg_query/include/pg_query.h +4 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +2952 -1845
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +210 -23
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +271 -52
- data/ext/pg_query/include/postgres/access/amapi.h +14 -3
- data/ext/pg_query/include/postgres/access/attmap.h +1 -1
- data/ext/pg_query/include/postgres/access/attnum.h +1 -1
- 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 +2 -3
- data/ext/pg_query/include/postgres/access/commit_ts.h +2 -3
- data/ext/pg_query/include/postgres/access/detoast.h +1 -1
- data/ext/pg_query/include/postgres/access/genam.h +17 -4
- data/ext/pg_query/include/postgres/access/gin.h +1 -1
- data/ext/pg_query/include/postgres/access/htup.h +1 -1
- data/ext/pg_query/include/postgres/access/htup_details.h +11 -11
- data/ext/pg_query/include/postgres/access/itup.h +3 -3
- data/ext/pg_query/include/postgres/access/parallel.h +1 -2
- data/ext/pg_query/include/postgres/access/printtup.h +1 -1
- data/ext/pg_query/include/postgres/access/relation.h +1 -1
- data/ext/pg_query/include/postgres/access/relscan.h +1 -1
- data/ext/pg_query/include/postgres/access/rmgrlist.h +1 -1
- data/ext/pg_query/include/postgres/access/sdir.h +1 -1
- data/ext/pg_query/include/postgres/access/skey.h +1 -1
- data/ext/pg_query/include/postgres/access/slru.h +218 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +1 -1
- data/ext/pg_query/include/postgres/access/sysattr.h +1 -1
- data/ext/pg_query/include/postgres/access/table.h +1 -1
- data/ext/pg_query/include/postgres/access/tableam.h +35 -25
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +2 -2
- data/ext/pg_query/include/postgres/access/transam.h +50 -7
- data/ext/pg_query/include/postgres/access/tsmapi.h +1 -1
- data/ext/pg_query/include/postgres/access/tupconvert.h +1 -1
- data/ext/pg_query/include/postgres/access/tupdesc.h +5 -5
- data/ext/pg_query/include/postgres/access/tupmacs.h +1 -1
- data/ext/pg_query/include/postgres/access/twophase.h +2 -2
- data/ext/pg_query/include/postgres/access/xact.h +5 -5
- data/ext/pg_query/include/postgres/access/xlog.h +20 -12
- data/ext/pg_query/include/postgres/access/xlog_internal.h +4 -3
- data/ext/pg_query/include/postgres/access/xlogbackup.h +3 -1
- data/ext/pg_query/include/postgres/access/xlogdefs.h +5 -5
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +2 -2
- data/ext/pg_query/include/postgres/access/xlogreader.h +2 -2
- data/ext/pg_query/include/postgres/access/xlogrecord.h +3 -3
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +4 -4
- data/ext/pg_query/include/postgres/archive/archive_module.h +9 -1
- data/ext/pg_query/include/postgres/c.h +32 -37
- data/ext/pg_query/include/postgres/catalog/catalog.h +3 -1
- data/ext/pg_query/include/postgres/catalog/catversion.h +2 -2
- data/ext/pg_query/include/postgres/catalog/dependency.h +17 -59
- data/ext/pg_query/include/postgres/catalog/genbki.h +12 -6
- data/ext/pg_query/include/postgres/catalog/index.h +22 -18
- data/ext/pg_query/include/postgres/catalog/indexing.h +1 -1
- data/ext/pg_query/include/postgres/catalog/namespace.h +18 -19
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +2 -2
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +5 -1
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_am.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +31 -14
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +2 -1
- data/ext/pg_query/include/postgres/catalog/pg_class.h +10 -5
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +11 -5
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +5 -2
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +15 -10
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +2 -1
- data/ext/pg_query/include/postgres/catalog/pg_control.h +5 -3
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +8 -4
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +9 -4
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +13 -12
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_index.h +5 -3
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_language.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +20 -3
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +10 -4
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +7 -3
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +10 -7
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +4 -4
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_type.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/storage.h +1 -1
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +2 -6
- data/ext/pg_query/include/postgres/commands/dbcommands.h +1 -1
- data/ext/pg_query/include/postgres/commands/defrem.h +6 -6
- data/ext/pg_query/include/postgres/commands/event_trigger.h +11 -2
- data/ext/pg_query/include/postgres/commands/explain.h +19 -3
- data/ext/pg_query/include/postgres/commands/prepare.h +1 -1
- data/ext/pg_query/include/postgres/commands/tablespace.h +1 -1
- data/ext/pg_query/include/postgres/commands/trigger.h +1 -1
- data/ext/pg_query/include/postgres/commands/vacuum.h +28 -26
- data/ext/pg_query/include/postgres/common/cryptohash.h +2 -2
- data/ext/pg_query/include/postgres/common/file_perm.h +1 -1
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +16 -1
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
- data/ext/pg_query/include/postgres/common/int.h +79 -4
- data/ext/pg_query/include/postgres/common/keywords.h +1 -1
- data/ext/pg_query/include/postgres/common/kwlookup.h +1 -1
- data/ext/pg_query/include/postgres/common/pg_prng.h +2 -1
- data/ext/pg_query/include/postgres/common/relpath.h +4 -4
- data/ext/pg_query/include/postgres/common/scram-common.h +1 -1
- data/ext/pg_query/include/postgres/common/sha2.h +1 -1
- data/ext/pg_query/include/postgres/common/string.h +1 -1
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +2 -3
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +278 -30
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +55 -4
- data/ext/pg_query/include/postgres/datatype/timestamp.h +29 -3
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +239 -26
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +55 -4
- data/ext/pg_query/include/postgres/executor/execdesc.h +2 -2
- data/ext/pg_query/include/postgres/executor/executor.h +6 -5
- data/ext/pg_query/include/postgres/executor/functions.h +2 -1
- data/ext/pg_query/include/postgres/executor/instrument.h +5 -3
- data/ext/pg_query/include/postgres/executor/spi.h +2 -8
- data/ext/pg_query/include/postgres/executor/tablefunc.h +1 -1
- data/ext/pg_query/include/postgres/executor/tuptable.h +31 -2
- data/ext/pg_query/include/postgres/fmgr.h +2 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +1 -1
- data/ext/pg_query/include/postgres/funcapi.h +2 -2
- data/ext/pg_query/include/postgres/gram.h +871 -830
- data/ext/pg_query/include/postgres/gramparse.h +1 -1
- data/ext/pg_query/include/postgres/jit/jit.h +4 -3
- data/ext/pg_query/include/postgres/kwlist_d.h +511 -466
- data/ext/pg_query/include/postgres/lib/dshash.h +25 -10
- data/ext/pg_query/include/postgres/lib/ilist.h +1 -1
- data/ext/pg_query/include/postgres/lib/pairingheap.h +1 -1
- data/ext/pg_query/include/postgres/lib/simplehash.h +40 -18
- data/ext/pg_query/include/postgres/lib/sort_template.h +14 -1
- data/ext/pg_query/include/postgres/lib/stringinfo.h +93 -11
- data/ext/pg_query/include/postgres/libpq/auth.h +1 -1
- data/ext/pg_query/include/postgres/libpq/crypt.h +2 -2
- data/ext/pg_query/include/postgres/libpq/hba.h +4 -4
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +35 -28
- data/ext/pg_query/include/postgres/libpq/libpq.h +6 -7
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +26 -20
- data/ext/pg_query/include/postgres/libpq/pqformat.h +2 -3
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +1 -1
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- data/ext/pg_query/include/postgres/libpq/sasl.h +1 -1
- data/ext/pg_query/include/postgres/libpq/scram.h +1 -1
- data/ext/pg_query/include/postgres/mb/pg_wchar.h +103 -82
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/postgres/miscadmin.h +72 -52
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
- data/ext/pg_query/include/postgres/nodes/execnodes.h +112 -25
- data/ext/pg_query/include/postgres/nodes/extensible.h +1 -1
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +4 -4
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +8 -2
- data/ext/pg_query/include/postgres/nodes/memnodes.h +43 -4
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +1 -1
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +1 -1
- data/ext/pg_query/include/postgres/nodes/nodes.h +30 -41
- data/ext/pg_query/include/postgres/nodes/nodetags.h +464 -444
- data/ext/pg_query/include/postgres/nodes/params.h +1 -1
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +358 -175
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +64 -10
- data/ext/pg_query/include/postgres/nodes/pg_list.h +62 -11
- data/ext/pg_query/include/postgres/nodes/plannodes.h +11 -10
- data/ext/pg_query/include/postgres/nodes/primnodes.h +352 -54
- data/ext/pg_query/include/postgres/nodes/print.h +1 -1
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +2 -2
- data/ext/pg_query/include/postgres/nodes/replnodes.h +23 -2
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +1 -1
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +1 -1
- data/ext/pg_query/include/postgres/nodes/value.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/cost.h +5 -4
- data/ext/pg_query/include/postgres/optimizer/geqo.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +5 -2
- data/ext/pg_query/include/postgres/optimizer/paths.h +13 -8
- data/ext/pg_query/include/postgres/optimizer/planmain.h +7 -1
- data/ext/pg_query/include/postgres/parser/analyze.h +3 -1
- data/ext/pg_query/include/postgres/parser/kwlist.h +22 -2
- data/ext/pg_query/include/postgres/parser/parse_agg.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +5 -2
- data/ext/pg_query/include/postgres/parser/parse_expr.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_func.h +2 -2
- data/ext/pg_query/include/postgres/parser/parse_node.h +3 -2
- data/ext/pg_query/include/postgres/parser/parse_oper.h +4 -1
- data/ext/pg_query/include/postgres/parser/parse_relation.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_type.h +2 -2
- data/ext/pg_query/include/postgres/parser/parser.h +3 -3
- data/ext/pg_query/include/postgres/parser/parsetree.h +1 -1
- data/ext/pg_query/include/postgres/parser/scanner.h +1 -1
- data/ext/pg_query/include/postgres/parser/scansup.h +1 -1
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +1 -1
- data/ext/pg_query/include/postgres/pg_config.h +53 -45
- data/ext/pg_query/include/postgres/pg_config_manual.h +21 -8
- data/ext/pg_query/include/postgres/pg_getopt.h +1 -1
- data/ext/pg_query/include/postgres/pg_trace.h +1 -1
- data/ext/pg_query/include/postgres/pgstat.h +13 -11
- data/ext/pg_query/include/postgres/pgtime.h +1 -1
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +1 -1
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +1 -1
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/postgres/plerrcodes.h +4 -4
- data/ext/pg_query/include/postgres/plpgsql.h +15 -13
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +3 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +3 -1
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +38 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +19 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +16 -1
- data/ext/pg_query/include/postgres/port/atomics/generic.h +38 -2
- data/ext/pg_query/include/postgres/port/atomics.h +93 -6
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +91 -9
- data/ext/pg_query/include/postgres/port/pg_bswap.h +1 -1
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +10 -1
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +48 -1
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +8 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +1 -13
- data/ext/pg_query/include/postgres/port.h +39 -4
- data/ext/pg_query/include/postgres/portability/instr_time.h +1 -1
- data/ext/pg_query/include/postgres/postgres.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/autovacuum.h +5 -16
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +8 -6
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +3 -7
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +3 -3
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +2 -2
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +25 -5
- data/ext/pg_query/include/postgres/postmaster/startup.h +2 -2
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +2 -4
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +2 -2
- data/ext/pg_query/include/postgres/regex/regex.h +92 -9
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +1 -1
- data/ext/pg_query/include/postgres/replication/logicalproto.h +2 -2
- data/ext/pg_query/include/postgres/replication/logicalworker.h +2 -1
- data/ext/pg_query/include/postgres/replication/origin.h +1 -1
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +27 -46
- data/ext/pg_query/include/postgres/replication/slot.h +45 -5
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +1 -1
- data/ext/pg_query/include/postgres/replication/walreceiver.h +37 -11
- data/ext/pg_query/include/postgres/replication/walsender.h +5 -3
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +1 -1
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +7 -1
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +2 -2
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +1 -1
- data/ext/pg_query/include/postgres/storage/block.h +1 -1
- data/ext/pg_query/include/postgres/storage/buf.h +1 -1
- data/ext/pg_query/include/postgres/storage/bufmgr.h +59 -41
- data/ext/pg_query/include/postgres/storage/bufpage.h +1 -1
- data/ext/pg_query/include/postgres/storage/condition_variable.h +1 -1
- data/ext/pg_query/include/postgres/storage/dsm.h +1 -1
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +2 -2
- data/ext/pg_query/include/postgres/storage/fd.h +30 -13
- data/ext/pg_query/include/postgres/storage/fileset.h +1 -1
- data/ext/pg_query/include/postgres/storage/ipc.h +4 -1
- data/ext/pg_query/include/postgres/storage/item.h +1 -1
- data/ext/pg_query/include/postgres/storage/itemid.h +1 -1
- data/ext/pg_query/include/postgres/storage/itemptr.h +1 -1
- data/ext/pg_query/include/postgres/storage/large_object.h +1 -1
- data/ext/pg_query/include/postgres/storage/latch.h +4 -2
- data/ext/pg_query/include/postgres/storage/lmgr.h +8 -2
- data/ext/pg_query/include/postgres/storage/lock.h +19 -19
- data/ext/pg_query/include/postgres/storage/lockdefs.h +3 -1
- data/ext/pg_query/include/postgres/storage/lwlock.h +17 -9
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +7 -10
- data/ext/pg_query/include/postgres/storage/off.h +1 -1
- data/ext/pg_query/include/postgres/storage/pg_sema.h +1 -1
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +5 -4
- data/ext/pg_query/include/postgres/storage/pmsignal.h +2 -2
- data/ext/pg_query/include/postgres/storage/predicate.h +1 -5
- data/ext/pg_query/include/postgres/storage/proc.h +48 -26
- data/ext/pg_query/include/postgres/storage/procarray.h +5 -1
- data/ext/pg_query/include/postgres/storage/proclist_types.h +11 -9
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +8 -6
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +16 -15
- data/ext/pg_query/include/postgres/storage/s_lock.h +7 -27
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +1 -1
- data/ext/pg_query/include/postgres/storage/shm_mq.h +2 -2
- data/ext/pg_query/include/postgres/storage/shm_toc.h +1 -1
- data/ext/pg_query/include/postgres/storage/shmem.h +1 -1
- data/ext/pg_query/include/postgres/storage/sinval.h +3 -3
- data/ext/pg_query/include/postgres/storage/smgr.h +46 -29
- data/ext/pg_query/include/postgres/storage/spin.h +1 -1
- data/ext/pg_query/include/postgres/storage/standby.h +13 -3
- data/ext/pg_query/include/postgres/storage/standbydefs.h +2 -2
- data/ext/pg_query/include/postgres/storage/sync.h +4 -4
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +1 -2
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +3 -2
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +2 -2
- data/ext/pg_query/include/postgres/tcop/dest.h +3 -2
- data/ext/pg_query/include/postgres/tcop/fastpath.h +1 -1
- data/ext/pg_query/include/postgres/tcop/pquery.h +1 -1
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +9 -5
- data/ext/pg_query/include/postgres/tcop/utility.h +2 -2
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +1 -1
- data/ext/pg_query/include/postgres/utils/acl.h +19 -7
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +1 -1
- data/ext/pg_query/include/postgres/utils/array.h +1 -2
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +3 -2
- data/ext/pg_query/include/postgres/utils/backend_status.h +8 -10
- data/ext/pg_query/include/postgres/utils/builtins.h +4 -1
- data/ext/pg_query/include/postgres/utils/bytea.h +2 -2
- data/ext/pg_query/include/postgres/utils/catcache.h +6 -6
- data/ext/pg_query/include/postgres/utils/date.h +1 -1
- data/ext/pg_query/include/postgres/utils/datetime.h +4 -1
- data/ext/pg_query/include/postgres/utils/datum.h +1 -1
- data/ext/pg_query/include/postgres/utils/dsa.h +44 -5
- data/ext/pg_query/include/postgres/utils/elog.h +3 -8
- data/ext/pg_query/include/postgres/utils/errcodes.h +1 -3
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +1 -1
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +1 -1
- data/ext/pg_query/include/postgres/utils/float.h +1 -1
- data/ext/pg_query/include/postgres/utils/fmgroids.h +49 -16
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +47 -14
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +1 -1
- data/ext/pg_query/include/postgres/utils/guc.h +20 -6
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +23 -2
- data/ext/pg_query/include/postgres/utils/guc_tables.h +6 -5
- data/ext/pg_query/include/postgres/utils/hsearch.h +2 -2
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +1 -1
- data/ext/pg_query/include/postgres/utils/logtape.h +5 -5
- data/ext/pg_query/include/postgres/utils/lsyscache.h +6 -3
- data/ext/pg_query/include/postgres/utils/memdebug.h +1 -1
- data/ext/pg_query/include/postgres/utils/memutils.h +12 -5
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +53 -13
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +25 -9
- data/ext/pg_query/include/postgres/utils/numeric.h +6 -1
- data/ext/pg_query/include/postgres/utils/palloc.h +1 -15
- data/ext/pg_query/include/postgres/utils/partcache.h +1 -1
- data/ext/pg_query/include/postgres/utils/pg_locale.h +8 -7
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +30 -17
- data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
- data/ext/pg_query/include/postgres/utils/portal.h +10 -10
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +2 -2
- data/ext/pg_query/include/postgres/utils/regproc.h +1 -1
- data/ext/pg_query/include/postgres/utils/rel.h +14 -15
- data/ext/pg_query/include/postgres/utils/relcache.h +2 -5
- data/ext/pg_query/include/postgres/utils/reltrigger.h +1 -1
- data/ext/pg_query/include/postgres/utils/resowner.h +90 -9
- data/ext/pg_query/include/postgres/utils/ruleutils.h +1 -1
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/postgres/utils/snapmgr.h +1 -52
- data/ext/pg_query/include/postgres/utils/snapshot.h +2 -2
- data/ext/pg_query/include/postgres/utils/sortsupport.h +1 -1
- data/ext/pg_query/include/postgres/utils/syscache.h +7 -98
- data/ext/pg_query/include/postgres/utils/timeout.h +3 -2
- data/ext/pg_query/include/postgres/utils/timestamp.h +1 -1
- data/ext/pg_query/include/postgres/utils/tuplesort.h +36 -9
- data/ext/pg_query/include/postgres/utils/tuplestore.h +2 -5
- data/ext/pg_query/include/postgres/utils/typcache.h +2 -1
- data/ext/pg_query/include/postgres/utils/varlena.h +1 -1
- data/ext/pg_query/include/postgres/utils/wait_event.h +28 -214
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +4 -4
- data/ext/pg_query/include/postgres/varatt.h +1 -1
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
- data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
- data/ext/pg_query/pg_query.pb-c.c +6598 -3739
- data/ext/pg_query/pg_query_normalize.c +42 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +3 -1
- data/ext/pg_query/pg_query_parse_plpgsql.c +12 -13
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +2 -2
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/postgres_deparse.c +601 -172
- data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +3 -7
- data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +34491 -32136
- data/ext/pg_query/src_backend_parser_parser.c +8 -8
- data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
- data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
- data/ext/pg_query/src_backend_utils_error_elog.c +47 -42
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +15 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +11 -18
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -6
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
- data/ext/pg_query/src_common_encnames.c +43 -44
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +511 -466
- 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 +18 -1
- data/ext/pg_query/src_common_wchar.c +92 -109
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_port_pg_bitutils.c +173 -28
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +15 -18
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +1 -1
- data/lib/pg_query/fingerprint.rb +3 -5
- data/lib/pg_query/param_refs.rb +2 -2
- data/lib/pg_query/parse.rb +5 -7
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +27 -25
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +38 -15
- data/lib/pg_query/truncate.rb +18 -20
- data/lib/pg_query/version.rb +1 -1
- metadata +31 -82
- data/ext/pg_query/include/postgres/storage/backendid.h +0 -37
- data/ext/pg_query/include/postgres/storage/sinvaladt.h +0 -45
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
- data/ext/pg_query/src_backend_nodes_nodes.c +0 -38
- /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
@@ -4,7 +4,7 @@
|
|
4
4
|
* definitions for nodes/print.c
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/nodes/print.h
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* queryjumble.h
|
4
4
|
* Query normalization and fingerprinting.
|
5
5
|
*
|
6
|
-
* Portions Copyright (c) 1996-
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
8
8
|
*
|
9
9
|
* IDENTIFICATION
|
@@ -56,7 +56,7 @@ enum ComputeQueryIdType
|
|
56
56
|
COMPUTE_QUERY_ID_OFF,
|
57
57
|
COMPUTE_QUERY_ID_ON,
|
58
58
|
COMPUTE_QUERY_ID_AUTO,
|
59
|
-
COMPUTE_QUERY_ID_REGRESS
|
59
|
+
COMPUTE_QUERY_ID_REGRESS,
|
60
60
|
};
|
61
61
|
|
62
62
|
/* GUC parameters */
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* definitions for replication grammar parse nodes
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/nodes/replnodes.h
|
@@ -20,7 +20,7 @@
|
|
20
20
|
typedef enum ReplicationKind
|
21
21
|
{
|
22
22
|
REPLICATION_KIND_PHYSICAL,
|
23
|
-
REPLICATION_KIND_LOGICAL
|
23
|
+
REPLICATION_KIND_LOGICAL,
|
24
24
|
} ReplicationKind;
|
25
25
|
|
26
26
|
|
@@ -72,6 +72,18 @@ typedef struct DropReplicationSlotCmd
|
|
72
72
|
} DropReplicationSlotCmd;
|
73
73
|
|
74
74
|
|
75
|
+
/* ----------------------
|
76
|
+
* ALTER_REPLICATION_SLOT command
|
77
|
+
* ----------------------
|
78
|
+
*/
|
79
|
+
typedef struct AlterReplicationSlotCmd
|
80
|
+
{
|
81
|
+
NodeTag type;
|
82
|
+
char *slotname;
|
83
|
+
List *options;
|
84
|
+
} AlterReplicationSlotCmd;
|
85
|
+
|
86
|
+
|
75
87
|
/* ----------------------
|
76
88
|
* START_REPLICATION command
|
77
89
|
* ----------------------
|
@@ -108,4 +120,13 @@ typedef struct TimeLineHistoryCmd
|
|
108
120
|
TimeLineID timeline;
|
109
121
|
} TimeLineHistoryCmd;
|
110
122
|
|
123
|
+
/* ----------------------
|
124
|
+
* UPLOAD_MANIFEST command
|
125
|
+
* ----------------------
|
126
|
+
*/
|
127
|
+
typedef struct UploadManifestCmd
|
128
|
+
{
|
129
|
+
NodeTag type;
|
130
|
+
} UploadManifestCmd;
|
131
|
+
|
111
132
|
#endif /* REPLNODES_H */
|
@@ -23,7 +23,7 @@
|
|
23
23
|
* allows for future extensions of the set of request cases.
|
24
24
|
*
|
25
25
|
*
|
26
|
-
* Portions Copyright (c) 1996-
|
26
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
27
27
|
* Portions Copyright (c) 1994, Regents of the University of California
|
28
28
|
*
|
29
29
|
* src/include/nodes/supportnodes.h
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* prototypes for costsize.c and clausesel.c.
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/optimizer/cost.h
|
@@ -37,7 +37,7 @@ typedef enum
|
|
37
37
|
{
|
38
38
|
CONSTRAINT_EXCLUSION_OFF, /* do not use c_e */
|
39
39
|
CONSTRAINT_EXCLUSION_ON, /* apply c_e to all rels */
|
40
|
-
CONSTRAINT_EXCLUSION_PARTITION
|
40
|
+
CONSTRAINT_EXCLUSION_PARTITION, /* apply c_e to otherrels only */
|
41
41
|
} ConstraintExclusionType;
|
42
42
|
|
43
43
|
|
@@ -131,7 +131,7 @@ extern void cost_agg(Path *path, PlannerInfo *root,
|
|
131
131
|
Cost input_startup_cost, Cost input_total_cost,
|
132
132
|
double input_tuples, double input_width);
|
133
133
|
extern void cost_windowagg(Path *path, PlannerInfo *root,
|
134
|
-
List *windowFuncs,
|
134
|
+
List *windowFuncs, WindowClause *winclause,
|
135
135
|
Cost input_startup_cost, Cost input_total_cost,
|
136
136
|
double input_tuples);
|
137
137
|
extern void cost_group(Path *path, PlannerInfo *root,
|
@@ -210,6 +210,7 @@ extern void set_result_size_estimates(PlannerInfo *root, RelOptInfo *rel);
|
|
210
210
|
extern void set_foreign_size_estimates(PlannerInfo *root, RelOptInfo *rel);
|
211
211
|
extern PathTarget *set_pathtarget_cost_width(PlannerInfo *root, PathTarget *target);
|
212
212
|
extern double compute_bitmap_pages(PlannerInfo *root, RelOptInfo *baserel,
|
213
|
-
Path *bitmapqual,
|
213
|
+
Path *bitmapqual, double loop_count,
|
214
|
+
Cost *cost_p, double *tuples_p);
|
214
215
|
|
215
216
|
#endif /* COST_H */
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* geqo.h
|
4
4
|
* prototypes for various files in optimizer/geqo
|
5
5
|
*
|
6
|
-
* Portions Copyright (c) 1996-
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
8
8
|
*
|
9
9
|
* src/include/optimizer/geqo.h
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* geqo_gene.h
|
4
4
|
* genome representation in optimizer/geqo
|
5
5
|
*
|
6
|
-
* Portions Copyright (c) 1996-
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
8
8
|
*
|
9
9
|
* src/include/optimizer/geqo_gene.h
|
@@ -12,7 +12,7 @@
|
|
12
12
|
* example. For the most part, however, code outside the core planner
|
13
13
|
* should not need to include any optimizer/ header except this one.
|
14
14
|
*
|
15
|
-
* Portions Copyright (c) 1996-
|
15
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
16
16
|
* Portions Copyright (c) 1994, Regents of the University of California
|
17
17
|
*
|
18
18
|
* src/include/optimizer/optimizer.h
|
@@ -90,6 +90,7 @@ extern PGDLLIMPORT double recursive_worktable_factor;
|
|
90
90
|
extern PGDLLIMPORT int effective_cache_size;
|
91
91
|
|
92
92
|
extern double clamp_row_est(double nrows);
|
93
|
+
extern int32 clamp_width_est(int64 tuple_width);
|
93
94
|
extern long clamp_cardinality_to_long(Cardinality x);
|
94
95
|
|
95
96
|
/* in path/indxpath.c: */
|
@@ -104,7 +105,7 @@ typedef enum
|
|
104
105
|
{
|
105
106
|
DEBUG_PARALLEL_OFF,
|
106
107
|
DEBUG_PARALLEL_ON,
|
107
|
-
DEBUG_PARALLEL_REGRESS
|
108
|
+
DEBUG_PARALLEL_REGRESS,
|
108
109
|
} DebugParallelMode;
|
109
110
|
|
110
111
|
/* GUC parameters */
|
@@ -138,7 +139,9 @@ extern Expr *canonicalize_qual(Expr *qual, bool is_check);
|
|
138
139
|
/* in util/clauses.c: */
|
139
140
|
|
140
141
|
extern bool contain_mutable_functions(Node *clause);
|
142
|
+
extern bool contain_mutable_functions_after_planning(Expr *expr);
|
141
143
|
extern bool contain_volatile_functions(Node *clause);
|
144
|
+
extern bool contain_volatile_functions_after_planning(Expr *expr);
|
142
145
|
extern bool contain_volatile_functions_not_nextval(Node *clause);
|
143
146
|
|
144
147
|
extern Node *eval_const_expressions(PlannerInfo *root, Node *node);
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* prototypes for various files in optimizer/path
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/optimizer/paths.h
|
@@ -24,6 +24,7 @@ extern PGDLLIMPORT bool enable_geqo;
|
|
24
24
|
extern PGDLLIMPORT int geqo_threshold;
|
25
25
|
extern PGDLLIMPORT int min_parallel_table_scan_size;
|
26
26
|
extern PGDLLIMPORT int min_parallel_index_scan_size;
|
27
|
+
extern PGDLLIMPORT bool enable_group_by_reordering;
|
27
28
|
|
28
29
|
/* Hook for plugins to get control in set_rel_pathlist() */
|
29
30
|
typedef void (*set_rel_pathlist_hook_type) (PlannerInfo *root,
|
@@ -63,10 +64,6 @@ extern void create_partial_bitmap_paths(PlannerInfo *root, RelOptInfo *rel,
|
|
63
64
|
extern void generate_partitionwise_join_paths(PlannerInfo *root,
|
64
65
|
RelOptInfo *rel);
|
65
66
|
|
66
|
-
#ifdef OPTIMIZER_DEBUG
|
67
|
-
extern void debug_print_rel(PlannerInfo *root, RelOptInfo *rel);
|
68
|
-
#endif
|
69
|
-
|
70
67
|
/*
|
71
68
|
* indxpath.c
|
72
69
|
* routines to generate index paths
|
@@ -83,7 +80,7 @@ extern bool match_index_to_operand(Node *operand, int indexcol,
|
|
83
80
|
extern void check_index_predicates(PlannerInfo *root, RelOptInfo *rel);
|
84
81
|
|
85
82
|
/*
|
86
|
-
* tidpath.
|
83
|
+
* tidpath.c
|
87
84
|
* routines to generate tid paths
|
88
85
|
*/
|
89
86
|
extern void create_tidscan_paths(PlannerInfo *root, RelOptInfo *rel);
|
@@ -112,6 +109,8 @@ extern bool have_join_order_restriction(PlannerInfo *root,
|
|
112
109
|
extern bool have_dangerous_phv(PlannerInfo *root,
|
113
110
|
Relids outer_relids, Relids inner_params);
|
114
111
|
extern void mark_dummy_rel(RelOptInfo *rel);
|
112
|
+
extern void init_dummy_sjinfo(SpecialJoinInfo *sjinfo, Relids left_relids,
|
113
|
+
Relids right_relids);
|
115
114
|
|
116
115
|
/*
|
117
116
|
* equivclass.c
|
@@ -174,6 +173,10 @@ extern void add_child_join_rel_equivalences(PlannerInfo *root,
|
|
174
173
|
AppendRelInfo **appinfos,
|
175
174
|
RelOptInfo *parent_joinrel,
|
176
175
|
RelOptInfo *child_joinrel);
|
176
|
+
extern void add_setop_child_rel_equivalences(PlannerInfo *root,
|
177
|
+
RelOptInfo *child_rel,
|
178
|
+
List *child_tlist,
|
179
|
+
List *setop_pathkeys);
|
177
180
|
extern List *generate_implied_equalities_for_column(PlannerInfo *root,
|
178
181
|
RelOptInfo *rel,
|
179
182
|
ec_matches_callback_type callback,
|
@@ -199,12 +202,13 @@ typedef enum
|
|
199
202
|
PATHKEYS_EQUAL, /* pathkeys are identical */
|
200
203
|
PATHKEYS_BETTER1, /* pathkey 1 is a superset of pathkey 2 */
|
201
204
|
PATHKEYS_BETTER2, /* vice versa */
|
202
|
-
PATHKEYS_DIFFERENT /* neither pathkey includes the other */
|
205
|
+
PATHKEYS_DIFFERENT, /* neither pathkey includes the other */
|
203
206
|
} PathKeysComparison;
|
204
207
|
|
205
208
|
extern PathKeysComparison compare_pathkeys(List *keys1, List *keys2);
|
206
209
|
extern bool pathkeys_contained_in(List *keys1, List *keys2);
|
207
210
|
extern bool pathkeys_count_contained_in(List *keys1, List *keys2, int *n_common);
|
211
|
+
extern List *get_useful_group_keys_orderings(PlannerInfo *root, Path *path);
|
208
212
|
extern Path *get_cheapest_path_for_pathkeys(List *paths, List *pathkeys,
|
209
213
|
Relids required_outer,
|
210
214
|
CostSelector cost_criterion,
|
@@ -235,7 +239,8 @@ extern List *make_pathkeys_for_sortclauses_extended(PlannerInfo *root,
|
|
235
239
|
List **sortclauses,
|
236
240
|
List *tlist,
|
237
241
|
bool remove_redundant,
|
238
|
-
bool *sortable
|
242
|
+
bool *sortable,
|
243
|
+
bool set_ec_sortref);
|
239
244
|
extern void initialize_mergeclause_eclasses(PlannerInfo *root,
|
240
245
|
RestrictInfo *restrictinfo);
|
241
246
|
extern void update_mergeclause_eclasses(PlannerInfo *root,
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* prototypes for various files in optimizer/plan
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/optimizer/planmain.h
|
@@ -75,6 +75,10 @@ extern void add_vars_to_targetlist(PlannerInfo *root, List *vars,
|
|
75
75
|
extern void find_lateral_references(PlannerInfo *root);
|
76
76
|
extern void create_lateral_join_info(PlannerInfo *root);
|
77
77
|
extern List *deconstruct_jointree(PlannerInfo *root);
|
78
|
+
extern bool restriction_is_always_true(PlannerInfo *root,
|
79
|
+
RestrictInfo *restrictinfo);
|
80
|
+
extern bool restriction_is_always_false(PlannerInfo *root,
|
81
|
+
RestrictInfo *restrictinfo);
|
78
82
|
extern void distribute_restrictinfo_to_rels(PlannerInfo *root,
|
79
83
|
RestrictInfo *restrictinfo);
|
80
84
|
extern RestrictInfo *process_implied_equality(PlannerInfo *root,
|
@@ -110,6 +114,8 @@ extern bool innerrel_is_unique(PlannerInfo *root,
|
|
110
114
|
*/
|
111
115
|
extern Plan *set_plan_references(PlannerInfo *root, Plan *plan);
|
112
116
|
extern bool trivial_subqueryscan(SubqueryScan *plan);
|
117
|
+
extern Param *find_minmax_agg_replacement_param(PlannerInfo *root,
|
118
|
+
Aggref *aggref);
|
113
119
|
extern void record_plan_function_dependency(PlannerInfo *root, Oid funcid);
|
114
120
|
extern void record_plan_type_dependency(PlannerInfo *root, Oid typid);
|
115
121
|
extern bool extract_query_dependencies_walker(Node *node, PlannerInfo *context);
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* parse analysis for optimizable statements
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/parser/analyze.h
|
@@ -44,6 +44,8 @@ extern List *transformInsertRow(ParseState *pstate, List *exprlist,
|
|
44
44
|
bool strip_indirection);
|
45
45
|
extern List *transformUpdateTargetList(ParseState *pstate,
|
46
46
|
List *origTlist);
|
47
|
+
extern List *transformReturningList(ParseState *pstate, List *returningList,
|
48
|
+
ParseExprKind exprKind);
|
47
49
|
extern Query *transformTopLevelStmt(ParseState *pstate, RawStmt *parseTree);
|
48
50
|
extern Query *transformStmt(ParseState *pstate, Node *parseTree);
|
49
51
|
|
@@ -7,7 +7,7 @@
|
|
7
7
|
* by the PG_KEYWORD macro, which is not defined in this file; it can
|
8
8
|
* be defined by the caller for special purposes.
|
9
9
|
*
|
10
|
-
* Portions Copyright (c) 1996-
|
10
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
12
12
|
*
|
13
13
|
* IDENTIFICATION
|
@@ -93,6 +93,7 @@ PG_KEYWORD("commit", COMMIT, UNRESERVED_KEYWORD, BARE_LABEL)
|
|
93
93
|
PG_KEYWORD("committed", COMMITTED, UNRESERVED_KEYWORD, BARE_LABEL)
|
94
94
|
PG_KEYWORD("compression", COMPRESSION, UNRESERVED_KEYWORD, BARE_LABEL)
|
95
95
|
PG_KEYWORD("concurrently", CONCURRENTLY, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL)
|
96
|
+
PG_KEYWORD("conditional", CONDITIONAL, UNRESERVED_KEYWORD, BARE_LABEL)
|
96
97
|
PG_KEYWORD("configuration", CONFIGURATION, UNRESERVED_KEYWORD, BARE_LABEL)
|
97
98
|
PG_KEYWORD("conflict", CONFLICT, UNRESERVED_KEYWORD, BARE_LABEL)
|
98
99
|
PG_KEYWORD("connection", CONNECTION, UNRESERVED_KEYWORD, BARE_LABEL)
|
@@ -147,11 +148,13 @@ PG_KEYWORD("double", DOUBLE_P, UNRESERVED_KEYWORD, BARE_LABEL)
|
|
147
148
|
PG_KEYWORD("drop", DROP, UNRESERVED_KEYWORD, BARE_LABEL)
|
148
149
|
PG_KEYWORD("each", EACH, UNRESERVED_KEYWORD, BARE_LABEL)
|
149
150
|
PG_KEYWORD("else", ELSE, RESERVED_KEYWORD, BARE_LABEL)
|
151
|
+
PG_KEYWORD("empty", EMPTY_P, UNRESERVED_KEYWORD, BARE_LABEL)
|
150
152
|
PG_KEYWORD("enable", ENABLE_P, UNRESERVED_KEYWORD, BARE_LABEL)
|
151
153
|
PG_KEYWORD("encoding", ENCODING, UNRESERVED_KEYWORD, BARE_LABEL)
|
152
154
|
PG_KEYWORD("encrypted", ENCRYPTED, UNRESERVED_KEYWORD, BARE_LABEL)
|
153
155
|
PG_KEYWORD("end", END_P, RESERVED_KEYWORD, BARE_LABEL)
|
154
156
|
PG_KEYWORD("enum", ENUM_P, UNRESERVED_KEYWORD, BARE_LABEL)
|
157
|
+
PG_KEYWORD("error", ERROR_P, UNRESERVED_KEYWORD, BARE_LABEL)
|
155
158
|
PG_KEYWORD("escape", ESCAPE, UNRESERVED_KEYWORD, BARE_LABEL)
|
156
159
|
PG_KEYWORD("event", EVENT, UNRESERVED_KEYWORD, BARE_LABEL)
|
157
160
|
PG_KEYWORD("except", EXCEPT, RESERVED_KEYWORD, AS_LABEL)
|
@@ -230,11 +233,18 @@ PG_KEYWORD("is", IS, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL)
|
|
230
233
|
PG_KEYWORD("isnull", ISNULL, TYPE_FUNC_NAME_KEYWORD, AS_LABEL)
|
231
234
|
PG_KEYWORD("isolation", ISOLATION, UNRESERVED_KEYWORD, BARE_LABEL)
|
232
235
|
PG_KEYWORD("join", JOIN, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL)
|
233
|
-
PG_KEYWORD("json", JSON,
|
236
|
+
PG_KEYWORD("json", JSON, COL_NAME_KEYWORD, BARE_LABEL)
|
234
237
|
PG_KEYWORD("json_array", JSON_ARRAY, COL_NAME_KEYWORD, BARE_LABEL)
|
235
238
|
PG_KEYWORD("json_arrayagg", JSON_ARRAYAGG, COL_NAME_KEYWORD, BARE_LABEL)
|
239
|
+
PG_KEYWORD("json_exists", JSON_EXISTS, COL_NAME_KEYWORD, BARE_LABEL)
|
236
240
|
PG_KEYWORD("json_object", JSON_OBJECT, COL_NAME_KEYWORD, BARE_LABEL)
|
237
241
|
PG_KEYWORD("json_objectagg", JSON_OBJECTAGG, COL_NAME_KEYWORD, BARE_LABEL)
|
242
|
+
PG_KEYWORD("json_query", JSON_QUERY, COL_NAME_KEYWORD, BARE_LABEL)
|
243
|
+
PG_KEYWORD("json_scalar", JSON_SCALAR, COL_NAME_KEYWORD, BARE_LABEL)
|
244
|
+
PG_KEYWORD("json_serialize", JSON_SERIALIZE, COL_NAME_KEYWORD, BARE_LABEL)
|
245
|
+
PG_KEYWORD("json_table", JSON_TABLE, COL_NAME_KEYWORD, BARE_LABEL)
|
246
|
+
PG_KEYWORD("json_value", JSON_VALUE, COL_NAME_KEYWORD, BARE_LABEL)
|
247
|
+
PG_KEYWORD("keep", KEEP, UNRESERVED_KEYWORD, BARE_LABEL)
|
238
248
|
PG_KEYWORD("key", KEY, UNRESERVED_KEYWORD, BARE_LABEL)
|
239
249
|
PG_KEYWORD("keys", KEYS, UNRESERVED_KEYWORD, BARE_LABEL)
|
240
250
|
PG_KEYWORD("label", LABEL, UNRESERVED_KEYWORD, BARE_LABEL)
|
@@ -264,6 +274,7 @@ PG_KEYWORD("matched", MATCHED, UNRESERVED_KEYWORD, BARE_LABEL)
|
|
264
274
|
PG_KEYWORD("materialized", MATERIALIZED, UNRESERVED_KEYWORD, BARE_LABEL)
|
265
275
|
PG_KEYWORD("maxvalue", MAXVALUE, UNRESERVED_KEYWORD, BARE_LABEL)
|
266
276
|
PG_KEYWORD("merge", MERGE, UNRESERVED_KEYWORD, BARE_LABEL)
|
277
|
+
PG_KEYWORD("merge_action", MERGE_ACTION, COL_NAME_KEYWORD, BARE_LABEL)
|
267
278
|
PG_KEYWORD("method", METHOD, UNRESERVED_KEYWORD, BARE_LABEL)
|
268
279
|
PG_KEYWORD("minute", MINUTE_P, UNRESERVED_KEYWORD, AS_LABEL)
|
269
280
|
PG_KEYWORD("minvalue", MINVALUE, UNRESERVED_KEYWORD, BARE_LABEL)
|
@@ -275,6 +286,7 @@ PG_KEYWORD("names", NAMES, UNRESERVED_KEYWORD, BARE_LABEL)
|
|
275
286
|
PG_KEYWORD("national", NATIONAL, COL_NAME_KEYWORD, BARE_LABEL)
|
276
287
|
PG_KEYWORD("natural", NATURAL, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL)
|
277
288
|
PG_KEYWORD("nchar", NCHAR, COL_NAME_KEYWORD, BARE_LABEL)
|
289
|
+
PG_KEYWORD("nested", NESTED, UNRESERVED_KEYWORD, BARE_LABEL)
|
278
290
|
PG_KEYWORD("new", NEW, UNRESERVED_KEYWORD, BARE_LABEL)
|
279
291
|
PG_KEYWORD("next", NEXT, UNRESERVED_KEYWORD, BARE_LABEL)
|
280
292
|
PG_KEYWORD("nfc", NFC, UNRESERVED_KEYWORD, BARE_LABEL)
|
@@ -300,6 +312,7 @@ PG_KEYWORD("off", OFF, UNRESERVED_KEYWORD, BARE_LABEL)
|
|
300
312
|
PG_KEYWORD("offset", OFFSET, RESERVED_KEYWORD, AS_LABEL)
|
301
313
|
PG_KEYWORD("oids", OIDS, UNRESERVED_KEYWORD, BARE_LABEL)
|
302
314
|
PG_KEYWORD("old", OLD, UNRESERVED_KEYWORD, BARE_LABEL)
|
315
|
+
PG_KEYWORD("omit", OMIT, UNRESERVED_KEYWORD, BARE_LABEL)
|
303
316
|
PG_KEYWORD("on", ON, RESERVED_KEYWORD, AS_LABEL)
|
304
317
|
PG_KEYWORD("only", ONLY, RESERVED_KEYWORD, BARE_LABEL)
|
305
318
|
PG_KEYWORD("operator", OPERATOR, UNRESERVED_KEYWORD, BARE_LABEL)
|
@@ -324,7 +337,9 @@ PG_KEYWORD("partial", PARTIAL, UNRESERVED_KEYWORD, BARE_LABEL)
|
|
324
337
|
PG_KEYWORD("partition", PARTITION, UNRESERVED_KEYWORD, BARE_LABEL)
|
325
338
|
PG_KEYWORD("passing", PASSING, UNRESERVED_KEYWORD, BARE_LABEL)
|
326
339
|
PG_KEYWORD("password", PASSWORD, UNRESERVED_KEYWORD, BARE_LABEL)
|
340
|
+
PG_KEYWORD("path", PATH, UNRESERVED_KEYWORD, BARE_LABEL)
|
327
341
|
PG_KEYWORD("placing", PLACING, RESERVED_KEYWORD, BARE_LABEL)
|
342
|
+
PG_KEYWORD("plan", PLAN, UNRESERVED_KEYWORD, BARE_LABEL)
|
328
343
|
PG_KEYWORD("plans", PLANS, UNRESERVED_KEYWORD, BARE_LABEL)
|
329
344
|
PG_KEYWORD("policy", POLICY, UNRESERVED_KEYWORD, BARE_LABEL)
|
330
345
|
PG_KEYWORD("position", POSITION, COL_NAME_KEYWORD, BARE_LABEL)
|
@@ -342,6 +357,7 @@ PG_KEYWORD("procedures", PROCEDURES, UNRESERVED_KEYWORD, BARE_LABEL)
|
|
342
357
|
PG_KEYWORD("program", PROGRAM, UNRESERVED_KEYWORD, BARE_LABEL)
|
343
358
|
PG_KEYWORD("publication", PUBLICATION, UNRESERVED_KEYWORD, BARE_LABEL)
|
344
359
|
PG_KEYWORD("quote", QUOTE, UNRESERVED_KEYWORD, BARE_LABEL)
|
360
|
+
PG_KEYWORD("quotes", QUOTES, UNRESERVED_KEYWORD, BARE_LABEL)
|
345
361
|
PG_KEYWORD("range", RANGE, UNRESERVED_KEYWORD, BARE_LABEL)
|
346
362
|
PG_KEYWORD("read", READ, UNRESERVED_KEYWORD, BARE_LABEL)
|
347
363
|
PG_KEYWORD("real", REAL, COL_NAME_KEYWORD, BARE_LABEL)
|
@@ -401,6 +417,7 @@ PG_KEYWORD("skip", SKIP, UNRESERVED_KEYWORD, BARE_LABEL)
|
|
401
417
|
PG_KEYWORD("smallint", SMALLINT, COL_NAME_KEYWORD, BARE_LABEL)
|
402
418
|
PG_KEYWORD("snapshot", SNAPSHOT, UNRESERVED_KEYWORD, BARE_LABEL)
|
403
419
|
PG_KEYWORD("some", SOME, RESERVED_KEYWORD, BARE_LABEL)
|
420
|
+
PG_KEYWORD("source", SOURCE, UNRESERVED_KEYWORD, BARE_LABEL)
|
404
421
|
PG_KEYWORD("sql", SQL_P, UNRESERVED_KEYWORD, BARE_LABEL)
|
405
422
|
PG_KEYWORD("stable", STABLE, UNRESERVED_KEYWORD, BARE_LABEL)
|
406
423
|
PG_KEYWORD("standalone", STANDALONE_P, UNRESERVED_KEYWORD, BARE_LABEL)
|
@@ -412,6 +429,7 @@ PG_KEYWORD("stdout", STDOUT, UNRESERVED_KEYWORD, BARE_LABEL)
|
|
412
429
|
PG_KEYWORD("storage", STORAGE, UNRESERVED_KEYWORD, BARE_LABEL)
|
413
430
|
PG_KEYWORD("stored", STORED, UNRESERVED_KEYWORD, BARE_LABEL)
|
414
431
|
PG_KEYWORD("strict", STRICT_P, UNRESERVED_KEYWORD, BARE_LABEL)
|
432
|
+
PG_KEYWORD("string", STRING_P, UNRESERVED_KEYWORD, BARE_LABEL)
|
415
433
|
PG_KEYWORD("strip", STRIP_P, UNRESERVED_KEYWORD, BARE_LABEL)
|
416
434
|
PG_KEYWORD("subscription", SUBSCRIPTION, UNRESERVED_KEYWORD, BARE_LABEL)
|
417
435
|
PG_KEYWORD("substring", SUBSTRING, COL_NAME_KEYWORD, BARE_LABEL)
|
@@ -424,6 +442,7 @@ PG_KEYWORD("table", TABLE, RESERVED_KEYWORD, BARE_LABEL)
|
|
424
442
|
PG_KEYWORD("tables", TABLES, UNRESERVED_KEYWORD, BARE_LABEL)
|
425
443
|
PG_KEYWORD("tablesample", TABLESAMPLE, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL)
|
426
444
|
PG_KEYWORD("tablespace", TABLESPACE, UNRESERVED_KEYWORD, BARE_LABEL)
|
445
|
+
PG_KEYWORD("target", TARGET, UNRESERVED_KEYWORD, BARE_LABEL)
|
427
446
|
PG_KEYWORD("temp", TEMP, UNRESERVED_KEYWORD, BARE_LABEL)
|
428
447
|
PG_KEYWORD("template", TEMPLATE, UNRESERVED_KEYWORD, BARE_LABEL)
|
429
448
|
PG_KEYWORD("temporary", TEMPORARY, UNRESERVED_KEYWORD, BARE_LABEL)
|
@@ -447,6 +466,7 @@ PG_KEYWORD("types", TYPES_P, UNRESERVED_KEYWORD, BARE_LABEL)
|
|
447
466
|
PG_KEYWORD("uescape", UESCAPE, UNRESERVED_KEYWORD, BARE_LABEL)
|
448
467
|
PG_KEYWORD("unbounded", UNBOUNDED, UNRESERVED_KEYWORD, BARE_LABEL)
|
449
468
|
PG_KEYWORD("uncommitted", UNCOMMITTED, UNRESERVED_KEYWORD, BARE_LABEL)
|
469
|
+
PG_KEYWORD("unconditional", UNCONDITIONAL, UNRESERVED_KEYWORD, BARE_LABEL)
|
450
470
|
PG_KEYWORD("unencrypted", UNENCRYPTED, UNRESERVED_KEYWORD, BARE_LABEL)
|
451
471
|
PG_KEYWORD("union", UNION, RESERVED_KEYWORD, AS_LABEL)
|
452
472
|
PG_KEYWORD("unique", UNIQUE, RESERVED_KEYWORD, BARE_LABEL)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* parse_agg.h
|
4
4
|
* handle aggregates and window functions in parser
|
5
5
|
*
|
6
|
-
* Portions Copyright (c) 1996-
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
8
8
|
*
|
9
9
|
* src/include/parser/parse_agg.h
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* Routines for type coercion.
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/parser/parse_coerce.h
|
@@ -27,7 +27,7 @@ typedef enum CoercionPathType
|
|
27
27
|
COERCION_PATH_FUNC, /* apply the specified coercion function */
|
28
28
|
COERCION_PATH_RELABELTYPE, /* binary-compatible cast, no function */
|
29
29
|
COERCION_PATH_ARRAYCOERCE, /* need an ArrayCoerceExpr node */
|
30
|
-
COERCION_PATH_COERCEVIAIO /* need a CoerceViaIO node */
|
30
|
+
COERCION_PATH_COERCEVIAIO, /* need a CoerceViaIO node */
|
31
31
|
} CoercionPathType;
|
32
32
|
|
33
33
|
|
@@ -63,6 +63,9 @@ extern Node *coerce_to_specific_type_typmod(ParseState *pstate, Node *node,
|
|
63
63
|
Oid targetTypeId, int32 targetTypmod,
|
64
64
|
const char *constructName);
|
65
65
|
|
66
|
+
extern Node *coerce_null_to_domain(Oid typid, int32 typmod, Oid collation,
|
67
|
+
int typlen, bool typbyval);
|
68
|
+
|
66
69
|
extern int parser_coercion_errposition(ParseState *pstate,
|
67
70
|
int coerce_location,
|
68
71
|
Node *input_expr);
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* parse_expr.h
|
4
4
|
* handle expressions in parser
|
5
5
|
*
|
6
|
-
* Portions Copyright (c) 1996-
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
8
8
|
*
|
9
9
|
* src/include/parser/parse_expr.h
|
@@ -4,7 +4,7 @@
|
|
4
4
|
*
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/parser/parse_func.h
|
@@ -27,7 +27,7 @@ typedef enum
|
|
27
27
|
FUNCDETAIL_PROCEDURE, /* found a matching procedure */
|
28
28
|
FUNCDETAIL_AGGREGATE, /* found a matching aggregate function */
|
29
29
|
FUNCDETAIL_WINDOWFUNC, /* found a matching window function */
|
30
|
-
FUNCDETAIL_COERCION
|
30
|
+
FUNCDETAIL_COERCION, /* it's a type coercion request */
|
31
31
|
} FuncDetailCode;
|
32
32
|
|
33
33
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* Internal definitions for parser
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/parser/parse_node.h
|
@@ -61,7 +61,8 @@ typedef enum ParseExprKind
|
|
61
61
|
EXPR_KIND_DISTINCT_ON, /* DISTINCT ON */
|
62
62
|
EXPR_KIND_LIMIT, /* LIMIT */
|
63
63
|
EXPR_KIND_OFFSET, /* OFFSET */
|
64
|
-
EXPR_KIND_RETURNING, /* RETURNING */
|
64
|
+
EXPR_KIND_RETURNING, /* RETURNING in INSERT/UPDATE/DELETE */
|
65
|
+
EXPR_KIND_MERGE_RETURNING, /* RETURNING in MERGE */
|
65
66
|
EXPR_KIND_VALUES, /* VALUES */
|
66
67
|
EXPR_KIND_VALUES_SINGLE, /* single-row VALUES (in INSERT only) */
|
67
68
|
EXPR_KIND_CHECK_CONSTRAINT, /* CHECK constraint for a table */
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* handle operator things for parser
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/parser/parse_oper.h
|
@@ -42,6 +42,9 @@ extern Operator compatible_oper(ParseState *pstate, List *op,
|
|
42
42
|
|
43
43
|
/* currently no need for compatible_left_oper/compatible_right_oper */
|
44
44
|
|
45
|
+
/* Error reporting support */
|
46
|
+
extern const char *op_signature_string(List *op, Oid arg1, Oid arg2);
|
47
|
+
|
45
48
|
/* Routines for identifying "<", "=", ">" operators for a type */
|
46
49
|
extern void get_sort_group_operators(Oid argtype,
|
47
50
|
bool needLT, bool needEQ, bool needGT,
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* prototypes for parse_relation.c.
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/parser/parse_relation.h
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* parse_type.h
|
4
4
|
* handle type operations for parser
|
5
5
|
*
|
6
|
-
* Portions Copyright (c) 1996-
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
8
8
|
*
|
9
9
|
* src/include/parser/parse_type.h
|
@@ -36,7 +36,7 @@ extern char *TypeNameToString(const TypeName *typeName);
|
|
36
36
|
extern char *TypeNameListToString(List *typenames);
|
37
37
|
|
38
38
|
extern Oid LookupCollation(ParseState *pstate, List *collnames, int location);
|
39
|
-
extern Oid GetColumnDefCollation(ParseState *pstate, ColumnDef *coldef, Oid typeOid);
|
39
|
+
extern Oid GetColumnDefCollation(ParseState *pstate, const ColumnDef *coldef, Oid typeOid);
|
40
40
|
|
41
41
|
extern Type typeidType(Oid id);
|
42
42
|
|
@@ -5,7 +5,7 @@
|
|
5
5
|
*
|
6
6
|
* This is the external API for the raw lexing/parsing functions.
|
7
7
|
*
|
8
|
-
* Portions Copyright (c) 1996-
|
8
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
9
9
|
* Portions Copyright (c) 1994, Regents of the University of California
|
10
10
|
*
|
11
11
|
* src/include/parser/parser.h
|
@@ -41,7 +41,7 @@ typedef enum
|
|
41
41
|
RAW_PARSE_PLPGSQL_EXPR,
|
42
42
|
RAW_PARSE_PLPGSQL_ASSIGN1,
|
43
43
|
RAW_PARSE_PLPGSQL_ASSIGN2,
|
44
|
-
RAW_PARSE_PLPGSQL_ASSIGN3
|
44
|
+
RAW_PARSE_PLPGSQL_ASSIGN3,
|
45
45
|
} RawParseMode;
|
46
46
|
|
47
47
|
/* Values for the backslash_quote GUC */
|
@@ -49,7 +49,7 @@ typedef enum
|
|
49
49
|
{
|
50
50
|
BACKSLASH_QUOTE_OFF,
|
51
51
|
BACKSLASH_QUOTE_ON,
|
52
|
-
BACKSLASH_QUOTE_SAFE_ENCODING
|
52
|
+
BACKSLASH_QUOTE_SAFE_ENCODING,
|
53
53
|
} BackslashQuoteType;
|
54
54
|
|
55
55
|
/* GUC variables in scan.l (every one of these is a bad idea :-() */
|
@@ -5,7 +5,7 @@
|
|
5
5
|
* parse trees.
|
6
6
|
*
|
7
7
|
*
|
8
|
-
* Portions Copyright (c) 1996-
|
8
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
9
9
|
* Portions Copyright (c) 1994, Regents of the University of California
|
10
10
|
*
|
11
11
|
* src/include/parser/parsetree.h
|
@@ -8,7 +8,7 @@
|
|
8
8
|
* higher-level API provided by parser.h.
|
9
9
|
*
|
10
10
|
*
|
11
|
-
* Portions Copyright (c) 1996-
|
11
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
12
12
|
* Portions Copyright (c) 1994, Regents of the University of California
|
13
13
|
*
|
14
14
|
* src/include/parser/scanner.h
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* scansup.h
|
4
4
|
* scanner support routines used by the core lexer
|
5
5
|
*
|
6
|
-
* Portions Copyright (c) 1996-
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
8
8
|
*
|
9
9
|
* src/include/parser/scansup.h
|