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
|
@@ -1,56 +1,19 @@
|
|
|
1
1
|
/*-------------------------------------------------------------------------
|
|
2
2
|
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* varatt.h
|
|
4
|
+
* variable-length datatypes (TOAST support)
|
|
5
5
|
*
|
|
6
|
-
* This should be the first file included by PostgreSQL backend modules.
|
|
7
|
-
* Client-side code should include postgres_fe.h instead.
|
|
8
6
|
*
|
|
9
|
-
*
|
|
10
|
-
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
11
8
|
* Portions Copyright (c) 1995, Regents of the University of California
|
|
12
9
|
*
|
|
13
|
-
* src/include/
|
|
10
|
+
* src/include/varatt.h
|
|
14
11
|
*
|
|
15
12
|
*-------------------------------------------------------------------------
|
|
16
13
|
*/
|
|
17
|
-
/*
|
|
18
|
-
*----------------------------------------------------------------
|
|
19
|
-
* TABLE OF CONTENTS
|
|
20
|
-
*
|
|
21
|
-
* When adding stuff to this file, please try to put stuff
|
|
22
|
-
* into the relevant section, or add new sections as appropriate.
|
|
23
|
-
*
|
|
24
|
-
* section description
|
|
25
|
-
* ------- ------------------------------------------------
|
|
26
|
-
* 1) variable-length datatypes (TOAST support)
|
|
27
|
-
* 2) Datum type + support macros
|
|
28
|
-
*
|
|
29
|
-
* NOTES
|
|
30
|
-
*
|
|
31
|
-
* In general, this file should contain declarations that are widely needed
|
|
32
|
-
* in the backend environment, but are of no interest outside the backend.
|
|
33
|
-
*
|
|
34
|
-
* Simple type definitions live in c.h, where they are shared with
|
|
35
|
-
* postgres_fe.h. We do that since those type definitions are needed by
|
|
36
|
-
* frontend modules that want to deal with binary data transmission to or
|
|
37
|
-
* from the backend. Type definitions in this file should be for
|
|
38
|
-
* representations that never escape the backend, such as Datum or
|
|
39
|
-
* TOASTed varlena objects.
|
|
40
|
-
*
|
|
41
|
-
*----------------------------------------------------------------
|
|
42
|
-
*/
|
|
43
|
-
#ifndef POSTGRES_H
|
|
44
|
-
#define POSTGRES_H
|
|
45
|
-
|
|
46
|
-
#include "c.h"
|
|
47
|
-
#include "utils/elog.h"
|
|
48
|
-
#include "utils/palloc.h"
|
|
49
14
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
* ----------------------------------------------------------------
|
|
53
|
-
*/
|
|
15
|
+
#ifndef VARATT_H
|
|
16
|
+
#define VARATT_H
|
|
54
17
|
|
|
55
18
|
/*
|
|
56
19
|
* struct varatt_external is a traditional "TOAST pointer", that is, the
|
|
@@ -134,7 +97,7 @@ typedef enum vartag_external
|
|
|
134
97
|
((tag) == VARTAG_INDIRECT ? sizeof(varatt_indirect) : \
|
|
135
98
|
VARTAG_IS_EXPANDED(tag) ? sizeof(varatt_expanded) : \
|
|
136
99
|
(tag) == VARTAG_ONDISK ? sizeof(varatt_external) : \
|
|
137
|
-
|
|
100
|
+
(AssertMacro(false), 0))
|
|
138
101
|
|
|
139
102
|
/*
|
|
140
103
|
* These structs describe the header of a varlena object that may have been
|
|
@@ -392,417 +355,4 @@ typedef struct
|
|
|
392
355
|
(VARATT_EXTERNAL_GET_EXTSIZE(toast_pointer) < \
|
|
393
356
|
(toast_pointer).va_rawsize - VARHDRSZ)
|
|
394
357
|
|
|
395
|
-
|
|
396
|
-
/* ----------------------------------------------------------------
|
|
397
|
-
* Section 2: Datum type + support macros
|
|
398
|
-
* ----------------------------------------------------------------
|
|
399
|
-
*/
|
|
400
|
-
|
|
401
|
-
/*
|
|
402
|
-
* A Datum contains either a value of a pass-by-value type or a pointer to a
|
|
403
|
-
* value of a pass-by-reference type. Therefore, we require:
|
|
404
|
-
*
|
|
405
|
-
* sizeof(Datum) == sizeof(void *) == 4 or 8
|
|
406
|
-
*
|
|
407
|
-
* The macros below and the analogous macros for other types should be used to
|
|
408
|
-
* convert between a Datum and the appropriate C type.
|
|
409
|
-
*/
|
|
410
|
-
|
|
411
|
-
typedef uintptr_t Datum;
|
|
412
|
-
|
|
413
|
-
/*
|
|
414
|
-
* A NullableDatum is used in places where both a Datum and its nullness needs
|
|
415
|
-
* to be stored. This can be more efficient than storing datums and nullness
|
|
416
|
-
* in separate arrays, due to better spatial locality, even if more space may
|
|
417
|
-
* be wasted due to padding.
|
|
418
|
-
*/
|
|
419
|
-
typedef struct NullableDatum
|
|
420
|
-
{
|
|
421
|
-
#define FIELDNO_NULLABLE_DATUM_DATUM 0
|
|
422
|
-
Datum value;
|
|
423
|
-
#define FIELDNO_NULLABLE_DATUM_ISNULL 1
|
|
424
|
-
bool isnull;
|
|
425
|
-
/* due to alignment padding this could be used for flags for free */
|
|
426
|
-
} NullableDatum;
|
|
427
|
-
|
|
428
|
-
#define SIZEOF_DATUM SIZEOF_VOID_P
|
|
429
|
-
|
|
430
|
-
/*
|
|
431
|
-
* DatumGetBool
|
|
432
|
-
* Returns boolean value of a datum.
|
|
433
|
-
*
|
|
434
|
-
* Note: any nonzero value will be considered true.
|
|
435
|
-
*/
|
|
436
|
-
|
|
437
|
-
#define DatumGetBool(X) ((bool) ((X) != 0))
|
|
438
|
-
|
|
439
|
-
/*
|
|
440
|
-
* BoolGetDatum
|
|
441
|
-
* Returns datum representation for a boolean.
|
|
442
|
-
*
|
|
443
|
-
* Note: any nonzero value will be considered true.
|
|
444
|
-
*/
|
|
445
|
-
|
|
446
|
-
#define BoolGetDatum(X) ((Datum) ((X) ? 1 : 0))
|
|
447
|
-
|
|
448
|
-
/*
|
|
449
|
-
* DatumGetChar
|
|
450
|
-
* Returns character value of a datum.
|
|
451
|
-
*/
|
|
452
|
-
|
|
453
|
-
#define DatumGetChar(X) ((char) (X))
|
|
454
|
-
|
|
455
|
-
/*
|
|
456
|
-
* CharGetDatum
|
|
457
|
-
* Returns datum representation for a character.
|
|
458
|
-
*/
|
|
459
|
-
|
|
460
|
-
#define CharGetDatum(X) ((Datum) (X))
|
|
461
|
-
|
|
462
|
-
/*
|
|
463
|
-
* Int8GetDatum
|
|
464
|
-
* Returns datum representation for an 8-bit integer.
|
|
465
|
-
*/
|
|
466
|
-
|
|
467
|
-
#define Int8GetDatum(X) ((Datum) (X))
|
|
468
|
-
|
|
469
|
-
/*
|
|
470
|
-
* DatumGetUInt8
|
|
471
|
-
* Returns 8-bit unsigned integer value of a datum.
|
|
472
|
-
*/
|
|
473
|
-
|
|
474
|
-
#define DatumGetUInt8(X) ((uint8) (X))
|
|
475
|
-
|
|
476
|
-
/*
|
|
477
|
-
* UInt8GetDatum
|
|
478
|
-
* Returns datum representation for an 8-bit unsigned integer.
|
|
479
|
-
*/
|
|
480
|
-
|
|
481
|
-
#define UInt8GetDatum(X) ((Datum) (X))
|
|
482
|
-
|
|
483
|
-
/*
|
|
484
|
-
* DatumGetInt16
|
|
485
|
-
* Returns 16-bit integer value of a datum.
|
|
486
|
-
*/
|
|
487
|
-
|
|
488
|
-
#define DatumGetInt16(X) ((int16) (X))
|
|
489
|
-
|
|
490
|
-
/*
|
|
491
|
-
* Int16GetDatum
|
|
492
|
-
* Returns datum representation for a 16-bit integer.
|
|
493
|
-
*/
|
|
494
|
-
|
|
495
|
-
#define Int16GetDatum(X) ((Datum) (X))
|
|
496
|
-
|
|
497
|
-
/*
|
|
498
|
-
* DatumGetUInt16
|
|
499
|
-
* Returns 16-bit unsigned integer value of a datum.
|
|
500
|
-
*/
|
|
501
|
-
|
|
502
|
-
#define DatumGetUInt16(X) ((uint16) (X))
|
|
503
|
-
|
|
504
|
-
/*
|
|
505
|
-
* UInt16GetDatum
|
|
506
|
-
* Returns datum representation for a 16-bit unsigned integer.
|
|
507
|
-
*/
|
|
508
|
-
|
|
509
|
-
#define UInt16GetDatum(X) ((Datum) (X))
|
|
510
|
-
|
|
511
|
-
/*
|
|
512
|
-
* DatumGetInt32
|
|
513
|
-
* Returns 32-bit integer value of a datum.
|
|
514
|
-
*/
|
|
515
|
-
|
|
516
|
-
#define DatumGetInt32(X) ((int32) (X))
|
|
517
|
-
|
|
518
|
-
/*
|
|
519
|
-
* Int32GetDatum
|
|
520
|
-
* Returns datum representation for a 32-bit integer.
|
|
521
|
-
*/
|
|
522
|
-
|
|
523
|
-
#define Int32GetDatum(X) ((Datum) (X))
|
|
524
|
-
|
|
525
|
-
/*
|
|
526
|
-
* DatumGetUInt32
|
|
527
|
-
* Returns 32-bit unsigned integer value of a datum.
|
|
528
|
-
*/
|
|
529
|
-
|
|
530
|
-
#define DatumGetUInt32(X) ((uint32) (X))
|
|
531
|
-
|
|
532
|
-
/*
|
|
533
|
-
* UInt32GetDatum
|
|
534
|
-
* Returns datum representation for a 32-bit unsigned integer.
|
|
535
|
-
*/
|
|
536
|
-
|
|
537
|
-
#define UInt32GetDatum(X) ((Datum) (X))
|
|
538
|
-
|
|
539
|
-
/*
|
|
540
|
-
* DatumGetObjectId
|
|
541
|
-
* Returns object identifier value of a datum.
|
|
542
|
-
*/
|
|
543
|
-
|
|
544
|
-
#define DatumGetObjectId(X) ((Oid) (X))
|
|
545
|
-
|
|
546
|
-
/*
|
|
547
|
-
* ObjectIdGetDatum
|
|
548
|
-
* Returns datum representation for an object identifier.
|
|
549
|
-
*/
|
|
550
|
-
|
|
551
|
-
#define ObjectIdGetDatum(X) ((Datum) (X))
|
|
552
|
-
|
|
553
|
-
/*
|
|
554
|
-
* DatumGetTransactionId
|
|
555
|
-
* Returns transaction identifier value of a datum.
|
|
556
|
-
*/
|
|
557
|
-
|
|
558
|
-
#define DatumGetTransactionId(X) ((TransactionId) (X))
|
|
559
|
-
|
|
560
|
-
/*
|
|
561
|
-
* TransactionIdGetDatum
|
|
562
|
-
* Returns datum representation for a transaction identifier.
|
|
563
|
-
*/
|
|
564
|
-
|
|
565
|
-
#define TransactionIdGetDatum(X) ((Datum) (X))
|
|
566
|
-
|
|
567
|
-
/*
|
|
568
|
-
* MultiXactIdGetDatum
|
|
569
|
-
* Returns datum representation for a multixact identifier.
|
|
570
|
-
*/
|
|
571
|
-
|
|
572
|
-
#define MultiXactIdGetDatum(X) ((Datum) (X))
|
|
573
|
-
|
|
574
|
-
/*
|
|
575
|
-
* DatumGetCommandId
|
|
576
|
-
* Returns command identifier value of a datum.
|
|
577
|
-
*/
|
|
578
|
-
|
|
579
|
-
#define DatumGetCommandId(X) ((CommandId) (X))
|
|
580
|
-
|
|
581
|
-
/*
|
|
582
|
-
* CommandIdGetDatum
|
|
583
|
-
* Returns datum representation for a command identifier.
|
|
584
|
-
*/
|
|
585
|
-
|
|
586
|
-
#define CommandIdGetDatum(X) ((Datum) (X))
|
|
587
|
-
|
|
588
|
-
/*
|
|
589
|
-
* DatumGetPointer
|
|
590
|
-
* Returns pointer value of a datum.
|
|
591
|
-
*/
|
|
592
|
-
|
|
593
|
-
#define DatumGetPointer(X) ((Pointer) (X))
|
|
594
|
-
|
|
595
|
-
/*
|
|
596
|
-
* PointerGetDatum
|
|
597
|
-
* Returns datum representation for a pointer.
|
|
598
|
-
*/
|
|
599
|
-
|
|
600
|
-
#define PointerGetDatum(X) ((Datum) (X))
|
|
601
|
-
|
|
602
|
-
/*
|
|
603
|
-
* DatumGetCString
|
|
604
|
-
* Returns C string (null-terminated string) value of a datum.
|
|
605
|
-
*
|
|
606
|
-
* Note: C string is not a full-fledged Postgres type at present,
|
|
607
|
-
* but type input functions use this conversion for their inputs.
|
|
608
|
-
*/
|
|
609
|
-
|
|
610
|
-
#define DatumGetCString(X) ((char *) DatumGetPointer(X))
|
|
611
|
-
|
|
612
|
-
/*
|
|
613
|
-
* CStringGetDatum
|
|
614
|
-
* Returns datum representation for a C string (null-terminated string).
|
|
615
|
-
*
|
|
616
|
-
* Note: C string is not a full-fledged Postgres type at present,
|
|
617
|
-
* but type output functions use this conversion for their outputs.
|
|
618
|
-
* Note: CString is pass-by-reference; caller must ensure the pointed-to
|
|
619
|
-
* value has adequate lifetime.
|
|
620
|
-
*/
|
|
621
|
-
|
|
622
|
-
#define CStringGetDatum(X) PointerGetDatum(X)
|
|
623
|
-
|
|
624
|
-
/*
|
|
625
|
-
* DatumGetName
|
|
626
|
-
* Returns name value of a datum.
|
|
627
|
-
*/
|
|
628
|
-
|
|
629
|
-
#define DatumGetName(X) ((Name) DatumGetPointer(X))
|
|
630
|
-
|
|
631
|
-
/*
|
|
632
|
-
* NameGetDatum
|
|
633
|
-
* Returns datum representation for a name.
|
|
634
|
-
*
|
|
635
|
-
* Note: Name is pass-by-reference; caller must ensure the pointed-to
|
|
636
|
-
* value has adequate lifetime.
|
|
637
|
-
*/
|
|
638
|
-
|
|
639
|
-
#define NameGetDatum(X) CStringGetDatum(NameStr(*(X)))
|
|
640
|
-
|
|
641
|
-
/*
|
|
642
|
-
* DatumGetInt64
|
|
643
|
-
* Returns 64-bit integer value of a datum.
|
|
644
|
-
*
|
|
645
|
-
* Note: this macro hides whether int64 is pass by value or by reference.
|
|
646
|
-
*/
|
|
647
|
-
|
|
648
|
-
#ifdef USE_FLOAT8_BYVAL
|
|
649
|
-
#define DatumGetInt64(X) ((int64) (X))
|
|
650
|
-
#else
|
|
651
|
-
#define DatumGetInt64(X) (* ((int64 *) DatumGetPointer(X)))
|
|
652
|
-
#endif
|
|
653
|
-
|
|
654
|
-
/*
|
|
655
|
-
* Int64GetDatum
|
|
656
|
-
* Returns datum representation for a 64-bit integer.
|
|
657
|
-
*
|
|
658
|
-
* Note: if int64 is pass by reference, this function returns a reference
|
|
659
|
-
* to palloc'd space.
|
|
660
|
-
*/
|
|
661
|
-
|
|
662
|
-
#ifdef USE_FLOAT8_BYVAL
|
|
663
|
-
#define Int64GetDatum(X) ((Datum) (X))
|
|
664
|
-
#else
|
|
665
|
-
extern Datum Int64GetDatum(int64 X);
|
|
666
|
-
#endif
|
|
667
|
-
|
|
668
|
-
/*
|
|
669
|
-
* DatumGetUInt64
|
|
670
|
-
* Returns 64-bit unsigned integer value of a datum.
|
|
671
|
-
*
|
|
672
|
-
* Note: this macro hides whether int64 is pass by value or by reference.
|
|
673
|
-
*/
|
|
674
|
-
|
|
675
|
-
#ifdef USE_FLOAT8_BYVAL
|
|
676
|
-
#define DatumGetUInt64(X) ((uint64) (X))
|
|
677
|
-
#else
|
|
678
|
-
#define DatumGetUInt64(X) (* ((uint64 *) DatumGetPointer(X)))
|
|
679
358
|
#endif
|
|
680
|
-
|
|
681
|
-
/*
|
|
682
|
-
* UInt64GetDatum
|
|
683
|
-
* Returns datum representation for a 64-bit unsigned integer.
|
|
684
|
-
*
|
|
685
|
-
* Note: if int64 is pass by reference, this function returns a reference
|
|
686
|
-
* to palloc'd space.
|
|
687
|
-
*/
|
|
688
|
-
|
|
689
|
-
#ifdef USE_FLOAT8_BYVAL
|
|
690
|
-
#define UInt64GetDatum(X) ((Datum) (X))
|
|
691
|
-
#else
|
|
692
|
-
#define UInt64GetDatum(X) Int64GetDatum((int64) (X))
|
|
693
|
-
#endif
|
|
694
|
-
|
|
695
|
-
/*
|
|
696
|
-
* Float <-> Datum conversions
|
|
697
|
-
*
|
|
698
|
-
* These have to be implemented as inline functions rather than macros, when
|
|
699
|
-
* passing by value, because many machines pass int and float function
|
|
700
|
-
* parameters/results differently; so we need to play weird games with unions.
|
|
701
|
-
*/
|
|
702
|
-
|
|
703
|
-
/*
|
|
704
|
-
* DatumGetFloat4
|
|
705
|
-
* Returns 4-byte floating point value of a datum.
|
|
706
|
-
*/
|
|
707
|
-
static inline float4
|
|
708
|
-
DatumGetFloat4(Datum X)
|
|
709
|
-
{
|
|
710
|
-
union
|
|
711
|
-
{
|
|
712
|
-
int32 value;
|
|
713
|
-
float4 retval;
|
|
714
|
-
} myunion;
|
|
715
|
-
|
|
716
|
-
myunion.value = DatumGetInt32(X);
|
|
717
|
-
return myunion.retval;
|
|
718
|
-
}
|
|
719
|
-
|
|
720
|
-
/*
|
|
721
|
-
* Float4GetDatum
|
|
722
|
-
* Returns datum representation for a 4-byte floating point number.
|
|
723
|
-
*/
|
|
724
|
-
static inline Datum
|
|
725
|
-
Float4GetDatum(float4 X)
|
|
726
|
-
{
|
|
727
|
-
union
|
|
728
|
-
{
|
|
729
|
-
float4 value;
|
|
730
|
-
int32 retval;
|
|
731
|
-
} myunion;
|
|
732
|
-
|
|
733
|
-
myunion.value = X;
|
|
734
|
-
return Int32GetDatum(myunion.retval);
|
|
735
|
-
}
|
|
736
|
-
|
|
737
|
-
/*
|
|
738
|
-
* DatumGetFloat8
|
|
739
|
-
* Returns 8-byte floating point value of a datum.
|
|
740
|
-
*
|
|
741
|
-
* Note: this macro hides whether float8 is pass by value or by reference.
|
|
742
|
-
*/
|
|
743
|
-
|
|
744
|
-
#ifdef USE_FLOAT8_BYVAL
|
|
745
|
-
static inline float8
|
|
746
|
-
DatumGetFloat8(Datum X)
|
|
747
|
-
{
|
|
748
|
-
union
|
|
749
|
-
{
|
|
750
|
-
int64 value;
|
|
751
|
-
float8 retval;
|
|
752
|
-
} myunion;
|
|
753
|
-
|
|
754
|
-
myunion.value = DatumGetInt64(X);
|
|
755
|
-
return myunion.retval;
|
|
756
|
-
}
|
|
757
|
-
#else
|
|
758
|
-
#define DatumGetFloat8(X) (* ((float8 *) DatumGetPointer(X)))
|
|
759
|
-
#endif
|
|
760
|
-
|
|
761
|
-
/*
|
|
762
|
-
* Float8GetDatum
|
|
763
|
-
* Returns datum representation for an 8-byte floating point number.
|
|
764
|
-
*
|
|
765
|
-
* Note: if float8 is pass by reference, this function returns a reference
|
|
766
|
-
* to palloc'd space.
|
|
767
|
-
*/
|
|
768
|
-
|
|
769
|
-
#ifdef USE_FLOAT8_BYVAL
|
|
770
|
-
static inline Datum
|
|
771
|
-
Float8GetDatum(float8 X)
|
|
772
|
-
{
|
|
773
|
-
union
|
|
774
|
-
{
|
|
775
|
-
float8 value;
|
|
776
|
-
int64 retval;
|
|
777
|
-
} myunion;
|
|
778
|
-
|
|
779
|
-
myunion.value = X;
|
|
780
|
-
return Int64GetDatum(myunion.retval);
|
|
781
|
-
}
|
|
782
|
-
#else
|
|
783
|
-
extern Datum Float8GetDatum(float8 X);
|
|
784
|
-
#endif
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
/*
|
|
788
|
-
* Int64GetDatumFast
|
|
789
|
-
* Float8GetDatumFast
|
|
790
|
-
*
|
|
791
|
-
* These macros are intended to allow writing code that does not depend on
|
|
792
|
-
* whether int64 and float8 are pass-by-reference types, while not
|
|
793
|
-
* sacrificing performance when they are. The argument must be a variable
|
|
794
|
-
* that will exist and have the same value for as long as the Datum is needed.
|
|
795
|
-
* In the pass-by-ref case, the address of the variable is taken to use as
|
|
796
|
-
* the Datum. In the pass-by-val case, these will be the same as the non-Fast
|
|
797
|
-
* macros.
|
|
798
|
-
*/
|
|
799
|
-
|
|
800
|
-
#ifdef USE_FLOAT8_BYVAL
|
|
801
|
-
#define Int64GetDatumFast(X) Int64GetDatum(X)
|
|
802
|
-
#define Float8GetDatumFast(X) Float8GetDatum(X)
|
|
803
|
-
#else
|
|
804
|
-
#define Int64GetDatumFast(X) PointerGetDatum(&(X))
|
|
805
|
-
#define Float8GetDatumFast(X) PointerGetDatum(&(X))
|
|
806
|
-
#endif
|
|
807
|
-
|
|
808
|
-
#endif /* POSTGRES_H */
|