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,240 +1,28 @@
|
|
1
1
|
/*--------------------------------------------------------------------
|
2
2
|
* Symbols referenced in this file:
|
3
|
-
* -
|
4
|
-
* - pg_qsort
|
5
|
-
* - swapfunc
|
6
|
-
* - med3
|
3
|
+
* - pg_qsort_strcmp
|
7
4
|
*--------------------------------------------------------------------
|
8
5
|
*/
|
9
6
|
|
10
7
|
/*
|
11
8
|
* qsort.c: standard quicksort algorithm
|
12
|
-
*
|
13
|
-
* Modifications from vanilla NetBSD source:
|
14
|
-
* Add do ... while() macro fix
|
15
|
-
* Remove __inline, _DIAGASSERTs, __P
|
16
|
-
* Remove ill-considered "swap_cnt" switch to insertion sort,
|
17
|
-
* in favor of a simple check for presorted input.
|
18
|
-
* Take care to recurse on the smaller partition, to bound stack usage.
|
19
|
-
*
|
20
|
-
* CAUTION: if you change this file, see also qsort_arg.c, gen_qsort_tuple.pl
|
21
|
-
*
|
22
|
-
* src/port/qsort.c
|
23
|
-
*/
|
24
|
-
|
25
|
-
/* $NetBSD: qsort.c,v 1.13 2003/08/07 16:43:42 agc Exp $ */
|
26
|
-
|
27
|
-
/*-
|
28
|
-
* Copyright (c) 1992, 1993
|
29
|
-
* The Regents of the University of California. All rights reserved.
|
30
|
-
*
|
31
|
-
* Redistribution and use in source and binary forms, with or without
|
32
|
-
* modification, are permitted provided that the following conditions
|
33
|
-
* are met:
|
34
|
-
* 1. Redistributions of source code must retain the above copyright
|
35
|
-
* notice, this list of conditions and the following disclaimer.
|
36
|
-
* 2. Redistributions in binary form must reproduce the above copyright
|
37
|
-
* notice, this list of conditions and the following disclaimer in the
|
38
|
-
* documentation and/or other materials provided with the distribution.
|
39
|
-
* 3. Neither the name of the University nor the names of its contributors
|
40
|
-
* may be used to endorse or promote products derived from this software
|
41
|
-
* without specific prior written permission.
|
42
|
-
*
|
43
|
-
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
44
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
45
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
46
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
47
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
48
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
49
|
-
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
50
|
-
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
51
|
-
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
52
|
-
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
53
|
-
* SUCH DAMAGE.
|
54
9
|
*/
|
55
10
|
|
56
11
|
#include "c.h"
|
57
12
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
13
|
+
#define ST_SORT pg_qsort
|
14
|
+
#define ST_ELEMENT_TYPE_VOID
|
15
|
+
#define ST_COMPARE_RUNTIME_POINTER
|
16
|
+
#define ST_SCOPE
|
17
|
+
#define ST_DECLARE
|
18
|
+
#define ST_DEFINE
|
19
|
+
#include "lib/sort_template.h"
|
62
20
|
|
63
21
|
/*
|
64
|
-
*
|
65
|
-
* "Engineering a sort function",
|
66
|
-
* Software--Practice and Experience 23 (1993) 1249-1265.
|
67
|
-
*
|
68
|
-
* We have modified their original by adding a check for already-sorted input,
|
69
|
-
* which seems to be a win per discussions on pgsql-hackers around 2006-03-21.
|
70
|
-
*
|
71
|
-
* Also, we recurse on the smaller partition and iterate on the larger one,
|
72
|
-
* which ensures we cannot recurse more than log(N) levels (since the
|
73
|
-
* partition recursed to is surely no more than half of the input). Bentley
|
74
|
-
* and McIlroy explicitly rejected doing this on the grounds that it's "not
|
75
|
-
* worth the effort", but we have seen crashes in the field due to stack
|
76
|
-
* overrun, so that judgment seems wrong.
|
22
|
+
* qsort comparator wrapper for strcmp.
|
77
23
|
*/
|
78
|
-
|
79
|
-
|
80
|
-
do { \
|
81
|
-
size_t i = (n) / sizeof (TYPE); \
|
82
|
-
TYPE *pi = (TYPE *)(void *)(parmi); \
|
83
|
-
TYPE *pj = (TYPE *)(void *)(parmj); \
|
84
|
-
do { \
|
85
|
-
TYPE t = *pi; \
|
86
|
-
*pi++ = *pj; \
|
87
|
-
*pj++ = t; \
|
88
|
-
} while (--i > 0); \
|
89
|
-
} while (0)
|
90
|
-
|
91
|
-
#define SWAPINIT(a, es) swaptype = ((char *)(a) - (char *)0) % sizeof(long) || \
|
92
|
-
(es) % sizeof(long) ? 2 : (es) == sizeof(long)? 0 : 1
|
93
|
-
|
94
|
-
static void
|
95
|
-
swapfunc(char *a, char *b, size_t n, int swaptype)
|
24
|
+
int
|
25
|
+
pg_qsort_strcmp(const void *a, const void *b)
|
96
26
|
{
|
97
|
-
|
98
|
-
swapcode(long, a, b, n);
|
99
|
-
else
|
100
|
-
swapcode(char, a, b, n);
|
27
|
+
return strcmp(*(const char *const *) a, *(const char *const *) b);
|
101
28
|
}
|
102
|
-
|
103
|
-
#define swap(a, b) \
|
104
|
-
if (swaptype == 0) { \
|
105
|
-
long t = *(long *)(void *)(a); \
|
106
|
-
*(long *)(void *)(a) = *(long *)(void *)(b); \
|
107
|
-
*(long *)(void *)(b) = t; \
|
108
|
-
} else \
|
109
|
-
swapfunc(a, b, es, swaptype)
|
110
|
-
|
111
|
-
#define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n, swaptype)
|
112
|
-
|
113
|
-
static char *
|
114
|
-
med3(char *a, char *b, char *c, int (*cmp) (const void *, const void *))
|
115
|
-
{
|
116
|
-
return cmp(a, b) < 0 ?
|
117
|
-
(cmp(b, c) < 0 ? b : (cmp(a, c) < 0 ? c : a))
|
118
|
-
: (cmp(b, c) > 0 ? b : (cmp(a, c) < 0 ? a : c));
|
119
|
-
}
|
120
|
-
|
121
|
-
void
|
122
|
-
pg_qsort(void *a, size_t n, size_t es, int (*cmp) (const void *, const void *))
|
123
|
-
{
|
124
|
-
char *pa,
|
125
|
-
*pb,
|
126
|
-
*pc,
|
127
|
-
*pd,
|
128
|
-
*pl,
|
129
|
-
*pm,
|
130
|
-
*pn;
|
131
|
-
size_t d1,
|
132
|
-
d2;
|
133
|
-
int r,
|
134
|
-
swaptype,
|
135
|
-
presorted;
|
136
|
-
|
137
|
-
loop:SWAPINIT(a, es);
|
138
|
-
if (n < 7)
|
139
|
-
{
|
140
|
-
for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es)
|
141
|
-
for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0;
|
142
|
-
pl -= es)
|
143
|
-
swap(pl, pl - es);
|
144
|
-
return;
|
145
|
-
}
|
146
|
-
presorted = 1;
|
147
|
-
for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es)
|
148
|
-
{
|
149
|
-
if (cmp(pm - es, pm) > 0)
|
150
|
-
{
|
151
|
-
presorted = 0;
|
152
|
-
break;
|
153
|
-
}
|
154
|
-
}
|
155
|
-
if (presorted)
|
156
|
-
return;
|
157
|
-
pm = (char *) a + (n / 2) * es;
|
158
|
-
if (n > 7)
|
159
|
-
{
|
160
|
-
pl = (char *) a;
|
161
|
-
pn = (char *) a + (n - 1) * es;
|
162
|
-
if (n > 40)
|
163
|
-
{
|
164
|
-
size_t d = (n / 8) * es;
|
165
|
-
|
166
|
-
pl = med3(pl, pl + d, pl + 2 * d, cmp);
|
167
|
-
pm = med3(pm - d, pm, pm + d, cmp);
|
168
|
-
pn = med3(pn - 2 * d, pn - d, pn, cmp);
|
169
|
-
}
|
170
|
-
pm = med3(pl, pm, pn, cmp);
|
171
|
-
}
|
172
|
-
swap(a, pm);
|
173
|
-
pa = pb = (char *) a + es;
|
174
|
-
pc = pd = (char *) a + (n - 1) * es;
|
175
|
-
for (;;)
|
176
|
-
{
|
177
|
-
while (pb <= pc && (r = cmp(pb, a)) <= 0)
|
178
|
-
{
|
179
|
-
if (r == 0)
|
180
|
-
{
|
181
|
-
swap(pa, pb);
|
182
|
-
pa += es;
|
183
|
-
}
|
184
|
-
pb += es;
|
185
|
-
}
|
186
|
-
while (pb <= pc && (r = cmp(pc, a)) >= 0)
|
187
|
-
{
|
188
|
-
if (r == 0)
|
189
|
-
{
|
190
|
-
swap(pc, pd);
|
191
|
-
pd -= es;
|
192
|
-
}
|
193
|
-
pc -= es;
|
194
|
-
}
|
195
|
-
if (pb > pc)
|
196
|
-
break;
|
197
|
-
swap(pb, pc);
|
198
|
-
pb += es;
|
199
|
-
pc -= es;
|
200
|
-
}
|
201
|
-
pn = (char *) a + n * es;
|
202
|
-
d1 = Min(pa - (char *) a, pb - pa);
|
203
|
-
vecswap(a, pb - d1, d1);
|
204
|
-
d1 = Min(pd - pc, pn - pd - es);
|
205
|
-
vecswap(pb, pn - d1, d1);
|
206
|
-
d1 = pb - pa;
|
207
|
-
d2 = pd - pc;
|
208
|
-
if (d1 <= d2)
|
209
|
-
{
|
210
|
-
/* Recurse on left partition, then iterate on right partition */
|
211
|
-
if (d1 > es)
|
212
|
-
pg_qsort(a, d1 / es, es, cmp);
|
213
|
-
if (d2 > es)
|
214
|
-
{
|
215
|
-
/* Iterate rather than recurse to save stack space */
|
216
|
-
/* pg_qsort(pn - d2, d2 / es, es, cmp); */
|
217
|
-
a = pn - d2;
|
218
|
-
n = d2 / es;
|
219
|
-
goto loop;
|
220
|
-
}
|
221
|
-
}
|
222
|
-
else
|
223
|
-
{
|
224
|
-
/* Recurse on right partition, then iterate on left partition */
|
225
|
-
if (d2 > es)
|
226
|
-
pg_qsort(pn - d2, d2 / es, es, cmp);
|
227
|
-
if (d1 > es)
|
228
|
-
{
|
229
|
-
/* Iterate rather than recurse to save stack space */
|
230
|
-
/* pg_qsort(a, d1 / es, es, cmp); */
|
231
|
-
n = d1 / es;
|
232
|
-
goto loop;
|
233
|
-
}
|
234
|
-
}
|
235
|
-
}
|
236
|
-
|
237
|
-
/*
|
238
|
-
* qsort comparator wrapper for strcmp.
|
239
|
-
*/
|
240
|
-
|
@@ -1,11 +1,11 @@
|
|
1
1
|
/*--------------------------------------------------------------------
|
2
2
|
* Symbols referenced in this file:
|
3
|
-
* -
|
3
|
+
* - pg_vsnprintf
|
4
4
|
* - dopr
|
5
5
|
* - pg_snprintf
|
6
|
-
* -
|
7
|
-
* - strchrnul
|
6
|
+
* - pg_strchrnul
|
8
7
|
* - dostr
|
8
|
+
* - flushbuffer
|
9
9
|
* - find_arguments
|
10
10
|
* - fmtint
|
11
11
|
* - adjust_sign
|
@@ -18,8 +18,8 @@
|
|
18
18
|
* - fmtptr
|
19
19
|
* - fmtfloat
|
20
20
|
* - dopr_outch
|
21
|
-
* - flushbuffer
|
22
21
|
* - pg_fprintf
|
22
|
+
* - pg_vfprintf
|
23
23
|
* - pg_sprintf
|
24
24
|
* - pg_vsprintf
|
25
25
|
* - pg_printf
|
@@ -30,7 +30,7 @@
|
|
30
30
|
* Copyright (c) 1983, 1995, 1996 Eric P. Allman
|
31
31
|
* Copyright (c) 1988, 1993
|
32
32
|
* The Regents of the University of California. All rights reserved.
|
33
|
-
* Portions Copyright (c) 1996-
|
33
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
34
34
|
*
|
35
35
|
* Redistribution and use in source and binary forms, with or without
|
36
36
|
* modification, are permitted provided that the following conditions
|
@@ -362,13 +362,22 @@ static void leading_pad(int zpad, int signvalue, int *padlen,
|
|
362
362
|
static void trailing_pad(int padlen, PrintfTarget *target);
|
363
363
|
|
364
364
|
/*
|
365
|
-
* If strchrnul exists (it's a glibc-ism
|
366
|
-
*
|
365
|
+
* If strchrnul exists (it's a glibc-ism, but since adopted by some other
|
366
|
+
* platforms), it's a good bit faster than the equivalent manual loop.
|
367
|
+
* Use it if possible, and if it doesn't exist, use this replacement.
|
367
368
|
*
|
368
369
|
* Note: glibc declares this as returning "char *", but that would require
|
369
370
|
* casting away const internally, so we don't follow that detail.
|
371
|
+
*
|
372
|
+
* Note: macOS has this too as of Sequoia 15.4, but it's hidden behind
|
373
|
+
* a deployment-target check that causes compile errors if the deployment
|
374
|
+
* target isn't high enough. So !HAVE_DECL_STRCHRNUL may mean "yes it's
|
375
|
+
* declared, but it doesn't compile". To avoid failing in that scenario,
|
376
|
+
* use a macro to avoid matching <string.h>'s name.
|
370
377
|
*/
|
371
|
-
#
|
378
|
+
#if !HAVE_DECL_STRCHRNUL
|
379
|
+
|
380
|
+
#define strchrnul pg_strchrnul
|
372
381
|
|
373
382
|
static inline const char *
|
374
383
|
strchrnul(const char *s, int c)
|
@@ -378,19 +387,7 @@ strchrnul(const char *s, int c)
|
|
378
387
|
return s;
|
379
388
|
}
|
380
389
|
|
381
|
-
#
|
382
|
-
|
383
|
-
/*
|
384
|
-
* glibc's <string.h> declares strchrnul only if _GNU_SOURCE is defined.
|
385
|
-
* While we typically use that on glibc platforms, configure will set
|
386
|
-
* HAVE_STRCHRNUL whether it's used or not. Fill in the missing declaration
|
387
|
-
* so that this file will compile cleanly with or without _GNU_SOURCE.
|
388
|
-
*/
|
389
|
-
#ifndef _GNU_SOURCE
|
390
|
-
extern char *strchrnul(const char *s, int c);
|
391
|
-
#endif
|
392
|
-
|
393
|
-
#endif /* HAVE_STRCHRNUL */
|
390
|
+
#endif /* !HAVE_DECL_STRCHRNUL */
|
394
391
|
|
395
392
|
|
396
393
|
/*
|
@@ -780,12 +777,8 @@ find_arguments(const char *format, va_list args,
|
|
780
777
|
int longflag;
|
781
778
|
int fmtpos;
|
782
779
|
int i;
|
783
|
-
int last_dollar;
|
784
|
-
PrintfArgType argtypes[PG_NL_ARGMAX + 1];
|
785
|
-
|
786
|
-
/* Initialize to "no dollar arguments known" */
|
787
|
-
last_dollar = 0;
|
788
|
-
MemSet(argtypes, 0, sizeof(argtypes));
|
780
|
+
int last_dollar = 0; /* Init to "no dollar arguments known" */
|
781
|
+
PrintfArgType argtypes[PG_NL_ARGMAX + 1] = {0};
|
789
782
|
|
790
783
|
/*
|
791
784
|
* This loop must accept the same format strings as the one in dopr().
|
@@ -1026,8 +1019,8 @@ fmtptr(const void *value, PrintfTarget *target)
|
|
1026
1019
|
int vallen;
|
1027
1020
|
char convert[64];
|
1028
1021
|
|
1029
|
-
/* we rely on regular C library's
|
1030
|
-
vallen =
|
1022
|
+
/* we rely on regular C library's snprintf to do the basic conversion */
|
1023
|
+
vallen = snprintf(convert, sizeof(convert), "%p", value);
|
1031
1024
|
if (vallen < 0)
|
1032
1025
|
target->failed = true;
|
1033
1026
|
else
|
@@ -1039,8 +1032,8 @@ fmtint(long long value, char type, int forcesign, int leftjust,
|
|
1039
1032
|
int minlen, int zpad, int precision, int pointflag,
|
1040
1033
|
PrintfTarget *target)
|
1041
1034
|
{
|
1042
|
-
unsigned long long base;
|
1043
1035
|
unsigned long long uvalue;
|
1036
|
+
int base;
|
1044
1037
|
int dosign;
|
1045
1038
|
const char *cvt = "0123456789abcdef";
|
1046
1039
|
int signvalue = 0;
|
@@ -1099,12 +1092,36 @@ fmtint(long long value, char type, int forcesign, int leftjust,
|
|
1099
1092
|
vallen = 0;
|
1100
1093
|
else
|
1101
1094
|
{
|
1102
|
-
/*
|
1103
|
-
|
1095
|
+
/*
|
1096
|
+
* Convert integer to string. We special-case each of the possible
|
1097
|
+
* base values so as to avoid general-purpose divisions. On most
|
1098
|
+
* machines, division by a fixed constant can be done much more
|
1099
|
+
* cheaply than a general divide.
|
1100
|
+
*/
|
1101
|
+
if (base == 10)
|
1102
|
+
{
|
1103
|
+
do
|
1104
|
+
{
|
1105
|
+
convert[sizeof(convert) - (++vallen)] = cvt[uvalue % 10];
|
1106
|
+
uvalue = uvalue / 10;
|
1107
|
+
} while (uvalue);
|
1108
|
+
}
|
1109
|
+
else if (base == 16)
|
1110
|
+
{
|
1111
|
+
do
|
1112
|
+
{
|
1113
|
+
convert[sizeof(convert) - (++vallen)] = cvt[uvalue % 16];
|
1114
|
+
uvalue = uvalue / 16;
|
1115
|
+
} while (uvalue);
|
1116
|
+
}
|
1117
|
+
else /* base == 8 */
|
1104
1118
|
{
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1119
|
+
do
|
1120
|
+
{
|
1121
|
+
convert[sizeof(convert) - (++vallen)] = cvt[uvalue % 8];
|
1122
|
+
uvalue = uvalue / 8;
|
1123
|
+
} while (uvalue);
|
1124
|
+
}
|
1108
1125
|
}
|
1109
1126
|
|
1110
1127
|
zeropad = Max(0, precision - vallen);
|
@@ -1153,11 +1170,11 @@ fmtfloat(double value, char type, int forcesign, int leftjust,
|
|
1153
1170
|
int padlen; /* amount to pad with spaces */
|
1154
1171
|
|
1155
1172
|
/*
|
1156
|
-
* We rely on the regular C library's
|
1173
|
+
* We rely on the regular C library's snprintf to do the basic conversion,
|
1157
1174
|
* then handle padding considerations here.
|
1158
1175
|
*
|
1159
1176
|
* The dynamic range of "double" is about 1E+-308 for IEEE math, and not
|
1160
|
-
* too wildly more than that with other hardware. In "f" format,
|
1177
|
+
* too wildly more than that with other hardware. In "f" format, snprintf
|
1161
1178
|
* could therefore generate at most 308 characters to the left of the
|
1162
1179
|
* decimal point; while we need to allow the precision to get as high as
|
1163
1180
|
* 308+17 to ensure that we don't truncate significant digits from very
|
@@ -1209,14 +1226,14 @@ fmtfloat(double value, char type, int forcesign, int leftjust,
|
|
1209
1226
|
fmt[2] = '*';
|
1210
1227
|
fmt[3] = type;
|
1211
1228
|
fmt[4] = '\0';
|
1212
|
-
vallen =
|
1229
|
+
vallen = snprintf(convert, sizeof(convert), fmt, prec, value);
|
1213
1230
|
}
|
1214
1231
|
else
|
1215
1232
|
{
|
1216
1233
|
fmt[0] = '%';
|
1217
1234
|
fmt[1] = type;
|
1218
1235
|
fmt[2] = '\0';
|
1219
|
-
vallen =
|
1236
|
+
vallen = snprintf(convert, sizeof(convert), fmt, value);
|
1220
1237
|
}
|
1221
1238
|
if (vallen < 0)
|
1222
1239
|
goto fail;
|
@@ -11,7 +11,7 @@
|
|
11
11
|
* strerror.c
|
12
12
|
* Replacements for standard strerror() and strerror_r() functions
|
13
13
|
*
|
14
|
-
* Portions Copyright (c) 1996-
|
14
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
15
15
|
* Portions Copyright (c) 1994, Regents of the University of California
|
16
16
|
*
|
17
17
|
*
|
@@ -120,14 +120,10 @@ get_errno_symbol(int errnum)
|
|
120
120
|
return "E2BIG";
|
121
121
|
case EACCES:
|
122
122
|
return "EACCES";
|
123
|
-
#ifdef EADDRINUSE
|
124
123
|
case EADDRINUSE:
|
125
124
|
return "EADDRINUSE";
|
126
|
-
#endif
|
127
|
-
#ifdef EADDRNOTAVAIL
|
128
125
|
case EADDRNOTAVAIL:
|
129
126
|
return "EADDRNOTAVAIL";
|
130
|
-
#endif
|
131
127
|
case EAFNOSUPPORT:
|
132
128
|
return "EAFNOSUPPORT";
|
133
129
|
#ifdef EAGAIN
|
@@ -148,16 +144,12 @@ get_errno_symbol(int errnum)
|
|
148
144
|
return "EBUSY";
|
149
145
|
case ECHILD:
|
150
146
|
return "ECHILD";
|
151
|
-
#ifdef ECONNABORTED
|
152
147
|
case ECONNABORTED:
|
153
148
|
return "ECONNABORTED";
|
154
|
-
#endif
|
155
149
|
case ECONNREFUSED:
|
156
150
|
return "ECONNREFUSED";
|
157
|
-
#ifdef ECONNRESET
|
158
151
|
case ECONNRESET:
|
159
152
|
return "ECONNRESET";
|
160
|
-
#endif
|
161
153
|
case EDEADLK:
|
162
154
|
return "EDEADLK";
|
163
155
|
case EDOM:
|
@@ -168,10 +160,10 @@ get_errno_symbol(int errnum)
|
|
168
160
|
return "EFAULT";
|
169
161
|
case EFBIG:
|
170
162
|
return "EFBIG";
|
171
|
-
|
163
|
+
case EHOSTDOWN:
|
164
|
+
return "EHOSTDOWN";
|
172
165
|
case EHOSTUNREACH:
|
173
166
|
return "EHOSTUNREACH";
|
174
|
-
#endif
|
175
167
|
case EIDRM:
|
176
168
|
return "EIDRM";
|
177
169
|
case EINPROGRESS:
|
@@ -182,10 +174,8 @@ get_errno_symbol(int errnum)
|
|
182
174
|
return "EINVAL";
|
183
175
|
case EIO:
|
184
176
|
return "EIO";
|
185
|
-
#ifdef EISCONN
|
186
177
|
case EISCONN:
|
187
178
|
return "EISCONN";
|
188
|
-
#endif
|
189
179
|
case EISDIR:
|
190
180
|
return "EISDIR";
|
191
181
|
#ifdef ELOOP
|
@@ -200,6 +190,12 @@ get_errno_symbol(int errnum)
|
|
200
190
|
return "EMSGSIZE";
|
201
191
|
case ENAMETOOLONG:
|
202
192
|
return "ENAMETOOLONG";
|
193
|
+
case ENETDOWN:
|
194
|
+
return "ENETDOWN";
|
195
|
+
case ENETRESET:
|
196
|
+
return "ENETRESET";
|
197
|
+
case ENETUNREACH:
|
198
|
+
return "ENETUNREACH";
|
203
199
|
case ENFILE:
|
204
200
|
return "ENFILE";
|
205
201
|
case ENOBUFS:
|
@@ -216,20 +212,14 @@ get_errno_symbol(int errnum)
|
|
216
212
|
return "ENOSPC";
|
217
213
|
case ENOSYS:
|
218
214
|
return "ENOSYS";
|
219
|
-
#ifdef ENOTCONN
|
220
215
|
case ENOTCONN:
|
221
216
|
return "ENOTCONN";
|
222
|
-
#endif
|
223
217
|
case ENOTDIR:
|
224
218
|
return "ENOTDIR";
|
225
|
-
#if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST) /* same code on AIX */
|
226
219
|
case ENOTEMPTY:
|
227
220
|
return "ENOTEMPTY";
|
228
|
-
#endif
|
229
|
-
#ifdef ENOTSOCK
|
230
221
|
case ENOTSOCK:
|
231
222
|
return "ENOTSOCK";
|
232
|
-
#endif
|
233
223
|
#ifdef ENOTSUP
|
234
224
|
case ENOTSUP:
|
235
225
|
return "ENOTSUP";
|
@@ -260,10 +250,8 @@ get_errno_symbol(int errnum)
|
|
260
250
|
#endif
|
261
251
|
case ESRCH:
|
262
252
|
return "ESRCH";
|
263
|
-
#ifdef ETIMEDOUT
|
264
253
|
case ETIMEDOUT:
|
265
254
|
return "ETIMEDOUT";
|
266
|
-
#endif
|
267
255
|
#ifdef ETXTBSY
|
268
256
|
case ETXTBSY:
|
269
257
|
return "ETXTBSY";
|
@@ -0,0 +1,79 @@
|
|
1
|
+
/*--------------------------------------------------------------------
|
2
|
+
* Symbols referenced in this file:
|
3
|
+
* - strlcpy
|
4
|
+
*--------------------------------------------------------------------
|
5
|
+
*/
|
6
|
+
|
7
|
+
/*-------------------------------------------------------------------------
|
8
|
+
*
|
9
|
+
* strlcpy.c
|
10
|
+
* strncpy done right
|
11
|
+
*
|
12
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
13
|
+
*
|
14
|
+
*
|
15
|
+
* IDENTIFICATION
|
16
|
+
* src/port/strlcpy.c
|
17
|
+
*
|
18
|
+
* This file was taken from OpenBSD and is used on platforms that don't
|
19
|
+
* provide strlcpy(). The OpenBSD copyright terms follow.
|
20
|
+
*-------------------------------------------------------------------------
|
21
|
+
*/
|
22
|
+
|
23
|
+
/* $OpenBSD: strlcpy.c,v 1.11 2006/05/05 15:27:38 millert Exp $ */
|
24
|
+
|
25
|
+
/*
|
26
|
+
* Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
|
27
|
+
*
|
28
|
+
* Permission to use, copy, modify, and distribute this software for any
|
29
|
+
* purpose with or without fee is hereby granted, provided that the above
|
30
|
+
* copyright notice and this permission notice appear in all copies.
|
31
|
+
*
|
32
|
+
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
33
|
+
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
34
|
+
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
35
|
+
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
36
|
+
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
37
|
+
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
38
|
+
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
39
|
+
*/
|
40
|
+
|
41
|
+
#include "c.h"
|
42
|
+
#if HAVE_DECL_STRLCPY == 0
|
43
|
+
|
44
|
+
|
45
|
+
/*
|
46
|
+
* Copy src to string dst of size siz. At most siz-1 characters
|
47
|
+
* will be copied. Always NUL terminates (unless siz == 0).
|
48
|
+
* Returns strlen(src); if retval >= siz, truncation occurred.
|
49
|
+
* Function creation history: http://www.gratisoft.us/todd/papers/strlcpy.html
|
50
|
+
*/
|
51
|
+
size_t
|
52
|
+
strlcpy(char *dst, const char *src, size_t siz)
|
53
|
+
{
|
54
|
+
char *d = dst;
|
55
|
+
const char *s = src;
|
56
|
+
size_t n = siz;
|
57
|
+
|
58
|
+
/* Copy as many bytes as will fit */
|
59
|
+
if (n != 0)
|
60
|
+
{
|
61
|
+
while (--n != 0)
|
62
|
+
{
|
63
|
+
if ((*d++ = *s++) == '\0')
|
64
|
+
break;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
/* Not enough room in dst, add NUL and traverse rest of src */
|
69
|
+
if (n == 0)
|
70
|
+
{
|
71
|
+
if (siz != 0)
|
72
|
+
*d = '\0'; /* NUL-terminate dst */
|
73
|
+
while (*s++)
|
74
|
+
;
|
75
|
+
}
|
76
|
+
|
77
|
+
return (s - src - 1); /* count does not include NUL */
|
78
|
+
}
|
79
|
+
#endif // HAVE_DECL_STRLCPY == 0
|
@@ -69,7 +69,7 @@ module PgQuery
|
|
69
69
|
when :row_expr
|
70
70
|
condition_items += next_item.row_expr.args
|
71
71
|
when :column_ref
|
72
|
-
column, table = next_item.column_ref.fields.map { |f| f.string.
|
72
|
+
column, table = next_item.column_ref.fields.map { |f| f.string.sval }.reverse
|
73
73
|
filter_columns << [@aliases[table] || table, column]
|
74
74
|
when :null_test
|
75
75
|
condition_items << next_item.null_test.arg
|
data/lib/pg_query/fingerprint.rb
CHANGED
@@ -60,8 +60,8 @@ module PgQuery
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def ignored_node_type?(node)
|
63
|
-
[A_Const, Alias, ParamRef, SetToDefault, IntList, OidList
|
64
|
-
node.is_a?(TypeCast) &&
|
63
|
+
[A_Const, Alias, ParamRef, SetToDefault, IntList, OidList].include?(node.class) ||
|
64
|
+
(node.is_a?(TypeCast) && %i[a_const param_ref].include?(node.arg.node))
|
65
65
|
end
|
66
66
|
|
67
67
|
def node_protobuf_field_name_to_json_name(node_class, field)
|
@@ -72,9 +72,8 @@ module PgQuery
|
|
72
72
|
return if ignored_node_type?(node)
|
73
73
|
|
74
74
|
if node.is_a?(Node)
|
75
|
-
|
76
|
-
node_val
|
77
|
-
unless ignored_node_type?(node_val)
|
75
|
+
node_val = node.inner
|
76
|
+
unless node_val.nil? || ignored_node_type?(node_val)
|
78
77
|
unless node_val.is_a?(List)
|
79
78
|
postgres_node_name = node_protobuf_field_name_to_json_name(node.class, node.node)
|
80
79
|
hash.update(postgres_node_name)
|
@@ -113,15 +112,17 @@ module PgQuery
|
|
113
112
|
fingerprint_value(val.gsub(/\d{2,}/, ''), hash, postgres_node_name, postgres_field_name, true)
|
114
113
|
next
|
115
114
|
end
|
116
|
-
when 'stmt_len'
|
117
|
-
next if node.is_a?(RawStmt)
|
118
|
-
when 'stmt_location'
|
115
|
+
when 'stmt_len', 'stmt_location'
|
119
116
|
next if node.is_a?(RawStmt)
|
120
117
|
when 'kind'
|
121
|
-
if node.is_a?(A_Expr) &&
|
118
|
+
if node.is_a?(A_Expr) && %i[AEXPR_OP_ANY AEXPR_IN].include?(val)
|
122
119
|
fingerprint_value(:AEXPR_OP, hash, postgres_node_name, postgres_field_name, true)
|
123
120
|
next
|
124
121
|
end
|
122
|
+
# libpg_query still outputs `str` parts when print a string node. Here we override that to
|
123
|
+
# the expected field name of `sval`.
|
124
|
+
when 'sval', 'fval', 'bsval'
|
125
|
+
postgres_field_name = 'str' if node.is_a?(String) || node.is_a?(BitString) || node.is_a?(Float)
|
125
126
|
end
|
126
127
|
|
127
128
|
fingerprint_value(val, hash, postgres_node_name, postgres_field_name, true)
|