pg_query 4.2.1 → 5.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 +31 -0
- data/README.md +6 -8
- data/Rakefile +5 -6
- data/ext/pg_query/extconf.rb +14 -4
- 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/{access → postgres/access}/amapi.h +3 -1
- data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
- data/ext/pg_query/include/{access → postgres/access}/attnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/clog.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/genam.h +7 -5
- data/ext/pg_query/include/{access → postgres/access}/gin.h +16 -3
- data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/htup_details.h +6 -2
- data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -58
- data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relscan.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
- data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/stratnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/table.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/tableam.h +68 -45
- data/ext/pg_query/include/{access → postgres/access}/toast_compression.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/transam.h +1 -1
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
- data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +58 -98
- data/ext/pg_query/include/{access → postgres/access}/twophase.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/xact.h +25 -18
- data/ext/pg_query/include/{access → postgres/access}/xlog.h +15 -16
- data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +100 -62
- data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +6 -25
- data/ext/pg_query/include/{access → postgres/access}/xlogprefetcher.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +7 -6
- data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +17 -5
- data/ext/pg_query/include/{access → postgres/access}/xlogrecovery.h +4 -3
- data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
- data/ext/pg_query/include/{c.h → postgres/c.h} +144 -156
- data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +5 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/genbki.h +7 -6
- data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +4 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/indexing.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +10 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +3 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +19 -17
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -19
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +9 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +3 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +4 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +2 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +6 -6
- data/ext/pg_query/include/{commands → postgres/commands}/async.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +4 -4
- data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +15 -14
- data/ext/pg_query/include/{commands → postgres/commands}/user.h +9 -3
- data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +60 -14
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/{common → postgres/common}/file_perm.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
- data/ext/pg_query/include/postgres/common/int.h +437 -0
- data/ext/pg_query/include/{common → postgres/common}/keywords.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
- data/ext/pg_query/include/{common → postgres/common}/pg_prng.h +3 -2
- data/ext/pg_query/include/{common → postgres/common}/relpath.h +20 -13
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/{common → postgres/common}/string.h +5 -3
- data/ext/pg_query/include/{common → postgres/common}/unicode_east_asian_fw_table.h +10 -10
- data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +31 -13
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
- data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +11 -4
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
- data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/executor.h +34 -17
- data/ext/pg_query/include/{executor → postgres/executor}/functions.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/spi.h +2 -2
- data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
- data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +21 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +12 -12
- data/ext/pg_query/include/postgres/gram.h +1127 -0
- data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
- data/ext/pg_query/include/{jit → postgres/jit}/jit.h +2 -2
- data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
- data/ext/pg_query/include/{lib → postgres/lib}/dshash.h +4 -1
- data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +435 -22
- data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +9 -9
- data/ext/pg_query/include/{lib → postgres/lib}/sort_template.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
- data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +8 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +24 -17
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +36 -25
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +10 -41
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +22 -10
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +35 -18
- data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +27 -15
- data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +83 -30
- data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +5 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +14 -2
- data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +7 -4
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +96 -511
- data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +377 -139
- data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1090 -440
- data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +30 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +367 -124
- data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +670 -222
- data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
- data/ext/pg_query/include/{utils → postgres/nodes}/queryjumble.h +5 -7
- data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/value.h +12 -2
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +6 -4
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +8 -8
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +16 -7
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +3 -6
- data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/kwlist.h +12 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +4 -2
- data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +3 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +22 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +8 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parser.h +4 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
- data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +1 -1
- data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
- data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +158 -218
- data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +8 -46
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +1 -1
- data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
- data/ext/pg_query/include/{pgstat.h → postgres/pgstat.h} +173 -94
- data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +3 -3
- data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +66 -64
- data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
- data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +1 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +2 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +48 -46
- data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +28 -33
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +3 -3
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
- data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
- data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +62 -25
- data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
- data/ext/pg_query/include/postgres/port/simd.h +375 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
- data/ext/pg_query/include/{port.h → postgres/port.h} +42 -75
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +1 -4
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +1 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +6 -3
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/startup.h +3 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +3 -1
- data/ext/pg_query/include/{regex → postgres/regex}/regex.h +9 -6
- data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +6 -1
- data/ext/pg_query/include/{replication → postgres/replication}/logicalproto.h +30 -10
- data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
- data/ext/pg_query/include/{replication → postgres/replication}/origin.h +4 -4
- data/ext/pg_query/include/{replication → postgres/replication}/reorderbuffer.h +113 -45
- data/ext/pg_query/include/{replication → postgres/replication}/slot.h +25 -6
- data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +2 -8
- data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +15 -9
- data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +13 -13
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -4
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -31
- data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +183 -87
- data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +146 -93
- data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +3 -6
- data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +4 -1
- data/ext/pg_query/include/{storage → postgres/storage}/fd.h +24 -20
- data/ext/pg_query/include/{storage → postgres/storage}/fileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +94 -57
- data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/latch.h +9 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +6 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lock.h +21 -13
- data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +16 -2
- data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proc.h +22 -17
- data/ext/pg_query/include/{storage → postgres/storage}/procarray.h +3 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +3 -1
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +66 -309
- data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
- data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
- data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +12 -10
- data/ext/pg_query/include/{storage → postgres/storage}/spin.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/standby.h +9 -8
- data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/sync.h +3 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +3 -6
- data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +1 -1
- data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +2 -4
- data/ext/pg_query/include/{utils → postgres/utils}/acl.h +26 -81
- data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/array.h +19 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_progress.h +2 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_status.h +24 -3
- data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +15 -6
- data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
- data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +41 -21
- data/ext/pg_query/include/{utils → postgres/utils}/datum.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/elog.h +104 -29
- data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
- data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
- data/ext/pg_query/include/{utils → postgres/utils}/float.h +7 -6
- data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +54 -1
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +45 -3
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/guc.h +59 -86
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +49 -3
- data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/inval.h +3 -3
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +7 -51
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
- data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +20 -5
- data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +9 -2
- data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +22 -14
- data/ext/pg_query/include/{utils → postgres/utils}/pgstat_internal.h +37 -7
- data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/portal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/probes.h +6 -6
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/regproc.h +3 -3
- data/ext/pg_query/include/{utils → postgres/utils}/rel.h +60 -43
- data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +13 -8
- data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +6 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +4 -2
- data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +2 -2
- data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +4 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +41 -11
- data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +189 -35
- data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +13 -1
- data/ext/pg_query/include/{utils → postgres/utils}/wait_event.h +9 -4
- data/ext/pg_query/include/{utils → postgres/utils}/xml.h +15 -5
- data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +7 -457
- 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/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +19755 -17757
- data/ext/pg_query/pg_query_deparse.c +1 -10635
- data/ext/pg_query/pg_query_fingerprint.c +12 -8
- 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_json.c +6 -0
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +7 -5
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +3 -3
- data/ext/pg_query/postgres_deparse.c +11067 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- 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_nodes.c +38 -0
- 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_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 +371 -249
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
- data/ext/pg_query/src_backend_utils_init_globals.c +6 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +21 -67
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -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 +79 -5
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +6 -10
- data/ext/pg_query/src_port_strerror.c +1 -1
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +2 -3
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/parse.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +166 -3191
- data/lib/pg_query/treewalker.rb +23 -5
- data/lib/pg_query/version.rb +1 -1
- metadata +432 -380
- data/ext/pg_query/guc-file.c +0 -0
- 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/common/ip.h +0 -31
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/kwlist_d.h +0 -1095
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/pgarch.h +0 -73
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- 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/pidfile.h +0 -56
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- 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_postmaster_postmaster.c +0 -2201
- 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
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
- /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
- /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* regproc.h
|
|
4
4
|
* Functions for the built-in types regproc, regclass, regtype, etc.
|
|
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/utils/regproc.h
|
|
@@ -25,10 +25,10 @@ extern char *format_procedure_extended(Oid procedure_oid, bits16 flags);
|
|
|
25
25
|
#define FORMAT_OPERATOR_FORCE_QUALIFY 0x02 /* force qualification */
|
|
26
26
|
extern char *format_operator_extended(Oid operator_oid, bits16 flags);
|
|
27
27
|
|
|
28
|
-
extern List *stringToQualifiedNameList(const char *string);
|
|
28
|
+
extern List *stringToQualifiedNameList(const char *string, Node *escontext);
|
|
29
29
|
extern char *format_procedure(Oid procedure_oid);
|
|
30
30
|
extern char *format_procedure_qualified(Oid procedure_oid);
|
|
31
|
-
extern void format_procedure_parts(Oid
|
|
31
|
+
extern void format_procedure_parts(Oid procedure_oid, List **objnames,
|
|
32
32
|
List **objargs, bool missing_ok);
|
|
33
33
|
|
|
34
34
|
extern char *format_operator(Oid operator_oid);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES relation descriptor (a/k/a relcache entry) 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/utils/rel.h
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
#include "access/tupdesc.h"
|
|
18
18
|
#include "access/xlog.h"
|
|
19
|
+
#include "catalog/catalog.h"
|
|
19
20
|
#include "catalog/pg_class.h"
|
|
20
21
|
#include "catalog/pg_index.h"
|
|
21
22
|
#include "catalog/pg_publication.h"
|
|
@@ -23,7 +24,7 @@
|
|
|
23
24
|
#include "partitioning/partdefs.h"
|
|
24
25
|
#include "rewrite/prs2lock.h"
|
|
25
26
|
#include "storage/block.h"
|
|
26
|
-
#include "storage/
|
|
27
|
+
#include "storage/relfilelocator.h"
|
|
27
28
|
#include "storage/smgr.h"
|
|
28
29
|
#include "utils/relcache.h"
|
|
29
30
|
#include "utils/reltrigger.h"
|
|
@@ -53,7 +54,7 @@ typedef LockInfoData *LockInfo;
|
|
|
53
54
|
|
|
54
55
|
typedef struct RelationData
|
|
55
56
|
{
|
|
56
|
-
|
|
57
|
+
RelFileLocator rd_locator; /* relation physical identifier */
|
|
57
58
|
SMgrRelation rd_smgr; /* cached file handle, or NULL */
|
|
58
59
|
int rd_refcnt; /* reference count */
|
|
59
60
|
BackendId rd_backend; /* owning backend id, if temporary relation */
|
|
@@ -66,44 +67,45 @@ typedef struct RelationData
|
|
|
66
67
|
|
|
67
68
|
/*----------
|
|
68
69
|
* rd_createSubid is the ID of the highest subtransaction the rel has
|
|
69
|
-
* survived into or zero if the rel or its
|
|
70
|
-
* current top transaction. (IndexStmt.
|
|
71
|
-
* rel with an old
|
|
72
|
-
* highest subtransaction an
|
|
73
|
-
*
|
|
70
|
+
* survived into or zero if the rel or its storage was created before the
|
|
71
|
+
* current top transaction. (IndexStmt.oldNumber leads to the case of a new
|
|
72
|
+
* rel with an old rd_locator.) rd_firstRelfilelocatorSubid is the ID of the
|
|
73
|
+
* highest subtransaction an rd_locator change has survived into or zero if
|
|
74
|
+
* rd_locator matches the value it had at the start of the current top
|
|
74
75
|
* transaction. (Rolling back the subtransaction that
|
|
75
|
-
*
|
|
76
|
+
* rd_firstRelfilelocatorSubid denotes would restore rd_locator to the value it
|
|
76
77
|
* had at the start of the current top transaction. Rolling back any
|
|
77
78
|
* lower subtransaction would not.) Their accuracy is critical to
|
|
78
79
|
* RelationNeedsWAL().
|
|
79
80
|
*
|
|
80
|
-
*
|
|
81
|
-
* most-recent
|
|
81
|
+
* rd_newRelfilelocatorSubid is the ID of the highest subtransaction the
|
|
82
|
+
* most-recent relfilenumber change has survived into or zero if not changed
|
|
82
83
|
* in the current transaction (or we have forgotten changing it). This
|
|
83
84
|
* field is accurate when non-zero, but it can be zero when a relation has
|
|
84
|
-
* multiple new
|
|
85
|
+
* multiple new relfilenumbers within a single transaction, with one of them
|
|
85
86
|
* occurring in a subsequently aborted subtransaction, e.g.
|
|
86
87
|
* BEGIN;
|
|
87
88
|
* TRUNCATE t;
|
|
88
89
|
* SAVEPOINT save;
|
|
89
90
|
* TRUNCATE t;
|
|
90
91
|
* ROLLBACK TO save;
|
|
91
|
-
* --
|
|
92
|
+
* -- rd_newRelfilelocatorSubid is now forgotten
|
|
92
93
|
*
|
|
93
94
|
* If every rd_*Subid field is zero, they are read-only outside
|
|
94
|
-
* relcache.c. Files that trigger
|
|
95
|
+
* relcache.c. Files that trigger rd_locator changes by updating
|
|
95
96
|
* pg_class.reltablespace and/or pg_class.relfilenode call
|
|
96
|
-
*
|
|
97
|
+
* RelationAssumeNewRelfilelocator() to update rd_*Subid.
|
|
97
98
|
*
|
|
98
99
|
* rd_droppedSubid is the ID of the highest subtransaction that a drop of
|
|
99
100
|
* the rel has survived into. In entries visible outside relcache.c, this
|
|
100
101
|
* is always zero.
|
|
101
102
|
*/
|
|
102
103
|
SubTransactionId rd_createSubid; /* rel was created in current xact */
|
|
103
|
-
SubTransactionId
|
|
104
|
-
*
|
|
105
|
-
SubTransactionId
|
|
106
|
-
|
|
104
|
+
SubTransactionId rd_newRelfilelocatorSubid; /* highest subxact changing
|
|
105
|
+
* rd_locator to current value */
|
|
106
|
+
SubTransactionId rd_firstRelfilelocatorSubid; /* highest subxact
|
|
107
|
+
* changing rd_locator to
|
|
108
|
+
* any value */
|
|
107
109
|
SubTransactionId rd_droppedSubid; /* dropped with another Subid set */
|
|
108
110
|
|
|
109
111
|
Form_pg_class rd_rel; /* RELATION tuple */
|
|
@@ -155,10 +157,12 @@ typedef struct RelationData
|
|
|
155
157
|
List *rd_statlist; /* list of OIDs of extended stats */
|
|
156
158
|
|
|
157
159
|
/* data managed by RelationGetIndexAttrBitmap: */
|
|
158
|
-
|
|
160
|
+
bool rd_attrsvalid; /* are bitmaps of attrs valid? */
|
|
159
161
|
Bitmapset *rd_keyattr; /* cols that can be ref'd by foreign keys */
|
|
160
162
|
Bitmapset *rd_pkattr; /* cols included in primary key */
|
|
161
163
|
Bitmapset *rd_idattr; /* included in replica identity index */
|
|
164
|
+
Bitmapset *rd_hotblockingattr; /* cols blocking HOT update */
|
|
165
|
+
Bitmapset *rd_summarizedattr; /* cols indexed by summarizing indexes */
|
|
162
166
|
|
|
163
167
|
PublicationDesc *rd_pubdesc; /* publication descriptor, or NULL */
|
|
164
168
|
|
|
@@ -267,15 +271,27 @@ typedef struct RelationData
|
|
|
267
271
|
*/
|
|
268
272
|
typedef struct ForeignKeyCacheInfo
|
|
269
273
|
{
|
|
274
|
+
pg_node_attr(no_equal, no_read, no_query_jumble)
|
|
275
|
+
|
|
270
276
|
NodeTag type;
|
|
271
|
-
|
|
272
|
-
Oid
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
/*
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
277
|
+
/* oid of the constraint itself */
|
|
278
|
+
Oid conoid;
|
|
279
|
+
/* relation constrained by the foreign key */
|
|
280
|
+
Oid conrelid;
|
|
281
|
+
/* relation referenced by the foreign key */
|
|
282
|
+
Oid confrelid;
|
|
283
|
+
/* number of columns in the foreign key */
|
|
284
|
+
int nkeys;
|
|
285
|
+
|
|
286
|
+
/*
|
|
287
|
+
* these arrays each have nkeys valid entries:
|
|
288
|
+
*/
|
|
289
|
+
/* cols in referencing table */
|
|
290
|
+
AttrNumber conkey[INDEX_MAX_KEYS] pg_node_attr(array_size(nkeys));
|
|
291
|
+
/* cols in referenced table */
|
|
292
|
+
AttrNumber confkey[INDEX_MAX_KEYS] pg_node_attr(array_size(nkeys));
|
|
293
|
+
/* PK = FK operator OIDs */
|
|
294
|
+
Oid conpfeqop[INDEX_MAX_KEYS] pg_node_attr(array_size(nkeys));
|
|
279
295
|
} ForeignKeyCacheInfo;
|
|
280
296
|
|
|
281
297
|
|
|
@@ -531,13 +547,14 @@ typedef struct ViewOptions
|
|
|
531
547
|
|
|
532
548
|
/*
|
|
533
549
|
* RelationIsMapped
|
|
534
|
-
* True if the relation uses the
|
|
550
|
+
* True if the relation uses the relfilenumber map. Note multiple eval
|
|
535
551
|
* of argument!
|
|
536
552
|
*/
|
|
537
553
|
#define RelationIsMapped(relation) \
|
|
538
554
|
(RELKIND_HAS_STORAGE((relation)->rd_rel->relkind) && \
|
|
539
|
-
((relation)->rd_rel->relfilenode ==
|
|
555
|
+
((relation)->rd_rel->relfilenode == InvalidRelFileNumber))
|
|
540
556
|
|
|
557
|
+
#ifndef FRONTEND
|
|
541
558
|
/*
|
|
542
559
|
* RelationGetSmgr
|
|
543
560
|
* Returns smgr file handle for a relation, opening it if needed.
|
|
@@ -555,24 +572,24 @@ static inline SMgrRelation
|
|
|
555
572
|
RelationGetSmgr(Relation rel)
|
|
556
573
|
{
|
|
557
574
|
if (unlikely(rel->rd_smgr == NULL))
|
|
558
|
-
smgrsetowner(&(rel->rd_smgr), smgropen(rel->
|
|
575
|
+
smgrsetowner(&(rel->rd_smgr), smgropen(rel->rd_locator, rel->rd_backend));
|
|
559
576
|
return rel->rd_smgr;
|
|
560
577
|
}
|
|
561
578
|
|
|
562
579
|
/*
|
|
563
580
|
* RelationCloseSmgr
|
|
564
581
|
* Close the relation at the smgr level, if not already done.
|
|
565
|
-
*
|
|
566
|
-
* Note: smgrclose should unhook from owner pointer, hence the Assert.
|
|
567
582
|
*/
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
583
|
+
static inline void
|
|
584
|
+
RelationCloseSmgr(Relation relation)
|
|
585
|
+
{
|
|
586
|
+
if (relation->rd_smgr != NULL)
|
|
587
|
+
smgrclose(relation->rd_smgr);
|
|
588
|
+
|
|
589
|
+
/* smgrclose should unhook from owner pointer */
|
|
590
|
+
Assert(relation->rd_smgr == NULL);
|
|
591
|
+
}
|
|
592
|
+
#endif /* !FRONTEND */
|
|
576
593
|
|
|
577
594
|
/*
|
|
578
595
|
* RelationGetTargetBlock
|
|
@@ -607,12 +624,12 @@ RelationGetSmgr(Relation rel)
|
|
|
607
624
|
*
|
|
608
625
|
* Returns false if wal_level = minimal and this relation is created or
|
|
609
626
|
* truncated in the current transaction. See "Skipping WAL for New
|
|
610
|
-
*
|
|
627
|
+
* RelFileLocator" in src/backend/access/transam/README.
|
|
611
628
|
*/
|
|
612
629
|
#define RelationNeedsWAL(relation) \
|
|
613
630
|
(RelationIsPermanent(relation) && (XLogIsNeeded() || \
|
|
614
631
|
(relation->rd_createSubid == InvalidSubTransactionId && \
|
|
615
|
-
relation->
|
|
632
|
+
relation->rd_firstRelfilelocatorSubid == InvalidSubTransactionId)))
|
|
616
633
|
|
|
617
634
|
/*
|
|
618
635
|
* RelationUsesLocalBuffers
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Relation descriptor cache 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/utils/relcache.h
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#define RELCACHE_H
|
|
16
16
|
|
|
17
17
|
#include "access/tupdesc.h"
|
|
18
|
+
#include "common/relpath.h"
|
|
18
19
|
#include "nodes/bitmapset.h"
|
|
19
20
|
|
|
20
21
|
|
|
@@ -50,15 +51,19 @@ extern Oid RelationGetReplicaIndex(Relation relation);
|
|
|
50
51
|
extern List *RelationGetIndexExpressions(Relation relation);
|
|
51
52
|
extern List *RelationGetDummyIndexExpressions(Relation relation);
|
|
52
53
|
extern List *RelationGetIndexPredicate(Relation relation);
|
|
53
|
-
extern Datum *RelationGetIndexRawAttOptions(Relation
|
|
54
|
+
extern Datum *RelationGetIndexRawAttOptions(Relation indexrel);
|
|
54
55
|
extern bytea **RelationGetIndexAttOptions(Relation relation, bool copy);
|
|
55
56
|
|
|
57
|
+
/*
|
|
58
|
+
* Which set of columns to return by RelationGetIndexAttrBitmap.
|
|
59
|
+
*/
|
|
56
60
|
typedef enum IndexAttrBitmapKind
|
|
57
61
|
{
|
|
58
|
-
INDEX_ATTR_BITMAP_ALL,
|
|
59
62
|
INDEX_ATTR_BITMAP_KEY,
|
|
60
63
|
INDEX_ATTR_BITMAP_PRIMARY_KEY,
|
|
61
|
-
INDEX_ATTR_BITMAP_IDENTITY_KEY
|
|
64
|
+
INDEX_ATTR_BITMAP_IDENTITY_KEY,
|
|
65
|
+
INDEX_ATTR_BITMAP_HOT_BLOCKING,
|
|
66
|
+
INDEX_ATTR_BITMAP_SUMMARIZED
|
|
62
67
|
} IndexAttrBitmapKind;
|
|
63
68
|
|
|
64
69
|
extern Bitmapset *RelationGetIndexAttrBitmap(Relation relation,
|
|
@@ -103,7 +108,7 @@ extern Relation RelationBuildLocalRelation(const char *relname,
|
|
|
103
108
|
TupleDesc tupDesc,
|
|
104
109
|
Oid relid,
|
|
105
110
|
Oid accessmtd,
|
|
106
|
-
|
|
111
|
+
RelFileNumber relfilenumber,
|
|
107
112
|
Oid reltablespace,
|
|
108
113
|
bool shared_relation,
|
|
109
114
|
bool mapped_relation,
|
|
@@ -111,10 +116,10 @@ extern Relation RelationBuildLocalRelation(const char *relname,
|
|
|
111
116
|
char relkind);
|
|
112
117
|
|
|
113
118
|
/*
|
|
114
|
-
* Routines to manage assignment of new
|
|
119
|
+
* Routines to manage assignment of new relfilenumber to a relation
|
|
115
120
|
*/
|
|
116
|
-
extern void
|
|
117
|
-
extern void
|
|
121
|
+
extern void RelationSetNewRelfilenumber(Relation relation, char persistence);
|
|
122
|
+
extern void RelationAssumeNewRelfilelocator(Relation relation);
|
|
118
123
|
|
|
119
124
|
/*
|
|
120
125
|
* Routines for flushing/rebuilding relcache entries in various scenarios
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES relation trigger 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/utils/reltrigger.h
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* See utils/resowner/README for more info.
|
|
10
10
|
*
|
|
11
11
|
*
|
|
12
|
-
* Portions Copyright (c) 1996-
|
|
12
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
13
13
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
14
14
|
*
|
|
15
15
|
* src/include/utils/resowner.h
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* ruleutils.h
|
|
4
4
|
* Declarations for ruleutils.c
|
|
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/utils/ruleutils.h
|
|
@@ -20,9 +20,14 @@
|
|
|
20
20
|
struct Plan; /* avoid including plannodes.h here */
|
|
21
21
|
struct PlannedStmt;
|
|
22
22
|
|
|
23
|
+
/* Flags for pg_get_indexdef_columns_extended() */
|
|
24
|
+
#define RULE_INDEXDEF_PRETTY 0x01
|
|
25
|
+
#define RULE_INDEXDEF_KEYS_ONLY 0x02 /* ignore included attributes */
|
|
23
26
|
|
|
24
27
|
extern char *pg_get_indexdef_string(Oid indexrelid);
|
|
25
28
|
extern char *pg_get_indexdef_columns(Oid indexrelid, bool pretty);
|
|
29
|
+
extern char *pg_get_indexdef_columns_extended(Oid indexrelid,
|
|
30
|
+
bits16 flags);
|
|
26
31
|
extern char *pg_get_querydef(Query *query, bool pretty);
|
|
27
32
|
|
|
28
33
|
extern char *pg_get_partkeydef_columns(Oid relid, bool pretty);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* sharedtuplestore.h
|
|
4
4
|
* Simple mechanism for sharing tuples between backends.
|
|
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/utils/sharedtuplestore.h
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* snapmgr.h
|
|
4
4
|
* POSTGRES snapshot 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/utils/snapmgr.h
|
|
@@ -97,11 +97,13 @@ extern PGDLLIMPORT SnapshotData CatalogSnapshotData;
|
|
|
97
97
|
((snapshot)->snapshot_type == SNAPSHOT_MVCC || \
|
|
98
98
|
(snapshot)->snapshot_type == SNAPSHOT_HISTORIC_MVCC)
|
|
99
99
|
|
|
100
|
+
#ifndef FRONTEND
|
|
100
101
|
static inline bool
|
|
101
102
|
OldSnapshotThresholdActive(void)
|
|
102
103
|
{
|
|
103
104
|
return old_snapshot_threshold >= 0;
|
|
104
105
|
}
|
|
106
|
+
#endif
|
|
105
107
|
|
|
106
108
|
extern Snapshot GetTransactionSnapshot(void);
|
|
107
109
|
extern Snapshot GetLatestSnapshot(void);
|
|
@@ -167,7 +169,7 @@ extern bool XidInMVCCSnapshot(TransactionId xid, Snapshot snapshot);
|
|
|
167
169
|
/* Support for catalog timetravel for logical decoding */
|
|
168
170
|
struct HTAB;
|
|
169
171
|
extern struct HTAB *HistoricSnapshotGetTupleCids(void);
|
|
170
|
-
extern void SetupHistoricSnapshot(Snapshot
|
|
172
|
+
extern void SetupHistoricSnapshot(Snapshot historic_snapshot, struct HTAB *tuplecids);
|
|
171
173
|
extern void TeardownHistoricSnapshot(bool is_error);
|
|
172
174
|
extern bool HistoricSnapshotActive(void);
|
|
173
175
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* snapshot.h
|
|
4
4
|
* POSTGRES snapshot definition
|
|
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/utils/snapshot.h
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
* function for such cases, but probably not any other acceleration method.
|
|
43
43
|
*
|
|
44
44
|
*
|
|
45
|
-
* Portions Copyright (c) 1996-
|
|
45
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
46
46
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
47
47
|
*
|
|
48
48
|
* src/include/utils/sortsupport.h
|
|
@@ -372,7 +372,7 @@ ApplySortAbbrevFullComparator(Datum datum1, bool isNull1,
|
|
|
372
372
|
|
|
373
373
|
/*
|
|
374
374
|
* Datum comparison functions that we have specialized sort routines for.
|
|
375
|
-
* Datatypes that install these as their comparator or
|
|
375
|
+
* Datatypes that install these as their comparator or abbreviated comparator
|
|
376
376
|
* are eligible for faster sorting.
|
|
377
377
|
*/
|
|
378
378
|
extern int ssup_datum_unsigned_cmp(Datum x, Datum y, SortSupport ssup);
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* See also lsyscache.h, which provides convenience routines for
|
|
7
7
|
* common cache-lookup operations.
|
|
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/utils/syscache.h
|
|
@@ -157,6 +157,9 @@ extern HeapTuple SearchSysCacheCopyAttNum(Oid relid, int16 attnum);
|
|
|
157
157
|
extern Datum SysCacheGetAttr(int cacheId, HeapTuple tup,
|
|
158
158
|
AttrNumber attributeNumber, bool *isNull);
|
|
159
159
|
|
|
160
|
+
extern Datum SysCacheGetAttrNotNull(int cacheId, HeapTuple tup,
|
|
161
|
+
AttrNumber attributeNumber);
|
|
162
|
+
|
|
160
163
|
extern uint32 GetSysCacheHashValue(int cacheId,
|
|
161
164
|
Datum key1, Datum key2, Datum key3, Datum key4);
|
|
162
165
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Routines to multiplex SIGALRM interrupts for multiple timeout reasons.
|
|
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/utils/timeout.h
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* timestamp.h
|
|
4
4
|
* Definitions for the SQL "timestamp" and "interval" types.
|
|
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/utils/timestamp.h
|
|
@@ -19,18 +19,46 @@
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
/*
|
|
22
|
-
*
|
|
22
|
+
* Functions for fmgr-callable functions.
|
|
23
23
|
*
|
|
24
24
|
* For Timestamp, we make use of the same support routines as for int64.
|
|
25
25
|
* Therefore Timestamp is pass-by-reference if and only if int64 is!
|
|
26
26
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
static inline Timestamp
|
|
28
|
+
DatumGetTimestamp(Datum X)
|
|
29
|
+
{
|
|
30
|
+
return (Timestamp) DatumGetInt64(X);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static inline TimestampTz
|
|
34
|
+
DatumGetTimestampTz(Datum X)
|
|
35
|
+
{
|
|
36
|
+
return (TimestampTz) DatumGetInt64(X);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
static inline Interval *
|
|
40
|
+
DatumGetIntervalP(Datum X)
|
|
41
|
+
{
|
|
42
|
+
return (Interval *) DatumGetPointer(X);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static inline Datum
|
|
46
|
+
TimestampGetDatum(Timestamp X)
|
|
47
|
+
{
|
|
48
|
+
return Int64GetDatum(X);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static inline Datum
|
|
52
|
+
TimestampTzGetDatum(TimestampTz X)
|
|
53
|
+
{
|
|
54
|
+
return Int64GetDatum(X);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static inline Datum
|
|
58
|
+
IntervalPGetDatum(const Interval *X)
|
|
59
|
+
{
|
|
60
|
+
return PointerGetDatum(X);
|
|
61
|
+
}
|
|
34
62
|
|
|
35
63
|
#define PG_GETARG_TIMESTAMP(n) DatumGetTimestamp(PG_GETARG_DATUM(n))
|
|
36
64
|
#define PG_GETARG_TIMESTAMPTZ(n) DatumGetTimestampTz(PG_GETARG_DATUM(n))
|
|
@@ -53,7 +81,9 @@
|
|
|
53
81
|
#define INTERVAL_PRECISION(t) ((t) & INTERVAL_PRECISION_MASK)
|
|
54
82
|
#define INTERVAL_RANGE(t) (((t) >> 16) & INTERVAL_RANGE_MASK)
|
|
55
83
|
|
|
84
|
+
/* Macros for doing timestamp arithmetic without assuming timestamp's units */
|
|
56
85
|
#define TimestampTzPlusMilliseconds(tz,ms) ((tz) + ((ms) * (int64) 1000))
|
|
86
|
+
#define TimestampTzPlusSeconds(tz,s) ((tz) + ((s) * (int64) 1000000))
|
|
57
87
|
|
|
58
88
|
|
|
59
89
|
/* Set at postmaster start */
|
|
@@ -83,10 +113,10 @@ extern pg_time_t timestamptz_to_time_t(TimestampTz t);
|
|
|
83
113
|
|
|
84
114
|
extern const char *timestamptz_to_str(TimestampTz t);
|
|
85
115
|
|
|
86
|
-
extern int tm2timestamp(struct pg_tm *tm, fsec_t fsec, int *tzp, Timestamp *
|
|
116
|
+
extern int tm2timestamp(struct pg_tm *tm, fsec_t fsec, int *tzp, Timestamp *result);
|
|
87
117
|
extern int timestamp2tm(Timestamp dt, int *tzp, struct pg_tm *tm,
|
|
88
118
|
fsec_t *fsec, const char **tzn, pg_tz *attimezone);
|
|
89
|
-
extern void dt2time(Timestamp
|
|
119
|
+
extern void dt2time(Timestamp jd, int *hour, int *min, int *sec, fsec_t *fsec);
|
|
90
120
|
|
|
91
121
|
extern void interval2itm(Interval span, struct pg_itm *itm);
|
|
92
122
|
extern int itm2interval(struct pg_itm *itm, Interval *span);
|