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
data/ext/pg_query/protobuf-c.c
CHANGED
|
@@ -84,7 +84,9 @@
|
|
|
84
84
|
# define PROTOBUF_C_UNPACK_ERROR(...)
|
|
85
85
|
#endif
|
|
86
86
|
|
|
87
|
+
#if !defined(_WIN32) || !defined(PROTOBUF_C_USE_SHARED_LIB)
|
|
87
88
|
const char protobuf_c_empty_string[] = "";
|
|
89
|
+
#endif
|
|
88
90
|
|
|
89
91
|
/**
|
|
90
92
|
* Internal `ProtobufCMessage` manipulation macro.
|
|
@@ -148,12 +150,14 @@ protobuf_c_version_number(void)
|
|
|
148
150
|
static void *
|
|
149
151
|
system_alloc(void *allocator_data, size_t size)
|
|
150
152
|
{
|
|
153
|
+
(void)allocator_data;
|
|
151
154
|
return malloc(size);
|
|
152
155
|
}
|
|
153
156
|
|
|
154
157
|
static void
|
|
155
158
|
system_free(void *allocator_data, void *data)
|
|
156
159
|
{
|
|
160
|
+
(void)allocator_data;
|
|
157
161
|
free(data);
|
|
158
162
|
}
|
|
159
163
|
|
|
@@ -1618,22 +1622,19 @@ required_field_pack_to_buffer(const ProtobufCFieldDescriptor *field,
|
|
|
1618
1622
|
break;
|
|
1619
1623
|
}
|
|
1620
1624
|
case PROTOBUF_C_TYPE_MESSAGE: {
|
|
1621
|
-
uint8_t simple_buffer_scratch[256];
|
|
1622
|
-
size_t sublen;
|
|
1623
1625
|
const ProtobufCMessage *msg = *(ProtobufCMessage * const *) member;
|
|
1624
|
-
|
|
1625
|
-
PROTOBUF_C_BUFFER_SIMPLE_INIT(simple_buffer_scratch);
|
|
1626
|
-
|
|
1626
|
+
|
|
1627
1627
|
scratch[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED;
|
|
1628
|
-
if (msg == NULL)
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1628
|
+
if (msg == NULL) {
|
|
1629
|
+
rv += uint32_pack(0, scratch + rv);
|
|
1630
|
+
buffer->append(buffer, rv, scratch);
|
|
1631
|
+
} else {
|
|
1632
|
+
size_t sublen = protobuf_c_message_get_packed_size(msg);
|
|
1633
|
+
rv += uint32_pack(sublen, scratch + rv);
|
|
1634
|
+
buffer->append(buffer, rv, scratch);
|
|
1635
|
+
protobuf_c_message_pack_to_buffer(msg, buffer);
|
|
1636
|
+
rv += sublen;
|
|
1637
|
+
}
|
|
1637
1638
|
break;
|
|
1638
1639
|
}
|
|
1639
1640
|
default:
|
|
@@ -2063,7 +2064,7 @@ static size_t
|
|
|
2063
2064
|
parse_tag_and_wiretype(size_t len,
|
|
2064
2065
|
const uint8_t *data,
|
|
2065
2066
|
uint32_t *tag_out,
|
|
2066
|
-
|
|
2067
|
+
uint8_t *wiretype_out)
|
|
2067
2068
|
{
|
|
2068
2069
|
unsigned max_rv = len > 5 ? 5 : len;
|
|
2069
2070
|
uint32_t tag = (data[0] & 0x7f) >> 3;
|
|
@@ -2095,9 +2096,9 @@ parse_tag_and_wiretype(size_t len,
|
|
|
2095
2096
|
|
|
2096
2097
|
/* sizeof(ScannedMember) must be <= (1UL<<BOUND_SIZEOF_SCANNED_MEMBER_LOG2) */
|
|
2097
2098
|
#define BOUND_SIZEOF_SCANNED_MEMBER_LOG2 5
|
|
2098
|
-
typedef struct
|
|
2099
|
+
typedef struct ScannedMember ScannedMember;
|
|
2099
2100
|
/** Field as it's being read. */
|
|
2100
|
-
struct
|
|
2101
|
+
struct ScannedMember {
|
|
2101
2102
|
uint32_t tag; /**< Field tag. */
|
|
2102
2103
|
uint8_t wire_type; /**< Field type. */
|
|
2103
2104
|
uint8_t length_prefix_len; /**< Prefix length. */
|
|
@@ -2132,11 +2133,13 @@ scan_length_prefixed_data(size_t len, const uint8_t *data,
|
|
|
2132
2133
|
// Protobuf messages should always be less than 2 GiB in size.
|
|
2133
2134
|
// We also want to return early here so that hdr_len + val does
|
|
2134
2135
|
// not overflow on 32-bit systems.
|
|
2135
|
-
PROTOBUF_C_UNPACK_ERROR("length prefix of %lu is too large",
|
|
2136
|
+
PROTOBUF_C_UNPACK_ERROR("length prefix of %lu is too large",
|
|
2137
|
+
(unsigned long int)val);
|
|
2136
2138
|
return 0;
|
|
2137
2139
|
}
|
|
2138
2140
|
if (hdr_len + val > len) {
|
|
2139
|
-
PROTOBUF_C_UNPACK_ERROR("data too short after length-prefix of %lu",
|
|
2141
|
+
PROTOBUF_C_UNPACK_ERROR("data too short after length-prefix of %lu",
|
|
2142
|
+
(unsigned long int)val);
|
|
2140
2143
|
return 0;
|
|
2141
2144
|
}
|
|
2142
2145
|
return hdr_len + val;
|
|
@@ -2498,7 +2501,7 @@ parse_required_member(ScannedMember *scanned_member,
|
|
|
2498
2501
|
{
|
|
2499
2502
|
unsigned len = scanned_member->len;
|
|
2500
2503
|
const uint8_t *data = scanned_member->data;
|
|
2501
|
-
|
|
2504
|
+
uint8_t wire_type = scanned_member->wire_type;
|
|
2502
2505
|
|
|
2503
2506
|
switch (scanned_member->field->type) {
|
|
2504
2507
|
case PROTOBUF_C_TYPE_ENUM:
|
|
@@ -2579,7 +2582,7 @@ parse_required_member(ScannedMember *scanned_member,
|
|
|
2579
2582
|
{
|
|
2580
2583
|
do_free(allocator, bd->data);
|
|
2581
2584
|
}
|
|
2582
|
-
if (len
|
|
2585
|
+
if (len > pref_len) {
|
|
2583
2586
|
bd->data = do_alloc(allocator, len - pref_len);
|
|
2584
2587
|
if (bd->data == NULL)
|
|
2585
2588
|
return FALSE;
|
|
@@ -2747,7 +2750,9 @@ parse_packed_repeated_member(ScannedMember *scanned_member,
|
|
|
2747
2750
|
const uint8_t *at = scanned_member->data + scanned_member->length_prefix_len;
|
|
2748
2751
|
size_t rem = scanned_member->len - scanned_member->length_prefix_len;
|
|
2749
2752
|
size_t count = 0;
|
|
2753
|
+
#if defined(WORDS_BIGENDIAN)
|
|
2750
2754
|
unsigned i;
|
|
2755
|
+
#endif
|
|
2751
2756
|
|
|
2752
2757
|
switch (field->type) {
|
|
2753
2758
|
case PROTOBUF_C_TYPE_SFIXED32:
|
|
@@ -2840,13 +2845,15 @@ parse_packed_repeated_member(ScannedMember *scanned_member,
|
|
|
2840
2845
|
}
|
|
2841
2846
|
break;
|
|
2842
2847
|
case PROTOBUF_C_TYPE_BOOL:
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
if (
|
|
2848
|
+
while (rem > 0) {
|
|
2849
|
+
unsigned s = scan_varint(rem, at);
|
|
2850
|
+
if (s == 0) {
|
|
2846
2851
|
PROTOBUF_C_UNPACK_ERROR("bad packed-repeated boolean value");
|
|
2847
2852
|
return FALSE;
|
|
2848
2853
|
}
|
|
2849
|
-
((protobuf_c_boolean *) array)[
|
|
2854
|
+
((protobuf_c_boolean *) array)[count++] = parse_boolean(s, at);
|
|
2855
|
+
at += s;
|
|
2856
|
+
rem -= s;
|
|
2850
2857
|
}
|
|
2851
2858
|
break;
|
|
2852
2859
|
default:
|
|
@@ -3080,7 +3087,7 @@ protobuf_c_message_unpack(const ProtobufCMessageDescriptor *desc,
|
|
|
3080
3087
|
|
|
3081
3088
|
while (rem > 0) {
|
|
3082
3089
|
uint32_t tag;
|
|
3083
|
-
|
|
3090
|
+
uint8_t wire_type;
|
|
3084
3091
|
size_t used = parse_tag_and_wiretype(rem, at, &tag, &wire_type);
|
|
3085
3092
|
const ProtobufCFieldDescriptor *field;
|
|
3086
3093
|
ScannedMember tmp;
|
|
@@ -3657,4 +3664,4 @@ protobuf_c_service_descriptor_get_method_by_name(const ProtobufCServiceDescripto
|
|
|
3657
3664
|
if (strcmp(desc->methods[desc->method_indices_by_name[start]].name, name) == 0)
|
|
3658
3665
|
return desc->methods + desc->method_indices_by_name[start];
|
|
3659
3666
|
return NULL;
|
|
3660
|
-
}
|
|
3667
|
+
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* and implementing search-path-controlled searches.
|
|
17
17
|
*
|
|
18
18
|
*
|
|
19
|
-
* Portions Copyright (c) 1996-
|
|
19
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
20
20
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
21
21
|
*
|
|
22
22
|
* IDENTIFICATION
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
#include "catalog/pg_authid.h"
|
|
36
36
|
#include "catalog/pg_collation.h"
|
|
37
37
|
#include "catalog/pg_conversion.h"
|
|
38
|
+
#include "catalog/pg_database.h"
|
|
38
39
|
#include "catalog/pg_namespace.h"
|
|
39
40
|
#include "catalog/pg_opclass.h"
|
|
40
41
|
#include "catalog/pg_operator.h"
|
|
@@ -58,10 +59,11 @@
|
|
|
58
59
|
#include "utils/acl.h"
|
|
59
60
|
#include "utils/builtins.h"
|
|
60
61
|
#include "utils/catcache.h"
|
|
61
|
-
#include "utils/
|
|
62
|
+
#include "utils/guc_hooks.h"
|
|
62
63
|
#include "utils/inval.h"
|
|
63
64
|
#include "utils/lsyscache.h"
|
|
64
65
|
#include "utils/memutils.h"
|
|
66
|
+
#include "utils/snapmgr.h"
|
|
65
67
|
#include "utils/syscache.h"
|
|
66
68
|
#include "utils/varlena.h"
|
|
67
69
|
|
|
@@ -213,6 +215,7 @@ static void RemoveTempRelations(Oid tempNamespaceId);
|
|
|
213
215
|
static void RemoveTempRelationsCallback(int code, Datum arg);
|
|
214
216
|
static void NamespaceCallback(Datum arg, int cacheid, uint32 hashvalue);
|
|
215
217
|
static bool MatchNamedCall(HeapTuple proctup, int nargs, List *argnames,
|
|
218
|
+
bool include_out_arguments, int pronargs,
|
|
216
219
|
int **argnumbers);
|
|
217
220
|
|
|
218
221
|
|
|
@@ -355,6 +358,12 @@ static bool MatchNamedCall(HeapTuple proctup, int nargs, List *argnames,
|
|
|
355
358
|
* of additional args (which can be retrieved from the function's
|
|
356
359
|
* proargdefaults entry).
|
|
357
360
|
*
|
|
361
|
+
* If include_out_arguments is true, then OUT-mode arguments are considered to
|
|
362
|
+
* be included in the argument list. Their types are included in the returned
|
|
363
|
+
* arrays, and argnumbers are indexes in proallargtypes not proargtypes.
|
|
364
|
+
* We also set nominalnargs to be the length of proallargtypes not proargtypes.
|
|
365
|
+
* Otherwise OUT-mode arguments are ignored.
|
|
366
|
+
*
|
|
358
367
|
* It is not possible for nvargs and ndargs to both be nonzero in the same
|
|
359
368
|
* list entry, since default insertion allows matches to functions with more
|
|
360
369
|
* than nargs arguments while the variadic transformation requires the same
|
|
@@ -365,7 +374,8 @@ static bool MatchNamedCall(HeapTuple proctup, int nargs, List *argnames,
|
|
|
365
374
|
* first any positional arguments, then the named arguments, then defaulted
|
|
366
375
|
* arguments (if needed and allowed by expand_defaults). The argnumbers[]
|
|
367
376
|
* array can be used to map this back to the catalog information.
|
|
368
|
-
* argnumbers[k] is set to the proargtypes index of the
|
|
377
|
+
* argnumbers[k] is set to the proargtypes or proallargtypes index of the
|
|
378
|
+
* k'th call argument.
|
|
369
379
|
*
|
|
370
380
|
* We search a single namespace if the function name is qualified, else
|
|
371
381
|
* all namespaces in the search path. In the multiple-namespace case,
|
|
@@ -389,7 +399,7 @@ static bool MatchNamedCall(HeapTuple proctup, int nargs, List *argnames,
|
|
|
389
399
|
* such an entry it should react as though the call were ambiguous.
|
|
390
400
|
*
|
|
391
401
|
* If missing_ok is true, an empty list (NULL) is returned if the name was
|
|
392
|
-
* schema-
|
|
402
|
+
* schema-qualified with a schema that does not exist. Likewise if no
|
|
393
403
|
* candidate is found for other reasons.
|
|
394
404
|
*/
|
|
395
405
|
|
|
@@ -403,6 +413,10 @@ static bool MatchNamedCall(HeapTuple proctup, int nargs, List *argnames,
|
|
|
403
413
|
* the function, in positions after the last positional argument, and there
|
|
404
414
|
* are defaults for all unsupplied arguments.
|
|
405
415
|
*
|
|
416
|
+
* If include_out_arguments is true, we are treating OUT arguments as
|
|
417
|
+
* included in the argument list. pronargs is the number of arguments
|
|
418
|
+
* we're considering (the length of either proargtypes or proallargtypes).
|
|
419
|
+
*
|
|
406
420
|
* The number of positional arguments is nargs - list_length(argnames).
|
|
407
421
|
* Note caller has already done basic checks on argument count.
|
|
408
422
|
*
|
|
@@ -427,8 +441,7 @@ static bool MatchNamedCall(HeapTuple proctup, int nargs, List *argnames,
|
|
|
427
441
|
* Given a possibly-qualified operator name and exact input datatypes,
|
|
428
442
|
* look up the operator. Returns InvalidOid if not found.
|
|
429
443
|
*
|
|
430
|
-
* Pass oprleft = InvalidOid for a prefix op
|
|
431
|
-
* a postfix op.
|
|
444
|
+
* Pass oprleft = InvalidOid for a prefix op.
|
|
432
445
|
*
|
|
433
446
|
* If the operator name is not schema-qualified, it is sought in the current
|
|
434
447
|
* namespace search path. If the name is schema-qualified and the given
|
|
@@ -450,8 +463,8 @@ static bool MatchNamedCall(HeapTuple proctup, int nargs, List *argnames,
|
|
|
450
463
|
* namespace case, we arrange for entries in earlier namespaces to mask
|
|
451
464
|
* identical entries in later namespaces.
|
|
452
465
|
*
|
|
453
|
-
* The returned items always have two args[] entries ---
|
|
454
|
-
*
|
|
466
|
+
* The returned items always have two args[] entries --- the first will be
|
|
467
|
+
* InvalidOid for a prefix oprkind. nargs is always 2, too.
|
|
455
468
|
*/
|
|
456
469
|
#define SPACE_PER_OP MAXALIGN(offsetof(struct _FuncCandidateList, args) + \
|
|
457
470
|
2 * sizeof(Oid))
|
|
@@ -676,7 +689,7 @@ static bool MatchNamedCall(HeapTuple proctup, int nargs, List *argnames,
|
|
|
676
689
|
|
|
677
690
|
/*
|
|
678
691
|
* QualifiedNameGetCreationNamespace
|
|
679
|
-
* Given a possibly-qualified name for an object (in List-of-
|
|
692
|
+
* Given a possibly-qualified name for an object (in List-of-Strings
|
|
680
693
|
* format), determine what namespace the object should be created in.
|
|
681
694
|
* Also extract and return the object name (last component of list).
|
|
682
695
|
*
|
|
@@ -709,7 +722,7 @@ static bool MatchNamedCall(HeapTuple proctup, int nargs, List *argnames,
|
|
|
709
722
|
* This is used primarily to form error messages, and so we do not quote
|
|
710
723
|
* the list elements, for the sake of legibility.
|
|
711
724
|
*
|
|
712
|
-
* In most scenarios the list elements should always be
|
|
725
|
+
* In most scenarios the list elements should always be String values,
|
|
713
726
|
* but we also allow A_Star for the convenience of ColumnRef processing.
|
|
714
727
|
*/
|
|
715
728
|
char *
|
|
@@ -857,6 +870,10 @@ NameListToString(List *names)
|
|
|
857
870
|
/*
|
|
858
871
|
* PushOverrideSearchPath - temporarily override the search path
|
|
859
872
|
*
|
|
873
|
+
* Do not use this function; almost any usage introduces a security
|
|
874
|
+
* vulnerability. It exists for the benefit of legacy code running in
|
|
875
|
+
* non-security-sensitive environments.
|
|
876
|
+
*
|
|
860
877
|
* We allow nested overrides, hence the push/pop terminology. The GUC
|
|
861
878
|
* search_path variable is ignored while an override is active.
|
|
862
879
|
*
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* pg_proc.c
|
|
10
10
|
* routines to support manipulation of the pg_proc relation
|
|
11
11
|
*
|
|
12
|
-
* Portions Copyright (c) 1996-
|
|
12
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
13
13
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
14
14
|
*
|
|
15
15
|
*
|
|
@@ -38,8 +38,11 @@
|
|
|
38
38
|
#include "mb/pg_wchar.h"
|
|
39
39
|
#include "miscadmin.h"
|
|
40
40
|
#include "nodes/nodeFuncs.h"
|
|
41
|
+
#include "parser/analyze.h"
|
|
41
42
|
#include "parser/parse_coerce.h"
|
|
42
43
|
#include "parser/parse_type.h"
|
|
44
|
+
#include "pgstat.h"
|
|
45
|
+
#include "rewrite/rewriteHandler.h"
|
|
43
46
|
#include "tcop/pquery.h"
|
|
44
47
|
#include "tcop/tcopprot.h"
|
|
45
48
|
#include "utils/acl.h"
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Support routines for various kinds of object creation.
|
|
11
11
|
*
|
|
12
12
|
*
|
|
13
|
-
* Portions Copyright (c) 1996-
|
|
13
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
14
14
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
15
15
|
*
|
|
16
16
|
*
|
|
@@ -92,6 +92,11 @@ defGetInt32(DefElem *def)
|
|
|
92
92
|
*/
|
|
93
93
|
|
|
94
94
|
|
|
95
|
+
/*
|
|
96
|
+
* Extract an OID value from a DefElem.
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
|
|
95
100
|
/*
|
|
96
101
|
* Extract a possibly-qualified name (as a List of Strings) from a DefElem.
|
|
97
102
|
*/
|
|
@@ -115,3 +120,8 @@ defGetInt32(DefElem *def)
|
|
|
115
120
|
* Extract a list of string values (otherwise uninterpreted) from a DefElem.
|
|
116
121
|
*/
|
|
117
122
|
|
|
123
|
+
|
|
124
|
+
/*
|
|
125
|
+
* Raise an error about a conflicting DefElem.
|
|
126
|
+
*/
|
|
127
|
+
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
* Symbols referenced in this file:
|
|
3
3
|
* - bms_copy
|
|
4
4
|
* - bms_equal
|
|
5
|
-
* - bms_is_empty
|
|
6
|
-
* - bms_first_member
|
|
7
5
|
* - bms_free
|
|
8
6
|
* - bms_next_member
|
|
9
7
|
* - bms_num_members
|
|
@@ -17,13 +15,11 @@
|
|
|
17
15
|
*
|
|
18
16
|
* A bitmap set can represent any set of nonnegative integers, although
|
|
19
17
|
* it is mainly intended for sets where the maximum value is not large,
|
|
20
|
-
* say at most a few hundred. By convention,
|
|
21
|
-
*
|
|
22
|
-
* that this is not the only representation of the empty set. Use
|
|
23
|
-
* bms_is_empty() in preference to testing for NULL.)
|
|
18
|
+
* say at most a few hundred. By convention, we always represent the
|
|
19
|
+
* empty set by a NULL pointer.
|
|
24
20
|
*
|
|
25
21
|
*
|
|
26
|
-
* Copyright (c) 2003-
|
|
22
|
+
* Copyright (c) 2003-2023, PostgreSQL Global Development Group
|
|
27
23
|
*
|
|
28
24
|
* IDENTIFICATION
|
|
29
25
|
* src/backend/nodes/bitmapset.c
|
|
@@ -78,6 +74,8 @@
|
|
|
78
74
|
#error "invalid BITS_PER_BITMAPWORD"
|
|
79
75
|
#endif
|
|
80
76
|
|
|
77
|
+
static bool bms_is_empty_internal(const Bitmapset *a);
|
|
78
|
+
|
|
81
79
|
|
|
82
80
|
/*
|
|
83
81
|
* bms_copy - make a palloc'd copy of a bitmapset
|
|
@@ -116,10 +114,10 @@ bms_equal(const Bitmapset *a, const Bitmapset *b)
|
|
|
116
114
|
{
|
|
117
115
|
if (b == NULL)
|
|
118
116
|
return true;
|
|
119
|
-
return
|
|
117
|
+
return false;
|
|
120
118
|
}
|
|
121
119
|
else if (b == NULL)
|
|
122
|
-
return
|
|
120
|
+
return false;
|
|
123
121
|
/* Identify shorter and longer input */
|
|
124
122
|
if (a->nwords <= b->nwords)
|
|
125
123
|
{
|
|
@@ -233,6 +231,8 @@ bms_free(Bitmapset *a)
|
|
|
233
231
|
|
|
234
232
|
/*
|
|
235
233
|
* bms_nonempty_difference - do sets have a nonempty difference?
|
|
234
|
+
*
|
|
235
|
+
* i.e., are any members set in 'a' that are not also set in 'b'.
|
|
236
236
|
*/
|
|
237
237
|
|
|
238
238
|
|
|
@@ -288,28 +288,13 @@ bms_num_members(const Bitmapset *a)
|
|
|
288
288
|
|
|
289
289
|
|
|
290
290
|
/*
|
|
291
|
-
*
|
|
291
|
+
* bms_is_empty_internal - is a set empty?
|
|
292
292
|
*
|
|
293
|
-
* This is
|
|
293
|
+
* This is now used only locally, to detect cases where a function has
|
|
294
|
+
* computed an empty set that we must now get rid of. Hence, we can
|
|
295
|
+
* assume the input isn't NULL.
|
|
294
296
|
*/
|
|
295
|
-
bool
|
|
296
|
-
bms_is_empty(const Bitmapset *a)
|
|
297
|
-
{
|
|
298
|
-
int nwords;
|
|
299
|
-
int wordnum;
|
|
300
297
|
|
|
301
|
-
if (a == NULL)
|
|
302
|
-
return true;
|
|
303
|
-
nwords = a->nwords;
|
|
304
|
-
for (wordnum = 0; wordnum < nwords; wordnum++)
|
|
305
|
-
{
|
|
306
|
-
bitmapword w = a->words[wordnum];
|
|
307
|
-
|
|
308
|
-
if (w != 0)
|
|
309
|
-
return false;
|
|
310
|
-
}
|
|
311
|
-
return true;
|
|
312
|
-
}
|
|
313
298
|
|
|
314
299
|
|
|
315
300
|
/*
|
|
@@ -368,48 +353,6 @@ bms_is_empty(const Bitmapset *a)
|
|
|
368
353
|
*/
|
|
369
354
|
|
|
370
355
|
|
|
371
|
-
/*
|
|
372
|
-
* bms_first_member - find and remove first member of a set
|
|
373
|
-
*
|
|
374
|
-
* Returns -1 if set is empty. NB: set is destructively modified!
|
|
375
|
-
*
|
|
376
|
-
* This is intended as support for iterating through the members of a set.
|
|
377
|
-
* The typical pattern is
|
|
378
|
-
*
|
|
379
|
-
* while ((x = bms_first_member(inputset)) >= 0)
|
|
380
|
-
* process member x;
|
|
381
|
-
*
|
|
382
|
-
* CAUTION: this destroys the content of "inputset". If the set must
|
|
383
|
-
* not be modified, use bms_next_member instead.
|
|
384
|
-
*/
|
|
385
|
-
int
|
|
386
|
-
bms_first_member(Bitmapset *a)
|
|
387
|
-
{
|
|
388
|
-
int nwords;
|
|
389
|
-
int wordnum;
|
|
390
|
-
|
|
391
|
-
if (a == NULL)
|
|
392
|
-
return -1;
|
|
393
|
-
nwords = a->nwords;
|
|
394
|
-
for (wordnum = 0; wordnum < nwords; wordnum++)
|
|
395
|
-
{
|
|
396
|
-
bitmapword w = a->words[wordnum];
|
|
397
|
-
|
|
398
|
-
if (w != 0)
|
|
399
|
-
{
|
|
400
|
-
int result;
|
|
401
|
-
|
|
402
|
-
w = RIGHTMOST_ONE(w);
|
|
403
|
-
a->words[wordnum] &= ~w;
|
|
404
|
-
|
|
405
|
-
result = wordnum * BITS_PER_BITMAPWORD;
|
|
406
|
-
result += bmw_rightmost_one_pos(w);
|
|
407
|
-
return result;
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
return -1;
|
|
411
|
-
}
|
|
412
|
-
|
|
413
356
|
/*
|
|
414
357
|
* bms_next_member - find next member of a set
|
|
415
358
|
*
|