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
@@ -9,7 +9,7 @@
|
|
9
9
|
* bootstrap file from these header files.)
|
10
10
|
*
|
11
11
|
*
|
12
|
-
* Portions Copyright (c) 1996-
|
12
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
13
13
|
* Portions Copyright (c) 1994, Regents of the University of California
|
14
14
|
*
|
15
15
|
* src/include/catalog/genbki.h
|
@@ -76,14 +76,14 @@
|
|
76
76
|
* The first two arguments are the index's name and OID. The third argument
|
77
77
|
* is the name of a #define to generate for its OID. References to the index
|
78
78
|
* in the C code should always use these #defines, not the actual index name
|
79
|
-
* (much less the numeric OID). The
|
80
|
-
* index' SQL command.
|
79
|
+
* (much less the numeric OID). The fourth argument is the table name. The
|
80
|
+
* rest is much like a standard 'create index' SQL command.
|
81
81
|
*
|
82
82
|
* The macro definitions are just to keep the C compiler from spitting up.
|
83
83
|
*/
|
84
|
-
#define DECLARE_INDEX(name,oid,oidmacro,decl) extern int no_such_variable
|
85
|
-
#define DECLARE_UNIQUE_INDEX(name,oid,oidmacro,decl) extern int no_such_variable
|
86
|
-
#define DECLARE_UNIQUE_INDEX_PKEY(name,oid,oidmacro,decl) extern int no_such_variable
|
84
|
+
#define DECLARE_INDEX(name,oid,oidmacro,tblname,decl) extern int no_such_variable
|
85
|
+
#define DECLARE_UNIQUE_INDEX(name,oid,oidmacro,tblname,decl) extern int no_such_variable
|
86
|
+
#define DECLARE_UNIQUE_INDEX_PKEY(name,oid,oidmacro,tblname,decl) extern int no_such_variable
|
87
87
|
|
88
88
|
/*
|
89
89
|
* These lines inform genbki.pl about manually-assigned OIDs that do not
|
@@ -120,6 +120,12 @@
|
|
120
120
|
#define DECLARE_ARRAY_FOREIGN_KEY(cols,reftbl,refcols) extern int no_such_variable
|
121
121
|
#define DECLARE_ARRAY_FOREIGN_KEY_OPT(cols,reftbl,refcols) extern int no_such_variable
|
122
122
|
|
123
|
+
/*
|
124
|
+
* Create a syscache with the given name, index, and bucket size. See
|
125
|
+
* syscache.c.
|
126
|
+
*/
|
127
|
+
#define MAKE_SYSCACHE(name,idxname,nbuckets) extern int no_such_variable
|
128
|
+
|
123
129
|
/* The following are never defined; they are here only for documentation. */
|
124
130
|
|
125
131
|
/*
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* prototypes for catalog/index.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/catalog/index.h
|
@@ -26,7 +26,7 @@ typedef enum
|
|
26
26
|
INDEX_CREATE_SET_READY,
|
27
27
|
INDEX_CREATE_SET_VALID,
|
28
28
|
INDEX_DROP_CLEAR_VALID,
|
29
|
-
INDEX_DROP_SET_DEAD
|
29
|
+
INDEX_DROP_SET_DEAD,
|
30
30
|
} IndexStateFlagsAction;
|
31
31
|
|
32
32
|
/* options for REINDEX */
|
@@ -54,9 +54,9 @@ typedef struct ValidateIndexState
|
|
54
54
|
} ValidateIndexState;
|
55
55
|
|
56
56
|
extern void index_check_primary_key(Relation heapRel,
|
57
|
-
IndexInfo *indexInfo,
|
57
|
+
const IndexInfo *indexInfo,
|
58
58
|
bool is_alter_table,
|
59
|
-
IndexStmt *stmt);
|
59
|
+
const IndexStmt *stmt);
|
60
60
|
|
61
61
|
#define INDEX_CREATE_IS_PRIMARY (1 << 0)
|
62
62
|
#define INDEX_CREATE_ADD_CONSTRAINT (1 << 1)
|
@@ -73,12 +73,14 @@ extern Oid index_create(Relation heapRelation,
|
|
73
73
|
Oid parentConstraintId,
|
74
74
|
RelFileNumber relFileNumber,
|
75
75
|
IndexInfo *indexInfo,
|
76
|
-
List *indexColNames,
|
77
|
-
Oid
|
76
|
+
const List *indexColNames,
|
77
|
+
Oid accessMethodId,
|
78
78
|
Oid tableSpaceId,
|
79
|
-
Oid *
|
80
|
-
Oid *
|
81
|
-
|
79
|
+
const Oid *collationIds,
|
80
|
+
const Oid *opclassIds,
|
81
|
+
const Datum *opclassOptions,
|
82
|
+
const int16 *coloptions,
|
83
|
+
const NullableDatum *stattargets,
|
82
84
|
Datum reloptions,
|
83
85
|
bits16 flags,
|
84
86
|
bits16 constr_flags,
|
@@ -110,7 +112,7 @@ extern void index_concurrently_set_dead(Oid heapId,
|
|
110
112
|
extern ObjectAddress index_constraint_create(Relation heapRelation,
|
111
113
|
Oid indexRelationId,
|
112
114
|
Oid parentConstraintId,
|
113
|
-
IndexInfo *indexInfo,
|
115
|
+
const IndexInfo *indexInfo,
|
114
116
|
const char *constraintName,
|
115
117
|
char constraintType,
|
116
118
|
bits16 constr_flags,
|
@@ -123,10 +125,10 @@ extern IndexInfo *BuildIndexInfo(Relation index);
|
|
123
125
|
|
124
126
|
extern IndexInfo *BuildDummyIndexInfo(Relation index);
|
125
127
|
|
126
|
-
extern bool CompareIndexInfo(IndexInfo *info1, IndexInfo *info2,
|
127
|
-
Oid *collations1, Oid *collations2,
|
128
|
-
Oid *opfamilies1, Oid *opfamilies2,
|
129
|
-
AttrMap *attmap);
|
128
|
+
extern bool CompareIndexInfo(const IndexInfo *info1, const IndexInfo *info2,
|
129
|
+
const Oid *collations1, const Oid *collations2,
|
130
|
+
const Oid *opfamilies1, const Oid *opfamilies2,
|
131
|
+
const AttrMap *attmap);
|
130
132
|
|
131
133
|
extern void BuildSpeculativeIndexInfo(Relation index, IndexInfo *ii);
|
132
134
|
|
@@ -148,8 +150,9 @@ extern void index_set_state_flags(Oid indexId, IndexStateFlagsAction action);
|
|
148
150
|
|
149
151
|
extern Oid IndexGetRelation(Oid indexId, bool missing_ok);
|
150
152
|
|
151
|
-
extern void reindex_index(
|
152
|
-
char persistence,
|
153
|
+
extern void reindex_index(const ReindexStmt *stmt, Oid indexId,
|
154
|
+
bool skip_constraint_checks, char persistence,
|
155
|
+
const ReindexParams *params);
|
153
156
|
|
154
157
|
/* Flag bits for reindex_relation(): */
|
155
158
|
#define REINDEX_REL_PROCESS_TOAST 0x01
|
@@ -158,7 +161,8 @@ extern void reindex_index(Oid indexId, bool skip_constraint_checks,
|
|
158
161
|
#define REINDEX_REL_FORCE_INDEXES_UNLOGGED 0x08
|
159
162
|
#define REINDEX_REL_FORCE_INDEXES_PERMANENT 0x10
|
160
163
|
|
161
|
-
extern bool reindex_relation(Oid relid, int flags,
|
164
|
+
extern bool reindex_relation(const ReindexStmt *stmt, Oid relid, int flags,
|
165
|
+
const ReindexParams *params);
|
162
166
|
|
163
167
|
extern bool ReindexIsProcessingHeap(Oid heapOid);
|
164
168
|
extern bool ReindexIsProcessingIndex(Oid indexOid);
|
@@ -166,7 +170,7 @@ extern bool ReindexIsProcessingIndex(Oid indexOid);
|
|
166
170
|
extern void ResetReindexState(int nestLevel);
|
167
171
|
extern Size EstimateReindexStateSpace(void);
|
168
172
|
extern void SerializeReindexState(Size maxsize, char *start_address);
|
169
|
-
extern void RestoreReindexState(void *reindexstate);
|
173
|
+
extern void RestoreReindexState(const void *reindexstate);
|
170
174
|
|
171
175
|
extern void IndexSetParentIndex(Relation partitionIdx, Oid parentOid);
|
172
176
|
|
@@ -5,7 +5,7 @@
|
|
5
5
|
* on system catalogs
|
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/catalog/indexing.h
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* prototypes for functions in backend/catalog/namespace.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/catalog/namespace.h
|
@@ -16,6 +16,7 @@
|
|
16
16
|
|
17
17
|
#include "nodes/primnodes.h"
|
18
18
|
#include "storage/lock.h"
|
19
|
+
#include "storage/procnumber.h"
|
19
20
|
|
20
21
|
|
21
22
|
/*
|
@@ -45,23 +46,23 @@ typedef enum TempNamespaceStatus
|
|
45
46
|
{
|
46
47
|
TEMP_NAMESPACE_NOT_TEMP, /* nonexistent, or non-temp namespace */
|
47
48
|
TEMP_NAMESPACE_IDLE, /* exists, belongs to no active session */
|
48
|
-
TEMP_NAMESPACE_IN_USE /* belongs to some active session */
|
49
|
+
TEMP_NAMESPACE_IN_USE, /* belongs to some active session */
|
49
50
|
} TempNamespaceStatus;
|
50
51
|
|
51
52
|
/*
|
52
|
-
* Structure for
|
53
|
+
* Structure for xxxSearchPathMatcher functions
|
53
54
|
*
|
54
55
|
* The generation counter is private to namespace.c and shouldn't be touched
|
55
56
|
* by other code. It can be initialized to zero if necessary (that means
|
56
57
|
* "not known equal to the current active path").
|
57
58
|
*/
|
58
|
-
typedef struct
|
59
|
+
typedef struct SearchPathMatcher
|
59
60
|
{
|
60
61
|
List *schemas; /* OIDs of explicitly named schemas */
|
61
62
|
bool addCatalog; /* implicitly prepend pg_catalog? */
|
62
63
|
bool addTemp; /* implicitly prepend temp schema? */
|
63
64
|
uint64 generation; /* for quick detection of equality to active */
|
64
|
-
}
|
65
|
+
} SearchPathMatcher;
|
65
66
|
|
66
67
|
/*
|
67
68
|
* Option flag bits for RangeVarGetRelidExtended().
|
@@ -70,8 +71,8 @@ typedef enum RVROption
|
|
70
71
|
{
|
71
72
|
RVR_MISSING_OK = 1 << 0, /* don't error if relation doesn't exist */
|
72
73
|
RVR_NOWAIT = 1 << 1, /* error if relation cannot be locked */
|
73
|
-
RVR_SKIP_LOCKED = 1 << 2 /* skip if relation cannot be locked */
|
74
|
-
}
|
74
|
+
RVR_SKIP_LOCKED = 1 << 2, /* skip if relation cannot be locked */
|
75
|
+
} RVROption;
|
75
76
|
|
76
77
|
typedef void (*RangeVarGetRelidCallback) (const RangeVar *relation, Oid relId,
|
77
78
|
Oid oldRelId, void *callback_arg);
|
@@ -122,7 +123,7 @@ extern Oid ConversionGetConid(const char *conname);
|
|
122
123
|
extern bool ConversionIsVisible(Oid conid);
|
123
124
|
|
124
125
|
extern Oid get_statistics_object_oid(List *names, bool missing_ok);
|
125
|
-
extern bool StatisticsObjIsVisible(Oid
|
126
|
+
extern bool StatisticsObjIsVisible(Oid stxid);
|
126
127
|
|
127
128
|
extern Oid get_ts_parser_oid(List *names, bool missing_ok);
|
128
129
|
extern bool TSParserIsVisible(Oid prsId);
|
@@ -136,7 +137,7 @@ extern bool TSTemplateIsVisible(Oid tmplId);
|
|
136
137
|
extern Oid get_ts_config_oid(List *names, bool missing_ok);
|
137
138
|
extern bool TSConfigIsVisible(Oid cfgid);
|
138
139
|
|
139
|
-
extern void DeconstructQualifiedName(List *names,
|
140
|
+
extern void DeconstructQualifiedName(const List *names,
|
140
141
|
char **nspname_p,
|
141
142
|
char **objname_p);
|
142
143
|
extern Oid LookupNamespaceNoError(const char *nspname);
|
@@ -145,10 +146,10 @@ extern Oid get_namespace_oid(const char *nspname, bool missing_ok);
|
|
145
146
|
|
146
147
|
extern Oid LookupCreationNamespace(const char *nspname);
|
147
148
|
extern void CheckSetNamespace(Oid oldNspOid, Oid nspOid);
|
148
|
-
extern Oid QualifiedNameGetCreationNamespace(List *names, char **objname_p);
|
149
|
-
extern RangeVar *makeRangeVarFromNameList(List *names);
|
150
|
-
extern char *NameListToString(List *names);
|
151
|
-
extern char *NameListToQuotedString(List *names);
|
149
|
+
extern Oid QualifiedNameGetCreationNamespace(const List *names, char **objname_p);
|
150
|
+
extern RangeVar *makeRangeVarFromNameList(const List *names);
|
151
|
+
extern char *NameListToString(const List *names);
|
152
|
+
extern char *NameListToQuotedString(const List *names);
|
152
153
|
|
153
154
|
extern bool isTempNamespace(Oid namespaceId);
|
154
155
|
extern bool isTempToastNamespace(Oid namespaceId);
|
@@ -156,7 +157,7 @@ extern bool isTempOrTempToastNamespace(Oid namespaceId);
|
|
156
157
|
extern bool isAnyTempNamespace(Oid namespaceId);
|
157
158
|
extern bool isOtherTempNamespace(Oid namespaceId);
|
158
159
|
extern TempNamespaceStatus checkTempNamespaceStatus(Oid namespaceId);
|
159
|
-
extern
|
160
|
+
extern ProcNumber GetTempNamespaceProcNumber(Oid namespaceId);
|
160
161
|
extern Oid GetTempToastNamespace(void);
|
161
162
|
extern void GetTempNamespaceState(Oid *tempNamespaceId,
|
162
163
|
Oid *tempToastNamespaceId);
|
@@ -164,11 +165,9 @@ extern void SetTempNamespaceState(Oid tempNamespaceId,
|
|
164
165
|
Oid tempToastNamespaceId);
|
165
166
|
extern void ResetTempTableNamespace(void);
|
166
167
|
|
167
|
-
extern
|
168
|
-
extern
|
169
|
-
extern bool
|
170
|
-
extern void PushOverrideSearchPath(OverrideSearchPath *newpath);
|
171
|
-
extern void PopOverrideSearchPath(void);
|
168
|
+
extern SearchPathMatcher *GetSearchPathMatcher(MemoryContext context);
|
169
|
+
extern SearchPathMatcher *CopySearchPathMatcher(SearchPathMatcher *path);
|
170
|
+
extern bool SearchPathMatchesCurrentEnvironment(SearchPathMatcher *path);
|
172
171
|
|
173
172
|
extern Oid get_collation_oid(List *collname, bool missing_ok);
|
174
173
|
extern Oid get_conversion_oid(List *conname, bool missing_ok);
|
@@ -3,7 +3,7 @@
|
|
3
3
|
*
|
4
4
|
* Object access hooks.
|
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
|
|
@@ -52,7 +52,7 @@ typedef enum ObjectAccessType
|
|
52
52
|
OAT_POST_ALTER,
|
53
53
|
OAT_NAMESPACE_SEARCH,
|
54
54
|
OAT_FUNCTION_EXECUTE,
|
55
|
-
OAT_TRUNCATE
|
55
|
+
OAT_TRUNCATE,
|
56
56
|
} ObjectAccessType;
|
57
57
|
|
58
58
|
/*
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* objectaddress.h
|
4
4
|
* functions for working with object addresses
|
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/catalog/objectaddress.h
|
@@ -69,6 +69,10 @@ extern bool get_object_namensp_unique(Oid class_id);
|
|
69
69
|
|
70
70
|
extern HeapTuple get_catalog_object_by_oid(Relation catalog,
|
71
71
|
AttrNumber oidcol, Oid objectId);
|
72
|
+
extern HeapTuple get_catalog_object_by_oid_extended(Relation catalog,
|
73
|
+
AttrNumber oidcol,
|
74
|
+
Oid objectId,
|
75
|
+
bool locktup);
|
72
76
|
|
73
77
|
extern char *getObjectDescription(const ObjectAddress *object,
|
74
78
|
bool missing_ok);
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* definition of the "aggregate" system catalog (pg_aggregate)
|
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/catalog/pg_aggregate.h
|
@@ -110,7 +110,9 @@ typedef FormData_pg_aggregate *Form_pg_aggregate;
|
|
110
110
|
|
111
111
|
DECLARE_TOAST(pg_aggregate, 4159, 4160);
|
112
112
|
|
113
|
-
DECLARE_UNIQUE_INDEX_PKEY(pg_aggregate_fnoid_index, 2650, AggregateFnoidIndexId,
|
113
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_aggregate_fnoid_index, 2650, AggregateFnoidIndexId, pg_aggregate, btree(aggfnoid oid_ops));
|
114
|
+
|
115
|
+
MAKE_SYSCACHE(AGGFNOID, pg_aggregate_fnoid_index, 16);
|
114
116
|
|
115
117
|
#ifdef EXPOSE_TO_CLIENT_CODE
|
116
118
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* pg_aggregate_d.h
|
4
4
|
* Macro definitions for pg_aggregate
|
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
|
* NOTES
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* definition of the "access method" system catalog (pg_am)
|
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/catalog/pg_am.h
|
@@ -47,8 +47,11 @@ CATALOG(pg_am,2601,AccessMethodRelationId)
|
|
47
47
|
*/
|
48
48
|
typedef FormData_pg_am *Form_pg_am;
|
49
49
|
|
50
|
-
DECLARE_UNIQUE_INDEX(pg_am_name_index, 2651, AmNameIndexId,
|
51
|
-
DECLARE_UNIQUE_INDEX_PKEY(pg_am_oid_index, 2652, AmOidIndexId,
|
50
|
+
DECLARE_UNIQUE_INDEX(pg_am_name_index, 2651, AmNameIndexId, pg_am, btree(amname name_ops));
|
51
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_am_oid_index, 2652, AmOidIndexId, pg_am, btree(oid oid_ops));
|
52
|
+
|
53
|
+
MAKE_SYSCACHE(AMNAME, pg_am_name_index, 4);
|
54
|
+
MAKE_SYSCACHE(AMOID, pg_am_oid_index, 4);
|
52
55
|
|
53
56
|
#ifdef EXPOSE_TO_CLIENT_CODE
|
54
57
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* pg_am_d.h
|
4
4
|
* Macro definitions for pg_am
|
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
|
* NOTES
|
@@ -8,7 +8,7 @@
|
|
8
8
|
* relations need be included.
|
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/catalog/pg_attribute.h
|
@@ -158,22 +158,22 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
|
|
158
158
|
/* Number of times inherited from direct parent relation(s) */
|
159
159
|
int16 attinhcount BKI_DEFAULT(0);
|
160
160
|
|
161
|
+
/* attribute's collation, if any */
|
162
|
+
Oid attcollation BKI_LOOKUP_OPT(pg_collation);
|
163
|
+
|
164
|
+
#ifdef CATALOG_VARLEN /* variable-length/nullable fields start here */
|
165
|
+
/* NOTE: The following fields are not present in tuple descriptors. */
|
166
|
+
|
161
167
|
/*
|
162
168
|
* attstattarget is the target number of statistics datapoints to collect
|
163
169
|
* during VACUUM ANALYZE of this column. A zero here indicates that we do
|
164
|
-
* not wish to collect any stats about this column. A
|
165
|
-
* that no value has been explicitly set for this column, so
|
166
|
-
* should use the default setting.
|
170
|
+
* not wish to collect any stats about this column. A null value here
|
171
|
+
* indicates that no value has been explicitly set for this column, so
|
172
|
+
* ANALYZE should use the default setting.
|
167
173
|
*
|
168
|
-
* int16 is sufficient
|
174
|
+
* int16 is sufficient for the current max value (MAX_STATISTICS_TARGET).
|
169
175
|
*/
|
170
|
-
int16 attstattarget BKI_DEFAULT(
|
171
|
-
|
172
|
-
/* attribute's collation, if any */
|
173
|
-
Oid attcollation BKI_LOOKUP_OPT(pg_collation);
|
174
|
-
|
175
|
-
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
176
|
-
/* NOTE: The following fields are not present in tuple descriptors. */
|
176
|
+
int16 attstattarget BKI_DEFAULT(_null_) BKI_FORCE_NULL;
|
177
177
|
|
178
178
|
/* Column-level access permissions */
|
179
179
|
aclitem attacl[1] BKI_DEFAULT(_null_);
|
@@ -208,8 +208,25 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
|
|
208
208
|
*/
|
209
209
|
typedef FormData_pg_attribute *Form_pg_attribute;
|
210
210
|
|
211
|
-
|
212
|
-
|
211
|
+
/*
|
212
|
+
* FormExtraData_pg_attribute contains (some of) the fields that are not in
|
213
|
+
* FormData_pg_attribute because they are excluded by CATALOG_VARLEN. It is
|
214
|
+
* meant to be used by DDL code so that the combination of
|
215
|
+
* FormData_pg_attribute (often via tuple descriptor) and
|
216
|
+
* FormExtraData_pg_attribute can be used to pass around all the information
|
217
|
+
* about an attribute. Fields can be included here as needed.
|
218
|
+
*/
|
219
|
+
typedef struct FormExtraData_pg_attribute
|
220
|
+
{
|
221
|
+
NullableDatum attstattarget;
|
222
|
+
NullableDatum attoptions;
|
223
|
+
} FormExtraData_pg_attribute;
|
224
|
+
|
225
|
+
DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnam_index, 2658, AttributeRelidNameIndexId, pg_attribute, btree(attrelid oid_ops, attname name_ops));
|
226
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_attribute_relid_attnum_index, 2659, AttributeRelidNumIndexId, pg_attribute, btree(attrelid oid_ops, attnum int2_ops));
|
227
|
+
|
228
|
+
MAKE_SYSCACHE(ATTNAME, pg_attribute_relid_attnam_index, 32);
|
229
|
+
MAKE_SYSCACHE(ATTNUM, pg_attribute_relid_attnum_index, 128);
|
213
230
|
|
214
231
|
#ifdef EXPOSE_TO_CLIENT_CODE
|
215
232
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* pg_attribute_d.h
|
4
4
|
* Macro definitions for pg_attribute
|
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
|
* NOTES
|
@@ -43,8 +43,8 @@
|
|
43
43
|
#define Anum_pg_attribute_attisdropped 18
|
44
44
|
#define Anum_pg_attribute_attislocal 19
|
45
45
|
#define Anum_pg_attribute_attinhcount 20
|
46
|
-
#define
|
47
|
-
#define
|
46
|
+
#define Anum_pg_attribute_attcollation 21
|
47
|
+
#define Anum_pg_attribute_attstattarget 22
|
48
48
|
#define Anum_pg_attribute_attacl 23
|
49
49
|
#define Anum_pg_attribute_attoptions 24
|
50
50
|
#define Anum_pg_attribute_attfdwoptions 25
|
@@ -6,7 +6,7 @@
|
|
6
6
|
* pg_shadow and pg_group are now publicly accessible views on pg_authid.
|
7
7
|
*
|
8
8
|
*
|
9
|
-
* Portions Copyright (c) 1996-
|
9
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
10
10
|
* Portions Copyright (c) 1994, Regents of the University of California
|
11
11
|
*
|
12
12
|
* src/include/catalog/pg_authid.h
|
@@ -57,7 +57,10 @@ typedef FormData_pg_authid *Form_pg_authid;
|
|
57
57
|
|
58
58
|
DECLARE_TOAST_WITH_MACRO(pg_authid, 4175, 4176, PgAuthidToastTable, PgAuthidToastIndex);
|
59
59
|
|
60
|
-
DECLARE_UNIQUE_INDEX(pg_authid_rolname_index, 2676, AuthIdRolnameIndexId,
|
61
|
-
DECLARE_UNIQUE_INDEX_PKEY(pg_authid_oid_index, 2677, AuthIdOidIndexId,
|
60
|
+
DECLARE_UNIQUE_INDEX(pg_authid_rolname_index, 2676, AuthIdRolnameIndexId, pg_authid, btree(rolname name_ops));
|
61
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_authid_oid_index, 2677, AuthIdOidIndexId, pg_authid, btree(oid oid_ops));
|
62
|
+
|
63
|
+
MAKE_SYSCACHE(AUTHNAME, pg_authid_rolname_index, 8);
|
64
|
+
MAKE_SYSCACHE(AUTHOID, pg_authid_oid_index, 8);
|
62
65
|
|
63
66
|
#endif /* PG_AUTHID_H */
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* pg_authid_d.h
|
4
4
|
* Macro definitions for pg_authid
|
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
|
* NOTES
|
@@ -53,6 +53,7 @@
|
|
53
53
|
#define ROLE_PG_EXECUTE_SERVER_PROGRAM 4571
|
54
54
|
#define ROLE_PG_SIGNAL_BACKEND 4200
|
55
55
|
#define ROLE_PG_CHECKPOINT 4544
|
56
|
+
#define ROLE_PG_MAINTAIN 6337
|
56
57
|
#define ROLE_PG_USE_RESERVED_CONNECTIONS 4550
|
57
58
|
#define ROLE_PG_CREATE_SUBSCRIPTION 6304
|
58
59
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* definition of the "relation" system catalog (pg_class)
|
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/catalog/pg_class.h
|
@@ -152,9 +152,12 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat
|
|
152
152
|
*/
|
153
153
|
typedef FormData_pg_class *Form_pg_class;
|
154
154
|
|
155
|
-
DECLARE_UNIQUE_INDEX_PKEY(pg_class_oid_index, 2662, ClassOidIndexId,
|
156
|
-
DECLARE_UNIQUE_INDEX(pg_class_relname_nsp_index, 2663, ClassNameNspIndexId,
|
157
|
-
DECLARE_INDEX(pg_class_tblspc_relfilenode_index, 3455, ClassTblspcRelfilenodeIndexId,
|
155
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_class_oid_index, 2662, ClassOidIndexId, pg_class, btree(oid oid_ops));
|
156
|
+
DECLARE_UNIQUE_INDEX(pg_class_relname_nsp_index, 2663, ClassNameNspIndexId, pg_class, btree(relname name_ops, relnamespace oid_ops));
|
157
|
+
DECLARE_INDEX(pg_class_tblspc_relfilenode_index, 3455, ClassTblspcRelfilenodeIndexId, pg_class, btree(reltablespace oid_ops, relfilenode oid_ops));
|
158
|
+
|
159
|
+
MAKE_SYSCACHE(RELOID, pg_class_oid_index, 128);
|
160
|
+
MAKE_SYSCACHE(RELNAMENSP, pg_class_relname_nsp_index, 128);
|
158
161
|
|
159
162
|
#ifdef EXPOSE_TO_CLIENT_CODE
|
160
163
|
|
@@ -216,7 +219,9 @@ DECLARE_INDEX(pg_class_tblspc_relfilenode_index, 3455, ClassTblspcRelfilenodeInd
|
|
216
219
|
/*
|
217
220
|
* Relation kinds with a table access method (rd_tableam). Although sequences
|
218
221
|
* use the heap table AM, they are enough of a special case in most uses that
|
219
|
-
* they are not included here.
|
222
|
+
* they are not included here. Likewise, partitioned tables can have an access
|
223
|
+
* method defined so that their partitions can inherit it, but they do not set
|
224
|
+
* rd_tableam; hence, this is handled specially outside of this macro.
|
220
225
|
*/
|
221
226
|
#define RELKIND_HAS_TABLE_AM(relkind) \
|
222
227
|
((relkind) == RELKIND_RELATION || \
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* pg_class_d.h
|
4
4
|
* Macro definitions for pg_class
|
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
|
* NOTES
|
@@ -119,7 +119,9 @@
|
|
119
119
|
/*
|
120
120
|
* Relation kinds with a table access method (rd_tableam). Although sequences
|
121
121
|
* use the heap table AM, they are enough of a special case in most uses that
|
122
|
-
* they are not included here.
|
122
|
+
* they are not included here. Likewise, partitioned tables can have an access
|
123
|
+
* method defined so that their partitions can inherit it, but they do not set
|
124
|
+
* rd_tableam; hence, this is handled specially outside of this macro.
|
123
125
|
*/
|
124
126
|
#define RELKIND_HAS_TABLE_AM(relkind) \
|
125
127
|
((relkind) == RELKIND_RELATION || \
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* definition of the "collation" system catalog (pg_collation)
|
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/catalog/pg_collation.h
|
@@ -42,7 +42,7 @@ CATALOG(pg_collation,3456,CollationRelationId)
|
|
42
42
|
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
43
43
|
text collcollate BKI_DEFAULT(_null_); /* LC_COLLATE setting */
|
44
44
|
text collctype BKI_DEFAULT(_null_); /* LC_CTYPE setting */
|
45
|
-
text
|
45
|
+
text colllocale BKI_DEFAULT(_null_); /* locale ID */
|
46
46
|
text collicurules BKI_DEFAULT(_null_); /* ICU collation rules */
|
47
47
|
text collversion BKI_DEFAULT(_null_); /* provider-dependent
|
48
48
|
* version of collation
|
@@ -59,12 +59,16 @@ typedef FormData_pg_collation *Form_pg_collation;
|
|
59
59
|
|
60
60
|
DECLARE_TOAST(pg_collation, 6175, 6176);
|
61
61
|
|
62
|
-
DECLARE_UNIQUE_INDEX(pg_collation_name_enc_nsp_index, 3164, CollationNameEncNspIndexId,
|
63
|
-
DECLARE_UNIQUE_INDEX_PKEY(pg_collation_oid_index, 3085, CollationOidIndexId,
|
62
|
+
DECLARE_UNIQUE_INDEX(pg_collation_name_enc_nsp_index, 3164, CollationNameEncNspIndexId, pg_collation, btree(collname name_ops, collencoding int4_ops, collnamespace oid_ops));
|
63
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_collation_oid_index, 3085, CollationOidIndexId, pg_collation, btree(oid oid_ops));
|
64
|
+
|
65
|
+
MAKE_SYSCACHE(COLLNAMEENCNSP, pg_collation_name_enc_nsp_index, 8);
|
66
|
+
MAKE_SYSCACHE(COLLOID, pg_collation_oid_index, 8);
|
64
67
|
|
65
68
|
#ifdef EXPOSE_TO_CLIENT_CODE
|
66
69
|
|
67
70
|
#define COLLPROVIDER_DEFAULT 'd'
|
71
|
+
#define COLLPROVIDER_BUILTIN 'b'
|
68
72
|
#define COLLPROVIDER_ICU 'i'
|
69
73
|
#define COLLPROVIDER_LIBC 'c'
|
70
74
|
|
@@ -73,6 +77,8 @@ collprovider_name(char c)
|
|
73
77
|
{
|
74
78
|
switch (c)
|
75
79
|
{
|
80
|
+
case COLLPROVIDER_BUILTIN:
|
81
|
+
return "builtin";
|
76
82
|
case COLLPROVIDER_ICU:
|
77
83
|
return "icu";
|
78
84
|
case COLLPROVIDER_LIBC:
|
@@ -91,7 +97,7 @@ extern Oid CollationCreate(const char *collname, Oid collnamespace,
|
|
91
97
|
bool collisdeterministic,
|
92
98
|
int32 collencoding,
|
93
99
|
const char *collcollate, const char *collctype,
|
94
|
-
const char *
|
100
|
+
const char *colllocale,
|
95
101
|
const char *collicurules,
|
96
102
|
const char *collversion,
|
97
103
|
bool if_not_exists,
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* pg_collation_d.h
|
4
4
|
* Macro definitions for pg_collation
|
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
|
* NOTES
|
@@ -31,7 +31,7 @@
|
|
31
31
|
#define Anum_pg_collation_collencoding 7
|
32
32
|
#define Anum_pg_collation_collcollate 8
|
33
33
|
#define Anum_pg_collation_collctype 9
|
34
|
-
#define
|
34
|
+
#define Anum_pg_collation_colllocale 10
|
35
35
|
#define Anum_pg_collation_collicurules 11
|
36
36
|
#define Anum_pg_collation_collversion 12
|
37
37
|
|
@@ -39,6 +39,7 @@
|
|
39
39
|
|
40
40
|
|
41
41
|
#define COLLPROVIDER_DEFAULT 'd'
|
42
|
+
#define COLLPROVIDER_BUILTIN 'b'
|
42
43
|
#define COLLPROVIDER_ICU 'i'
|
43
44
|
#define COLLPROVIDER_LIBC 'c'
|
44
45
|
|
@@ -47,6 +48,8 @@ collprovider_name(char c)
|
|
47
48
|
{
|
48
49
|
switch (c)
|
49
50
|
{
|
51
|
+
case COLLPROVIDER_BUILTIN:
|
52
|
+
return "builtin";
|
50
53
|
case COLLPROVIDER_ICU:
|
51
54
|
return "icu";
|
52
55
|
case COLLPROVIDER_LIBC:
|