pg_query 2.2.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +86 -0
- data/README.md +57 -31
- 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 +30 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +839 -290
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +638 -481
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +6786 -4193
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +450 -330
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1489 -1044
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +157 -118
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1933 -1410
- 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/rmgr.h +62 -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 +8077 -6217
- data/ext/pg_query/include/protobuf/pg_query.pb.h +132024 -88124
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +24028 -17173
- data/ext/pg_query/pg_query_deparse.c +1 -9902
- data/ext/pg_query/pg_query_fingerprint.c +42 -18
- 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 -25
- data/ext/pg_query/pg_query_normalize.c +44 -3
- data/ext/pg_query/pg_query_outfuncs_json.c +62 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
- 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 +45 -10
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_scan.c +4 -3
- data/ext/pg_query/pg_query_split.c +6 -5
- 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 +262 -71
- data/ext/pg_query/src_backend_catalog_pg_proc.c +3 -2
- data/ext/pg_query/src_backend_commands_define.c +12 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +142 -156
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +100 -5881
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3831
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +89 -18
- data/ext/pg_query/src_backend_nodes_makefuncs.c +138 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +433 -132
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +45255 -38885
- data/ext/pg_query/src_backend_parser_parser.c +53 -8
- data/ext/pg_query/src_backend_parser_scan.c +6999 -3438
- data/ext/pg_query/src_backend_parser_scansup.c +5 -28
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +156 -114
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +14 -2
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
- data/ext/pg_query/src_backend_utils_adt_numutils.c +488 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +247 -34
- data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
- data/ext/pg_query/src_backend_utils_error_elog.c +543 -343
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +47 -18
- data/ext/pg_query/src_backend_utils_init_globals.c +22 -7
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +84 -148
- 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 +708 -499
- 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 +710 -218
- 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 +3 -3
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +602 -510
- 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 +754 -178
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +143 -24
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1295 -1255
- 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 +10 -10
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +20 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
- data/ext/pg_query/src_port_pg_bitutils.c +283 -54
- data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +56 -39
- data/ext/pg_query/src_port_strerror.c +9 -21
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/filter_columns.rb +1 -1
- data/lib/pg_query/fingerprint.rb +10 -9
- data/lib/pg_query/node.rb +18 -13
- data/lib/pg_query/param_refs.rb +3 -3
- data/lib/pg_query/parse.rb +25 -15
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +181 -3038
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +55 -8
- data/lib/pg_query/truncate.rb +19 -21
- data/lib/pg_query/version.rb +1 -1
- metadata +447 -436
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -246
- 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 -61
- data/ext/pg_query/include/access/commit_ts.h +0 -77
- data/ext/pg_query/include/access/detoast.h +0 -92
- data/ext/pg_query/include/access/genam.h +0 -228
- 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 -819
- data/ext/pg_query/include/access/itup.h +0 -161
- 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 -176
- data/ext/pg_query/include/access/rmgr.h +0 -35
- 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 -83
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -27
- data/ext/pg_query/include/access/tableam.h +0 -1825
- data/ext/pg_query/include/access/transam.h +0 -265
- 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 -63
- data/ext/pg_query/include/access/xact.h +0 -469
- data/ext/pg_query/include/access/xlog.h +0 -398
- data/ext/pg_query/include/access/xlog_internal.h +0 -339
- data/ext/pg_query/include/access/xlogdefs.h +0 -109
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/access/xlogreader.h +0 -337
- data/ext/pg_query/include/access/xlogrecord.h +0 -227
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/c.h +0 -1334
- data/ext/pg_query/include/catalog/catalog.h +0 -42
- data/ext/pg_query/include/catalog/catversion.h +0 -58
- data/ext/pg_query/include/catalog/dependency.h +0 -277
- data/ext/pg_query/include/catalog/genbki.h +0 -64
- data/ext/pg_query/include/catalog/index.h +0 -199
- data/ext/pg_query/include/catalog/indexing.h +0 -366
- data/ext/pg_query/include/catalog/namespace.h +0 -188
- data/ext/pg_query/include/catalog/objectaccess.h +0 -197
- data/ext/pg_query/include/catalog/objectaddress.h +0 -84
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -176
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -77
- data/ext/pg_query/include/catalog/pg_am.h +0 -60
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -204
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_authid.h +0 -58
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_class.h +0 -200
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -103
- data/ext/pg_query/include/catalog/pg_collation.h +0 -73
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -247
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -67
- data/ext/pg_query/include/catalog/pg_control.h +0 -252
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -72
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_depend.h +0 -73
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -51
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_index.h +0 -80
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -56
- data/ext/pg_query/include/catalog/pg_language.h +0 -67
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -39
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -59
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -85
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_operator.h +0 -104
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -60
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -63
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_proc.h +0 -211
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -99
- data/ext/pg_query/include/catalog/pg_publication.h +0 -118
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -57
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -29
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -275
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -194
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -74
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -40
- data/ext/pg_query/include/catalog/pg_transform.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -137
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -50
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -54
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -57
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -48
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_type.h +0 -373
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -285
- data/ext/pg_query/include/catalog/storage.h +0 -48
- data/ext/pg_query/include/commands/async.h +0 -54
- data/ext/pg_query/include/commands/dbcommands.h +0 -35
- data/ext/pg_query/include/commands/defrem.h +0 -173
- 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 -285
- data/ext/pg_query/include/commands/user.h +0 -37
- data/ext/pg_query/include/commands/vacuum.h +0 -293
- 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 -37
- data/ext/pg_query/include/common/keywords.h +0 -33
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/relpath.h +0 -90
- data/ext/pg_query/include/common/string.h +0 -19
- data/ext/pg_query/include/common/unicode_combining_table.h +0 -196
- data/ext/pg_query/include/datatype/timestamp.h +0 -197
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -620
- data/ext/pg_query/include/executor/functions.h +0 -41
- data/ext/pg_query/include/executor/instrument.h +0 -101
- data/ext/pg_query/include/executor/spi.h +0 -175
- 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 -775
- data/ext/pg_query/include/funcapi.h +0 -348
- 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 -1072
- data/ext/pg_query/include/lib/ilist.h +0 -727
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1059
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -29
- data/ext/pg_query/include/libpq/crypt.h +0 -46
- data/ext/pg_query/include/libpq/hba.h +0 -140
- data/ext/pg_query/include/libpq/libpq-be.h +0 -326
- data/ext/pg_query/include/libpq/libpq.h +0 -134
- data/ext/pg_query/include/libpq/pqcomm.h +0 -208
- 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 -673
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -489
- data/ext/pg_query/include/nodes/bitmapset.h +0 -122
- data/ext/pg_query/include/nodes/execnodes.h +0 -2523
- data/ext/pg_query/include/nodes/extensible.h +0 -160
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -108
- data/ext/pg_query/include/nodes/memnodes.h +0 -108
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
- data/ext/pg_query/include/nodes/nodes.h +0 -842
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -3580
- data/ext/pg_query/include/nodes/pathnodes.h +0 -2557
- data/ext/pg_query/include/nodes/pg_list.h +0 -606
- data/ext/pg_query/include/nodes/plannodes.h +0 -1266
- data/ext/pg_query/include/nodes/primnodes.h +0 -1541
- 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 -61
- data/ext/pg_query/include/optimizer/cost.h +0 -206
- data/ext/pg_query/include/optimizer/geqo.h +0 -88
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -194
- data/ext/pg_query/include/optimizer/paths.h +0 -257
- data/ext/pg_query/include/optimizer/planmain.h +0 -119
- data/ext/pg_query/include/parser/analyze.h +0 -49
- data/ext/pg_query/include/parser/gram.h +0 -1067
- data/ext/pg_query/include/parser/gramparse.h +0 -75
- data/ext/pg_query/include/parser/kwlist.h +0 -477
- data/ext/pg_query/include/parser/parse_agg.h +0 -68
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_coerce.h +0 -98
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_expr.h +0 -26
- data/ext/pg_query/include/parser/parse_func.h +0 -73
- data/ext/pg_query/include/parser/parse_node.h +0 -327
- data/ext/pg_query/include/parser/parse_oper.h +0 -67
- data/ext/pg_query/include/parser/parse_relation.h +0 -123
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/include/parser/parse_type.h +0 -60
- data/ext/pg_query/include/parser/parser.h +0 -41
- 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 -30
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -995
- data/ext/pg_query/include/pg_config_manual.h +0 -357
- 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 -1488
- data/ext/pg_query/include/pgtime.h +0 -84
- data/ext/pg_query/include/pl_gram.h +0 -385
- 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 -112
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -246
- data/ext/pg_query/include/plerrcodes.h +0 -990
- data/ext/pg_query/include/plpgsql.h +0 -1347
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -26
- 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 -272
- 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 -528
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postgres.h +0 -764
- 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/bgworker.h +0 -161
- 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 -39
- data/ext/pg_query/include/postmaster/postmaster.h +0 -77
- data/ext/pg_query/include/postmaster/syslogger.h +0 -98
- data/ext/pg_query/include/postmaster/walwriter.h +0 -21
- data/ext/pg_query/include/regex/regex.h +0 -184
- data/ext/pg_query/include/replication/logicallauncher.h +0 -31
- data/ext/pg_query/include/replication/logicalproto.h +0 -110
- 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 -468
- data/ext/pg_query/include/replication/slot.h +0 -219
- data/ext/pg_query/include/replication/syncrep.h +0 -115
- data/ext/pg_query/include/replication/walreceiver.h +0 -340
- 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 -40
- 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 -121
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -292
- data/ext/pg_query/include/storage/bufpage.h +0 -459
- data/ext/pg_query/include/storage/condition_variable.h +0 -62
- data/ext/pg_query/include/storage/dsm.h +0 -61
- data/ext/pg_query/include/storage/dsm_impl.h +0 -75
- data/ext/pg_query/include/storage/fd.h +0 -168
- data/ext/pg_query/include/storage/ipc.h +0 -81
- 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 -206
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -190
- data/ext/pg_query/include/storage/lmgr.h +0 -114
- data/ext/pg_query/include/storage/lock.h +0 -613
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -233
- data/ext/pg_query/include/storage/lwlocknames.h +0 -51
- 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 -90
- data/ext/pg_query/include/storage/pmsignal.h +0 -94
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -347
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -75
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -1071
- data/ext/pg_query/include/storage/sharedfileset.h +0 -45
- data/ext/pg_query/include/storage/shm_mq.h +0 -85
- 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 -109
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -91
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -62
- data/ext/pg_query/include/tcop/cmdtag.h +0 -58
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -217
- 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 -21
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -89
- data/ext/pg_query/include/tcop/utility.h +0 -108
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
- data/ext/pg_query/include/utils/acl.h +0 -312
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -459
- data/ext/pg_query/include/utils/builtins.h +0 -128
- data/ext/pg_query/include/utils/bytea.h +0 -27
- 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 -343
- data/ext/pg_query/include/utils/datum.h +0 -68
- data/ext/pg_query/include/utils/dsa.h +0 -123
- data/ext/pg_query/include/utils/dynahash.h +0 -19
- data/ext/pg_query/include/utils/elog.h +0 -439
- data/ext/pg_query/include/utils/errcodes.h +0 -352
- 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 -2657
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2646
- data/ext/pg_query/include/utils/fmgrtab.h +0 -48
- data/ext/pg_query/include/utils/guc.h +0 -443
- data/ext/pg_query/include/utils/guc_tables.h +0 -272
- data/ext/pg_query/include/utils/hsearch.h +0 -149
- data/ext/pg_query/include/utils/inval.h +0 -65
- data/ext/pg_query/include/utils/lsyscache.h +0 -198
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -225
- data/ext/pg_query/include/utils/numeric.h +0 -76
- data/ext/pg_query/include/utils/palloc.h +0 -136
- data/ext/pg_query/include/utils/partcache.h +0 -102
- data/ext/pg_query/include/utils/pg_locale.h +0 -119
- 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/plancache.h +0 -235
- data/ext/pg_query/include/utils/portal.h +0 -254
- 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/regproc.h +0 -28
- data/ext/pg_query/include/utils/rel.h +0 -643
- data/ext/pg_query/include/utils/relcache.h +0 -150
- 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 -44
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -159
- data/ext/pg_query/include/utils/snapshot.h +0 -206
- data/ext/pg_query/include/utils/sortsupport.h +0 -276
- data/ext/pg_query/include/utils/syscache.h +0 -219
- data/ext/pg_query/include/utils/timeout.h +0 -88
- data/ext/pg_query/include/utils/timestamp.h +0 -116
- data/ext/pg_query/include/utils/tuplesort.h +0 -277
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -202
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/include/utils/varlena.h +0 -39
- data/ext/pg_query/include/utils/xml.h +0 -84
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1832
- data/ext/pg_query/src_common_string.c +0 -86
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_random.c +0 -31
- 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/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -1,231 +0,0 @@
|
|
1
|
-
/*-------------------------------------------------------------------------
|
2
|
-
*
|
3
|
-
* catcache.h
|
4
|
-
* Low-level catalog cache definitions.
|
5
|
-
*
|
6
|
-
* NOTE: every catalog cache must have a corresponding unique index on
|
7
|
-
* the system table that it caches --- ie, the index must match the keys
|
8
|
-
* used to do lookups in this cache. All cache fetches are done with
|
9
|
-
* indexscans (under normal conditions). The index should be unique to
|
10
|
-
* guarantee that there can only be one matching row for a key combination.
|
11
|
-
*
|
12
|
-
*
|
13
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
14
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
15
|
-
*
|
16
|
-
* src/include/utils/catcache.h
|
17
|
-
*
|
18
|
-
*-------------------------------------------------------------------------
|
19
|
-
*/
|
20
|
-
#ifndef CATCACHE_H
|
21
|
-
#define CATCACHE_H
|
22
|
-
|
23
|
-
#include "access/htup.h"
|
24
|
-
#include "access/skey.h"
|
25
|
-
#include "lib/ilist.h"
|
26
|
-
#include "utils/relcache.h"
|
27
|
-
|
28
|
-
/*
|
29
|
-
* struct catctup: individual tuple in the cache.
|
30
|
-
* struct catclist: list of tuples matching a partial key.
|
31
|
-
* struct catcache: information for managing a cache.
|
32
|
-
* struct catcacheheader: information for managing all the caches.
|
33
|
-
*/
|
34
|
-
|
35
|
-
#define CATCACHE_MAXKEYS 4
|
36
|
-
|
37
|
-
|
38
|
-
/* function computing a datum's hash */
|
39
|
-
typedef uint32 (*CCHashFN) (Datum datum);
|
40
|
-
|
41
|
-
/* function computing equality of two datums */
|
42
|
-
typedef bool (*CCFastEqualFN) (Datum a, Datum b);
|
43
|
-
|
44
|
-
typedef struct catcache
|
45
|
-
{
|
46
|
-
int id; /* cache identifier --- see syscache.h */
|
47
|
-
int cc_nbuckets; /* # of hash buckets in this cache */
|
48
|
-
TupleDesc cc_tupdesc; /* tuple descriptor (copied from reldesc) */
|
49
|
-
dlist_head *cc_bucket; /* hash buckets */
|
50
|
-
CCHashFN cc_hashfunc[CATCACHE_MAXKEYS]; /* hash function for each key */
|
51
|
-
CCFastEqualFN cc_fastequal[CATCACHE_MAXKEYS]; /* fast equal function for
|
52
|
-
* each key */
|
53
|
-
int cc_keyno[CATCACHE_MAXKEYS]; /* AttrNumber of each key */
|
54
|
-
dlist_head cc_lists; /* list of CatCList structs */
|
55
|
-
int cc_ntup; /* # of tuples currently in this cache */
|
56
|
-
int cc_nkeys; /* # of keys (1..CATCACHE_MAXKEYS) */
|
57
|
-
const char *cc_relname; /* name of relation the tuples come from */
|
58
|
-
Oid cc_reloid; /* OID of relation the tuples come from */
|
59
|
-
Oid cc_indexoid; /* OID of index matching cache keys */
|
60
|
-
bool cc_relisshared; /* is relation shared across databases? */
|
61
|
-
slist_node cc_next; /* list link */
|
62
|
-
ScanKeyData cc_skey[CATCACHE_MAXKEYS]; /* precomputed key info for heap
|
63
|
-
* scans */
|
64
|
-
|
65
|
-
/*
|
66
|
-
* Keep these at the end, so that compiling catcache.c with CATCACHE_STATS
|
67
|
-
* doesn't break ABI for other modules
|
68
|
-
*/
|
69
|
-
#ifdef CATCACHE_STATS
|
70
|
-
long cc_searches; /* total # searches against this cache */
|
71
|
-
long cc_hits; /* # of matches against existing entry */
|
72
|
-
long cc_neg_hits; /* # of matches against negative entry */
|
73
|
-
long cc_newloads; /* # of successful loads of new entry */
|
74
|
-
|
75
|
-
/*
|
76
|
-
* cc_searches - (cc_hits + cc_neg_hits + cc_newloads) is number of failed
|
77
|
-
* searches, each of which will result in loading a negative entry
|
78
|
-
*/
|
79
|
-
long cc_invals; /* # of entries invalidated from cache */
|
80
|
-
long cc_lsearches; /* total # list-searches */
|
81
|
-
long cc_lhits; /* # of matches against existing lists */
|
82
|
-
#endif
|
83
|
-
} CatCache;
|
84
|
-
|
85
|
-
|
86
|
-
typedef struct catctup
|
87
|
-
{
|
88
|
-
int ct_magic; /* for identifying CatCTup entries */
|
89
|
-
#define CT_MAGIC 0x57261502
|
90
|
-
|
91
|
-
uint32 hash_value; /* hash value for this tuple's keys */
|
92
|
-
|
93
|
-
/*
|
94
|
-
* Lookup keys for the entry. By-reference datums point into the tuple for
|
95
|
-
* positive cache entries, and are separately allocated for negative ones.
|
96
|
-
*/
|
97
|
-
Datum keys[CATCACHE_MAXKEYS];
|
98
|
-
|
99
|
-
/*
|
100
|
-
* Each tuple in a cache is a member of a dlist that stores the elements
|
101
|
-
* of its hash bucket. We keep each dlist in LRU order to speed repeated
|
102
|
-
* lookups.
|
103
|
-
*/
|
104
|
-
dlist_node cache_elem; /* list member of per-bucket list */
|
105
|
-
|
106
|
-
/*
|
107
|
-
* A tuple marked "dead" must not be returned by subsequent searches.
|
108
|
-
* However, it won't be physically deleted from the cache until its
|
109
|
-
* refcount goes to zero. (If it's a member of a CatCList, the list's
|
110
|
-
* refcount must go to zero, too; also, remember to mark the list dead at
|
111
|
-
* the same time the tuple is marked.)
|
112
|
-
*
|
113
|
-
* A negative cache entry is an assertion that there is no tuple matching
|
114
|
-
* a particular key. This is just as useful as a normal entry so far as
|
115
|
-
* avoiding catalog searches is concerned. Management of positive and
|
116
|
-
* negative entries is identical.
|
117
|
-
*/
|
118
|
-
int refcount; /* number of active references */
|
119
|
-
bool dead; /* dead but not yet removed? */
|
120
|
-
bool negative; /* negative cache entry? */
|
121
|
-
HeapTupleData tuple; /* tuple management header */
|
122
|
-
|
123
|
-
/*
|
124
|
-
* The tuple may also be a member of at most one CatCList. (If a single
|
125
|
-
* catcache is list-searched with varying numbers of keys, we may have to
|
126
|
-
* make multiple entries for the same tuple because of this restriction.
|
127
|
-
* Currently, that's not expected to be common, so we accept the potential
|
128
|
-
* inefficiency.)
|
129
|
-
*/
|
130
|
-
struct catclist *c_list; /* containing CatCList, or NULL if none */
|
131
|
-
|
132
|
-
CatCache *my_cache; /* link to owning catcache */
|
133
|
-
/* properly aligned tuple data follows, unless a negative entry */
|
134
|
-
} CatCTup;
|
135
|
-
|
136
|
-
|
137
|
-
/*
|
138
|
-
* A CatCList describes the result of a partial search, ie, a search using
|
139
|
-
* only the first K key columns of an N-key cache. We store the keys used
|
140
|
-
* into the keys attribute to represent the stored key set. The CatCList
|
141
|
-
* object contains links to cache entries for all the table rows satisfying
|
142
|
-
* the partial key. (Note: none of these will be negative cache entries.)
|
143
|
-
*
|
144
|
-
* A CatCList is only a member of a per-cache list; we do not currently
|
145
|
-
* divide them into hash buckets.
|
146
|
-
*
|
147
|
-
* A list marked "dead" must not be returned by subsequent searches.
|
148
|
-
* However, it won't be physically deleted from the cache until its
|
149
|
-
* refcount goes to zero. (A list should be marked dead if any of its
|
150
|
-
* member entries are dead.)
|
151
|
-
*
|
152
|
-
* If "ordered" is true then the member tuples appear in the order of the
|
153
|
-
* cache's underlying index. This will be true in normal operation, but
|
154
|
-
* might not be true during bootstrap or recovery operations. (namespace.c
|
155
|
-
* is able to save some cycles when it is true.)
|
156
|
-
*/
|
157
|
-
typedef struct catclist
|
158
|
-
{
|
159
|
-
int cl_magic; /* for identifying CatCList entries */
|
160
|
-
#define CL_MAGIC 0x52765103
|
161
|
-
|
162
|
-
uint32 hash_value; /* hash value for lookup keys */
|
163
|
-
|
164
|
-
dlist_node cache_elem; /* list member of per-catcache list */
|
165
|
-
|
166
|
-
/*
|
167
|
-
* Lookup keys for the entry, with the first nkeys elements being valid.
|
168
|
-
* All by-reference are separately allocated.
|
169
|
-
*/
|
170
|
-
Datum keys[CATCACHE_MAXKEYS];
|
171
|
-
|
172
|
-
int refcount; /* number of active references */
|
173
|
-
bool dead; /* dead but not yet removed? */
|
174
|
-
bool ordered; /* members listed in index order? */
|
175
|
-
short nkeys; /* number of lookup keys specified */
|
176
|
-
int n_members; /* number of member tuples */
|
177
|
-
CatCache *my_cache; /* link to owning catcache */
|
178
|
-
CatCTup *members[FLEXIBLE_ARRAY_MEMBER]; /* members */
|
179
|
-
} CatCList;
|
180
|
-
|
181
|
-
|
182
|
-
typedef struct catcacheheader
|
183
|
-
{
|
184
|
-
slist_head ch_caches; /* head of list of CatCache structs */
|
185
|
-
int ch_ntup; /* # of tuples in all caches */
|
186
|
-
} CatCacheHeader;
|
187
|
-
|
188
|
-
|
189
|
-
/* this extern duplicates utils/memutils.h... */
|
190
|
-
extern PGDLLIMPORT MemoryContext CacheMemoryContext;
|
191
|
-
|
192
|
-
extern void CreateCacheMemoryContext(void);
|
193
|
-
|
194
|
-
extern CatCache *InitCatCache(int id, Oid reloid, Oid indexoid,
|
195
|
-
int nkeys, const int *key,
|
196
|
-
int nbuckets);
|
197
|
-
extern void InitCatCachePhase2(CatCache *cache, bool touch_index);
|
198
|
-
|
199
|
-
extern HeapTuple SearchCatCache(CatCache *cache,
|
200
|
-
Datum v1, Datum v2, Datum v3, Datum v4);
|
201
|
-
extern HeapTuple SearchCatCache1(CatCache *cache,
|
202
|
-
Datum v1);
|
203
|
-
extern HeapTuple SearchCatCache2(CatCache *cache,
|
204
|
-
Datum v1, Datum v2);
|
205
|
-
extern HeapTuple SearchCatCache3(CatCache *cache,
|
206
|
-
Datum v1, Datum v2, Datum v3);
|
207
|
-
extern HeapTuple SearchCatCache4(CatCache *cache,
|
208
|
-
Datum v1, Datum v2, Datum v3, Datum v4);
|
209
|
-
extern void ReleaseCatCache(HeapTuple tuple);
|
210
|
-
|
211
|
-
extern uint32 GetCatCacheHashValue(CatCache *cache,
|
212
|
-
Datum v1, Datum v2,
|
213
|
-
Datum v3, Datum v4);
|
214
|
-
|
215
|
-
extern CatCList *SearchCatCacheList(CatCache *cache, int nkeys,
|
216
|
-
Datum v1, Datum v2,
|
217
|
-
Datum v3);
|
218
|
-
extern void ReleaseCatCacheList(CatCList *list);
|
219
|
-
|
220
|
-
extern void ResetCatalogCaches(void);
|
221
|
-
extern void CatalogCacheFlushCatalog(Oid catId);
|
222
|
-
extern void CatCacheInvalidate(CatCache *cache, uint32 hashValue);
|
223
|
-
extern void PrepareToInvalidateCacheTuple(Relation relation,
|
224
|
-
HeapTuple tuple,
|
225
|
-
HeapTuple newtuple,
|
226
|
-
void (*function) (int, uint32, Oid));
|
227
|
-
|
228
|
-
extern void PrintCatCacheLeakWarning(HeapTuple tuple);
|
229
|
-
extern void PrintCatCacheListLeakWarning(CatCList *list);
|
230
|
-
|
231
|
-
#endif /* CATCACHE_H */
|
@@ -1,90 +0,0 @@
|
|
1
|
-
/*-------------------------------------------------------------------------
|
2
|
-
*
|
3
|
-
* date.h
|
4
|
-
* Definitions for the SQL "date" and "time" types.
|
5
|
-
*
|
6
|
-
*
|
7
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
-
*
|
10
|
-
* src/include/utils/date.h
|
11
|
-
*
|
12
|
-
*-------------------------------------------------------------------------
|
13
|
-
*/
|
14
|
-
#ifndef DATE_H
|
15
|
-
#define DATE_H
|
16
|
-
|
17
|
-
#include <math.h>
|
18
|
-
|
19
|
-
#include "datatype/timestamp.h"
|
20
|
-
#include "fmgr.h"
|
21
|
-
#include "pgtime.h"
|
22
|
-
|
23
|
-
typedef int32 DateADT;
|
24
|
-
|
25
|
-
typedef int64 TimeADT;
|
26
|
-
|
27
|
-
typedef struct
|
28
|
-
{
|
29
|
-
TimeADT time; /* all time units other than months and years */
|
30
|
-
int32 zone; /* numeric time zone, in seconds */
|
31
|
-
} TimeTzADT;
|
32
|
-
|
33
|
-
/*
|
34
|
-
* Infinity and minus infinity must be the max and min values of DateADT.
|
35
|
-
*/
|
36
|
-
#define DATEVAL_NOBEGIN ((DateADT) PG_INT32_MIN)
|
37
|
-
#define DATEVAL_NOEND ((DateADT) PG_INT32_MAX)
|
38
|
-
|
39
|
-
#define DATE_NOBEGIN(j) ((j) = DATEVAL_NOBEGIN)
|
40
|
-
#define DATE_IS_NOBEGIN(j) ((j) == DATEVAL_NOBEGIN)
|
41
|
-
#define DATE_NOEND(j) ((j) = DATEVAL_NOEND)
|
42
|
-
#define DATE_IS_NOEND(j) ((j) == DATEVAL_NOEND)
|
43
|
-
#define DATE_NOT_FINITE(j) (DATE_IS_NOBEGIN(j) || DATE_IS_NOEND(j))
|
44
|
-
|
45
|
-
/*
|
46
|
-
* Macros for fmgr-callable functions.
|
47
|
-
*
|
48
|
-
* For TimeADT, we make use of the same support routines as for int64.
|
49
|
-
* Therefore TimeADT is pass-by-reference if and only if int64 is!
|
50
|
-
*/
|
51
|
-
#define MAX_TIME_PRECISION 6
|
52
|
-
|
53
|
-
#define DatumGetDateADT(X) ((DateADT) DatumGetInt32(X))
|
54
|
-
#define DatumGetTimeADT(X) ((TimeADT) DatumGetInt64(X))
|
55
|
-
#define DatumGetTimeTzADTP(X) ((TimeTzADT *) DatumGetPointer(X))
|
56
|
-
|
57
|
-
#define DateADTGetDatum(X) Int32GetDatum(X)
|
58
|
-
#define TimeADTGetDatum(X) Int64GetDatum(X)
|
59
|
-
#define TimeTzADTPGetDatum(X) PointerGetDatum(X)
|
60
|
-
|
61
|
-
#define PG_GETARG_DATEADT(n) DatumGetDateADT(PG_GETARG_DATUM(n))
|
62
|
-
#define PG_GETARG_TIMEADT(n) DatumGetTimeADT(PG_GETARG_DATUM(n))
|
63
|
-
#define PG_GETARG_TIMETZADT_P(n) DatumGetTimeTzADTP(PG_GETARG_DATUM(n))
|
64
|
-
|
65
|
-
#define PG_RETURN_DATEADT(x) return DateADTGetDatum(x)
|
66
|
-
#define PG_RETURN_TIMEADT(x) return TimeADTGetDatum(x)
|
67
|
-
#define PG_RETURN_TIMETZADT_P(x) return TimeTzADTPGetDatum(x)
|
68
|
-
|
69
|
-
|
70
|
-
/* date.c */
|
71
|
-
extern int32 anytime_typmod_check(bool istz, int32 typmod);
|
72
|
-
extern double date2timestamp_no_overflow(DateADT dateVal);
|
73
|
-
extern Timestamp date2timestamp_opt_overflow(DateADT dateVal, int *overflow);
|
74
|
-
extern TimestampTz date2timestamptz_opt_overflow(DateADT dateVal, int *overflow);
|
75
|
-
extern int32 date_cmp_timestamp_internal(DateADT dateVal, Timestamp dt2);
|
76
|
-
extern int32 date_cmp_timestamptz_internal(DateADT dateVal, TimestampTz dt2);
|
77
|
-
|
78
|
-
extern void EncodeSpecialDate(DateADT dt, char *str);
|
79
|
-
extern DateADT GetSQLCurrentDate(void);
|
80
|
-
extern TimeTzADT *GetSQLCurrentTime(int32 typmod);
|
81
|
-
extern TimeADT GetSQLLocalTime(int32 typmod);
|
82
|
-
extern int time2tm(TimeADT time, struct pg_tm *tm, fsec_t *fsec);
|
83
|
-
extern int timetz2tm(TimeTzADT *time, struct pg_tm *tm, fsec_t *fsec, int *tzp);
|
84
|
-
extern int tm2time(struct pg_tm *tm, fsec_t fsec, TimeADT *result);
|
85
|
-
extern int tm2timetz(struct pg_tm *tm, fsec_t fsec, int tz, TimeTzADT *result);
|
86
|
-
extern bool time_overflows(int hour, int min, int sec, fsec_t fsec);
|
87
|
-
extern bool float_time_overflows(int hour, int min, double sec);
|
88
|
-
extern void AdjustTimeForTypmod(TimeADT *time, int32 typmod);
|
89
|
-
|
90
|
-
#endif /* DATE_H */
|
@@ -1,343 +0,0 @@
|
|
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-2020, 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 "nodes/nodes.h"
|
20
|
-
#include "utils/timestamp.h"
|
21
|
-
|
22
|
-
/* this struct is declared in utils/tzparser.h: */
|
23
|
-
struct tzEntry;
|
24
|
-
|
25
|
-
|
26
|
-
/* ----------------------------------------------------------------
|
27
|
-
* time types + support macros
|
28
|
-
*
|
29
|
-
* String definitions for standard time quantities.
|
30
|
-
*
|
31
|
-
* These strings are the defaults used to form output time strings.
|
32
|
-
* Other alternative forms are hardcoded into token tables in datetime.c.
|
33
|
-
* ----------------------------------------------------------------
|
34
|
-
*/
|
35
|
-
|
36
|
-
#define DAGO "ago"
|
37
|
-
#define DCURRENT "current"
|
38
|
-
#define EPOCH "epoch"
|
39
|
-
#define INVALID "invalid"
|
40
|
-
#define EARLY "-infinity"
|
41
|
-
#define LATE "infinity"
|
42
|
-
#define NOW "now"
|
43
|
-
#define TODAY "today"
|
44
|
-
#define TOMORROW "tomorrow"
|
45
|
-
#define YESTERDAY "yesterday"
|
46
|
-
#define ZULU "zulu"
|
47
|
-
|
48
|
-
#define DMICROSEC "usecond"
|
49
|
-
#define DMILLISEC "msecond"
|
50
|
-
#define DSECOND "second"
|
51
|
-
#define DMINUTE "minute"
|
52
|
-
#define DHOUR "hour"
|
53
|
-
#define DDAY "day"
|
54
|
-
#define DWEEK "week"
|
55
|
-
#define DMONTH "month"
|
56
|
-
#define DQUARTER "quarter"
|
57
|
-
#define DYEAR "year"
|
58
|
-
#define DDECADE "decade"
|
59
|
-
#define DCENTURY "century"
|
60
|
-
#define DMILLENNIUM "millennium"
|
61
|
-
#define DA_D "ad"
|
62
|
-
#define DB_C "bc"
|
63
|
-
#define DTIMEZONE "timezone"
|
64
|
-
|
65
|
-
/*
|
66
|
-
* Fundamental time field definitions for parsing.
|
67
|
-
*
|
68
|
-
* Meridian: am, pm, or 24-hour style.
|
69
|
-
* Millennium: ad, bc
|
70
|
-
*/
|
71
|
-
|
72
|
-
#define AM 0
|
73
|
-
#define PM 1
|
74
|
-
#define HR24 2
|
75
|
-
|
76
|
-
#define AD 0
|
77
|
-
#define BC 1
|
78
|
-
|
79
|
-
/*
|
80
|
-
* Field types for time decoding.
|
81
|
-
*
|
82
|
-
* Can't have more of these than there are bits in an unsigned int
|
83
|
-
* since these are turned into bit masks during parsing and decoding.
|
84
|
-
*
|
85
|
-
* Furthermore, the values for YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
|
86
|
-
* must be in the range 0..14 so that the associated bitmasks can fit
|
87
|
-
* into the left half of an INTERVAL's typmod value. Since those bits
|
88
|
-
* are stored in typmods, you can't change them without initdb!
|
89
|
-
*/
|
90
|
-
|
91
|
-
#define RESERV 0
|
92
|
-
#define MONTH 1
|
93
|
-
#define YEAR 2
|
94
|
-
#define DAY 3
|
95
|
-
#define JULIAN 4
|
96
|
-
#define TZ 5 /* fixed-offset timezone abbreviation */
|
97
|
-
#define DTZ 6 /* fixed-offset timezone abbrev, DST */
|
98
|
-
#define DYNTZ 7 /* dynamic timezone abbreviation */
|
99
|
-
#define IGNORE_DTF 8
|
100
|
-
#define AMPM 9
|
101
|
-
#define HOUR 10
|
102
|
-
#define MINUTE 11
|
103
|
-
#define SECOND 12
|
104
|
-
#define MILLISECOND 13
|
105
|
-
#define MICROSECOND 14
|
106
|
-
#define DOY 15
|
107
|
-
#define DOW 16
|
108
|
-
#define UNITS 17
|
109
|
-
#define ADBC 18
|
110
|
-
/* these are only for relative dates */
|
111
|
-
#define AGO 19
|
112
|
-
#define ABS_BEFORE 20
|
113
|
-
#define ABS_AFTER 21
|
114
|
-
/* generic fields to help with parsing */
|
115
|
-
#define ISODATE 22
|
116
|
-
#define ISOTIME 23
|
117
|
-
/* these are only for parsing intervals */
|
118
|
-
#define WEEK 24
|
119
|
-
#define DECADE 25
|
120
|
-
#define CENTURY 26
|
121
|
-
#define MILLENNIUM 27
|
122
|
-
/* hack for parsing two-word timezone specs "MET DST" etc */
|
123
|
-
#define DTZMOD 28 /* "DST" as a separate word */
|
124
|
-
/* reserved for unrecognized string values */
|
125
|
-
#define UNKNOWN_FIELD 31
|
126
|
-
|
127
|
-
/*
|
128
|
-
* Token field definitions for time parsing and decoding.
|
129
|
-
*
|
130
|
-
* Some field type codes (see above) use these as the "value" in datetktbl[].
|
131
|
-
* These are also used for bit masks in DecodeDateTime and friends
|
132
|
-
* so actually restrict them to within [0,31] for now.
|
133
|
-
* - thomas 97/06/19
|
134
|
-
* Not all of these fields are used for masks in DecodeDateTime
|
135
|
-
* so allow some larger than 31. - thomas 1997-11-17
|
136
|
-
*
|
137
|
-
* Caution: there are undocumented assumptions in the code that most of these
|
138
|
-
* values are not equal to IGNORE_DTF nor RESERV. Be very careful when
|
139
|
-
* renumbering values in either of these apparently-independent lists :-(
|
140
|
-
*/
|
141
|
-
|
142
|
-
#define DTK_NUMBER 0
|
143
|
-
#define DTK_STRING 1
|
144
|
-
|
145
|
-
#define DTK_DATE 2
|
146
|
-
#define DTK_TIME 3
|
147
|
-
#define DTK_TZ 4
|
148
|
-
#define DTK_AGO 5
|
149
|
-
|
150
|
-
#define DTK_SPECIAL 6
|
151
|
-
#define DTK_EARLY 9
|
152
|
-
#define DTK_LATE 10
|
153
|
-
#define DTK_EPOCH 11
|
154
|
-
#define DTK_NOW 12
|
155
|
-
#define DTK_YESTERDAY 13
|
156
|
-
#define DTK_TODAY 14
|
157
|
-
#define DTK_TOMORROW 15
|
158
|
-
#define DTK_ZULU 16
|
159
|
-
|
160
|
-
#define DTK_DELTA 17
|
161
|
-
#define DTK_SECOND 18
|
162
|
-
#define DTK_MINUTE 19
|
163
|
-
#define DTK_HOUR 20
|
164
|
-
#define DTK_DAY 21
|
165
|
-
#define DTK_WEEK 22
|
166
|
-
#define DTK_MONTH 23
|
167
|
-
#define DTK_QUARTER 24
|
168
|
-
#define DTK_YEAR 25
|
169
|
-
#define DTK_DECADE 26
|
170
|
-
#define DTK_CENTURY 27
|
171
|
-
#define DTK_MILLENNIUM 28
|
172
|
-
#define DTK_MILLISEC 29
|
173
|
-
#define DTK_MICROSEC 30
|
174
|
-
#define DTK_JULIAN 31
|
175
|
-
|
176
|
-
#define DTK_DOW 32
|
177
|
-
#define DTK_DOY 33
|
178
|
-
#define DTK_TZ_HOUR 34
|
179
|
-
#define DTK_TZ_MINUTE 35
|
180
|
-
#define DTK_ISOYEAR 36
|
181
|
-
#define DTK_ISODOW 37
|
182
|
-
|
183
|
-
|
184
|
-
/*
|
185
|
-
* Bit mask definitions for time parsing.
|
186
|
-
*/
|
187
|
-
|
188
|
-
#define DTK_M(t) (0x01 << (t))
|
189
|
-
|
190
|
-
/* Convenience: a second, plus any fractional component */
|
191
|
-
#define DTK_ALL_SECS_M (DTK_M(SECOND) | DTK_M(MILLISECOND) | DTK_M(MICROSECOND))
|
192
|
-
#define DTK_DATE_M (DTK_M(YEAR) | DTK_M(MONTH) | DTK_M(DAY))
|
193
|
-
#define DTK_TIME_M (DTK_M(HOUR) | DTK_M(MINUTE) | DTK_ALL_SECS_M)
|
194
|
-
|
195
|
-
/*
|
196
|
-
* Working buffer size for input and output of interval, timestamp, etc.
|
197
|
-
* Inputs that need more working space will be rejected early. Longer outputs
|
198
|
-
* will overrun buffers, so this must suffice for all possible output. As of
|
199
|
-
* this writing, interval_out() needs the most space at ~90 bytes.
|
200
|
-
*/
|
201
|
-
#define MAXDATELEN 128
|
202
|
-
/* maximum possible number of fields in a date string */
|
203
|
-
#define MAXDATEFIELDS 25
|
204
|
-
/* only this many chars are stored in datetktbl */
|
205
|
-
#define TOKMAXLEN 10
|
206
|
-
|
207
|
-
/* keep this struct small; it gets used a lot */
|
208
|
-
typedef struct
|
209
|
-
{
|
210
|
-
char token[TOKMAXLEN + 1]; /* always NUL-terminated */
|
211
|
-
char type; /* see field type codes above */
|
212
|
-
int32 value; /* meaning depends on type */
|
213
|
-
} datetkn;
|
214
|
-
|
215
|
-
/* one of its uses is in tables of time zone abbreviations */
|
216
|
-
typedef struct TimeZoneAbbrevTable
|
217
|
-
{
|
218
|
-
Size tblsize; /* size in bytes of TimeZoneAbbrevTable */
|
219
|
-
int numabbrevs; /* number of entries in abbrevs[] array */
|
220
|
-
datetkn abbrevs[FLEXIBLE_ARRAY_MEMBER];
|
221
|
-
/* DynamicZoneAbbrev(s) may follow the abbrevs[] array */
|
222
|
-
} TimeZoneAbbrevTable;
|
223
|
-
|
224
|
-
/* auxiliary data for a dynamic time zone abbreviation (non-fixed-offset) */
|
225
|
-
typedef struct DynamicZoneAbbrev
|
226
|
-
{
|
227
|
-
pg_tz *tz; /* NULL if not yet looked up */
|
228
|
-
char zone[FLEXIBLE_ARRAY_MEMBER]; /* NUL-terminated zone name */
|
229
|
-
} DynamicZoneAbbrev;
|
230
|
-
|
231
|
-
|
232
|
-
/* FMODULO()
|
233
|
-
* Macro to replace modf(), which is broken on some platforms.
|
234
|
-
* t = input and remainder
|
235
|
-
* q = integer part
|
236
|
-
* u = divisor
|
237
|
-
*/
|
238
|
-
#define FMODULO(t,q,u) \
|
239
|
-
do { \
|
240
|
-
(q) = (((t) < 0) ? ceil((t) / (u)) : floor((t) / (u))); \
|
241
|
-
if ((q) != 0) (t) -= rint((q) * (u)); \
|
242
|
-
} while(0)
|
243
|
-
|
244
|
-
/* TMODULO()
|
245
|
-
* Like FMODULO(), but work on the timestamp datatype (now always int64).
|
246
|
-
* We assume that int64 follows the C99 semantics for division (negative
|
247
|
-
* quotients truncate towards zero).
|
248
|
-
*/
|
249
|
-
#define TMODULO(t,q,u) \
|
250
|
-
do { \
|
251
|
-
(q) = ((t) / (u)); \
|
252
|
-
if ((q) != 0) (t) -= ((q) * (u)); \
|
253
|
-
} while(0)
|
254
|
-
|
255
|
-
/*
|
256
|
-
* Date/time validation
|
257
|
-
* Include check for leap year.
|
258
|
-
*/
|
259
|
-
|
260
|
-
extern const char *const months[]; /* months (3-char abbreviations) */
|
261
|
-
extern const char *const days[]; /* days (full names) */
|
262
|
-
extern 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 correct ereport.
|
279
|
-
*/
|
280
|
-
#define DTERR_BAD_FORMAT (-1)
|
281
|
-
#define DTERR_FIELD_OVERFLOW (-2)
|
282
|
-
#define DTERR_MD_FIELD_OVERFLOW (-3) /* triggers hint about DateStyle */
|
283
|
-
#define DTERR_INTERVAL_OVERFLOW (-4)
|
284
|
-
#define DTERR_TZDISP_OVERFLOW (-5)
|
285
|
-
|
286
|
-
|
287
|
-
extern void GetCurrentDateTime(struct pg_tm *tm);
|
288
|
-
extern void GetCurrentTimeUsec(struct pg_tm *tm, fsec_t *fsec, int *tzp);
|
289
|
-
extern void j2date(int jd, int *year, int *month, int *day);
|
290
|
-
extern int date2j(int year, int month, int day);
|
291
|
-
|
292
|
-
extern int ParseDateTime(const char *timestr, char *workbuf, size_t buflen,
|
293
|
-
char **field, int *ftype,
|
294
|
-
int maxfields, int *numfields);
|
295
|
-
extern int DecodeDateTime(char **field, int *ftype,
|
296
|
-
int nf, int *dtype,
|
297
|
-
struct pg_tm *tm, fsec_t *fsec, int *tzp);
|
298
|
-
extern int DecodeTimezone(char *str, int *tzp);
|
299
|
-
extern int DecodeTimeOnly(char **field, int *ftype,
|
300
|
-
int nf, int *dtype,
|
301
|
-
struct pg_tm *tm, fsec_t *fsec, int *tzp);
|
302
|
-
extern int DecodeInterval(char **field, int *ftype, int nf, int range,
|
303
|
-
int *dtype, struct pg_tm *tm, fsec_t *fsec);
|
304
|
-
extern int DecodeISO8601Interval(char *str,
|
305
|
-
int *dtype, struct pg_tm *tm, fsec_t *fsec);
|
306
|
-
|
307
|
-
extern void DateTimeParseError(int dterr, const char *str,
|
308
|
-
const char *datatype) pg_attribute_noreturn();
|
309
|
-
|
310
|
-
extern int DetermineTimeZoneOffset(struct pg_tm *tm, pg_tz *tzp);
|
311
|
-
extern int DetermineTimeZoneAbbrevOffset(struct pg_tm *tm, const char *abbr, pg_tz *tzp);
|
312
|
-
extern int DetermineTimeZoneAbbrevOffsetTS(TimestampTz ts, const char *abbr,
|
313
|
-
pg_tz *tzp, int *isdst);
|
314
|
-
|
315
|
-
extern void EncodeDateOnly(struct pg_tm *tm, int style, char *str);
|
316
|
-
extern void EncodeTimeOnly(struct pg_tm *tm, fsec_t fsec, bool print_tz, int tz, int style, char *str);
|
317
|
-
extern void EncodeDateTime(struct pg_tm *tm, fsec_t fsec, bool print_tz, int tz, const char *tzn, int style, char *str);
|
318
|
-
extern void EncodeInterval(struct pg_tm *tm, fsec_t fsec, int style, char *str);
|
319
|
-
extern void EncodeSpecialTimestamp(Timestamp dt, char *str);
|
320
|
-
|
321
|
-
extern int ValidateDate(int fmask, bool isjulian, bool is2digits, bool bc,
|
322
|
-
struct pg_tm *tm);
|
323
|
-
|
324
|
-
extern int DecodeTimezoneAbbrev(int field, char *lowtoken,
|
325
|
-
int *offset, pg_tz **tz);
|
326
|
-
extern int DecodeSpecial(int field, char *lowtoken, int *val);
|
327
|
-
extern int DecodeUnits(int field, char *lowtoken, int *val);
|
328
|
-
|
329
|
-
extern int j2day(int jd);
|
330
|
-
|
331
|
-
extern Node *TemporalSimplify(int32 max_precis, Node *node);
|
332
|
-
|
333
|
-
extern bool CheckDateTokenTables(void);
|
334
|
-
|
335
|
-
extern TimeZoneAbbrevTable *ConvertTimeZoneAbbrevs(struct tzEntry *abbrevs,
|
336
|
-
int n);
|
337
|
-
extern void InstallTimeZoneAbbrevs(TimeZoneAbbrevTable *tbl);
|
338
|
-
|
339
|
-
extern void AdjustTimestampForTypmod(Timestamp *time, int32 typmod);
|
340
|
-
extern bool AdjustTimestampForTypmodError(Timestamp *time, int32 typmod,
|
341
|
-
bool *error);
|
342
|
-
|
343
|
-
#endif /* DATETIME_H */
|