pg_query 4.2.1 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +61 -0
- data/README.md +7 -9
- data/Rakefile +5 -6
- data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
- data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
- data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/extconf.rb +33 -9
- data/ext/pg_query/include/pg_query.h +28 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +599 -167
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +640 -520
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +6400 -4633
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +433 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1472 -1152
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +154 -124
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1886 -1506
- data/ext/pg_query/include/postgres/access/amapi.h +303 -0
- data/ext/pg_query/include/postgres/access/attmap.h +54 -0
- data/ext/pg_query/include/postgres/access/attnum.h +64 -0
- data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
- data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
- data/ext/pg_query/include/postgres/access/clog.h +62 -0
- data/ext/pg_query/include/postgres/access/commit_ts.h +73 -0
- data/ext/pg_query/include/postgres/access/detoast.h +82 -0
- data/ext/pg_query/include/postgres/access/genam.h +246 -0
- data/ext/pg_query/include/postgres/access/gin.h +91 -0
- data/ext/pg_query/include/postgres/access/htup.h +89 -0
- data/ext/pg_query/include/postgres/access/htup_details.h +811 -0
- data/ext/pg_query/include/postgres/access/itup.h +170 -0
- data/ext/pg_query/include/postgres/access/parallel.h +81 -0
- data/ext/pg_query/include/postgres/access/printtup.h +35 -0
- data/ext/pg_query/include/postgres/access/relation.h +28 -0
- data/ext/pg_query/include/postgres/access/relscan.h +191 -0
- data/ext/pg_query/include/postgres/access/rmgrlist.h +49 -0
- data/ext/pg_query/include/postgres/access/sdir.h +67 -0
- data/ext/pg_query/include/postgres/access/skey.h +151 -0
- data/ext/pg_query/include/postgres/access/slru.h +218 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +85 -0
- data/ext/pg_query/include/postgres/access/sysattr.h +29 -0
- data/ext/pg_query/include/postgres/access/table.h +28 -0
- data/ext/pg_query/include/postgres/access/tableam.h +2110 -0
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
- data/ext/pg_query/include/postgres/access/transam.h +418 -0
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/postgres/access/tupconvert.h +54 -0
- data/ext/pg_query/include/postgres/access/tupdesc.h +154 -0
- data/ext/pg_query/include/postgres/access/tupmacs.h +207 -0
- data/ext/pg_query/include/postgres/access/twophase.h +65 -0
- data/ext/pg_query/include/postgres/access/xact.h +530 -0
- data/ext/pg_query/include/postgres/access/xlog.h +310 -0
- data/ext/pg_query/include/postgres/access/xlog_internal.h +405 -0
- data/ext/pg_query/include/postgres/access/xlogbackup.h +43 -0
- data/ext/pg_query/include/postgres/access/xlogdefs.h +82 -0
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/postgres/access/xlogreader.h +444 -0
- data/ext/pg_query/include/postgres/access/xlogrecord.h +248 -0
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
- data/ext/pg_query/include/postgres/archive/archive_module.h +67 -0
- data/ext/pg_query/include/postgres/c.h +1374 -0
- data/ext/pg_query/include/postgres/catalog/catalog.h +47 -0
- data/ext/pg_query/include/postgres/catalog/catversion.h +62 -0
- data/ext/pg_query/include/postgres/catalog/dependency.h +228 -0
- data/ext/pg_query/include/postgres/catalog/genbki.h +149 -0
- data/ext/pg_query/include/postgres/catalog/index.h +218 -0
- data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
- data/ext/pg_query/include/postgres/catalog/namespace.h +189 -0
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +267 -0
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +93 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +182 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +78 -0
- data/ext/pg_query/include/postgres/catalog/pg_am.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +47 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +240 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_class.h +235 -0
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +134 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +106 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +278 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +74 -0
- data/ext/pg_query/include/postgres/catalog/pg_control.h +260 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +79 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_database.h +129 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +53 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +77 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_index.h +92 -0
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +59 -0
- data/ext/pg_query/include/postgres/catalog/pg_language.h +75 -0
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +41 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +142 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +76 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +223 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +101 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +161 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +65 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +33 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +288 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +199 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +45 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +153 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +109 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +56 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +35 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +63 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +37 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +54 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_type.h +407 -0
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +324 -0
- data/ext/pg_query/include/postgres/catalog/storage.h +50 -0
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +49 -0
- data/ext/pg_query/include/postgres/commands/dbcommands.h +37 -0
- data/ext/pg_query/include/postgres/commands/defrem.h +161 -0
- data/ext/pg_query/include/postgres/commands/event_trigger.h +97 -0
- data/ext/pg_query/include/postgres/commands/explain.h +145 -0
- data/ext/pg_query/include/postgres/commands/prepare.h +61 -0
- data/ext/pg_query/include/postgres/commands/tablespace.h +69 -0
- data/ext/pg_query/include/postgres/commands/trigger.h +288 -0
- data/ext/pg_query/include/postgres/commands/user.h +43 -0
- data/ext/pg_query/include/postgres/commands/vacuum.h +388 -0
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/postgres/common/file_perm.h +56 -0
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +119 -0
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
- data/ext/pg_query/include/postgres/common/int.h +512 -0
- data/ext/pg_query/include/postgres/common/keywords.h +29 -0
- data/ext/pg_query/include/postgres/common/kwlookup.h +44 -0
- data/ext/pg_query/include/postgres/common/pg_prng.h +62 -0
- data/ext/pg_query/include/postgres/common/relpath.h +97 -0
- 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/postgres/common/string.h +44 -0
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +124 -0
- data/ext/pg_query/include/postgres/common/unicode_nonspacing_table.h +326 -0
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5261 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +989 -0
- data/ext/pg_query/include/postgres/datatype/timestamp.h +269 -0
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3310 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +836 -0
- data/ext/pg_query/include/postgres/executor/execdesc.h +70 -0
- data/ext/pg_query/include/postgres/executor/executor.h +681 -0
- data/ext/pg_query/include/postgres/executor/functions.h +56 -0
- data/ext/pg_query/include/postgres/executor/instrument.h +120 -0
- data/ext/pg_query/include/postgres/executor/spi.h +207 -0
- data/ext/pg_query/include/postgres/executor/tablefunc.h +67 -0
- data/ext/pg_query/include/postgres/executor/tuptable.h +523 -0
- data/ext/pg_query/include/postgres/fmgr.h +800 -0
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/postgres/funcapi.h +360 -0
- data/ext/pg_query/include/postgres/gram.h +1168 -0
- data/ext/pg_query/include/postgres/gramparse.h +75 -0
- data/ext/pg_query/include/postgres/jit/jit.h +106 -0
- data/ext/pg_query/include/postgres/kwlist_d.h +1164 -0
- data/ext/pg_query/include/postgres/lib/dshash.h +130 -0
- data/ext/pg_query/include/postgres/lib/ilist.h +1159 -0
- data/ext/pg_query/include/postgres/lib/pairingheap.h +102 -0
- data/ext/pg_query/include/postgres/lib/simplehash.h +1206 -0
- data/ext/pg_query/include/postgres/lib/sort_template.h +445 -0
- data/ext/pg_query/include/postgres/lib/stringinfo.h +243 -0
- data/ext/pg_query/include/postgres/libpq/auth.h +37 -0
- data/ext/pg_query/include/postgres/libpq/crypt.h +47 -0
- data/ext/pg_query/include/postgres/libpq/hba.h +186 -0
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +361 -0
- data/ext/pg_query/include/postgres/libpq/libpq.h +143 -0
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +169 -0
- data/ext/pg_query/include/postgres/libpq/pqformat.h +209 -0
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +54 -0
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- 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/postgres/mb/pg_wchar.h +793 -0
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
- data/ext/pg_query/include/postgres/miscadmin.h +527 -0
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
- data/ext/pg_query/include/postgres/nodes/execnodes.h +2855 -0
- data/ext/pg_query/include/postgres/nodes/extensible.h +164 -0
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +61 -0
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +127 -0
- data/ext/pg_query/include/postgres/nodes/memnodes.h +152 -0
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +222 -0
- data/ext/pg_query/include/postgres/nodes/nodes.h +435 -0
- data/ext/pg_query/include/postgres/nodes/nodetags.h +491 -0
- data/ext/pg_query/include/postgres/nodes/params.h +170 -0
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +4233 -0
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +3438 -0
- data/ext/pg_query/include/postgres/nodes/pg_list.h +686 -0
- data/ext/pg_query/include/postgres/nodes/plannodes.h +1593 -0
- data/ext/pg_query/include/postgres/nodes/primnodes.h +2339 -0
- data/ext/pg_query/include/postgres/nodes/print.h +34 -0
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
- data/ext/pg_query/include/postgres/nodes/replnodes.h +132 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +75 -0
- data/ext/pg_query/include/postgres/nodes/value.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/cost.h +216 -0
- data/ext/pg_query/include/postgres/optimizer/geqo.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +45 -0
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +205 -0
- data/ext/pg_query/include/postgres/optimizer/paths.h +271 -0
- data/ext/pg_query/include/postgres/optimizer/planmain.h +123 -0
- data/ext/pg_query/include/postgres/parser/analyze.h +66 -0
- data/ext/pg_query/include/postgres/parser/kwlist.h +518 -0
- data/ext/pg_query/include/postgres/parser/parse_agg.h +65 -0
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +105 -0
- data/ext/pg_query/include/postgres/parser/parse_expr.h +25 -0
- data/ext/pg_query/include/postgres/parser/parse_func.h +74 -0
- data/ext/pg_query/include/postgres/parser/parse_node.h +358 -0
- data/ext/pg_query/include/postgres/parser/parse_oper.h +68 -0
- data/ext/pg_query/include/postgres/parser/parse_relation.h +129 -0
- data/ext/pg_query/include/postgres/parser/parse_type.h +61 -0
- data/ext/pg_query/include/postgres/parser/parser.h +68 -0
- data/ext/pg_query/include/postgres/parser/parsetree.h +61 -0
- data/ext/pg_query/include/postgres/parser/scanner.h +152 -0
- data/ext/pg_query/include/postgres/parser/scansup.h +27 -0
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +26 -0
- data/ext/pg_query/include/postgres/pg_config.h +985 -0
- data/ext/pg_query/include/postgres/pg_config_manual.h +385 -0
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/postgres/pg_getopt.h +56 -0
- data/ext/pg_query/include/postgres/pg_trace.h +17 -0
- data/ext/pg_query/include/postgres/pgstat.h +780 -0
- data/ext/pg_query/include/postgres/pgtime.h +94 -0
- data/ext/pg_query/include/postgres/pl_gram.h +385 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +52 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +114 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +112 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +246 -0
- data/ext/pg_query/include/postgres/plerrcodes.h +998 -0
- data/ext/pg_query/include/postgres/plpgsql.h +1342 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +32 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +256 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +254 -0
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +170 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +323 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +119 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +121 -0
- data/ext/pg_query/include/postgres/port/atomics/generic.h +437 -0
- data/ext/pg_query/include/postgres/port/atomics.h +606 -0
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +421 -0
- data/ext/pg_query/include/postgres/port/pg_bswap.h +161 -0
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +110 -0
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +422 -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 +34 -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 +582 -0
- data/ext/pg_query/include/postgres/port.h +555 -0
- 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/postgres_ext.h +73 -0
- data/ext/pg_query/include/postgres/postmaster/autovacuum.h +69 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +164 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +60 -0
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +45 -0
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +32 -0
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +23 -0
- data/ext/pg_query/include/postgres/regex/regex.h +272 -0
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +34 -0
- data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
- data/ext/pg_query/include/postgres/replication/logicalworker.h +33 -0
- data/ext/pg_query/include/postgres/replication/origin.h +73 -0
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +734 -0
- data/ext/pg_query/include/postgres/replication/slot.h +289 -0
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +109 -0
- data/ext/pg_query/include/postgres/replication/walreceiver.h +504 -0
- data/ext/pg_query/include/postgres/replication/walsender.h +76 -0
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +46 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +41 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +96 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +26 -0
- data/ext/pg_query/include/postgres/storage/block.h +108 -0
- data/ext/pg_query/include/postgres/storage/buf.h +46 -0
- data/ext/pg_query/include/postgres/storage/bufmgr.h +411 -0
- data/ext/pg_query/include/postgres/storage/bufpage.h +510 -0
- data/ext/pg_query/include/postgres/storage/condition_variable.h +73 -0
- data/ext/pg_query/include/postgres/storage/dsm.h +61 -0
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +79 -0
- data/ext/pg_query/include/postgres/storage/fd.h +219 -0
- data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
- data/ext/pg_query/include/postgres/storage/ipc.h +87 -0
- data/ext/pg_query/include/postgres/storage/item.h +19 -0
- data/ext/pg_query/include/postgres/storage/itemid.h +184 -0
- data/ext/pg_query/include/postgres/storage/itemptr.h +245 -0
- data/ext/pg_query/include/postgres/storage/large_object.h +100 -0
- data/ext/pg_query/include/postgres/storage/latch.h +196 -0
- data/ext/pg_query/include/postgres/storage/lmgr.h +126 -0
- data/ext/pg_query/include/postgres/storage/lock.h +624 -0
- data/ext/pg_query/include/postgres/storage/lockdefs.h +61 -0
- data/ext/pg_query/include/postgres/storage/lwlock.h +228 -0
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +47 -0
- data/ext/pg_query/include/postgres/storage/off.h +57 -0
- data/ext/pg_query/include/postgres/storage/pg_sema.h +61 -0
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +93 -0
- data/ext/pg_query/include/postgres/storage/pmsignal.h +105 -0
- data/ext/pg_query/include/postgres/storage/predicate.h +83 -0
- data/ext/pg_query/include/postgres/storage/proc.h +488 -0
- data/ext/pg_query/include/postgres/storage/procarray.h +103 -0
- data/ext/pg_query/include/postgres/storage/proclist_types.h +53 -0
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +75 -0
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +100 -0
- data/ext/pg_query/include/postgres/storage/s_lock.h +847 -0
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +37 -0
- data/ext/pg_query/include/postgres/storage/shm_mq.h +86 -0
- data/ext/pg_query/include/postgres/storage/shm_toc.h +58 -0
- data/ext/pg_query/include/postgres/storage/shmem.h +59 -0
- data/ext/pg_query/include/postgres/storage/sinval.h +153 -0
- data/ext/pg_query/include/postgres/storage/smgr.h +130 -0
- data/ext/pg_query/include/postgres/storage/spin.h +77 -0
- data/ext/pg_query/include/postgres/storage/standby.h +109 -0
- data/ext/pg_query/include/postgres/storage/standbydefs.h +74 -0
- data/ext/pg_query/include/postgres/storage/sync.h +66 -0
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +62 -0
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +219 -0
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +108 -0
- data/ext/pg_query/include/postgres/tcop/dest.h +148 -0
- data/ext/pg_query/include/postgres/tcop/fastpath.h +20 -0
- data/ext/pg_query/include/postgres/tcop/pquery.h +51 -0
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +98 -0
- data/ext/pg_query/include/postgres/tcop/utility.h +112 -0
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +96 -0
- data/ext/pg_query/include/postgres/utils/acl.h +290 -0
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +45 -0
- data/ext/pg_query/include/postgres/utils/array.h +481 -0
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +46 -0
- data/ext/pg_query/include/postgres/utils/backend_status.h +340 -0
- data/ext/pg_query/include/postgres/utils/builtins.h +139 -0
- data/ext/pg_query/include/postgres/utils/bytea.h +28 -0
- data/ext/pg_query/include/postgres/utils/catcache.h +231 -0
- data/ext/pg_query/include/postgres/utils/date.h +118 -0
- data/ext/pg_query/include/postgres/utils/datetime.h +367 -0
- data/ext/pg_query/include/postgres/utils/datum.h +76 -0
- data/ext/pg_query/include/postgres/utils/dsa.h +166 -0
- data/ext/pg_query/include/postgres/utils/elog.h +540 -0
- data/ext/pg_query/include/postgres/utils/errcodes.h +352 -0
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +170 -0
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +241 -0
- data/ext/pg_query/include/postgres/utils/float.h +357 -0
- data/ext/pg_query/include/postgres/utils/fmgroids.h +3347 -0
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +2904 -0
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +49 -0
- data/ext/pg_query/include/postgres/utils/guc.h +456 -0
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +184 -0
- data/ext/pg_query/include/postgres/utils/guc_tables.h +323 -0
- data/ext/pg_query/include/postgres/utils/hsearch.h +153 -0
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +68 -0
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/postgres/utils/lsyscache.h +215 -0
- data/ext/pg_query/include/postgres/utils/memdebug.h +82 -0
- data/ext/pg_query/include/postgres/utils/memutils.h +193 -0
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +176 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +253 -0
- data/ext/pg_query/include/postgres/utils/numeric.h +110 -0
- data/ext/pg_query/include/postgres/utils/palloc.h +151 -0
- data/ext/pg_query/include/postgres/utils/partcache.h +103 -0
- data/ext/pg_query/include/postgres/utils/pg_locale.h +136 -0
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +827 -0
- data/ext/pg_query/include/postgres/utils/plancache.h +238 -0
- data/ext/pg_query/include/postgres/utils/portal.h +252 -0
- data/ext/pg_query/include/postgres/utils/probes.h +114 -0
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +74 -0
- data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
- data/ext/pg_query/include/postgres/utils/rel.h +711 -0
- data/ext/pg_query/include/postgres/utils/relcache.h +155 -0
- data/ext/pg_query/include/postgres/utils/reltrigger.h +81 -0
- data/ext/pg_query/include/postgres/utils/resowner.h +167 -0
- data/ext/pg_query/include/postgres/utils/ruleutils.h +52 -0
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +61 -0
- data/ext/pg_query/include/postgres/utils/snapmgr.h +130 -0
- data/ext/pg_query/include/postgres/utils/snapshot.h +219 -0
- data/ext/pg_query/include/postgres/utils/sortsupport.h +391 -0
- data/ext/pg_query/include/postgres/utils/syscache.h +136 -0
- data/ext/pg_query/include/postgres/utils/timeout.h +96 -0
- data/ext/pg_query/include/postgres/utils/timestamp.h +147 -0
- data/ext/pg_query/include/postgres/utils/tuplesort.h +472 -0
- data/ext/pg_query/include/postgres/utils/tuplestore.h +88 -0
- data/ext/pg_query/include/postgres/utils/typcache.h +210 -0
- data/ext/pg_query/include/postgres/utils/varlena.h +53 -0
- data/ext/pg_query/include/postgres/utils/wait_event.h +108 -0
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +94 -0
- data/ext/pg_query/include/postgres/varatt.h +358 -0
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7723 -6368
- data/ext/pg_query/include/protobuf/pg_query.pb.h +120022 -87031
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +22595 -17738
- 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 +43 -2
- data/ext/pg_query/pg_query_outfuncs_json.c +9 -1
- 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 +19 -18
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_scan.c +2 -2
- data/ext/pg_query/pg_query_split.c +3 -3
- data/ext/pg_query/postgres_deparse.c +11496 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +243 -63
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +140 -156
- 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 +16 -8
- data/ext/pg_query/src_backend_nodes_makefuncs.c +134 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +391 -133
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +43710 -39953
- data/ext/pg_query/src_backend_parser_parser.c +34 -8
- data/ext/pg_query/src_backend_parser_scan.c +6971 -3373
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +99 -96
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +2 -2
- 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 +488 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +177 -30
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +397 -270
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +36 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +20 -5
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +31 -84
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +502 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +166 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +704 -497
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1115 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +637 -233
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1079 -0
- data/ext/pg_query/src_common_encnames.c +46 -44
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +586 -517
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +3 -3
- data/ext/pg_query/src_common_stringinfo.c +21 -4
- data/ext/pg_query/src_common_wchar.c +100 -116
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +829 -763
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +251 -32
- data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
- data/ext/pg_query/src_port_snprintf.c +20 -27
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +5 -8
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/param_refs.rb +2 -2
- data/lib/pg_query/parse.rb +6 -8
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +173 -3196
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +52 -11
- data/lib/pg_query/truncate.rb +18 -20
- data/lib/pg_query/version.rb +1 -1
- metadata +443 -442
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -290
- data/ext/pg_query/include/access/attmap.h +0 -52
- data/ext/pg_query/include/access/attnum.h +0 -64
- data/ext/pg_query/include/access/clog.h +0 -63
- data/ext/pg_query/include/access/commit_ts.h +0 -74
- data/ext/pg_query/include/access/detoast.h +0 -82
- data/ext/pg_query/include/access/genam.h +0 -231
- data/ext/pg_query/include/access/gin.h +0 -78
- data/ext/pg_query/include/access/htup.h +0 -89
- data/ext/pg_query/include/access/htup_details.h +0 -807
- data/ext/pg_query/include/access/itup.h +0 -167
- data/ext/pg_query/include/access/parallel.h +0 -82
- data/ext/pg_query/include/access/printtup.h +0 -35
- data/ext/pg_query/include/access/relation.h +0 -28
- data/ext/pg_query/include/access/relscan.h +0 -191
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -58
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -85
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -28
- data/ext/pg_query/include/access/tableam.h +0 -2077
- data/ext/pg_query/include/access/toast_compression.h +0 -73
- data/ext/pg_query/include/access/transam.h +0 -375
- data/ext/pg_query/include/access/tupconvert.h +0 -51
- data/ext/pg_query/include/access/tupdesc.h +0 -154
- data/ext/pg_query/include/access/tupmacs.h +0 -247
- data/ext/pg_query/include/access/twophase.h +0 -65
- data/ext/pg_query/include/access/xact.h +0 -523
- data/ext/pg_query/include/access/xlog.h +0 -303
- data/ext/pg_query/include/access/xlog_internal.h +0 -366
- data/ext/pg_query/include/access/xlogdefs.h +0 -101
- data/ext/pg_query/include/access/xlogprefetcher.h +0 -55
- data/ext/pg_query/include/access/xlogreader.h +0 -443
- data/ext/pg_query/include/access/xlogrecord.h +0 -236
- data/ext/pg_query/include/access/xlogrecovery.h +0 -157
- data/ext/pg_query/include/c.h +0 -1391
- data/ext/pg_query/include/catalog/catalog.h +0 -44
- data/ext/pg_query/include/catalog/catversion.h +0 -58
- data/ext/pg_query/include/catalog/dependency.h +0 -269
- data/ext/pg_query/include/catalog/genbki.h +0 -142
- data/ext/pg_query/include/catalog/index.h +0 -214
- data/ext/pg_query/include/catalog/indexing.h +0 -54
- data/ext/pg_query/include/catalog/namespace.h +0 -190
- data/ext/pg_query/include/catalog/objectaccess.h +0 -265
- data/ext/pg_query/include/catalog/objectaddress.h +0 -89
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -180
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -78
- data/ext/pg_query/include/catalog/pg_am.h +0 -63
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -221
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -62
- data/ext/pg_query/include/catalog/pg_authid.h +0 -63
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -57
- data/ext/pg_query/include/catalog/pg_class.h +0 -230
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -132
- data/ext/pg_query/include/catalog/pg_collation.h +0 -98
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -62
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -273
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -73
- data/ext/pg_query/include/catalog/pg_control.h +0 -250
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -75
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_depend.h +0 -77
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -57
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_index.h +0 -90
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_language.h +0 -72
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -41
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -64
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -88
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -51
- data/ext/pg_query/include/catalog/pg_operator.h +0 -107
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -142
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -63
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -49
- 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/catalog/pg_partitioned_table.h +0 -74
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_proc.h +0 -220
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -101
- data/ext/pg_query/include/catalog/pg_publication.h +0 -161
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -62
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -282
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -195
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -88
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform.h +0 -48
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -153
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -109
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -53
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -59
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -60
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -37
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -51
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_type.h +0 -404
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -324
- data/ext/pg_query/include/catalog/storage.h +0 -50
- data/ext/pg_query/include/commands/async.h +0 -53
- data/ext/pg_query/include/commands/dbcommands.h +0 -36
- data/ext/pg_query/include/commands/defrem.h +0 -160
- data/ext/pg_query/include/commands/event_trigger.h +0 -88
- data/ext/pg_query/include/commands/explain.h +0 -127
- data/ext/pg_query/include/commands/prepare.h +0 -61
- data/ext/pg_query/include/commands/tablespace.h +0 -69
- data/ext/pg_query/include/commands/trigger.h +0 -287
- data/ext/pg_query/include/commands/user.h +0 -37
- data/ext/pg_query/include/commands/vacuum.h +0 -340
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/file_perm.h +0 -56
- data/ext/pg_query/include/common/hashfn.h +0 -104
- data/ext/pg_query/include/common/ip.h +0 -31
- data/ext/pg_query/include/common/keywords.h +0 -29
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/pg_prng.h +0 -60
- data/ext/pg_query/include/common/relpath.h +0 -90
- data/ext/pg_query/include/common/string.h +0 -42
- data/ext/pg_query/include/common/unicode_combining_table.h +0 -308
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +0 -125
- data/ext/pg_query/include/datatype/timestamp.h +0 -236
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -663
- data/ext/pg_query/include/executor/functions.h +0 -55
- data/ext/pg_query/include/executor/instrument.h +0 -118
- data/ext/pg_query/include/executor/spi.h +0 -213
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -487
- data/ext/pg_query/include/fmgr.h +0 -781
- data/ext/pg_query/include/funcapi.h +0 -360
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/jit/jit.h +0 -105
- data/ext/pg_query/include/kwlist_d.h +0 -1095
- data/ext/pg_query/include/lib/dshash.h +0 -112
- data/ext/pg_query/include/lib/ilist.h +0 -746
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1184
- data/ext/pg_query/include/lib/sort_template.h +0 -432
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -31
- data/ext/pg_query/include/libpq/crypt.h +0 -47
- data/ext/pg_query/include/libpq/hba.h +0 -179
- data/ext/pg_query/include/libpq/libpq-be.h +0 -343
- data/ext/pg_query/include/libpq/libpq.h +0 -144
- data/ext/pg_query/include/libpq/pqcomm.h +0 -194
- data/ext/pg_query/include/libpq/pqformat.h +0 -210
- data/ext/pg_query/include/libpq/pqsignal.h +0 -42
- data/ext/pg_query/include/mb/pg_wchar.h +0 -755
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -495
- data/ext/pg_query/include/nodes/bitmapset.h +0 -122
- data/ext/pg_query/include/nodes/execnodes.h +0 -2715
- data/ext/pg_query/include/nodes/extensible.h +0 -162
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -109
- data/ext/pg_query/include/nodes/memnodes.h +0 -110
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
- data/ext/pg_query/include/nodes/nodes.h +0 -861
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -3812
- data/ext/pg_query/include/nodes/pathnodes.h +0 -2734
- data/ext/pg_query/include/nodes/pg_list.h +0 -612
- data/ext/pg_query/include/nodes/plannodes.h +0 -1349
- data/ext/pg_query/include/nodes/primnodes.h +0 -1593
- data/ext/pg_query/include/nodes/print.h +0 -34
- data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
- data/ext/pg_query/include/nodes/value.h +0 -80
- data/ext/pg_query/include/optimizer/cost.h +0 -213
- data/ext/pg_query/include/optimizer/geqo.h +0 -90
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -202
- data/ext/pg_query/include/optimizer/paths.h +0 -257
- data/ext/pg_query/include/optimizer/planmain.h +0 -120
- data/ext/pg_query/include/parser/analyze.h +0 -63
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/parser/gramparse.h +0 -75
- data/ext/pg_query/include/parser/kwlist.h +0 -487
- data/ext/pg_query/include/parser/parse_agg.h +0 -63
- data/ext/pg_query/include/parser/parse_coerce.h +0 -100
- data/ext/pg_query/include/parser/parse_expr.h +0 -25
- data/ext/pg_query/include/parser/parse_func.h +0 -74
- data/ext/pg_query/include/parser/parse_node.h +0 -339
- data/ext/pg_query/include/parser/parse_oper.h +0 -65
- data/ext/pg_query/include/parser/parse_relation.h +0 -124
- data/ext/pg_query/include/parser/parse_type.h +0 -60
- data/ext/pg_query/include/parser/parser.h +0 -68
- data/ext/pg_query/include/parser/parsetree.h +0 -61
- data/ext/pg_query/include/parser/scanner.h +0 -152
- data/ext/pg_query/include/parser/scansup.h +0 -27
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -1037
- data/ext/pg_query/include/pg_config_manual.h +0 -410
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/pg_getopt.h +0 -56
- data/ext/pg_query/include/pg_trace.h +0 -17
- data/ext/pg_query/include/pgstat.h +0 -699
- data/ext/pg_query/include/pgtime.h +0 -94
- data/ext/pg_query/include/pl_gram.h +0 -383
- data/ext/pg_query/include/pl_reserved_kwlist.h +0 -52
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +0 -114
- data/ext/pg_query/include/pl_unreserved_kwlist.h +0 -111
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -244
- data/ext/pg_query/include/plerrcodes.h +0 -998
- data/ext/pg_query/include/plpgsql.h +0 -1345
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -32
- data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
- data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
- data/ext/pg_query/include/port/atomics/fallback.h +0 -170
- data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
- data/ext/pg_query/include/port/atomics/generic.h +0 -401
- data/ext/pg_query/include/port/atomics.h +0 -524
- data/ext/pg_query/include/port/pg_bitutils.h +0 -302
- data/ext/pg_query/include/port/pg_bswap.h +0 -161
- data/ext/pg_query/include/port/pg_crc32c.h +0 -101
- data/ext/pg_query/include/port.h +0 -553
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postgres.h +0 -808
- data/ext/pg_query/include/postgres_ext.h +0 -74
- data/ext/pg_query/include/postmaster/autovacuum.h +0 -83
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/bgworker.h +0 -162
- data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
- data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/interrupt.h +0 -32
- data/ext/pg_query/include/postmaster/pgarch.h +0 -73
- data/ext/pg_query/include/postmaster/postmaster.h +0 -78
- data/ext/pg_query/include/postmaster/startup.h +0 -39
- data/ext/pg_query/include/postmaster/syslogger.h +0 -103
- data/ext/pg_query/include/postmaster/walwriter.h +0 -21
- data/ext/pg_query/include/regex/regex.h +0 -186
- data/ext/pg_query/include/replication/logicallauncher.h +0 -29
- data/ext/pg_query/include/replication/logicalproto.h +0 -254
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/replication/origin.h +0 -73
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -685
- data/ext/pg_query/include/replication/slot.h +0 -230
- data/ext/pg_query/include/replication/syncrep.h +0 -115
- data/ext/pg_query/include/replication/walreceiver.h +0 -472
- data/ext/pg_query/include/replication/walsender.h +0 -74
- data/ext/pg_query/include/rewrite/prs2lock.h +0 -46
- data/ext/pg_query/include/rewrite/rewriteHandler.h +0 -38
- data/ext/pg_query/include/rewrite/rewriteManip.h +0 -87
- data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
- data/ext/pg_query/include/storage/backendid.h +0 -37
- data/ext/pg_query/include/storage/block.h +0 -115
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -297
- data/ext/pg_query/include/storage/bufpage.h +0 -457
- data/ext/pg_query/include/storage/condition_variable.h +0 -73
- data/ext/pg_query/include/storage/dsm.h +0 -64
- data/ext/pg_query/include/storage/dsm_impl.h +0 -76
- data/ext/pg_query/include/storage/fd.h +0 -198
- data/ext/pg_query/include/storage/fileset.h +0 -40
- data/ext/pg_query/include/storage/ipc.h +0 -84
- data/ext/pg_query/include/storage/item.h +0 -19
- data/ext/pg_query/include/storage/itemid.h +0 -184
- data/ext/pg_query/include/storage/itemptr.h +0 -208
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -186
- data/ext/pg_query/include/storage/lmgr.h +0 -115
- data/ext/pg_query/include/storage/lock.h +0 -616
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -206
- data/ext/pg_query/include/storage/lwlocknames.h +0 -50
- data/ext/pg_query/include/storage/off.h +0 -57
- data/ext/pg_query/include/storage/pg_sema.h +0 -61
- data/ext/pg_query/include/storage/pg_shmem.h +0 -92
- data/ext/pg_query/include/storage/pmsignal.h +0 -105
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -461
- data/ext/pg_query/include/storage/procarray.h +0 -98
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -71
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -1110
- data/ext/pg_query/include/storage/sharedfileset.h +0 -37
- data/ext/pg_query/include/storage/shm_mq.h +0 -86
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -81
- data/ext/pg_query/include/storage/sinval.h +0 -153
- data/ext/pg_query/include/storage/sinvaladt.h +0 -43
- data/ext/pg_query/include/storage/smgr.h +0 -111
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -98
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -66
- data/ext/pg_query/include/tcop/cmdtag.h +0 -58
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -218
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -149
- data/ext/pg_query/include/tcop/fastpath.h +0 -20
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -97
- data/ext/pg_query/include/tcop/utility.h +0 -112
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
- data/ext/pg_query/include/utils/acl.h +0 -333
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -464
- data/ext/pg_query/include/utils/backend_progress.h +0 -44
- data/ext/pg_query/include/utils/backend_status.h +0 -321
- data/ext/pg_query/include/utils/builtins.h +0 -127
- data/ext/pg_query/include/utils/bytea.h +0 -28
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -90
- data/ext/pg_query/include/utils/datetime.h +0 -344
- data/ext/pg_query/include/utils/datum.h +0 -76
- data/ext/pg_query/include/utils/dsa.h +0 -123
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/elog.h +0 -470
- data/ext/pg_query/include/utils/errcodes.h +0 -354
- data/ext/pg_query/include/utils/expandeddatum.h +0 -159
- data/ext/pg_query/include/utils/expandedrecord.h +0 -231
- data/ext/pg_query/include/utils/float.h +0 -356
- data/ext/pg_query/include/utils/fmgroids.h +0 -3261
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2829
- data/ext/pg_query/include/utils/fmgrtab.h +0 -49
- data/ext/pg_query/include/utils/guc.h +0 -469
- data/ext/pg_query/include/utils/guc_tables.h +0 -276
- data/ext/pg_query/include/utils/hsearch.h +0 -153
- data/ext/pg_query/include/utils/inval.h +0 -68
- data/ext/pg_query/include/utils/lsyscache.h +0 -208
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -230
- data/ext/pg_query/include/utils/numeric.h +0 -90
- data/ext/pg_query/include/utils/palloc.h +0 -158
- data/ext/pg_query/include/utils/partcache.h +0 -102
- data/ext/pg_query/include/utils/pg_locale.h +0 -127
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pgstat_internal.h +0 -784
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/plancache.h +0 -236
- data/ext/pg_query/include/utils/portal.h +0 -252
- data/ext/pg_query/include/utils/probes.h +0 -114
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/queryenvironment.h +0 -74
- data/ext/pg_query/include/utils/queryjumble.h +0 -88
- data/ext/pg_query/include/utils/regproc.h +0 -39
- data/ext/pg_query/include/utils/rel.h +0 -695
- data/ext/pg_query/include/utils/relcache.h +0 -153
- data/ext/pg_query/include/utils/reltrigger.h +0 -81
- data/ext/pg_query/include/utils/resowner.h +0 -86
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/ruleutils.h +0 -47
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -179
- data/ext/pg_query/include/utils/snapshot.h +0 -219
- data/ext/pg_query/include/utils/sortsupport.h +0 -391
- data/ext/pg_query/include/utils/syscache.h +0 -224
- data/ext/pg_query/include/utils/timeout.h +0 -95
- data/ext/pg_query/include/utils/timestamp.h +0 -117
- data/ext/pg_query/include/utils/tuplesort.h +0 -291
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -209
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/include/utils/varlena.h +0 -41
- data/ext/pg_query/include/utils/wait_event.h +0 -289
- data/ext/pg_query/include/utils/xml.h +0 -84
- 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/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
- /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
@@ -0,0 +1,367 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* datetime.h
|
4
|
+
* Definitions for date/time support code.
|
5
|
+
* The support code is shared with other date data types,
|
6
|
+
* including date, and time.
|
7
|
+
*
|
8
|
+
*
|
9
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
10
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
11
|
+
*
|
12
|
+
* src/include/utils/datetime.h
|
13
|
+
*
|
14
|
+
*-------------------------------------------------------------------------
|
15
|
+
*/
|
16
|
+
#ifndef DATETIME_H
|
17
|
+
#define DATETIME_H
|
18
|
+
|
19
|
+
#include "utils/timestamp.h"
|
20
|
+
|
21
|
+
/* this struct is declared in utils/tzparser.h: */
|
22
|
+
struct tzEntry;
|
23
|
+
|
24
|
+
|
25
|
+
/* ----------------------------------------------------------------
|
26
|
+
* time types + support macros
|
27
|
+
*
|
28
|
+
* String definitions for standard time quantities.
|
29
|
+
*
|
30
|
+
* These strings are the defaults used to form output time strings.
|
31
|
+
* Other alternative forms are hardcoded into token tables in datetime.c.
|
32
|
+
* ----------------------------------------------------------------
|
33
|
+
*/
|
34
|
+
|
35
|
+
#define DAGO "ago"
|
36
|
+
#define DCURRENT "current"
|
37
|
+
#define EPOCH "epoch"
|
38
|
+
#define INVALID "invalid"
|
39
|
+
#define EARLY "-infinity"
|
40
|
+
#define LATE "infinity"
|
41
|
+
#define NOW "now"
|
42
|
+
#define TODAY "today"
|
43
|
+
#define TOMORROW "tomorrow"
|
44
|
+
#define YESTERDAY "yesterday"
|
45
|
+
#define ZULU "zulu"
|
46
|
+
|
47
|
+
#define DMICROSEC "usecond"
|
48
|
+
#define DMILLISEC "msecond"
|
49
|
+
#define DSECOND "second"
|
50
|
+
#define DMINUTE "minute"
|
51
|
+
#define DHOUR "hour"
|
52
|
+
#define DDAY "day"
|
53
|
+
#define DWEEK "week"
|
54
|
+
#define DMONTH "month"
|
55
|
+
#define DQUARTER "quarter"
|
56
|
+
#define DYEAR "year"
|
57
|
+
#define DDECADE "decade"
|
58
|
+
#define DCENTURY "century"
|
59
|
+
#define DMILLENNIUM "millennium"
|
60
|
+
#define DA_D "ad"
|
61
|
+
#define DB_C "bc"
|
62
|
+
#define DTIMEZONE "timezone"
|
63
|
+
|
64
|
+
/*
|
65
|
+
* Fundamental time field definitions for parsing.
|
66
|
+
*
|
67
|
+
* Meridian: am, pm, or 24-hour style.
|
68
|
+
* Millennium: ad, bc
|
69
|
+
*/
|
70
|
+
|
71
|
+
#define AM 0
|
72
|
+
#define PM 1
|
73
|
+
#define HR24 2
|
74
|
+
|
75
|
+
#define AD 0
|
76
|
+
#define BC 1
|
77
|
+
|
78
|
+
/*
|
79
|
+
* Field types for time decoding.
|
80
|
+
*
|
81
|
+
* Can't have more of these than there are bits in an unsigned int
|
82
|
+
* since these are turned into bit masks during parsing and decoding.
|
83
|
+
*
|
84
|
+
* Furthermore, the values for YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
|
85
|
+
* must be in the range 0..14 so that the associated bitmasks can fit
|
86
|
+
* into the left half of an INTERVAL's typmod value. Since those bits
|
87
|
+
* are stored in typmods, you can't change them without initdb!
|
88
|
+
*/
|
89
|
+
|
90
|
+
#define RESERV 0
|
91
|
+
#define MONTH 1
|
92
|
+
#define YEAR 2
|
93
|
+
#define DAY 3
|
94
|
+
#define JULIAN 4
|
95
|
+
#define TZ 5 /* fixed-offset timezone abbreviation */
|
96
|
+
#define DTZ 6 /* fixed-offset timezone abbrev, DST */
|
97
|
+
#define DYNTZ 7 /* dynamic timezone abbreviation */
|
98
|
+
#define IGNORE_DTF 8
|
99
|
+
#define AMPM 9
|
100
|
+
#define HOUR 10
|
101
|
+
#define MINUTE 11
|
102
|
+
#define SECOND 12
|
103
|
+
#define MILLISECOND 13
|
104
|
+
#define MICROSECOND 14
|
105
|
+
#define DOY 15
|
106
|
+
#define DOW 16
|
107
|
+
#define UNITS 17
|
108
|
+
#define ADBC 18
|
109
|
+
/* these are only for relative dates */
|
110
|
+
#define AGO 19
|
111
|
+
#define ABS_BEFORE 20
|
112
|
+
#define ABS_AFTER 21
|
113
|
+
/* generic fields to help with parsing */
|
114
|
+
#define ISODATE 22
|
115
|
+
#define ISOTIME 23
|
116
|
+
/* these are only for parsing intervals */
|
117
|
+
#define WEEK 24
|
118
|
+
#define DECADE 25
|
119
|
+
#define CENTURY 26
|
120
|
+
#define MILLENNIUM 27
|
121
|
+
/* hack for parsing two-word timezone specs "MET DST" etc */
|
122
|
+
#define DTZMOD 28 /* "DST" as a separate word */
|
123
|
+
/* reserved for unrecognized string values */
|
124
|
+
#define UNKNOWN_FIELD 31
|
125
|
+
|
126
|
+
/*
|
127
|
+
* Token field definitions for time parsing and decoding.
|
128
|
+
*
|
129
|
+
* Some field type codes (see above) use these as the "value" in datetktbl[].
|
130
|
+
* These are also used for bit masks in DecodeDateTime and friends
|
131
|
+
* so actually restrict them to within [0,31] for now.
|
132
|
+
* - thomas 97/06/19
|
133
|
+
* Not all of these fields are used for masks in DecodeDateTime
|
134
|
+
* so allow some larger than 31. - thomas 1997-11-17
|
135
|
+
*
|
136
|
+
* Caution: there are undocumented assumptions in the code that most of these
|
137
|
+
* values are not equal to IGNORE_DTF nor RESERV. Be very careful when
|
138
|
+
* renumbering values in either of these apparently-independent lists :-(
|
139
|
+
*/
|
140
|
+
|
141
|
+
#define DTK_NUMBER 0
|
142
|
+
#define DTK_STRING 1
|
143
|
+
|
144
|
+
#define DTK_DATE 2
|
145
|
+
#define DTK_TIME 3
|
146
|
+
#define DTK_TZ 4
|
147
|
+
#define DTK_AGO 5
|
148
|
+
|
149
|
+
#define DTK_SPECIAL 6
|
150
|
+
#define DTK_EARLY 9
|
151
|
+
#define DTK_LATE 10
|
152
|
+
#define DTK_EPOCH 11
|
153
|
+
#define DTK_NOW 12
|
154
|
+
#define DTK_YESTERDAY 13
|
155
|
+
#define DTK_TODAY 14
|
156
|
+
#define DTK_TOMORROW 15
|
157
|
+
#define DTK_ZULU 16
|
158
|
+
|
159
|
+
#define DTK_DELTA 17
|
160
|
+
#define DTK_SECOND 18
|
161
|
+
#define DTK_MINUTE 19
|
162
|
+
#define DTK_HOUR 20
|
163
|
+
#define DTK_DAY 21
|
164
|
+
#define DTK_WEEK 22
|
165
|
+
#define DTK_MONTH 23
|
166
|
+
#define DTK_QUARTER 24
|
167
|
+
#define DTK_YEAR 25
|
168
|
+
#define DTK_DECADE 26
|
169
|
+
#define DTK_CENTURY 27
|
170
|
+
#define DTK_MILLENNIUM 28
|
171
|
+
#define DTK_MILLISEC 29
|
172
|
+
#define DTK_MICROSEC 30
|
173
|
+
#define DTK_JULIAN 31
|
174
|
+
|
175
|
+
#define DTK_DOW 32
|
176
|
+
#define DTK_DOY 33
|
177
|
+
#define DTK_TZ_HOUR 34
|
178
|
+
#define DTK_TZ_MINUTE 35
|
179
|
+
#define DTK_ISOYEAR 36
|
180
|
+
#define DTK_ISODOW 37
|
181
|
+
|
182
|
+
|
183
|
+
/*
|
184
|
+
* Bit mask definitions for time parsing.
|
185
|
+
*/
|
186
|
+
|
187
|
+
#define DTK_M(t) (0x01 << (t))
|
188
|
+
|
189
|
+
/* Convenience: a second, plus any fractional component */
|
190
|
+
#define DTK_ALL_SECS_M (DTK_M(SECOND) | DTK_M(MILLISECOND) | DTK_M(MICROSECOND))
|
191
|
+
#define DTK_DATE_M (DTK_M(YEAR) | DTK_M(MONTH) | DTK_M(DAY))
|
192
|
+
#define DTK_TIME_M (DTK_M(HOUR) | DTK_M(MINUTE) | DTK_ALL_SECS_M)
|
193
|
+
|
194
|
+
/*
|
195
|
+
* Working buffer size for input and output of interval, timestamp, etc.
|
196
|
+
* Inputs that need more working space will be rejected early. Longer outputs
|
197
|
+
* will overrun buffers, so this must suffice for all possible output. As of
|
198
|
+
* this writing, interval_out() needs the most space at ~90 bytes.
|
199
|
+
*/
|
200
|
+
#define MAXDATELEN 128
|
201
|
+
/* maximum possible number of fields in a date string */
|
202
|
+
#define MAXDATEFIELDS 25
|
203
|
+
/* only this many chars are stored in datetktbl */
|
204
|
+
#define TOKMAXLEN 10
|
205
|
+
|
206
|
+
/* keep this struct small; it gets used a lot */
|
207
|
+
typedef struct
|
208
|
+
{
|
209
|
+
char token[TOKMAXLEN + 1]; /* always NUL-terminated */
|
210
|
+
char type; /* see field type codes above */
|
211
|
+
int32 value; /* meaning depends on type */
|
212
|
+
} datetkn;
|
213
|
+
|
214
|
+
/* one of its uses is in tables of time zone abbreviations */
|
215
|
+
typedef struct TimeZoneAbbrevTable
|
216
|
+
{
|
217
|
+
Size tblsize; /* size in bytes of TimeZoneAbbrevTable */
|
218
|
+
int numabbrevs; /* number of entries in abbrevs[] array */
|
219
|
+
datetkn abbrevs[FLEXIBLE_ARRAY_MEMBER];
|
220
|
+
/* DynamicZoneAbbrev(s) may follow the abbrevs[] array */
|
221
|
+
} TimeZoneAbbrevTable;
|
222
|
+
|
223
|
+
/* auxiliary data for a dynamic time zone abbreviation (non-fixed-offset) */
|
224
|
+
typedef struct DynamicZoneAbbrev
|
225
|
+
{
|
226
|
+
pg_tz *tz; /* NULL if not yet looked up */
|
227
|
+
char zone[FLEXIBLE_ARRAY_MEMBER]; /* NUL-terminated zone name */
|
228
|
+
} DynamicZoneAbbrev;
|
229
|
+
|
230
|
+
|
231
|
+
/* FMODULO()
|
232
|
+
* Macro to replace modf(), which is broken on some platforms.
|
233
|
+
* t = input and remainder
|
234
|
+
* q = integer part
|
235
|
+
* u = divisor
|
236
|
+
*/
|
237
|
+
#define FMODULO(t,q,u) \
|
238
|
+
do { \
|
239
|
+
(q) = (((t) < 0) ? ceil((t) / (u)) : floor((t) / (u))); \
|
240
|
+
if ((q) != 0) (t) -= rint((q) * (u)); \
|
241
|
+
} while(0)
|
242
|
+
|
243
|
+
/* TMODULO()
|
244
|
+
* Like FMODULO(), but work on the timestamp datatype (now always int64).
|
245
|
+
* We assume that int64 follows the C99 semantics for division (negative
|
246
|
+
* quotients truncate towards zero).
|
247
|
+
*/
|
248
|
+
#define TMODULO(t,q,u) \
|
249
|
+
do { \
|
250
|
+
(q) = ((t) / (u)); \
|
251
|
+
if ((q) != 0) (t) -= ((q) * (u)); \
|
252
|
+
} while(0)
|
253
|
+
|
254
|
+
/*
|
255
|
+
* Date/time validation
|
256
|
+
* Include check for leap year.
|
257
|
+
*/
|
258
|
+
|
259
|
+
extern PGDLLIMPORT const char *const months[]; /* months (3-char
|
260
|
+
* abbreviations) */
|
261
|
+
extern PGDLLIMPORT const char *const days[]; /* days (full names) */
|
262
|
+
extern PGDLLIMPORT const int day_tab[2][13];
|
263
|
+
|
264
|
+
/*
|
265
|
+
* These are the rules for the Gregorian calendar, which was adopted in 1582.
|
266
|
+
* However, we use this calculation for all prior years as well because the
|
267
|
+
* SQL standard specifies use of the Gregorian calendar. This prevents the
|
268
|
+
* date 1500-02-29 from being stored, even though it is valid in the Julian
|
269
|
+
* calendar.
|
270
|
+
*/
|
271
|
+
#define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
|
272
|
+
|
273
|
+
|
274
|
+
/*
|
275
|
+
* Datetime input parsing routines (ParseDateTime, DecodeDateTime, etc)
|
276
|
+
* return zero or a positive value on success. On failure, they return
|
277
|
+
* one of these negative code values. DateTimeParseError may be used to
|
278
|
+
* produce a suitable error report. For some of these codes,
|
279
|
+
* DateTimeParseError requires additional information, which is carried
|
280
|
+
* in struct DateTimeErrorExtra.
|
281
|
+
*/
|
282
|
+
#define DTERR_BAD_FORMAT (-1)
|
283
|
+
#define DTERR_FIELD_OVERFLOW (-2)
|
284
|
+
#define DTERR_MD_FIELD_OVERFLOW (-3) /* triggers hint about DateStyle */
|
285
|
+
#define DTERR_INTERVAL_OVERFLOW (-4)
|
286
|
+
#define DTERR_TZDISP_OVERFLOW (-5)
|
287
|
+
#define DTERR_BAD_TIMEZONE (-6)
|
288
|
+
#define DTERR_BAD_ZONE_ABBREV (-7)
|
289
|
+
|
290
|
+
typedef struct DateTimeErrorExtra
|
291
|
+
{
|
292
|
+
/* Needed for DTERR_BAD_TIMEZONE and DTERR_BAD_ZONE_ABBREV: */
|
293
|
+
const char *dtee_timezone; /* incorrect time zone name */
|
294
|
+
/* Needed for DTERR_BAD_ZONE_ABBREV: */
|
295
|
+
const char *dtee_abbrev; /* relevant time zone abbreviation */
|
296
|
+
} DateTimeErrorExtra;
|
297
|
+
|
298
|
+
/* Result codes for DecodeTimezoneName() */
|
299
|
+
#define TZNAME_FIXED_OFFSET 0
|
300
|
+
#define TZNAME_DYNTZ 1
|
301
|
+
#define TZNAME_ZONE 2
|
302
|
+
|
303
|
+
|
304
|
+
extern void GetCurrentDateTime(struct pg_tm *tm);
|
305
|
+
extern void GetCurrentTimeUsec(struct pg_tm *tm, fsec_t *fsec, int *tzp);
|
306
|
+
extern void j2date(int jd, int *year, int *month, int *day);
|
307
|
+
extern int date2j(int year, int month, int day);
|
308
|
+
|
309
|
+
extern int ParseDateTime(const char *timestr, char *workbuf, size_t buflen,
|
310
|
+
char **field, int *ftype,
|
311
|
+
int maxfields, int *numfields);
|
312
|
+
extern int DecodeDateTime(char **field, int *ftype, int nf,
|
313
|
+
int *dtype, struct pg_tm *tm, fsec_t *fsec, int *tzp,
|
314
|
+
DateTimeErrorExtra *extra);
|
315
|
+
extern int DecodeTimezone(const char *str, int *tzp);
|
316
|
+
extern int DecodeTimeOnly(char **field, int *ftype, int nf,
|
317
|
+
int *dtype, struct pg_tm *tm, fsec_t *fsec, int *tzp,
|
318
|
+
DateTimeErrorExtra *extra);
|
319
|
+
extern int DecodeInterval(char **field, int *ftype, int nf, int range,
|
320
|
+
int *dtype, struct pg_itm_in *itm_in);
|
321
|
+
extern int DecodeISO8601Interval(char *str,
|
322
|
+
int *dtype, struct pg_itm_in *itm_in);
|
323
|
+
|
324
|
+
extern void DateTimeParseError(int dterr, DateTimeErrorExtra *extra,
|
325
|
+
const char *str, const char *datatype,
|
326
|
+
struct Node *escontext);
|
327
|
+
|
328
|
+
extern int DetermineTimeZoneOffset(struct pg_tm *tm, pg_tz *tzp);
|
329
|
+
extern int DetermineTimeZoneAbbrevOffset(struct pg_tm *tm, const char *abbr, pg_tz *tzp);
|
330
|
+
extern int DetermineTimeZoneAbbrevOffsetTS(TimestampTz ts, const char *abbr,
|
331
|
+
pg_tz *tzp, int *isdst);
|
332
|
+
|
333
|
+
extern void EncodeDateOnly(struct pg_tm *tm, int style, char *str);
|
334
|
+
extern void EncodeTimeOnly(struct pg_tm *tm, fsec_t fsec, bool print_tz, int tz, int style, char *str);
|
335
|
+
extern void EncodeDateTime(struct pg_tm *tm, fsec_t fsec, bool print_tz, int tz, const char *tzn, int style, char *str);
|
336
|
+
extern void EncodeInterval(struct pg_itm *itm, int style, char *str);
|
337
|
+
extern void EncodeSpecialTimestamp(Timestamp dt, char *str);
|
338
|
+
|
339
|
+
extern int ValidateDate(int fmask, bool isjulian, bool is2digits, bool bc,
|
340
|
+
struct pg_tm *tm);
|
341
|
+
|
342
|
+
extern int DecodeTimezoneAbbrev(int field, const char *lowtoken,
|
343
|
+
int *ftype, int *offset, pg_tz **tz,
|
344
|
+
DateTimeErrorExtra *extra);
|
345
|
+
extern int DecodeSpecial(int field, const char *lowtoken, int *val);
|
346
|
+
extern int DecodeUnits(int field, const char *lowtoken, int *val);
|
347
|
+
|
348
|
+
extern int DecodeTimezoneName(const char *tzname, int *offset, pg_tz **tz);
|
349
|
+
extern pg_tz *DecodeTimezoneNameToTz(const char *tzname);
|
350
|
+
|
351
|
+
extern int DecodeTimezoneAbbrevPrefix(const char *str,
|
352
|
+
int *offset, pg_tz **tz);
|
353
|
+
|
354
|
+
extern int j2day(int date);
|
355
|
+
|
356
|
+
extern struct Node *TemporalSimplify(int32 max_precis, struct Node *node);
|
357
|
+
|
358
|
+
extern bool CheckDateTokenTables(void);
|
359
|
+
|
360
|
+
extern TimeZoneAbbrevTable *ConvertTimeZoneAbbrevs(struct tzEntry *abbrevs,
|
361
|
+
int n);
|
362
|
+
extern void InstallTimeZoneAbbrevs(TimeZoneAbbrevTable *tbl);
|
363
|
+
|
364
|
+
extern bool AdjustTimestampForTypmod(Timestamp *time, int32 typmod,
|
365
|
+
struct Node *escontext);
|
366
|
+
|
367
|
+
#endif /* DATETIME_H */
|
@@ -0,0 +1,76 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* datum.h
|
4
|
+
* POSTGRES Datum (abstract data type) manipulation routines.
|
5
|
+
*
|
6
|
+
* These routines are driven by the 'typbyval' and 'typlen' information,
|
7
|
+
* which must previously have been obtained by the caller for the datatype
|
8
|
+
* of the Datum. (We do it this way because in most situations the caller
|
9
|
+
* can look up the info just once and use it for many per-datum operations.)
|
10
|
+
*
|
11
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
12
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
13
|
+
*
|
14
|
+
* src/include/utils/datum.h
|
15
|
+
*
|
16
|
+
*-------------------------------------------------------------------------
|
17
|
+
*/
|
18
|
+
#ifndef DATUM_H
|
19
|
+
#define DATUM_H
|
20
|
+
|
21
|
+
/*
|
22
|
+
* datumGetSize - find the "real" length of a datum
|
23
|
+
*/
|
24
|
+
extern Size datumGetSize(Datum value, bool typByVal, int typLen);
|
25
|
+
|
26
|
+
/*
|
27
|
+
* datumCopy - make a copy of a non-NULL datum.
|
28
|
+
*
|
29
|
+
* If the datatype is pass-by-reference, memory is obtained with palloc().
|
30
|
+
*/
|
31
|
+
extern Datum datumCopy(Datum value, bool typByVal, int typLen);
|
32
|
+
|
33
|
+
/*
|
34
|
+
* datumTransfer - transfer a non-NULL datum into the current memory context.
|
35
|
+
*
|
36
|
+
* Differs from datumCopy() in its handling of read-write expanded objects.
|
37
|
+
*/
|
38
|
+
extern Datum datumTransfer(Datum value, bool typByVal, int typLen);
|
39
|
+
|
40
|
+
/*
|
41
|
+
* datumIsEqual
|
42
|
+
* return true if two datums of the same type are equal, false otherwise.
|
43
|
+
*
|
44
|
+
* XXX : See comments in the code for restrictions!
|
45
|
+
*/
|
46
|
+
extern bool datumIsEqual(Datum value1, Datum value2,
|
47
|
+
bool typByVal, int typLen);
|
48
|
+
|
49
|
+
/*
|
50
|
+
* datum_image_eq
|
51
|
+
*
|
52
|
+
* Compares two datums for identical contents, based on byte images. Return
|
53
|
+
* true if the two datums are equal, false otherwise.
|
54
|
+
*/
|
55
|
+
extern bool datum_image_eq(Datum value1, Datum value2,
|
56
|
+
bool typByVal, int typLen);
|
57
|
+
|
58
|
+
/*
|
59
|
+
* datum_image_hash
|
60
|
+
*
|
61
|
+
* Generates hash value for 'value' based on its bits rather than logical
|
62
|
+
* value.
|
63
|
+
*/
|
64
|
+
extern uint32 datum_image_hash(Datum value, bool typByVal, int typLen);
|
65
|
+
|
66
|
+
/*
|
67
|
+
* Serialize and restore datums so that we can transfer them to parallel
|
68
|
+
* workers.
|
69
|
+
*/
|
70
|
+
extern Size datumEstimateSpace(Datum value, bool isnull, bool typByVal,
|
71
|
+
int typLen);
|
72
|
+
extern void datumSerialize(Datum value, bool isnull, bool typByVal,
|
73
|
+
int typLen, char **start_address);
|
74
|
+
extern Datum datumRestore(char **start_address, bool *isnull);
|
75
|
+
|
76
|
+
#endif /* DATUM_H */
|
@@ -0,0 +1,166 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* dsa.h
|
4
|
+
* Dynamic shared memory areas.
|
5
|
+
*
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
8
|
+
*
|
9
|
+
* IDENTIFICATION
|
10
|
+
* src/include/utils/dsa.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef DSA_H
|
15
|
+
#define DSA_H
|
16
|
+
|
17
|
+
#include "port/atomics.h"
|
18
|
+
#include "storage/dsm.h"
|
19
|
+
|
20
|
+
/* The opaque type used for an area. */
|
21
|
+
struct dsa_area;
|
22
|
+
typedef struct dsa_area dsa_area;
|
23
|
+
|
24
|
+
/*
|
25
|
+
* If this system only uses a 32-bit value for size_t, then use the 32-bit
|
26
|
+
* implementation of DSA. This limits the amount of DSA that can be created
|
27
|
+
* to something significantly less than the entire 4GB address space because
|
28
|
+
* the DSA pointer must encode both a segment identifier and an offset, but
|
29
|
+
* that shouldn't be a significant limitation in practice.
|
30
|
+
*
|
31
|
+
* If this system doesn't support atomic operations on 64-bit values, then
|
32
|
+
* we fall back to 32-bit dsa_pointer for lack of other options.
|
33
|
+
*
|
34
|
+
* For testing purposes, USE_SMALL_DSA_POINTER can be defined to force the use
|
35
|
+
* of 32-bit dsa_pointer even on systems capable of supporting a 64-bit
|
36
|
+
* dsa_pointer.
|
37
|
+
*/
|
38
|
+
#if SIZEOF_SIZE_T == 4 || !defined(PG_HAVE_ATOMIC_U64_SUPPORT) || \
|
39
|
+
defined(USE_SMALL_DSA_POINTER)
|
40
|
+
#define SIZEOF_DSA_POINTER 4
|
41
|
+
#else
|
42
|
+
#define SIZEOF_DSA_POINTER 8
|
43
|
+
#endif
|
44
|
+
|
45
|
+
/*
|
46
|
+
* The type of 'relative pointers' to memory allocated by a dynamic shared
|
47
|
+
* area. dsa_pointer values can be shared with other processes, but must be
|
48
|
+
* converted to backend-local pointers before they can be dereferenced. See
|
49
|
+
* dsa_get_address. Also, an atomic version and appropriately sized atomic
|
50
|
+
* operations.
|
51
|
+
*/
|
52
|
+
#if SIZEOF_DSA_POINTER == 4
|
53
|
+
typedef uint32 dsa_pointer;
|
54
|
+
typedef pg_atomic_uint32 dsa_pointer_atomic;
|
55
|
+
#define dsa_pointer_atomic_init pg_atomic_init_u32
|
56
|
+
#define dsa_pointer_atomic_read pg_atomic_read_u32
|
57
|
+
#define dsa_pointer_atomic_write pg_atomic_write_u32
|
58
|
+
#define dsa_pointer_atomic_fetch_add pg_atomic_fetch_add_u32
|
59
|
+
#define dsa_pointer_atomic_compare_exchange pg_atomic_compare_exchange_u32
|
60
|
+
#define DSA_POINTER_FORMAT "%08x"
|
61
|
+
#else
|
62
|
+
typedef uint64 dsa_pointer;
|
63
|
+
typedef pg_atomic_uint64 dsa_pointer_atomic;
|
64
|
+
#define dsa_pointer_atomic_init pg_atomic_init_u64
|
65
|
+
#define dsa_pointer_atomic_read pg_atomic_read_u64
|
66
|
+
#define dsa_pointer_atomic_write pg_atomic_write_u64
|
67
|
+
#define dsa_pointer_atomic_fetch_add pg_atomic_fetch_add_u64
|
68
|
+
#define dsa_pointer_atomic_compare_exchange pg_atomic_compare_exchange_u64
|
69
|
+
#define DSA_POINTER_FORMAT "%016" INT64_MODIFIER "x"
|
70
|
+
#endif
|
71
|
+
|
72
|
+
/* Flags for dsa_allocate_extended. */
|
73
|
+
#define DSA_ALLOC_HUGE 0x01 /* allow huge allocation (> 1 GB) */
|
74
|
+
#define DSA_ALLOC_NO_OOM 0x02 /* no failure if out-of-memory */
|
75
|
+
#define DSA_ALLOC_ZERO 0x04 /* zero allocated memory */
|
76
|
+
|
77
|
+
/* A sentinel value for dsa_pointer used to indicate failure to allocate. */
|
78
|
+
#define InvalidDsaPointer ((dsa_pointer) 0)
|
79
|
+
|
80
|
+
/*
|
81
|
+
* The number of bits used to represent the offset part of a dsa_pointer.
|
82
|
+
* This controls the maximum size of a segment, the maximum possible
|
83
|
+
* allocation size and also the maximum number of segments per area.
|
84
|
+
*/
|
85
|
+
#if SIZEOF_DSA_POINTER == 4
|
86
|
+
#define DSA_OFFSET_WIDTH 27 /* 32 segments of size up to 128MB */
|
87
|
+
#else
|
88
|
+
#define DSA_OFFSET_WIDTH 40 /* 1024 segments of size up to 1TB */
|
89
|
+
#endif
|
90
|
+
|
91
|
+
/*
|
92
|
+
* The default size of the initial DSM segment that backs a dsa_area created
|
93
|
+
* by dsa_create. After creating some number of segments of the initial size
|
94
|
+
* we'll double this size, and so on. Larger segments may be created if
|
95
|
+
* necessary to satisfy large requests.
|
96
|
+
*/
|
97
|
+
#define DSA_DEFAULT_INIT_SEGMENT_SIZE ((size_t) (1 * 1024 * 1024))
|
98
|
+
|
99
|
+
/* The minimum size of a DSM segment. */
|
100
|
+
#define DSA_MIN_SEGMENT_SIZE ((size_t) (256 * 1024L))
|
101
|
+
|
102
|
+
/* The maximum size of a DSM segment. */
|
103
|
+
#define DSA_MAX_SEGMENT_SIZE ((size_t) 1 << DSA_OFFSET_WIDTH)
|
104
|
+
|
105
|
+
/* Check if a dsa_pointer value is valid. */
|
106
|
+
#define DsaPointerIsValid(x) ((x) != InvalidDsaPointer)
|
107
|
+
|
108
|
+
/* Allocate uninitialized memory with error on out-of-memory. */
|
109
|
+
#define dsa_allocate(area, size) \
|
110
|
+
dsa_allocate_extended(area, size, 0)
|
111
|
+
|
112
|
+
/* Allocate zero-initialized memory with error on out-of-memory. */
|
113
|
+
#define dsa_allocate0(area, size) \
|
114
|
+
dsa_allocate_extended(area, size, DSA_ALLOC_ZERO)
|
115
|
+
|
116
|
+
/* Create dsa_area with default segment sizes */
|
117
|
+
#define dsa_create(tranch_id) \
|
118
|
+
dsa_create_ext(tranch_id, DSA_DEFAULT_INIT_SEGMENT_SIZE, \
|
119
|
+
DSA_MAX_SEGMENT_SIZE)
|
120
|
+
|
121
|
+
/* Create dsa_area with default segment sizes in an existing share memory space */
|
122
|
+
#define dsa_create_in_place(place, size, tranch_id, segment) \
|
123
|
+
dsa_create_in_place_ext(place, size, tranch_id, segment, \
|
124
|
+
DSA_DEFAULT_INIT_SEGMENT_SIZE, \
|
125
|
+
DSA_MAX_SEGMENT_SIZE)
|
126
|
+
|
127
|
+
/*
|
128
|
+
* The type used for dsa_area handles. dsa_handle values can be shared with
|
129
|
+
* other processes, so that they can attach to them. This provides a way to
|
130
|
+
* share allocated storage with other processes.
|
131
|
+
*
|
132
|
+
* The handle for a dsa_area is currently implemented as the dsm_handle
|
133
|
+
* for the first DSM segment backing this dynamic storage area, but client
|
134
|
+
* code shouldn't assume that is true.
|
135
|
+
*/
|
136
|
+
typedef dsm_handle dsa_handle;
|
137
|
+
|
138
|
+
/* Sentinel value to use for invalid dsa_handles. */
|
139
|
+
#define DSA_HANDLE_INVALID ((dsa_handle) DSM_HANDLE_INVALID)
|
140
|
+
|
141
|
+
extern dsa_area *dsa_create_ext(int tranche_id, size_t init_segment_size,
|
142
|
+
size_t max_segment_size);
|
143
|
+
extern dsa_area *dsa_create_in_place_ext(void *place, size_t size,
|
144
|
+
int tranche_id, dsm_segment *segment,
|
145
|
+
size_t init_segment_size,
|
146
|
+
size_t max_segment_size);
|
147
|
+
extern dsa_area *dsa_attach(dsa_handle handle);
|
148
|
+
extern dsa_area *dsa_attach_in_place(void *place, dsm_segment *segment);
|
149
|
+
extern void dsa_release_in_place(void *place);
|
150
|
+
extern void dsa_on_dsm_detach_release_in_place(dsm_segment *, Datum);
|
151
|
+
extern void dsa_on_shmem_exit_release_in_place(int, Datum);
|
152
|
+
extern void dsa_pin_mapping(dsa_area *area);
|
153
|
+
extern void dsa_detach(dsa_area *area);
|
154
|
+
extern void dsa_pin(dsa_area *area);
|
155
|
+
extern void dsa_unpin(dsa_area *area);
|
156
|
+
extern void dsa_set_size_limit(dsa_area *area, size_t limit);
|
157
|
+
extern size_t dsa_minimum_size(void);
|
158
|
+
extern dsa_handle dsa_get_handle(dsa_area *area);
|
159
|
+
extern dsa_pointer dsa_allocate_extended(dsa_area *area, size_t size, int flags);
|
160
|
+
extern void dsa_free(dsa_area *area, dsa_pointer dp);
|
161
|
+
extern void *dsa_get_address(dsa_area *area, dsa_pointer dp);
|
162
|
+
extern size_t dsa_get_total_size(dsa_area *area);
|
163
|
+
extern void dsa_trim(dsa_area *area);
|
164
|
+
extern void dsa_dump(dsa_area *area);
|
165
|
+
|
166
|
+
#endif /* DSA_H */
|