pg_query 4.2.3 → 5.0.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 +6 -0
- data/README.md +6 -8
- data/Rakefile +3 -3
- data/ext/pg_query/extconf.rb +1 -3
- data/ext/pg_query/include/access/amapi.h +3 -1
- data/ext/pg_query/include/access/attmap.h +5 -3
- data/ext/pg_query/include/access/attnum.h +1 -1
- data/ext/pg_query/include/access/clog.h +1 -1
- data/ext/pg_query/include/access/commit_ts.h +1 -1
- data/ext/pg_query/include/access/detoast.h +1 -1
- data/ext/pg_query/include/access/genam.h +7 -5
- data/ext/pg_query/include/access/gin.h +16 -3
- data/ext/pg_query/include/access/htup.h +1 -1
- data/ext/pg_query/include/access/htup_details.h +6 -2
- data/ext/pg_query/include/access/itup.h +61 -58
- data/ext/pg_query/include/access/parallel.h +2 -2
- data/ext/pg_query/include/access/printtup.h +1 -1
- data/ext/pg_query/include/access/relation.h +1 -1
- data/ext/pg_query/include/access/relscan.h +1 -1
- data/ext/pg_query/include/access/rmgrlist.h +2 -2
- data/ext/pg_query/include/access/sdir.h +12 -3
- data/ext/pg_query/include/access/skey.h +1 -1
- data/ext/pg_query/include/access/stratnum.h +1 -1
- data/ext/pg_query/include/access/sysattr.h +1 -1
- data/ext/pg_query/include/access/table.h +1 -1
- data/ext/pg_query/include/access/tableam.h +68 -45
- data/ext/pg_query/include/access/toast_compression.h +1 -1
- data/ext/pg_query/include/access/transam.h +1 -1
- data/ext/pg_query/include/access/tsmapi.h +82 -0
- data/ext/pg_query/include/access/tupconvert.h +5 -2
- data/ext/pg_query/include/access/tupdesc.h +2 -2
- data/ext/pg_query/include/access/tupmacs.h +58 -98
- data/ext/pg_query/include/access/twophase.h +2 -2
- data/ext/pg_query/include/access/xact.h +25 -18
- data/ext/pg_query/include/access/xlog.h +15 -16
- data/ext/pg_query/include/access/xlog_internal.h +100 -62
- data/ext/pg_query/include/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/access/xlogdefs.h +6 -25
- data/ext/pg_query/include/access/xlogprefetcher.h +1 -1
- data/ext/pg_query/include/access/xlogreader.h +7 -6
- data/ext/pg_query/include/access/xlogrecord.h +17 -5
- data/ext/pg_query/include/access/xlogrecovery.h +4 -3
- data/ext/pg_query/include/archive/archive_module.h +59 -0
- data/ext/pg_query/include/c.h +144 -156
- data/ext/pg_query/include/catalog/catalog.h +4 -3
- data/ext/pg_query/include/catalog/catversion.h +6 -2
- data/ext/pg_query/include/catalog/dependency.h +5 -4
- data/ext/pg_query/include/catalog/genbki.h +7 -6
- data/ext/pg_query/include/catalog/index.h +4 -4
- data/ext/pg_query/include/catalog/indexing.h +1 -1
- data/ext/pg_query/include/catalog/namespace.h +2 -2
- data/ext/pg_query/include/catalog/objectaccess.h +10 -8
- data/ext/pg_query/include/catalog/objectaddress.h +3 -3
- data/ext/pg_query/include/catalog/pg_aggregate.h +1 -1
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_am.h +1 -1
- data/ext/pg_query/include/catalog/pg_am_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_attribute.h +19 -17
- data/ext/pg_query/include/catalog/pg_attribute_d.h +19 -19
- data/ext/pg_query/include/catalog/pg_authid.h +1 -1
- data/ext/pg_query/include/catalog/pg_authid_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_class.h +1 -1
- data/ext/pg_query/include/catalog/pg_class_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_collation.h +3 -1
- data/ext/pg_query/include/catalog/pg_collation_d.h +4 -3
- data/ext/pg_query/include/catalog/pg_constraint.h +2 -2
- data/ext/pg_query/include/catalog/pg_constraint_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_control.h +9 -1
- data/ext/pg_query/include/catalog/pg_conversion.h +2 -2
- data/ext/pg_query/include/catalog/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_database.h +124 -0
- data/ext/pg_query/include/catalog/pg_database_d.h +52 -0
- data/ext/pg_query/include/catalog/pg_depend.h +1 -1
- data/ext/pg_query/include/catalog/pg_depend_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_event_trigger.h +1 -1
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_index.h +1 -1
- data/ext/pg_query/include/catalog/pg_index_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_language.h +1 -1
- data/ext/pg_query/include/catalog/pg_language_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_namespace.h +1 -1
- data/ext/pg_query/include/catalog/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_opclass.h +1 -1
- data/ext/pg_query/include/catalog/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_operator.h +1 -1
- data/ext/pg_query/include/catalog/pg_operator_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_opfamily.h +3 -2
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +4 -2
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +1 -1
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_proc.h +1 -1
- data/ext/pg_query/include/catalog/pg_proc_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_publication.h +2 -5
- data/ext/pg_query/include/catalog/pg_publication_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_replication_origin.h +1 -1
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_statistic.h +1 -1
- data/ext/pg_query/include/catalog/pg_statistic_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +1 -1
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_transform.h +1 -1
- data/ext/pg_query/include/catalog/pg_transform_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_trigger.h +1 -1
- data/ext/pg_query/include/catalog/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_config.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_dict.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_parser.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_template.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_type.h +1 -1
- data/ext/pg_query/include/catalog/pg_type_d.h +1 -1
- data/ext/pg_query/include/catalog/storage.h +6 -6
- data/ext/pg_query/include/commands/async.h +1 -1
- data/ext/pg_query/include/commands/dbcommands.h +2 -1
- data/ext/pg_query/include/commands/defrem.h +2 -1
- data/ext/pg_query/include/commands/event_trigger.h +1 -1
- data/ext/pg_query/include/commands/explain.h +3 -1
- data/ext/pg_query/include/commands/prepare.h +1 -1
- data/ext/pg_query/include/commands/tablespace.h +4 -4
- data/ext/pg_query/include/commands/trigger.h +15 -14
- data/ext/pg_query/include/commands/user.h +9 -3
- data/ext/pg_query/include/commands/vacuum.h +60 -14
- data/ext/pg_query/include/common/cryptohash.h +39 -0
- data/ext/pg_query/include/common/file_perm.h +1 -1
- data/ext/pg_query/include/common/hashfn.h +1 -1
- data/ext/pg_query/include/common/int.h +437 -0
- data/ext/pg_query/include/common/ip.h +4 -2
- data/ext/pg_query/include/common/keywords.h +1 -1
- data/ext/pg_query/include/common/kwlookup.h +2 -2
- data/ext/pg_query/include/common/pg_prng.h +3 -2
- data/ext/pg_query/include/common/relpath.h +20 -13
- data/ext/pg_query/include/common/scram-common.h +70 -0
- data/ext/pg_query/include/common/sha2.h +32 -0
- data/ext/pg_query/include/common/string.h +5 -3
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +10 -10
- data/ext/pg_query/include/common/{unicode_combining_table.h → unicode_nonspacing_table.h} +31 -13
- data/ext/pg_query/include/copyfuncs.funcs.c +5013 -0
- data/ext/pg_query/include/copyfuncs.switch.c +938 -0
- data/ext/pg_query/include/datatype/timestamp.h +11 -4
- data/ext/pg_query/include/equalfuncs.funcs.c +3097 -0
- data/ext/pg_query/include/equalfuncs.switch.c +785 -0
- data/ext/pg_query/include/executor/execdesc.h +1 -1
- data/ext/pg_query/include/executor/executor.h +34 -17
- data/ext/pg_query/include/executor/functions.h +1 -1
- data/ext/pg_query/include/executor/instrument.h +1 -1
- data/ext/pg_query/include/executor/spi.h +2 -2
- data/ext/pg_query/include/executor/tablefunc.h +1 -1
- data/ext/pg_query/include/executor/tuptable.h +18 -11
- data/ext/pg_query/include/fmgr.h +21 -2
- data/ext/pg_query/include/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/funcapi.h +12 -12
- data/ext/pg_query/include/gram.h +1127 -0
- data/ext/pg_query/include/{parser/gramparse.h → gramparse.h} +4 -4
- data/ext/pg_query/include/jit/jit.h +2 -2
- data/ext/pg_query/include/kwlist_d.h +534 -510
- data/ext/pg_query/include/lib/dshash.h +4 -1
- data/ext/pg_query/include/lib/ilist.h +435 -22
- data/ext/pg_query/include/lib/pairingheap.h +1 -1
- data/ext/pg_query/include/lib/simplehash.h +9 -9
- data/ext/pg_query/include/lib/sort_template.h +1 -1
- data/ext/pg_query/include/lib/stringinfo.h +3 -3
- data/ext/pg_query/include/libpq/auth.h +8 -2
- data/ext/pg_query/include/libpq/crypt.h +1 -1
- data/ext/pg_query/include/libpq/hba.h +24 -17
- data/ext/pg_query/include/libpq/libpq-be.h +36 -25
- data/ext/pg_query/include/libpq/libpq.h +1 -1
- data/ext/pg_query/include/libpq/pqcomm.h +10 -41
- data/ext/pg_query/include/libpq/pqformat.h +2 -2
- data/ext/pg_query/include/libpq/pqsignal.h +22 -10
- data/ext/pg_query/include/libpq/sasl.h +136 -0
- data/ext/pg_query/include/libpq/scram.h +37 -0
- data/ext/pg_query/include/mb/pg_wchar.h +35 -18
- data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/miscadmin.h +26 -14
- data/ext/pg_query/include/nodes/bitmapset.h +11 -7
- data/ext/pg_query/include/nodes/execnodes.h +83 -30
- data/ext/pg_query/include/nodes/extensible.h +5 -3
- data/ext/pg_query/include/nodes/lockoptions.h +1 -1
- data/ext/pg_query/include/nodes/makefuncs.h +14 -2
- data/ext/pg_query/include/nodes/memnodes.h +7 -4
- data/ext/pg_query/include/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/nodes/nodeFuncs.h +89 -29
- data/ext/pg_query/include/nodes/nodes.h +95 -510
- data/ext/pg_query/include/nodes/nodetags.h +471 -0
- data/ext/pg_query/include/nodes/params.h +3 -3
- data/ext/pg_query/include/nodes/parsenodes.h +377 -139
- data/ext/pg_query/include/nodes/pathnodes.h +1090 -440
- data/ext/pg_query/include/nodes/pg_list.h +30 -7
- data/ext/pg_query/include/nodes/plannodes.h +367 -124
- data/ext/pg_query/include/nodes/primnodes.h +670 -222
- data/ext/pg_query/include/nodes/print.h +1 -1
- data/ext/pg_query/include/{utils → nodes}/queryjumble.h +5 -7
- data/ext/pg_query/include/nodes/replnodes.h +111 -0
- data/ext/pg_query/include/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
- data/ext/pg_query/include/nodes/value.h +12 -2
- data/ext/pg_query/include/optimizer/cost.h +6 -4
- data/ext/pg_query/include/optimizer/geqo.h +1 -1
- data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
- data/ext/pg_query/include/optimizer/optimizer.h +8 -8
- data/ext/pg_query/include/optimizer/paths.h +16 -7
- data/ext/pg_query/include/optimizer/planmain.h +3 -6
- data/ext/pg_query/include/parser/analyze.h +4 -3
- data/ext/pg_query/include/parser/kwlist.h +12 -1
- data/ext/pg_query/include/parser/parse_agg.h +4 -2
- data/ext/pg_query/include/parser/parse_coerce.h +3 -1
- data/ext/pg_query/include/parser/parse_expr.h +1 -1
- data/ext/pg_query/include/parser/parse_func.h +1 -1
- data/ext/pg_query/include/parser/parse_node.h +22 -4
- data/ext/pg_query/include/parser/parse_oper.h +3 -3
- data/ext/pg_query/include/parser/parse_relation.h +8 -3
- data/ext/pg_query/include/parser/parse_type.h +4 -3
- data/ext/pg_query/include/parser/parser.h +1 -1
- data/ext/pg_query/include/parser/parsetree.h +1 -1
- data/ext/pg_query/include/parser/scanner.h +2 -2
- data/ext/pg_query/include/parser/scansup.h +1 -1
- data/ext/pg_query/include/partitioning/partdefs.h +1 -1
- data/ext/pg_query/include/pg_config.h +21 -216
- data/ext/pg_query/include/pg_config_manual.h +8 -46
- data/ext/pg_query/include/pg_getopt.h +1 -1
- data/ext/pg_query/include/pg_query.h +27 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
- data/ext/pg_query/include/pg_trace.h +1 -1
- data/ext/pg_query/include/pgstat.h +172 -93
- data/ext/pg_query/include/pgtime.h +3 -3
- data/ext/pg_query/include/pl_gram.h +64 -62
- data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -1
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/include/plpgsql.h +17 -22
- data/ext/pg_query/include/port/atomics/arch-arm.h +3 -3
- data/ext/pg_query/include/port/atomics/arch-ppc.h +21 -21
- data/ext/pg_query/include/port/atomics/arch-x86.h +2 -2
- data/ext/pg_query/include/port/atomics/fallback.h +3 -3
- data/ext/pg_query/include/port/atomics/generic-gcc.h +1 -1
- data/ext/pg_query/include/port/atomics/generic.h +1 -1
- data/ext/pg_query/include/port/atomics.h +2 -7
- data/ext/pg_query/include/port/pg_bitutils.h +62 -25
- data/ext/pg_query/include/port/pg_bswap.h +1 -1
- data/ext/pg_query/include/port/pg_crc32c.h +1 -1
- data/ext/pg_query/include/port/simd.h +375 -0
- data/ext/pg_query/include/port.h +42 -75
- data/ext/pg_query/include/portability/instr_time.h +81 -140
- data/ext/pg_query/include/postgres.h +205 -434
- data/ext/pg_query/include/postgres_ext.h +0 -1
- data/ext/pg_query/include/postmaster/autovacuum.h +1 -4
- data/ext/pg_query/include/postmaster/auxprocess.h +1 -1
- data/ext/pg_query/include/postmaster/bgworker.h +2 -2
- data/ext/pg_query/include/postmaster/bgworker_internals.h +1 -1
- data/ext/pg_query/include/postmaster/bgwriter.h +2 -2
- data/ext/pg_query/include/postmaster/fork_process.h +1 -1
- data/ext/pg_query/include/postmaster/interrupt.h +1 -1
- data/ext/pg_query/include/postmaster/pgarch.h +1 -38
- data/ext/pg_query/include/postmaster/postmaster.h +5 -2
- data/ext/pg_query/include/postmaster/startup.h +3 -1
- data/ext/pg_query/include/postmaster/syslogger.h +2 -2
- data/ext/pg_query/include/postmaster/walwriter.h +3 -1
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
- data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
- data/ext/pg_query/include/regex/regex.h +9 -6
- data/ext/pg_query/include/replication/logicallauncher.h +6 -1
- data/ext/pg_query/include/replication/logicalproto.h +30 -10
- data/ext/pg_query/include/replication/logicalworker.h +14 -1
- data/ext/pg_query/include/replication/origin.h +4 -4
- data/ext/pg_query/include/replication/reorderbuffer.h +113 -45
- data/ext/pg_query/include/replication/slot.h +25 -6
- data/ext/pg_query/include/replication/syncrep.h +2 -8
- data/ext/pg_query/include/replication/walreceiver.h +15 -9
- data/ext/pg_query/include/replication/walsender.h +13 -13
- data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
- data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -4
- data/ext/pg_query/include/rewrite/rewriteManip.h +11 -2
- data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
- data/ext/pg_query/include/src_backend_nodes_copyfuncs.funcs.c +5321 -0
- data/ext/pg_query/include/src_backend_nodes_equalfuncs.funcs.c +3354 -0
- data/ext/pg_query/include/storage/backendid.h +1 -1
- data/ext/pg_query/include/storage/block.h +24 -31
- data/ext/pg_query/include/storage/buf.h +1 -1
- data/ext/pg_query/include/storage/bufmgr.h +183 -87
- data/ext/pg_query/include/storage/bufpage.h +146 -93
- data/ext/pg_query/include/storage/condition_variable.h +2 -2
- data/ext/pg_query/include/storage/dsm.h +3 -6
- data/ext/pg_query/include/storage/dsm_impl.h +4 -1
- data/ext/pg_query/include/storage/fd.h +24 -20
- data/ext/pg_query/include/storage/fileset.h +1 -1
- data/ext/pg_query/include/storage/ipc.h +1 -1
- data/ext/pg_query/include/storage/item.h +1 -1
- data/ext/pg_query/include/storage/itemid.h +1 -1
- data/ext/pg_query/include/storage/itemptr.h +94 -57
- data/ext/pg_query/include/storage/large_object.h +1 -1
- data/ext/pg_query/include/storage/latch.h +9 -1
- data/ext/pg_query/include/storage/lmgr.h +6 -1
- data/ext/pg_query/include/storage/lock.h +21 -13
- data/ext/pg_query/include/storage/lockdefs.h +3 -3
- data/ext/pg_query/include/storage/lwlock.h +16 -2
- data/ext/pg_query/include/storage/off.h +1 -1
- data/ext/pg_query/include/storage/pg_sema.h +1 -1
- data/ext/pg_query/include/storage/pg_shmem.h +1 -1
- data/ext/pg_query/include/storage/pmsignal.h +1 -1
- data/ext/pg_query/include/storage/predicate.h +2 -2
- data/ext/pg_query/include/storage/proc.h +22 -17
- data/ext/pg_query/include/storage/procarray.h +3 -2
- data/ext/pg_query/include/storage/proclist_types.h +1 -1
- data/ext/pg_query/include/storage/procsignal.h +3 -1
- data/ext/pg_query/include/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/storage/s_lock.h +66 -309
- data/ext/pg_query/include/storage/sharedfileset.h +1 -1
- data/ext/pg_query/include/storage/shm_mq.h +1 -1
- data/ext/pg_query/include/storage/shm_toc.h +1 -1
- data/ext/pg_query/include/storage/shmem.h +1 -23
- data/ext/pg_query/include/storage/sinval.h +3 -3
- data/ext/pg_query/include/storage/sinvaladt.h +4 -2
- data/ext/pg_query/include/storage/smgr.h +12 -10
- data/ext/pg_query/include/storage/spin.h +1 -1
- data/ext/pg_query/include/storage/standby.h +9 -8
- data/ext/pg_query/include/storage/standbydefs.h +1 -1
- data/ext/pg_query/include/storage/sync.h +3 -3
- data/ext/pg_query/include/tcop/cmdtag.h +7 -2
- data/ext/pg_query/include/tcop/cmdtaglist.h +1 -1
- data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
- data/ext/pg_query/include/tcop/dest.h +1 -3
- data/ext/pg_query/include/tcop/fastpath.h +1 -1
- data/ext/pg_query/include/tcop/pquery.h +1 -1
- data/ext/pg_query/include/tcop/tcopprot.h +1 -4
- data/ext/pg_query/include/tcop/utility.h +1 -1
- data/ext/pg_query/include/tsearch/ts_cache.h +2 -4
- data/ext/pg_query/include/utils/acl.h +26 -81
- data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
- data/ext/pg_query/include/utils/array.h +19 -1
- data/ext/pg_query/include/utils/backend_progress.h +2 -1
- data/ext/pg_query/include/utils/backend_status.h +24 -3
- data/ext/pg_query/include/utils/builtins.h +14 -5
- data/ext/pg_query/include/utils/bytea.h +1 -1
- data/ext/pg_query/include/utils/catcache.h +1 -1
- data/ext/pg_query/include/utils/date.h +37 -9
- data/ext/pg_query/include/utils/datetime.h +41 -21
- data/ext/pg_query/include/utils/datum.h +1 -1
- data/ext/pg_query/include/utils/dsa.h +5 -1
- data/ext/pg_query/include/utils/elog.h +101 -26
- data/ext/pg_query/include/utils/expandeddatum.h +14 -3
- data/ext/pg_query/include/utils/expandedrecord.h +14 -4
- data/ext/pg_query/include/utils/float.h +7 -6
- data/ext/pg_query/include/utils/fmgroids.h +54 -1
- data/ext/pg_query/include/utils/fmgrprotos.h +45 -3
- data/ext/pg_query/include/utils/fmgrtab.h +1 -1
- data/ext/pg_query/include/utils/guc.h +55 -82
- data/ext/pg_query/include/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/utils/guc_tables.h +49 -3
- data/ext/pg_query/include/utils/hsearch.h +1 -1
- data/ext/pg_query/include/utils/inval.h +3 -3
- data/ext/pg_query/include/utils/logtape.h +77 -0
- data/ext/pg_query/include/utils/lsyscache.h +5 -1
- data/ext/pg_query/include/utils/memdebug.h +1 -1
- data/ext/pg_query/include/utils/memutils.h +5 -49
- data/ext/pg_query/include/utils/memutils_internal.h +136 -0
- data/ext/pg_query/include/utils/memutils_memorychunk.h +237 -0
- data/ext/pg_query/include/utils/numeric.h +20 -5
- data/ext/pg_query/include/utils/palloc.h +8 -1
- data/ext/pg_query/include/utils/partcache.h +3 -2
- data/ext/pg_query/include/utils/pg_locale.h +22 -14
- data/ext/pg_query/include/utils/pgstat_internal.h +37 -7
- data/ext/pg_query/include/utils/pidfile.h +1 -1
- data/ext/pg_query/include/utils/plancache.h +1 -1
- data/ext/pg_query/include/utils/portal.h +1 -1
- data/ext/pg_query/include/utils/probes.h +6 -6
- data/ext/pg_query/include/utils/ps_status.h +23 -1
- data/ext/pg_query/include/utils/queryenvironment.h +1 -1
- data/ext/pg_query/include/utils/regproc.h +3 -3
- data/ext/pg_query/include/utils/rel.h +60 -43
- data/ext/pg_query/include/utils/relcache.h +13 -8
- data/ext/pg_query/include/utils/reltrigger.h +1 -1
- data/ext/pg_query/include/utils/resowner.h +1 -1
- data/ext/pg_query/include/utils/ruleutils.h +6 -1
- data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/utils/snapmgr.h +4 -2
- data/ext/pg_query/include/utils/snapshot.h +1 -1
- data/ext/pg_query/include/utils/sortsupport.h +2 -2
- data/ext/pg_query/include/utils/syscache.h +4 -1
- data/ext/pg_query/include/utils/timeout.h +1 -1
- data/ext/pg_query/include/utils/timestamp.h +41 -11
- data/ext/pg_query/include/utils/tuplesort.h +189 -35
- data/ext/pg_query/include/utils/tuplestore.h +1 -1
- data/ext/pg_query/include/utils/typcache.h +1 -1
- data/ext/pg_query/include/utils/varlena.h +13 -1
- data/ext/pg_query/include/utils/wait_event.h +9 -4
- data/ext/pg_query/include/utils/xml.h +15 -5
- data/ext/pg_query/include/varatt.h +358 -0
- data/ext/pg_query/pg_query.c +1 -1
- data/ext/pg_query/pg_query.pb-c.c +19755 -17757
- data/ext/pg_query/pg_query_fingerprint.c +8 -3
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
- data/ext/pg_query/pg_query_normalize.c +1 -1
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +2 -2
- data/ext/pg_query/pg_query_parse.c +46 -4
- data/ext/pg_query/pg_query_parse_plpgsql.c +1 -1
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +2 -2
- data/ext/pg_query/postgres_deparse.c +503 -105
- data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
- data/ext/pg_query/src_backend_commands_define.c +1 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +14 -2
- data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
- data/ext/pg_query/src_backend_parser_parser.c +28 -2
- data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
- data/ext/pg_query/src_backend_parser_scansup.c +1 -1
- data/ext/pg_query/src_backend_postmaster_postmaster.c +129 -110
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
- 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 +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +354 -97
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
- data/ext/pg_query/src_backend_utils_init_globals.c +5 -2
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +13 -4
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +494 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
- data/ext/pg_query/src_common_encnames.c +4 -1
- 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 +534 -510
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_stringinfo.c +4 -4
- data/ext/pg_query/src_common_wchar.c +9 -8
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
- 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 +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +1 -1
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +3 -7
- data/ext/pg_query/src_port_strerror.c +1 -1
- data/ext/pg_query/src_port_strnlen.c +1 -1
- data/lib/pg_query/pg_query_pb.rb +166 -3191
- data/lib/pg_query/treewalker.rb +7 -2
- data/lib/pg_query/version.rb +1 -1
- metadata +43 -24
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
- data/ext/pg_query/src_common_pg_prng.c +0 -152
- data/ext/pg_query/src_common_string.c +0 -92
- data/ext/pg_query/src_port_pgsleep.c +0 -69
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b94d85770885d7cc76eea209b1de0ac6e7aa8d8408cb2a986e846852c26bbdd0
|
|
4
|
+
data.tar.gz: 01457cf09362555c92dc90116e3cce752c13778c4cb3daa852423e5e6a4df01f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6b817e4f20f42d2497de9df7807d8e06100e81b863fd7a4a49f18840c32d1921c4c26a5c2382221102ab23b74859a9fd0708c0c7caff8806ffec012d31285116
|
|
7
|
+
data.tar.gz: 807ee8ff136dcfd0d0dd2d8c50613b33b032f4a37dd287ea83a671ed3afa0e1bba389c41b5d9955eb1ee8783640caf46bde91eeed6e710ac88fb524f03ce0318
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -25,10 +25,10 @@ Due to compiling parts of PostgreSQL, installation might take a while on slower
|
|
|
25
25
|
```ruby
|
|
26
26
|
PgQuery.parse("SELECT 1")
|
|
27
27
|
|
|
28
|
-
=> #<PgQuery::ParserResult:
|
|
28
|
+
=> #<PgQuery::ParserResult:0x000000012ec4e9e0
|
|
29
29
|
@query="SELECT 1",
|
|
30
30
|
@tree=<PgQuery::ParseResult:
|
|
31
|
-
version:
|
|
31
|
+
version: 160001,
|
|
32
32
|
stmts: [
|
|
33
33
|
<PgQuery::RawStmt:
|
|
34
34
|
stmt: <PgQuery::Node:
|
|
@@ -41,11 +41,9 @@ PgQuery.parse("SELECT 1")
|
|
|
41
41
|
indirection: [],
|
|
42
42
|
val: <PgQuery::Node:
|
|
43
43
|
a_const: <PgQuery::A_Const:
|
|
44
|
+
ival: <PgQuery::Integer: ival: 1>,
|
|
44
45
|
isnull: false,
|
|
45
|
-
location: 7
|
|
46
|
-
ival: <PgQuery::Integer:
|
|
47
|
-
ival: 1
|
|
48
|
-
>
|
|
46
|
+
location: 7
|
|
49
47
|
>
|
|
50
48
|
>,
|
|
51
49
|
location: 7
|
|
@@ -139,7 +137,7 @@ PgQuery.fingerprint("SELECT $1")
|
|
|
139
137
|
```ruby
|
|
140
138
|
PgQuery.scan('SELECT 1 --comment')
|
|
141
139
|
|
|
142
|
-
=> [<PgQuery::ScanResult: version:
|
|
140
|
+
=> [<PgQuery::ScanResult: version: 160001, tokens: [
|
|
143
141
|
<PgQuery::ScanToken: start: 0, end: 6, token: :SELECT, keyword_kind: :RESERVED_KEYWORD>,
|
|
144
142
|
<PgQuery::ScanToken: start: 7, end: 8, token: :ICONST, keyword_kind: :NO_KEYWORD>,
|
|
145
143
|
<PgQuery::ScanToken: start: 9, end: 18, token: :SQL_COMMENT, keyword_kind: :NO_KEYWORD>]>,
|
|
@@ -160,7 +158,7 @@ parsed_query.walk! { |node, k, v, location| puts k }
|
|
|
160
158
|
More usefully, this can be used to rewrite a query. For example:
|
|
161
159
|
|
|
162
160
|
```ruby
|
|
163
|
-
parsed_query.walk! do |node, k, v, location|
|
|
161
|
+
parsed_query.walk! do |node, k, v, location|
|
|
164
162
|
next unless k.eql?(:range_var) || k.eql?(:relation)
|
|
165
163
|
next if v.relname.nil?
|
|
166
164
|
v.relname = "X_" + v.relname
|
data/Rakefile
CHANGED
|
@@ -5,8 +5,8 @@ require 'rspec/core/rake_task'
|
|
|
5
5
|
require 'rubocop/rake_task'
|
|
6
6
|
require 'open-uri'
|
|
7
7
|
|
|
8
|
-
LIB_PG_QUERY_TAG = '
|
|
9
|
-
LIB_PG_QUERY_SHA256SUM = '
|
|
8
|
+
LIB_PG_QUERY_TAG = '16-5.0.0'.freeze
|
|
9
|
+
LIB_PG_QUERY_SHA256SUM = '7cf26922cbc41668fa79332504f2d5638339baa9411912b8df4526ccd1d7029e'.freeze
|
|
10
10
|
|
|
11
11
|
Rake::ExtensionTask.new 'pg_query' do |ext|
|
|
12
12
|
ext.lib_dir = 'lib/pg_query'
|
|
@@ -66,7 +66,7 @@ task :update_source do
|
|
|
66
66
|
system("rmdir #{extdir}/postgres")
|
|
67
67
|
system("cp -a #{libdir}/pg_query.h #{extdir}/include")
|
|
68
68
|
# Make sure every .c file in the top-level directory is its own translation unit
|
|
69
|
-
system("mv #{extdir}/*{_conds,_defs,_helper}.c #{extdir}/include")
|
|
69
|
+
system("mv #{extdir}/*{_conds,_defs,_helper,.funcs}.c #{extdir}/include")
|
|
70
70
|
# Protobuf definitions
|
|
71
71
|
system("protoc --proto_path=#{libdir}/protobuf --ruby_out=#{File.join(__dir__, 'lib/pg_query')} #{libdir}/protobuf/pg_query.proto")
|
|
72
72
|
system("mkdir -p #{extdir}/include/protobuf")
|
data/ext/pg_query/extconf.rb
CHANGED
|
@@ -7,9 +7,7 @@ require 'pathname'
|
|
|
7
7
|
|
|
8
8
|
$objs = Dir.glob(File.join(__dir__, '*.c')).map { |f| Pathname.new(f).sub_ext('.o').to_s }
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
# https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=1c27d16e6e5c1f463bbe1e9ece88dda811235165
|
|
12
|
-
$CFLAGS << " -fvisibility=hidden -O3 -Wall -fno-strict-aliasing -fwrapv -fstack-protector -Wno-unused-function -Wno-unused-variable -Wno-clobbered -Wno-sign-compare -Wno-discarded-qualifiers -Wno-deprecated-non-prototype -Wno-unknown-warning-option -g"
|
|
10
|
+
$CFLAGS << " -fvisibility=hidden -O3 -Wall -fno-strict-aliasing -fwrapv -fstack-protector -Wno-unused-function -Wno-unused-variable -Wno-clobbered -Wno-sign-compare -Wno-discarded-qualifiers -Wno-unknown-warning-option -g"
|
|
13
11
|
|
|
14
12
|
$INCFLAGS = "-I#{File.join(__dir__, 'include')} " + $INCFLAGS
|
|
15
13
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* amapi.h
|
|
4
4
|
* API for Postgres index access methods.
|
|
5
5
|
*
|
|
6
|
-
* Copyright (c) 2015-
|
|
6
|
+
* Copyright (c) 2015-2023, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* src/include/access/amapi.h
|
|
9
9
|
*
|
|
@@ -244,6 +244,8 @@ typedef struct IndexAmRoutine
|
|
|
244
244
|
bool amcaninclude;
|
|
245
245
|
/* does AM use maintenance_work_mem? */
|
|
246
246
|
bool amusemaintenanceworkmem;
|
|
247
|
+
/* does AM store tuple information only at block granularity? */
|
|
248
|
+
bool amsummarizing;
|
|
247
249
|
/* OR of parallel vacuum flags. See vacuum.h for flags. */
|
|
248
250
|
uint8 amparallelvacuumoptions;
|
|
249
251
|
/* type of data stored in index, or InvalidOid if variable */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Definitions for PostgreSQL attribute mappings
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/attmap.h
|
|
@@ -42,9 +42,11 @@ extern void free_attrmap(AttrMap *map);
|
|
|
42
42
|
|
|
43
43
|
/* Conversion routines to build mappings */
|
|
44
44
|
extern AttrMap *build_attrmap_by_name(TupleDesc indesc,
|
|
45
|
-
TupleDesc outdesc
|
|
45
|
+
TupleDesc outdesc,
|
|
46
|
+
bool missing_ok);
|
|
46
47
|
extern AttrMap *build_attrmap_by_name_if_req(TupleDesc indesc,
|
|
47
|
-
TupleDesc outdesc
|
|
48
|
+
TupleDesc outdesc,
|
|
49
|
+
bool missing_ok);
|
|
48
50
|
extern AttrMap *build_attrmap_by_position(TupleDesc indesc,
|
|
49
51
|
TupleDesc outdesc,
|
|
50
52
|
const char *msg);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES attribute number definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/attnum.h
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* PostgreSQL transaction-commit-log manager
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/access/clog.h
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* PostgreSQL commit timestamp manager
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/access/commit_ts.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES generalized index access method definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/genam.h
|
|
@@ -44,6 +44,7 @@ typedef struct IndexBuildResult
|
|
|
44
44
|
typedef struct IndexVacuumInfo
|
|
45
45
|
{
|
|
46
46
|
Relation index; /* the index being vacuumed */
|
|
47
|
+
Relation heaprel; /* the heap relation the index belongs to */
|
|
47
48
|
bool analyze_only; /* ANALYZE (without any actual vacuum) */
|
|
48
49
|
bool report_progress; /* emit progress.h status reports */
|
|
49
50
|
bool estimated_count; /* num_heap_tuples is an estimate */
|
|
@@ -161,9 +162,10 @@ extern void index_rescan(IndexScanDesc scan,
|
|
|
161
162
|
extern void index_endscan(IndexScanDesc scan);
|
|
162
163
|
extern void index_markpos(IndexScanDesc scan);
|
|
163
164
|
extern void index_restrpos(IndexScanDesc scan);
|
|
164
|
-
extern Size index_parallelscan_estimate(Relation
|
|
165
|
-
extern void index_parallelscan_initialize(Relation
|
|
166
|
-
Snapshot snapshot,
|
|
165
|
+
extern Size index_parallelscan_estimate(Relation indexRelation, Snapshot snapshot);
|
|
166
|
+
extern void index_parallelscan_initialize(Relation heapRelation,
|
|
167
|
+
Relation indexRelation, Snapshot snapshot,
|
|
168
|
+
ParallelIndexScanDesc target);
|
|
167
169
|
extern void index_parallelrescan(IndexScanDesc scan);
|
|
168
170
|
extern IndexScanDesc index_beginscan_parallel(Relation heaprel,
|
|
169
171
|
Relation indexrel, int nkeys, int norderbys,
|
|
@@ -191,7 +193,7 @@ extern void index_store_float8_orderby_distances(IndexScanDesc scan,
|
|
|
191
193
|
Oid *orderByTypes,
|
|
192
194
|
IndexOrderByDistance *distances,
|
|
193
195
|
bool recheckOrderBy);
|
|
194
|
-
extern bytea *index_opclass_options(Relation
|
|
196
|
+
extern bytea *index_opclass_options(Relation indrel, AttrNumber attnum,
|
|
195
197
|
Datum attoptions, bool validate);
|
|
196
198
|
|
|
197
199
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* gin.h
|
|
3
3
|
* Public header file for Generalized Inverted Index access method.
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2006-
|
|
5
|
+
* Copyright (c) 2006-2023, PostgreSQL Global Development Group
|
|
6
6
|
*
|
|
7
7
|
* src/include/access/gin.h
|
|
8
8
|
*--------------------------------------------------------------------------
|
|
@@ -57,13 +57,26 @@ typedef struct GinStatsData
|
|
|
57
57
|
*/
|
|
58
58
|
typedef char GinTernaryValue;
|
|
59
59
|
|
|
60
|
+
StaticAssertDecl(sizeof(GinTernaryValue) == sizeof(bool),
|
|
61
|
+
"sizes of GinTernaryValue and bool are not equal");
|
|
62
|
+
|
|
60
63
|
#define GIN_FALSE 0 /* item is not present / does not match */
|
|
61
64
|
#define GIN_TRUE 1 /* item is present / matches */
|
|
62
65
|
#define GIN_MAYBE 2 /* don't know if item is present / don't know
|
|
63
66
|
* if matches */
|
|
64
67
|
|
|
65
|
-
|
|
66
|
-
|
|
68
|
+
static inline GinTernaryValue
|
|
69
|
+
DatumGetGinTernaryValue(Datum X)
|
|
70
|
+
{
|
|
71
|
+
return (GinTernaryValue) X;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
static inline Datum
|
|
75
|
+
GinTernaryValueGetDatum(GinTernaryValue X)
|
|
76
|
+
{
|
|
77
|
+
return (Datum) X;
|
|
78
|
+
}
|
|
79
|
+
|
|
67
80
|
#define PG_RETURN_GIN_TERNARY_VALUE(x) return GinTernaryValueGetDatum(x)
|
|
68
81
|
|
|
69
82
|
/* GUC parameters */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES heap tuple definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/htup.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES heap tuple header definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/htup_details.h
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
#include "access/tupdesc.h"
|
|
20
20
|
#include "access/tupmacs.h"
|
|
21
21
|
#include "storage/bufpage.h"
|
|
22
|
+
#include "varatt.h"
|
|
22
23
|
|
|
23
24
|
/*
|
|
24
25
|
* MaxTupleAttributeNumber limits the number of (user) columns in a tuple.
|
|
@@ -426,6 +427,9 @@ do { \
|
|
|
426
427
|
(tup)->t_choice.t_heap.t_field3.t_xvac = (xid); \
|
|
427
428
|
} while (0)
|
|
428
429
|
|
|
430
|
+
StaticAssertDecl(MaxOffsetNumber < SpecTokenOffsetNumber,
|
|
431
|
+
"invalid speculative token constant");
|
|
432
|
+
|
|
429
433
|
#define HeapTupleHeaderIsSpeculative(tup) \
|
|
430
434
|
( \
|
|
431
435
|
(ItemPointerGetOffsetNumberNoCheck(&(tup)->t_ctid) == SpecTokenOffsetNumber) \
|
|
@@ -699,7 +703,7 @@ extern void heap_fill_tuple(TupleDesc tupleDesc,
|
|
|
699
703
|
uint16 *infomask, bits8 *bit);
|
|
700
704
|
extern bool heap_attisnull(HeapTuple tup, int attnum, TupleDesc tupleDesc);
|
|
701
705
|
extern Datum nocachegetattr(HeapTuple tup, int attnum,
|
|
702
|
-
TupleDesc
|
|
706
|
+
TupleDesc tupleDesc);
|
|
703
707
|
extern Datum heap_getsysattr(HeapTuple tup, int attnum, TupleDesc tupleDesc,
|
|
704
708
|
bool *isnull);
|
|
705
709
|
extern Datum getmissingattr(TupleDesc tupleDesc,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES index tuple definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/itup.h
|
|
@@ -73,21 +73,38 @@ typedef IndexAttributeBitMapData * IndexAttributeBitMap;
|
|
|
73
73
|
#define IndexTupleHasVarwidths(itup) ((((IndexTuple) (itup))->t_info & INDEX_VAR_MASK))
|
|
74
74
|
|
|
75
75
|
|
|
76
|
+
/* routines in indextuple.c */
|
|
77
|
+
extern IndexTuple index_form_tuple(TupleDesc tupleDescriptor,
|
|
78
|
+
Datum *values, bool *isnull);
|
|
79
|
+
extern IndexTuple index_form_tuple_context(TupleDesc tupleDescriptor,
|
|
80
|
+
Datum *values, bool *isnull,
|
|
81
|
+
MemoryContext context);
|
|
82
|
+
extern Datum nocache_index_getattr(IndexTuple tup, int attnum,
|
|
83
|
+
TupleDesc tupleDesc);
|
|
84
|
+
extern void index_deform_tuple(IndexTuple tup, TupleDesc tupleDescriptor,
|
|
85
|
+
Datum *values, bool *isnull);
|
|
86
|
+
extern void index_deform_tuple_internal(TupleDesc tupleDescriptor,
|
|
87
|
+
Datum *values, bool *isnull,
|
|
88
|
+
char *tp, bits8 *bp, int hasnulls);
|
|
89
|
+
extern IndexTuple CopyIndexTuple(IndexTuple source);
|
|
90
|
+
extern IndexTuple index_truncate_tuple(TupleDesc sourceDescriptor,
|
|
91
|
+
IndexTuple source, int leavenatts);
|
|
92
|
+
|
|
93
|
+
|
|
76
94
|
/*
|
|
77
95
|
* Takes an infomask as argument (primarily because this needs to be usable
|
|
78
96
|
* at index_form_tuple time so enough space is allocated).
|
|
79
97
|
*/
|
|
80
|
-
|
|
81
|
-
(
|
|
82
|
-
|
|
83
|
-
(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
)
|
|
98
|
+
static inline Size
|
|
99
|
+
IndexInfoFindDataOffset(unsigned short t_info)
|
|
100
|
+
{
|
|
101
|
+
if (!(t_info & INDEX_NULL_MASK))
|
|
102
|
+
return MAXALIGN(sizeof(IndexTupleData));
|
|
103
|
+
else
|
|
104
|
+
return MAXALIGN(sizeof(IndexTupleData) + sizeof(IndexAttributeBitMapData));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
#ifndef FRONTEND
|
|
91
108
|
|
|
92
109
|
/* ----------------
|
|
93
110
|
* index_getattr
|
|
@@ -97,34 +114,38 @@ typedef IndexAttributeBitMapData * IndexAttributeBitMap;
|
|
|
97
114
|
*
|
|
98
115
|
* ----------------
|
|
99
116
|
*/
|
|
100
|
-
|
|
101
|
-
(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
)
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
)
|
|
117
|
+
static inline Datum
|
|
118
|
+
index_getattr(IndexTuple tup, int attnum, TupleDesc tupleDesc, bool *isnull)
|
|
119
|
+
{
|
|
120
|
+
Assert(PointerIsValid(isnull));
|
|
121
|
+
Assert(attnum > 0);
|
|
122
|
+
|
|
123
|
+
*isnull = false;
|
|
124
|
+
|
|
125
|
+
if (!IndexTupleHasNulls(tup))
|
|
126
|
+
{
|
|
127
|
+
if (TupleDescAttr(tupleDesc, attnum - 1)->attcacheoff >= 0)
|
|
128
|
+
{
|
|
129
|
+
return fetchatt(TupleDescAttr(tupleDesc, attnum - 1),
|
|
130
|
+
(char *) tup + IndexInfoFindDataOffset(tup->t_info)
|
|
131
|
+
+ TupleDescAttr(tupleDesc, attnum - 1)->attcacheoff);
|
|
132
|
+
}
|
|
133
|
+
else
|
|
134
|
+
return nocache_index_getattr(tup, attnum, tupleDesc);
|
|
135
|
+
}
|
|
136
|
+
else
|
|
137
|
+
{
|
|
138
|
+
if (att_isnull(attnum - 1, (bits8 *) tup + sizeof(IndexTupleData)))
|
|
139
|
+
{
|
|
140
|
+
*isnull = true;
|
|
141
|
+
return (Datum) NULL;
|
|
142
|
+
}
|
|
143
|
+
else
|
|
144
|
+
return nocache_index_getattr(tup, attnum, tupleDesc);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
#endif
|
|
128
149
|
|
|
129
150
|
/*
|
|
130
151
|
* MaxIndexTuplesPerPage is an upper bound on the number of tuples that can
|
|
@@ -146,22 +167,4 @@ typedef IndexAttributeBitMapData * IndexAttributeBitMap;
|
|
|
146
167
|
((int) ((BLCKSZ - SizeOfPageHeaderData) / \
|
|
147
168
|
(MAXALIGN(sizeof(IndexTupleData) + 1) + sizeof(ItemIdData))))
|
|
148
169
|
|
|
149
|
-
|
|
150
|
-
/* routines in indextuple.c */
|
|
151
|
-
extern IndexTuple index_form_tuple(TupleDesc tupleDescriptor,
|
|
152
|
-
Datum *values, bool *isnull);
|
|
153
|
-
extern IndexTuple index_form_tuple_context(TupleDesc tupleDescriptor,
|
|
154
|
-
Datum *values, bool *isnull,
|
|
155
|
-
MemoryContext context);
|
|
156
|
-
extern Datum nocache_index_getattr(IndexTuple tup, int attnum,
|
|
157
|
-
TupleDesc tupleDesc);
|
|
158
|
-
extern void index_deform_tuple(IndexTuple tup, TupleDesc tupleDescriptor,
|
|
159
|
-
Datum *values, bool *isnull);
|
|
160
|
-
extern void index_deform_tuple_internal(TupleDesc tupleDescriptor,
|
|
161
|
-
Datum *values, bool *isnull,
|
|
162
|
-
char *tp, bits8 *bp, int hasnulls);
|
|
163
|
-
extern IndexTuple CopyIndexTuple(IndexTuple source);
|
|
164
|
-
extern IndexTuple index_truncate_tuple(TupleDesc sourceDescriptor,
|
|
165
|
-
IndexTuple source, int leavenatts);
|
|
166
|
-
|
|
167
170
|
#endif /* ITUP_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* parallel.h
|
|
4
4
|
* Infrastructure for launching parallel workers
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/access/parallel.h
|
|
@@ -54,7 +54,7 @@ typedef struct ParallelWorkerContext
|
|
|
54
54
|
shm_toc *toc;
|
|
55
55
|
} ParallelWorkerContext;
|
|
56
56
|
|
|
57
|
-
extern PGDLLIMPORT volatile
|
|
57
|
+
extern PGDLLIMPORT volatile sig_atomic_t ParallelMessagePending;
|
|
58
58
|
extern PGDLLIMPORT int ParallelWorkerNumber;
|
|
59
59
|
extern PGDLLIMPORT bool InitializingParallelWorker;
|
|
60
60
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/printtup.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Generic relation related routines.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/relation.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES relation scan descriptor definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/relscan.h
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* by the PG_RMGR macro, which is not defined in this file; it can be
|
|
7
7
|
* defined by the caller for special purposes.
|
|
8
8
|
*
|
|
9
|
-
* Portions Copyright (c) 1996-
|
|
9
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
10
10
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
11
11
|
*
|
|
12
12
|
* src/include/access/rmgrlist.h
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* Changes to this list possibly need an XLOG_PAGE_MAGIC bump.
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
-
/* symbol name, textual name, redo, desc, identify, startup, cleanup */
|
|
27
|
+
/* symbol name, textual name, redo, desc, identify, startup, cleanup, mask, decode */
|
|
28
28
|
PG_RMGR(RM_XLOG_ID, "XLOG", xlog_redo, xlog_desc, xlog_identify, NULL, NULL, NULL, xlog_decode)
|
|
29
29
|
PG_RMGR(RM_XACT_ID, "Transaction", xact_redo, xact_desc, xact_identify, NULL, NULL, NULL, xact_decode)
|
|
30
30
|
PG_RMGR(RM_SMGR_ID, "Storage", smgr_redo, smgr_desc, smgr_identify, NULL, NULL, NULL, NULL)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES scan direction definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/sdir.h
|
|
@@ -16,8 +16,10 @@
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
/*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
19
|
+
* Defines the direction for scanning a table or an index. Scans are never
|
|
20
|
+
* invoked using NoMovementScanDirectionScans. For convenience, we use the
|
|
21
|
+
* values -1 and 1 for backward and forward scans. This allows us to perform
|
|
22
|
+
* a few mathematical tricks such as what is done in ScanDirectionCombine.
|
|
21
23
|
*/
|
|
22
24
|
typedef enum ScanDirection
|
|
23
25
|
{
|
|
@@ -26,6 +28,13 @@ typedef enum ScanDirection
|
|
|
26
28
|
ForwardScanDirection = 1
|
|
27
29
|
} ScanDirection;
|
|
28
30
|
|
|
31
|
+
/*
|
|
32
|
+
* Determine the net effect of two direction specifications.
|
|
33
|
+
* This relies on having ForwardScanDirection = +1, BackwardScanDirection = -1,
|
|
34
|
+
* and will probably not do what you want if applied to any other values.
|
|
35
|
+
*/
|
|
36
|
+
#define ScanDirectionCombine(a, b) ((a) * (b))
|
|
37
|
+
|
|
29
38
|
/*
|
|
30
39
|
* ScanDirectionIsValid
|
|
31
40
|
* True iff scan direction is valid.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES scan key definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/skey.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES strategy number definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/stratnum.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES system attribute definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/sysattr.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Generic routines for table related code.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/table.h
|