pg_query 2.0.3 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +165 -0
- data/README.md +67 -29
- data/Rakefile +8 -23
- data/ext/pg_query/extconf.rb +21 -3
- data/ext/pg_query/include/pg_query.h +29 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +551 -272
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +563 -470
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5403 -3945
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +402 -330
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1319 -1059
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +141 -118
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1685 -1379
- data/ext/pg_query/include/{access → postgres/access}/amapi.h +47 -1
- data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
- data/ext/pg_query/include/{access → postgres/access}/attnum.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/clog.h +4 -2
- data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +6 -9
- data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -11
- data/ext/pg_query/include/{access → postgres/access}/genam.h +21 -16
- data/ext/pg_query/include/{access → postgres/access}/gin.h +17 -4
- data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/htup_details.h +80 -88
- data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -52
- data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relscan.h +17 -2
- data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
- data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +24 -24
- data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
- data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/stratnum.h +4 -2
- data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/table.h +2 -1
- data/ext/pg_query/include/{access → postgres/access}/tableam.h +337 -62
- data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
- data/ext/pg_query/include/{access → postgres/access}/transam.h +123 -13
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
- data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +60 -100
- data/ext/pg_query/include/{access → postgres/access}/twophase.h +5 -1
- data/ext/pg_query/include/{access → postgres/access}/xact.h +99 -32
- data/ext/pg_query/include/{access → postgres/access}/xlog.h +69 -165
- data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +147 -73
- data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +13 -40
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +154 -37
- data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +34 -13
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
- data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
- data/ext/pg_query/include/{c.h → postgres/c.h} +245 -188
- data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +14 -19
- data/ext/pg_query/include/postgres/catalog/genbki.h +143 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +20 -5
- data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +5 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +73 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +12 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +14 -10
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +4 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +45 -26
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -16
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +19 -9
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +45 -15
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +31 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +35 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +21 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +39 -13
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +10 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +13 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +4 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +11 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +9 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +17 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +20 -17
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +10 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +21 -16
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +37 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +8 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +20 -9
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +20 -11
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +10 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +49 -6
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +6 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +5 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +19 -12
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +19 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +24 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +4 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +8 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +56 -24
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +70 -31
- data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +9 -7
- data/ext/pg_query/include/{commands → postgres/commands}/async.h +4 -5
- data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +12 -24
- data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +2 -2
- data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +6 -4
- data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +36 -25
- data/ext/pg_query/include/{commands → postgres/commands}/user.h +10 -4
- data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +140 -47
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/{common → postgres/common}/file_perm.h +4 -4
- data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
- data/ext/pg_query/include/postgres/common/int.h +437 -0
- data/ext/pg_query/include/{common → postgres/common}/keywords.h +2 -6
- data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
- data/ext/pg_query/include/postgres/common/pg_prng.h +61 -0
- data/ext/pg_query/include/{common → postgres/common}/relpath.h +21 -14
- 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 +125 -0
- data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +138 -8
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
- data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +50 -4
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
- data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/executor.h +98 -32
- data/ext/pg_query/include/{executor → postgres/executor}/functions.h +17 -3
- data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +33 -16
- data/ext/pg_query/include/{executor → postgres/executor}/spi.h +42 -4
- data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
- data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +33 -8
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +22 -10
- data/ext/pg_query/include/postgres/gram.h +1127 -0
- data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
- data/ext/pg_query/include/{jit → postgres/jit}/jit.h +12 -12
- data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
- data/ext/pg_query/include/postgres/lib/dshash.h +115 -0
- data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +454 -22
- data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +158 -33
- data/ext/pg_query/include/postgres/lib/sort_template.h +432 -0
- data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
- data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +12 -4
- data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +5 -4
- data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +54 -8
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +45 -17
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +31 -20
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +26 -71
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +25 -13
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +125 -25
- data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +96 -65
- data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +351 -103
- data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +8 -4
- data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +19 -6
- data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +11 -6
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +100 -496
- data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +678 -207
- data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1282 -454
- data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +103 -73
- data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +474 -133
- data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +754 -254
- data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
- data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
- data/ext/pg_query/include/postgres/nodes/value.h +90 -0
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +14 -5
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +9 -7
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +31 -28
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +29 -12
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +15 -17
- data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +20 -5
- data/ext/pg_query/include/postgres/parser/kwlist.h +498 -0
- data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +5 -8
- data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +6 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +2 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +2 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +41 -11
- data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -5
- data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +11 -5
- data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
- data/ext/pg_query/include/postgres/parser/parser.h +68 -0
- data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
- data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +2 -5
- data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
- data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +216 -228
- data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +80 -58
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +6 -6
- data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
- data/ext/pg_query/include/postgres/pgstat.h +778 -0
- data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +16 -6
- data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +116 -116
- data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
- data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +10 -10
- data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +3 -3
- data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +60 -60
- data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +9 -1
- data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +79 -86
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +9 -3
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
- data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +3 -3
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
- data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +129 -16
- data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
- data/ext/pg_query/include/postgres/port/simd.h +375 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
- data/ext/pg_query/include/{port.h → postgres/port.h} +107 -111
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +17 -20
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +3 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +6 -6
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/pgarch.h +7 -10
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +21 -17
- data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +16 -11
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +5 -3
- data/ext/pg_query/include/{regex → postgres/regex}/regex.h +27 -22
- data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +8 -5
- data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
- data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
- data/ext/pg_query/include/{replication → postgres/replication}/origin.h +8 -8
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +753 -0
- data/ext/pg_query/include/{replication → postgres/replication}/slot.h +42 -12
- data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +6 -12
- data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +158 -20
- data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +20 -20
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -6
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -37
- data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +196 -95
- data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +152 -101
- data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +14 -3
- data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +6 -6
- data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +6 -2
- data/ext/pg_query/include/{storage → postgres/storage}/fd.h +48 -14
- data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
- data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +5 -2
- data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +96 -57
- data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/latch.h +17 -13
- data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +7 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lock.h +37 -25
- data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +4 -4
- data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +21 -33
- data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -1
- data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +9 -7
- data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +15 -4
- data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +5 -5
- data/ext/pg_query/include/{storage → postgres/storage}/proc.h +200 -67
- data/ext/pg_query/include/postgres/storage/procarray.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +5 -7
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +118 -298
- data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +3 -11
- data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +5 -4
- data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
- data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +5 -5
- data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
- data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +21 -17
- data/ext/pg_query/include/{storage → postgres/storage}/spin.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/standby.h +17 -9
- data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/sync.h +9 -5
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +3 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +7 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +19 -14
- data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +7 -3
- data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +3 -5
- data/ext/pg_query/include/{utils → postgres/utils}/acl.h +37 -71
- data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/array.h +26 -2
- data/ext/pg_query/include/postgres/utils/backend_progress.h +45 -0
- data/ext/pg_query/include/postgres/utils/backend_status.h +342 -0
- data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +20 -11
- data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
- data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +48 -27
- data/ext/pg_query/include/{utils → postgres/utils}/datum.h +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/elog.h +154 -48
- data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +2 -0
- data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
- data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
- data/ext/pg_query/include/{utils → postgres/utils}/float.h +13 -12
- data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +1353 -696
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +243 -18
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +6 -5
- data/ext/pg_query/include/{utils → postgres/utils}/guc.h +120 -121
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +71 -21
- data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +15 -11
- data/ext/pg_query/include/{utils → postgres/utils}/inval.h +7 -3
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +16 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +14 -53
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
- data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +38 -9
- data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +33 -4
- data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +37 -21
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +814 -0
- data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +6 -5
- data/ext/pg_query/include/{utils → postgres/utils}/portal.h +12 -1
- data/ext/pg_query/include/{utils → postgres/utils}/probes.h +59 -59
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
- data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
- data/ext/pg_query/include/{utils → postgres/utils}/rel.h +129 -61
- data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +21 -14
- data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +38 -15
- data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +14 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +117 -2
- data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +11 -4
- data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +46 -15
- data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +209 -41
- data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +2 -2
- data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +24 -17
- data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +17 -3
- data/ext/pg_query/include/postgres/utils/wait_event.h +294 -0
- data/ext/pg_query/include/{utils → postgres/utils}/xml.h +18 -8
- data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +65 -471
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7494 -6382
- data/ext/pg_query/include/protobuf/pg_query.pb.h +116922 -84792
- data/ext/pg_query/include/protobuf-c/protobuf-c.h +7 -3
- data/ext/pg_query/include/protobuf-c.h +7 -3
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +21026 -17002
- data/ext/pg_query/pg_query_deparse.c +1 -9896
- data/ext/pg_query/pg_query_fingerprint.c +162 -50
- data/ext/pg_query/pg_query_fingerprint.h +3 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +56 -12
- data/ext/pg_query/pg_query_normalize.c +259 -64
- data/ext/pg_query/pg_query_outfuncs.h +1 -0
- data/ext/pg_query/pg_query_outfuncs_json.c +71 -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 +86 -21
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +43 -8
- data/ext/pg_query/pg_query_ruby.c +6 -1
- data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
- data/ext/pg_query/pg_query_scan.c +3 -2
- data/ext/pg_query/pg_query_split.c +6 -5
- data/ext/pg_query/postgres_deparse.c +11067 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/protobuf-c.c +34 -27
- data/ext/pg_query/src_backend_catalog_namespace.c +27 -10
- data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
- data/ext/pg_query/src_backend_commands_define.c +11 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +13 -70
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +103 -5894
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3830
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +99 -12
- data/ext/pg_query/src_backend_nodes_makefuncs.c +99 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +325 -131
- data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +36104 -32074
- data/ext/pg_query/src_backend_parser_parser.c +53 -8
- data/ext/pg_query/src_backend_parser_scan.c +4893 -3701
- data/ext/pg_query/src_backend_parser_scansup.c +4 -28
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +133 -105
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +17 -7
- 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 +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +187 -19
- data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
- data/ext/pg_query/src_backend_utils_error_elog.c +513 -318
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +44 -17
- data/ext/pg_query/src_backend_utils_init_globals.c +9 -6
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +74 -131
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +453 -314
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +549 -76
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
- data/ext/pg_query/src_common_encnames.c +4 -1
- data/ext/pg_query/src_common_hashfn.c +420 -0
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +545 -498
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_stringinfo.c +4 -4
- data/ext/pg_query/src_common_wchar.c +717 -113
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1136 -1195
- 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 +2 -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 +103 -40
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +51 -29
- data/ext/pg_query/src_port_strerror.c +9 -19
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/deparse.rb +7 -1
- data/lib/pg_query/filter_columns.rb +7 -5
- data/lib/pg_query/fingerprint.rb +21 -9
- data/lib/pg_query/node.rb +18 -13
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +141 -50
- data/lib/pg_query/pg_query_pb.rb +175 -3031
- data/lib/pg_query/treewalker.rb +26 -2
- data/lib/pg_query/truncate.rb +54 -8
- data/lib/pg_query/version.rb +1 -1
- data/lib/pg_query.rb +0 -1
- metadata +443 -380
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/rmgr.h +0 -35
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/catalog/genbki.h +0 -64
- data/ext/pg_query/include/catalog/indexing.h +0 -366
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/ip.h +0 -37
- data/ext/pg_query/include/common/string.h +0 -19
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/kwlist_d.h +0 -1072
- data/ext/pg_query/include/nodes/value.h +0 -61
- data/ext/pg_query/include/parser/gram.h +0 -1067
- data/ext/pg_query/include/parser/kwlist.h +0 -477
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/include/parser/parser.h +0 -41
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/pgstat.h +0 -1487
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- 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/reorderbuffer.h +0 -467
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -19
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/regproc.h +0 -28
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
- 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 -1831
- 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/lib/pg_query/json_field_names.rb +0 -1402
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/*--------------------------------------------------------------------
|
|
2
2
|
* Symbols referenced in this file:
|
|
3
3
|
* - GetExtensibleNodeMethods
|
|
4
|
-
* - GetExtensibleNodeEntry
|
|
5
|
-
* - extensible_node_methods
|
|
6
4
|
*--------------------------------------------------------------------
|
|
7
5
|
*/
|
|
8
6
|
|
|
@@ -18,7 +16,7 @@
|
|
|
18
16
|
* and GetExtensibleNodeMethods to get information about a previously
|
|
19
17
|
* registered type of extensible node.
|
|
20
18
|
*
|
|
21
|
-
* Portions Copyright (c) 1996-
|
|
19
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
22
20
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
23
21
|
*
|
|
24
22
|
* IDENTIFICATION
|
|
@@ -31,7 +29,6 @@
|
|
|
31
29
|
#include "nodes/extensible.h"
|
|
32
30
|
#include "utils/hsearch.h"
|
|
33
31
|
|
|
34
|
-
static __thread HTAB *extensible_node_methods = NULL;
|
|
35
32
|
|
|
36
33
|
|
|
37
34
|
|
|
@@ -59,40 +56,20 @@ typedef struct
|
|
|
59
56
|
/*
|
|
60
57
|
* An internal routine to get an ExtensibleNodeEntry by the given identifier
|
|
61
58
|
*/
|
|
62
|
-
|
|
63
|
-
GetExtensibleNodeEntry(HTAB *htable, const char *extnodename, bool missing_ok)
|
|
64
|
-
{
|
|
65
|
-
ExtensibleNodeEntry *entry = NULL;
|
|
66
|
-
|
|
67
|
-
if (htable != NULL)
|
|
68
|
-
entry = (ExtensibleNodeEntry *) hash_search(htable,
|
|
69
|
-
extnodename,
|
|
70
|
-
HASH_FIND, NULL);
|
|
71
|
-
if (!entry)
|
|
72
|
-
{
|
|
73
|
-
if (missing_ok)
|
|
74
|
-
return NULL;
|
|
75
|
-
ereport(ERROR,
|
|
76
|
-
(errcode(ERRCODE_UNDEFINED_OBJECT),
|
|
77
|
-
errmsg("ExtensibleNodeMethods \"%s\" was not registered",
|
|
78
|
-
extnodename)));
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return entry->extnodemethods;
|
|
82
|
-
}
|
|
59
|
+
|
|
83
60
|
|
|
84
61
|
/*
|
|
85
62
|
* Get the methods for a given type of extensible node.
|
|
86
63
|
*/
|
|
64
|
+
|
|
87
65
|
const ExtensibleNodeMethods *
|
|
88
66
|
GetExtensibleNodeMethods(const char *extnodename, bool missing_ok)
|
|
89
67
|
{
|
|
90
|
-
return
|
|
91
|
-
GetExtensibleNodeEntry(extensible_node_methods,
|
|
92
|
-
extnodename,
|
|
93
|
-
missing_ok);
|
|
68
|
+
return NULL;
|
|
94
69
|
}
|
|
95
70
|
|
|
71
|
+
|
|
72
|
+
|
|
96
73
|
/*
|
|
97
74
|
* Get the methods for a given name of CustomScanMethods
|
|
98
75
|
*/
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*--------------------------------------------------------------------
|
|
2
2
|
* Symbols referenced in this file:
|
|
3
|
-
* -
|
|
3
|
+
* - list_make1_impl
|
|
4
4
|
* - new_list
|
|
5
|
+
* - check_list_invariants
|
|
6
|
+
* - lappend
|
|
5
7
|
* - new_tail_cell
|
|
6
8
|
* - enlarge_list
|
|
7
|
-
* - check_list_invariants
|
|
8
|
-
* - list_make1_impl
|
|
9
9
|
* - list_make2_impl
|
|
10
10
|
* - list_concat
|
|
11
11
|
* - list_copy
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* See comments in pg_list.h.
|
|
32
32
|
*
|
|
33
33
|
*
|
|
34
|
-
* Portions Copyright (c) 1996-
|
|
34
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
35
35
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
36
36
|
*
|
|
37
37
|
*
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
#define IsPointerList(l) ((l) == NIL || IsA((l), List))
|
|
80
80
|
#define IsIntegerList(l) ((l) == NIL || IsA((l), IntList))
|
|
81
81
|
#define IsOidList(l) ((l) == NIL || IsA((l), OidList))
|
|
82
|
+
#define IsXidList(l) ((l) == NIL || IsA((l), XidList))
|
|
82
83
|
|
|
83
84
|
#ifdef USE_ASSERT_CHECKING
|
|
84
85
|
/*
|
|
@@ -96,7 +97,8 @@ check_list_invariants(const List *list)
|
|
|
96
97
|
|
|
97
98
|
Assert(list->type == T_List ||
|
|
98
99
|
list->type == T_IntList ||
|
|
99
|
-
list->type == T_OidList
|
|
100
|
+
list->type == T_OidList ||
|
|
101
|
+
list->type == T_XidList);
|
|
100
102
|
}
|
|
101
103
|
#else
|
|
102
104
|
#define check_list_invariants(l) ((void) 0)
|
|
@@ -302,6 +304,8 @@ list_make4_impl(NodeTag t, ListCell datum1, ListCell datum2,
|
|
|
302
304
|
return list;
|
|
303
305
|
}
|
|
304
306
|
|
|
307
|
+
|
|
308
|
+
|
|
305
309
|
/*
|
|
306
310
|
* Make room for a new head cell in the given (non-NIL) list.
|
|
307
311
|
*
|
|
@@ -352,7 +356,7 @@ lappend(List *list, void *datum)
|
|
|
352
356
|
else
|
|
353
357
|
new_tail_cell(list);
|
|
354
358
|
|
|
355
|
-
|
|
359
|
+
llast(list) = datum;
|
|
356
360
|
check_list_invariants(list);
|
|
357
361
|
return list;
|
|
358
362
|
}
|
|
@@ -367,6 +371,11 @@ lappend(List *list, void *datum)
|
|
|
367
371
|
*/
|
|
368
372
|
|
|
369
373
|
|
|
374
|
+
/*
|
|
375
|
+
* Append a TransactionId to the specified list. See lappend()
|
|
376
|
+
*/
|
|
377
|
+
|
|
378
|
+
|
|
370
379
|
/*
|
|
371
380
|
* Make room for a new cell at position 'pos' (measured from 0).
|
|
372
381
|
* The data in the cell is left undefined, and must be filled in by the
|
|
@@ -379,6 +388,9 @@ lappend(List *list, void *datum)
|
|
|
379
388
|
/*
|
|
380
389
|
* Insert the given datum at position 'pos' (measured from 0) in the list.
|
|
381
390
|
* 'pos' must be valid, ie, 0 <= pos <= list's length.
|
|
391
|
+
*
|
|
392
|
+
* Note that this takes time proportional to the distance to the end of the
|
|
393
|
+
* list, since the following entries must be moved.
|
|
382
394
|
*/
|
|
383
395
|
|
|
384
396
|
|
|
@@ -393,6 +405,9 @@ lappend(List *list, void *datum)
|
|
|
393
405
|
* value, rather than continuing to use the pointer passed as the
|
|
394
406
|
* second argument.
|
|
395
407
|
*
|
|
408
|
+
* Note that this takes time proportional to the length of the list,
|
|
409
|
+
* since the existing entries must be moved.
|
|
410
|
+
*
|
|
396
411
|
* Caution: before Postgres 8.0, the original List was unmodified and
|
|
397
412
|
* could be considered to retain its separate identity. This is no longer
|
|
398
413
|
* the case.
|
|
@@ -407,7 +422,7 @@ lcons(void *datum, List *list)
|
|
|
407
422
|
else
|
|
408
423
|
new_head_cell(list);
|
|
409
424
|
|
|
410
|
-
|
|
425
|
+
linitial(list) = datum;
|
|
411
426
|
check_list_invariants(list);
|
|
412
427
|
return list;
|
|
413
428
|
}
|
|
@@ -432,6 +447,10 @@ lcons(void *datum, List *list)
|
|
|
432
447
|
* Callers should be sure to use the return value as the new pointer to the
|
|
433
448
|
* concatenated list: the 'list1' input pointer may or may not be the same
|
|
434
449
|
* as the returned pointer.
|
|
450
|
+
*
|
|
451
|
+
* Note that this takes at least time proportional to the length of list2.
|
|
452
|
+
* It'd typically be the case that we have to enlarge list1's storage,
|
|
453
|
+
* probably adding time proportional to the length of list1.
|
|
435
454
|
*/
|
|
436
455
|
List *
|
|
437
456
|
list_concat(List *list1, const List *list2)
|
|
@@ -508,6 +527,8 @@ list_truncate(List *list, int new_size)
|
|
|
508
527
|
* Return true iff 'datum' is a member of the list. Equality is
|
|
509
528
|
* determined via equal(), so callers should ensure that they pass a
|
|
510
529
|
* Node as 'datum'.
|
|
530
|
+
*
|
|
531
|
+
* This does a simple linear search --- avoid using it on long lists.
|
|
511
532
|
*/
|
|
512
533
|
|
|
513
534
|
|
|
@@ -527,10 +548,18 @@ list_truncate(List *list, int new_size)
|
|
|
527
548
|
*/
|
|
528
549
|
|
|
529
550
|
|
|
551
|
+
/*
|
|
552
|
+
* Return true iff the TransactionId 'datum' is a member of the list.
|
|
553
|
+
*/
|
|
554
|
+
|
|
555
|
+
|
|
530
556
|
/*
|
|
531
557
|
* Delete the n'th cell (counting from 0) in list.
|
|
532
558
|
*
|
|
533
559
|
* The List is pfree'd if this was the last member.
|
|
560
|
+
*
|
|
561
|
+
* Note that this takes time proportional to the distance to the end of the
|
|
562
|
+
* list, since the following entries must be moved.
|
|
534
563
|
*/
|
|
535
564
|
List *
|
|
536
565
|
list_delete_nth_cell(List *list, int n)
|
|
@@ -602,6 +631,9 @@ list_delete_nth_cell(List *list, int n)
|
|
|
602
631
|
*
|
|
603
632
|
* The List is pfree'd if this was the last member. However, we do not
|
|
604
633
|
* touch any data the cell might've been pointing to.
|
|
634
|
+
*
|
|
635
|
+
* Note that this takes time proportional to the distance to the end of the
|
|
636
|
+
* list, since the following entries must be moved.
|
|
605
637
|
*/
|
|
606
638
|
List *
|
|
607
639
|
list_delete_cell(List *list, ListCell *cell)
|
|
@@ -612,6 +644,8 @@ list_delete_cell(List *list, ListCell *cell)
|
|
|
612
644
|
/*
|
|
613
645
|
* Delete the first cell in list that matches datum, if any.
|
|
614
646
|
* Equality is determined via equal().
|
|
647
|
+
*
|
|
648
|
+
* This does a simple linear search --- avoid using it on long lists.
|
|
615
649
|
*/
|
|
616
650
|
|
|
617
651
|
|
|
@@ -631,17 +665,36 @@ list_delete_cell(List *list, ListCell *cell)
|
|
|
631
665
|
* where the intent is to alter the list rather than just traverse it.
|
|
632
666
|
* Beware that the list is modified, whereas the Lisp-y coding leaves
|
|
633
667
|
* the original list head intact in case there's another pointer to it.
|
|
668
|
+
*
|
|
669
|
+
* Note that this takes time proportional to the length of the list,
|
|
670
|
+
* since the remaining entries must be moved. Consider reversing the
|
|
671
|
+
* list order so that you can use list_delete_last() instead. However,
|
|
672
|
+
* if that causes you to replace lappend() with lcons(), you haven't
|
|
673
|
+
* improved matters. (In short, you can make an efficient stack from
|
|
674
|
+
* a List, but not an efficient FIFO queue.)
|
|
634
675
|
*/
|
|
635
676
|
|
|
636
677
|
|
|
637
678
|
/*
|
|
638
679
|
* Delete the last element of the list.
|
|
639
|
-
*
|
|
640
|
-
* This is the opposite of list_delete_first(), but is noticeably cheaper
|
|
641
|
-
* with a long list, since no data need be moved.
|
|
642
680
|
*/
|
|
643
681
|
|
|
644
682
|
|
|
683
|
+
/*
|
|
684
|
+
* Delete the first N cells of the list.
|
|
685
|
+
*
|
|
686
|
+
* The List is pfree'd if the request causes all cells to be deleted.
|
|
687
|
+
*
|
|
688
|
+
* Note that this takes time proportional to the distance to the end of the
|
|
689
|
+
* list, since the following entries must be moved.
|
|
690
|
+
*/
|
|
691
|
+
#ifndef DEBUG_LIST_MEMORY_USAGE
|
|
692
|
+
#else
|
|
693
|
+
#ifdef CLOBBER_FREED_MEMORY
|
|
694
|
+
#else
|
|
695
|
+
#endif
|
|
696
|
+
#endif
|
|
697
|
+
|
|
645
698
|
/*
|
|
646
699
|
* Generate the union of two lists. This is calculated by copying
|
|
647
700
|
* list1 via list_copy(), then adding to it all the members of list2
|
|
@@ -659,8 +712,10 @@ list_delete_cell(List *list, ListCell *cell)
|
|
|
659
712
|
* you probably want to use list_concat_unique() instead to avoid wasting
|
|
660
713
|
* the storage of the old x list.
|
|
661
714
|
*
|
|
662
|
-
*
|
|
663
|
-
*
|
|
715
|
+
* Note that this takes time proportional to the product of the list
|
|
716
|
+
* lengths, so beware of using it on long lists. (We could probably
|
|
717
|
+
* improve that, but really you should be using some other data structure
|
|
718
|
+
* if this'd be a performance bottleneck.)
|
|
664
719
|
*/
|
|
665
720
|
|
|
666
721
|
|
|
@@ -692,6 +747,11 @@ list_delete_cell(List *list, ListCell *cell)
|
|
|
692
747
|
* This variant works on lists of pointers, and determines list
|
|
693
748
|
* membership via equal(). Note that the list1 member will be pointed
|
|
694
749
|
* to in the result.
|
|
750
|
+
*
|
|
751
|
+
* Note that this takes time proportional to the product of the list
|
|
752
|
+
* lengths, so beware of using it on long lists. (We could probably
|
|
753
|
+
* improve that, but really you should be using some other data structure
|
|
754
|
+
* if this'd be a performance bottleneck.)
|
|
695
755
|
*/
|
|
696
756
|
|
|
697
757
|
|
|
@@ -708,6 +768,11 @@ list_delete_cell(List *list, ListCell *cell)
|
|
|
708
768
|
*
|
|
709
769
|
* This variant works on lists of pointers, and determines list
|
|
710
770
|
* membership via equal()
|
|
771
|
+
*
|
|
772
|
+
* Note that this takes time proportional to the product of the list
|
|
773
|
+
* lengths, so beware of using it on long lists. (We could probably
|
|
774
|
+
* improve that, but really you should be using some other data structure
|
|
775
|
+
* if this'd be a performance bottleneck.)
|
|
711
776
|
*/
|
|
712
777
|
|
|
713
778
|
|
|
@@ -732,6 +797,8 @@ list_delete_cell(List *list, ListCell *cell)
|
|
|
732
797
|
*
|
|
733
798
|
* Whether an element is already a member of the list is determined
|
|
734
799
|
* via equal().
|
|
800
|
+
*
|
|
801
|
+
* This does a simple linear search --- avoid using it on long lists.
|
|
735
802
|
*/
|
|
736
803
|
|
|
737
804
|
|
|
@@ -761,6 +828,11 @@ list_delete_cell(List *list, ListCell *cell)
|
|
|
761
828
|
* modified in-place rather than being copied. However, callers of this
|
|
762
829
|
* function may have strict ordering expectations -- i.e. that the relative
|
|
763
830
|
* order of those list2 elements that are not duplicates is preserved.
|
|
831
|
+
*
|
|
832
|
+
* Note that this takes time proportional to the product of the list
|
|
833
|
+
* lengths, so beware of using it on long lists. (We could probably
|
|
834
|
+
* improve that, but really you should be using some other data structure
|
|
835
|
+
* if this'd be a performance bottleneck.)
|
|
764
836
|
*/
|
|
765
837
|
|
|
766
838
|
|
|
@@ -785,6 +857,8 @@ list_delete_cell(List *list, ListCell *cell)
|
|
|
785
857
|
*
|
|
786
858
|
* It is caller's responsibility to have sorted the list to bring duplicates
|
|
787
859
|
* together, perhaps via list_sort(list, list_oid_cmp).
|
|
860
|
+
*
|
|
861
|
+
* Note that this takes time proportional to the length of the list.
|
|
788
862
|
*/
|
|
789
863
|
|
|
790
864
|
|
|
@@ -852,6 +926,12 @@ list_copy(const List *oldlist)
|
|
|
852
926
|
return newlist;
|
|
853
927
|
}
|
|
854
928
|
|
|
929
|
+
/*
|
|
930
|
+
* Return a shallow copy of the specified list containing only the first 'len'
|
|
931
|
+
* elements. If oldlist is shorter than 'len' then we copy the entire list.
|
|
932
|
+
*/
|
|
933
|
+
|
|
934
|
+
|
|
855
935
|
/*
|
|
856
936
|
* Return a shallow copy of the specified list, without the first N elements.
|
|
857
937
|
*/
|
|
@@ -913,6 +993,13 @@ list_copy_deep(const List *oldlist)
|
|
|
913
993
|
*
|
|
914
994
|
* Like qsort(), this provides no guarantees about sort stability
|
|
915
995
|
* for equal keys.
|
|
996
|
+
*
|
|
997
|
+
* This is based on qsort(), so it likewise has O(N log N) runtime.
|
|
998
|
+
*/
|
|
999
|
+
|
|
1000
|
+
|
|
1001
|
+
/*
|
|
1002
|
+
* list_sort comparator for sorting a list into ascending int order.
|
|
916
1003
|
*/
|
|
917
1004
|
|
|
918
1005
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* - makeDefElem
|
|
4
4
|
* - makeTypeNameFromNameList
|
|
5
5
|
* - makeDefElemExtended
|
|
6
|
+
* - makeRangeVar
|
|
6
7
|
* - makeVacuumRelation
|
|
7
8
|
* - makeAlias
|
|
8
9
|
* - makeSimpleA_Expr
|
|
@@ -10,7 +11,11 @@
|
|
|
10
11
|
* - makeTypeName
|
|
11
12
|
* - makeFuncCall
|
|
12
13
|
* - makeA_Expr
|
|
13
|
-
* -
|
|
14
|
+
* - makeJsonFormat
|
|
15
|
+
* - makeJsonIsPredicate
|
|
16
|
+
* - makeJsonValueExpr
|
|
17
|
+
* - makeJsonEncoding
|
|
18
|
+
* - makeJsonKeyValue
|
|
14
19
|
* - makeBoolExpr
|
|
15
20
|
*--------------------------------------------------------------------
|
|
16
21
|
*/
|
|
@@ -21,7 +26,7 @@
|
|
|
21
26
|
* creator functions for various nodes. The functions here are for the
|
|
22
27
|
* most frequently created nodes.
|
|
23
28
|
*
|
|
24
|
-
* Portions Copyright (c) 1996-
|
|
29
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
25
30
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
26
31
|
*
|
|
27
32
|
*
|
|
@@ -36,6 +41,7 @@
|
|
|
36
41
|
#include "catalog/pg_type.h"
|
|
37
42
|
#include "nodes/makefuncs.h"
|
|
38
43
|
#include "nodes/nodeFuncs.h"
|
|
44
|
+
#include "utils/errcodes.h"
|
|
39
45
|
#include "utils/lsyscache.h"
|
|
40
46
|
|
|
41
47
|
|
|
@@ -309,7 +315,7 @@ makeDefElemExtended(char *nameSpace, char *name, Node *arg,
|
|
|
309
315
|
* supply. Any non-default parameters have to be inserted by the caller.
|
|
310
316
|
*/
|
|
311
317
|
FuncCall *
|
|
312
|
-
makeFuncCall(List *name, List *args, int location)
|
|
318
|
+
makeFuncCall(List *name, List *args, CoercionForm funcformat, int location)
|
|
313
319
|
{
|
|
314
320
|
FuncCall *n = makeNode(FuncCall);
|
|
315
321
|
|
|
@@ -317,11 +323,12 @@ makeFuncCall(List *name, List *args, int location)
|
|
|
317
323
|
n->args = args;
|
|
318
324
|
n->agg_order = NIL;
|
|
319
325
|
n->agg_filter = NULL;
|
|
326
|
+
n->over = NULL;
|
|
320
327
|
n->agg_within_group = false;
|
|
321
328
|
n->agg_star = false;
|
|
322
329
|
n->agg_distinct = false;
|
|
323
330
|
n->func_variadic = false;
|
|
324
|
-
n->
|
|
331
|
+
n->funcformat = funcformat;
|
|
325
332
|
n->location = location;
|
|
326
333
|
return n;
|
|
327
334
|
}
|
|
@@ -415,3 +422,91 @@ makeVacuumRelation(RangeVar *relation, Oid oid, List *va_cols)
|
|
|
415
422
|
v->va_cols = va_cols;
|
|
416
423
|
return v;
|
|
417
424
|
}
|
|
425
|
+
|
|
426
|
+
/*
|
|
427
|
+
* makeJsonFormat -
|
|
428
|
+
* creates a JsonFormat node
|
|
429
|
+
*/
|
|
430
|
+
JsonFormat *
|
|
431
|
+
makeJsonFormat(JsonFormatType type, JsonEncoding encoding, int location)
|
|
432
|
+
{
|
|
433
|
+
JsonFormat *jf = makeNode(JsonFormat);
|
|
434
|
+
|
|
435
|
+
jf->format_type = type;
|
|
436
|
+
jf->encoding = encoding;
|
|
437
|
+
jf->location = location;
|
|
438
|
+
|
|
439
|
+
return jf;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
/*
|
|
443
|
+
* makeJsonValueExpr -
|
|
444
|
+
* creates a JsonValueExpr node
|
|
445
|
+
*/
|
|
446
|
+
JsonValueExpr *
|
|
447
|
+
makeJsonValueExpr(Expr *raw_expr, Expr *formatted_expr,
|
|
448
|
+
JsonFormat *format)
|
|
449
|
+
{
|
|
450
|
+
JsonValueExpr *jve = makeNode(JsonValueExpr);
|
|
451
|
+
|
|
452
|
+
jve->raw_expr = raw_expr;
|
|
453
|
+
jve->formatted_expr = formatted_expr;
|
|
454
|
+
jve->format = format;
|
|
455
|
+
|
|
456
|
+
return jve;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
/*
|
|
460
|
+
* makeJsonEncoding -
|
|
461
|
+
* converts JSON encoding name to enum JsonEncoding
|
|
462
|
+
*/
|
|
463
|
+
JsonEncoding
|
|
464
|
+
makeJsonEncoding(char *name)
|
|
465
|
+
{
|
|
466
|
+
if (!pg_strcasecmp(name, "utf8"))
|
|
467
|
+
return JS_ENC_UTF8;
|
|
468
|
+
if (!pg_strcasecmp(name, "utf16"))
|
|
469
|
+
return JS_ENC_UTF16;
|
|
470
|
+
if (!pg_strcasecmp(name, "utf32"))
|
|
471
|
+
return JS_ENC_UTF32;
|
|
472
|
+
|
|
473
|
+
ereport(ERROR,
|
|
474
|
+
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
|
475
|
+
errmsg("unrecognized JSON encoding: %s", name));
|
|
476
|
+
|
|
477
|
+
return JS_ENC_DEFAULT;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
/*
|
|
481
|
+
* makeJsonKeyValue -
|
|
482
|
+
* creates a JsonKeyValue node
|
|
483
|
+
*/
|
|
484
|
+
Node *
|
|
485
|
+
makeJsonKeyValue(Node *key, Node *value)
|
|
486
|
+
{
|
|
487
|
+
JsonKeyValue *n = makeNode(JsonKeyValue);
|
|
488
|
+
|
|
489
|
+
n->key = (Expr *) key;
|
|
490
|
+
n->value = castNode(JsonValueExpr, value);
|
|
491
|
+
|
|
492
|
+
return (Node *) n;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
/*
|
|
496
|
+
* makeJsonIsPredicate -
|
|
497
|
+
* creates a JsonIsPredicate node
|
|
498
|
+
*/
|
|
499
|
+
Node *
|
|
500
|
+
makeJsonIsPredicate(Node *expr, JsonFormat *format, JsonValueType item_type,
|
|
501
|
+
bool unique_keys, int location)
|
|
502
|
+
{
|
|
503
|
+
JsonIsPredicate *n = makeNode(JsonIsPredicate);
|
|
504
|
+
|
|
505
|
+
n->expr = expr;
|
|
506
|
+
n->format = format;
|
|
507
|
+
n->item_type = item_type;
|
|
508
|
+
n->unique_keys = unique_keys;
|
|
509
|
+
n->location = location;
|
|
510
|
+
|
|
511
|
+
return (Node *) n;
|
|
512
|
+
}
|