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
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for costsize.c and clausesel.c.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/optimizer/cost.h
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
/* defaults for costsize.c's Cost parameters */
|
|
22
22
|
/* NB: cost-estimation code should use the variables, not these constants! */
|
|
23
|
-
/* If you change these, update backend/utils/misc/postgresql.sample
|
|
23
|
+
/* If you change these, update backend/utils/misc/postgresql.conf.sample */
|
|
24
24
|
#define DEFAULT_SEQ_PAGE_COST 1.0
|
|
25
25
|
#define DEFAULT_RANDOM_PAGE_COST 4.0
|
|
26
26
|
#define DEFAULT_CPU_TUPLE_COST 0.01
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
#define DEFAULT_PARALLEL_TUPLE_COST 0.1
|
|
30
30
|
#define DEFAULT_PARALLEL_SETUP_COST 1000.0
|
|
31
31
|
|
|
32
|
+
/* defaults for non-Cost parameters */
|
|
33
|
+
#define DEFAULT_RECURSIVE_WORKTABLE_FACTOR 10.0
|
|
32
34
|
#define DEFAULT_EFFECTIVE_CACHE_SIZE 524288 /* measured in pages */
|
|
33
35
|
|
|
34
36
|
typedef enum
|
|
@@ -57,6 +59,7 @@ extern PGDLLIMPORT bool enable_incremental_sort;
|
|
|
57
59
|
extern PGDLLIMPORT bool enable_hashagg;
|
|
58
60
|
extern PGDLLIMPORT bool enable_nestloop;
|
|
59
61
|
extern PGDLLIMPORT bool enable_material;
|
|
62
|
+
extern PGDLLIMPORT bool enable_memoize;
|
|
60
63
|
extern PGDLLIMPORT bool enable_mergejoin;
|
|
61
64
|
extern PGDLLIMPORT bool enable_hashjoin;
|
|
62
65
|
extern PGDLLIMPORT bool enable_gathermerge;
|
|
@@ -65,6 +68,8 @@ extern PGDLLIMPORT bool enable_partitionwise_aggregate;
|
|
|
65
68
|
extern PGDLLIMPORT bool enable_parallel_append;
|
|
66
69
|
extern PGDLLIMPORT bool enable_parallel_hash;
|
|
67
70
|
extern PGDLLIMPORT bool enable_partition_pruning;
|
|
71
|
+
extern PGDLLIMPORT bool enable_presorted_aggregate;
|
|
72
|
+
extern PGDLLIMPORT bool enable_async_append;
|
|
68
73
|
extern PGDLLIMPORT int constraint_exclusion;
|
|
69
74
|
|
|
70
75
|
extern double index_pages_fetched(double tuples_fetched, BlockNumber pages,
|
|
@@ -83,8 +88,12 @@ extern void cost_bitmap_or_node(BitmapOrPath *path, PlannerInfo *root);
|
|
|
83
88
|
extern void cost_bitmap_tree_node(Path *path, Cost *cost, Selectivity *selec);
|
|
84
89
|
extern void cost_tidscan(Path *path, PlannerInfo *root,
|
|
85
90
|
RelOptInfo *baserel, List *tidquals, ParamPathInfo *param_info);
|
|
91
|
+
extern void cost_tidrangescan(Path *path, PlannerInfo *root,
|
|
92
|
+
RelOptInfo *baserel, List *tidrangequals,
|
|
93
|
+
ParamPathInfo *param_info);
|
|
86
94
|
extern void cost_subqueryscan(SubqueryScanPath *path, PlannerInfo *root,
|
|
87
|
-
RelOptInfo *baserel, ParamPathInfo *param_info
|
|
95
|
+
RelOptInfo *baserel, ParamPathInfo *param_info,
|
|
96
|
+
bool trivial_pathtarget);
|
|
88
97
|
extern void cost_functionscan(Path *path, PlannerInfo *root,
|
|
89
98
|
RelOptInfo *baserel, ParamPathInfo *param_info);
|
|
90
99
|
extern void cost_valuesscan(Path *path, PlannerInfo *root,
|
|
@@ -107,7 +116,7 @@ extern void cost_incremental_sort(Path *path,
|
|
|
107
116
|
Cost input_startup_cost, Cost input_total_cost,
|
|
108
117
|
double input_tuples, int width, Cost comparison_cost, int sort_mem,
|
|
109
118
|
double limit_tuples);
|
|
110
|
-
extern void cost_append(AppendPath *
|
|
119
|
+
extern void cost_append(AppendPath *apath);
|
|
111
120
|
extern void cost_merge_append(Path *path, PlannerInfo *root,
|
|
112
121
|
List *pathkeys, int n_streams,
|
|
113
122
|
Cost input_startup_cost, Cost input_total_cost,
|
|
@@ -159,7 +168,7 @@ extern void final_cost_hashjoin(PlannerInfo *root, HashPath *path,
|
|
|
159
168
|
JoinCostWorkspace *workspace,
|
|
160
169
|
JoinPathExtraData *extra);
|
|
161
170
|
extern void cost_gather(GatherPath *path, PlannerInfo *root,
|
|
162
|
-
RelOptInfo *
|
|
171
|
+
RelOptInfo *rel, ParamPathInfo *param_info, double *rows);
|
|
163
172
|
extern void cost_gather_merge(GatherMergePath *path, PlannerInfo *root,
|
|
164
173
|
RelOptInfo *rel, ParamPathInfo *param_info,
|
|
165
174
|
Cost input_startup_cost, Cost input_total_cost,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* geqo.h
|
|
4
4
|
* prototypes for various files in optimizer/geqo
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/optimizer/geqo.h
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#ifndef GEQO_H
|
|
23
23
|
#define GEQO_H
|
|
24
24
|
|
|
25
|
+
#include "common/pg_prng.h"
|
|
25
26
|
#include "nodes/pathnodes.h"
|
|
26
27
|
#include "optimizer/geqo_gene.h"
|
|
27
28
|
|
|
@@ -48,23 +49,24 @@
|
|
|
48
49
|
*
|
|
49
50
|
* If you change these, update backend/utils/misc/postgresql.conf.sample
|
|
50
51
|
*/
|
|
51
|
-
extern int
|
|
52
|
+
extern PGDLLIMPORT int Geqo_effort; /* 1 .. 10, knob for adjustment of
|
|
53
|
+
* defaults */
|
|
52
54
|
|
|
53
55
|
#define DEFAULT_GEQO_EFFORT 5
|
|
54
56
|
#define MIN_GEQO_EFFORT 1
|
|
55
57
|
#define MAX_GEQO_EFFORT 10
|
|
56
58
|
|
|
57
|
-
extern int
|
|
59
|
+
extern PGDLLIMPORT int Geqo_pool_size; /* 2 .. inf, or 0 to use default */
|
|
58
60
|
|
|
59
|
-
extern int
|
|
61
|
+
extern PGDLLIMPORT int Geqo_generations; /* 1 .. inf, or 0 to use default */
|
|
60
62
|
|
|
61
|
-
extern double Geqo_selection_bias;
|
|
63
|
+
extern PGDLLIMPORT double Geqo_selection_bias;
|
|
62
64
|
|
|
63
65
|
#define DEFAULT_GEQO_SELECTION_BIAS 2.0
|
|
64
66
|
#define MIN_GEQO_SELECTION_BIAS 1.5
|
|
65
67
|
#define MAX_GEQO_SELECTION_BIAS 2.0
|
|
66
68
|
|
|
67
|
-
extern double Geqo_seed;
|
|
69
|
+
extern PGDLLIMPORT double Geqo_seed; /* 0 .. 1 */
|
|
68
70
|
|
|
69
71
|
|
|
70
72
|
/*
|
|
@@ -73,7 +75,7 @@ extern double Geqo_seed; /* 0 .. 1 */
|
|
|
73
75
|
typedef struct
|
|
74
76
|
{
|
|
75
77
|
List *initial_rels; /* the base relations we are joining */
|
|
76
|
-
|
|
78
|
+
pg_prng_state random_state; /* PRNG state */
|
|
77
79
|
} GeqoPrivateData;
|
|
78
80
|
|
|
79
81
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* geqo_gene.h
|
|
4
4
|
* genome representation in optimizer/geqo
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/optimizer/geqo_gene.h
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* example. For the most part, however, code outside the core planner
|
|
13
13
|
* should not need to include any optimizer/ header except this one.
|
|
14
14
|
*
|
|
15
|
-
* Portions Copyright (c) 1996-
|
|
15
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
16
16
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
17
17
|
*
|
|
18
18
|
* src/include/optimizer/optimizer.h
|
|
@@ -24,11 +24,6 @@
|
|
|
24
24
|
|
|
25
25
|
#include "nodes/parsenodes.h"
|
|
26
26
|
|
|
27
|
-
/* Test if an expression node represents a SRF call. Beware multiple eval! */
|
|
28
|
-
#define IS_SRF_CALL(node) \
|
|
29
|
-
((IsA(node, FuncExpr) && ((FuncExpr *) (node))->funcretset) || \
|
|
30
|
-
(IsA(node, OpExpr) && ((OpExpr *) (node))->opretset))
|
|
31
|
-
|
|
32
27
|
/*
|
|
33
28
|
* We don't want to include nodes/pathnodes.h here, because non-planner
|
|
34
29
|
* code should generally treat PlannerInfo as an opaque typedef.
|
|
@@ -63,17 +58,23 @@ extern Selectivity clause_selectivity(PlannerInfo *root,
|
|
|
63
58
|
int varRelid,
|
|
64
59
|
JoinType jointype,
|
|
65
60
|
SpecialJoinInfo *sjinfo);
|
|
66
|
-
extern Selectivity
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
61
|
+
extern Selectivity clause_selectivity_ext(PlannerInfo *root,
|
|
62
|
+
Node *clause,
|
|
63
|
+
int varRelid,
|
|
64
|
+
JoinType jointype,
|
|
65
|
+
SpecialJoinInfo *sjinfo,
|
|
66
|
+
bool use_extended_stats);
|
|
72
67
|
extern Selectivity clauselist_selectivity(PlannerInfo *root,
|
|
73
68
|
List *clauses,
|
|
74
69
|
int varRelid,
|
|
75
70
|
JoinType jointype,
|
|
76
71
|
SpecialJoinInfo *sjinfo);
|
|
72
|
+
extern Selectivity clauselist_selectivity_ext(PlannerInfo *root,
|
|
73
|
+
List *clauses,
|
|
74
|
+
int varRelid,
|
|
75
|
+
JoinType jointype,
|
|
76
|
+
SpecialJoinInfo *sjinfo,
|
|
77
|
+
bool use_extended_stats);
|
|
77
78
|
|
|
78
79
|
/* in path/costsize.c: */
|
|
79
80
|
|
|
@@ -85,29 +86,30 @@ extern PGDLLIMPORT double cpu_index_tuple_cost;
|
|
|
85
86
|
extern PGDLLIMPORT double cpu_operator_cost;
|
|
86
87
|
extern PGDLLIMPORT double parallel_tuple_cost;
|
|
87
88
|
extern PGDLLIMPORT double parallel_setup_cost;
|
|
89
|
+
extern PGDLLIMPORT double recursive_worktable_factor;
|
|
88
90
|
extern PGDLLIMPORT int effective_cache_size;
|
|
89
91
|
|
|
90
92
|
extern double clamp_row_est(double nrows);
|
|
93
|
+
extern long clamp_cardinality_to_long(Cardinality x);
|
|
91
94
|
|
|
92
95
|
/* in path/indxpath.c: */
|
|
93
96
|
|
|
94
|
-
extern bool is_pseudo_constant_for_index(
|
|
95
|
-
|
|
96
|
-
IndexOptInfo *index);
|
|
97
|
+
extern bool is_pseudo_constant_for_index(PlannerInfo *root, Node *expr,
|
|
98
|
+
IndexOptInfo *index);
|
|
97
99
|
|
|
98
100
|
/* in plan/planner.c: */
|
|
99
101
|
|
|
100
|
-
/* possible values for
|
|
102
|
+
/* possible values for debug_parallel_query */
|
|
101
103
|
typedef enum
|
|
102
104
|
{
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
105
|
+
DEBUG_PARALLEL_OFF,
|
|
106
|
+
DEBUG_PARALLEL_ON,
|
|
107
|
+
DEBUG_PARALLEL_REGRESS
|
|
108
|
+
} DebugParallelMode;
|
|
107
109
|
|
|
108
110
|
/* GUC parameters */
|
|
109
|
-
extern int
|
|
110
|
-
extern bool parallel_leader_participation;
|
|
111
|
+
extern PGDLLIMPORT int debug_parallel_query;
|
|
112
|
+
extern PGDLLIMPORT bool parallel_leader_participation;
|
|
111
113
|
|
|
112
114
|
extern struct PlannedStmt *planner(Query *parse, const char *query_string,
|
|
113
115
|
int cursorOptions,
|
|
@@ -141,12 +143,15 @@ extern bool contain_volatile_functions_not_nextval(Node *clause);
|
|
|
141
143
|
|
|
142
144
|
extern Node *eval_const_expressions(PlannerInfo *root, Node *node);
|
|
143
145
|
|
|
146
|
+
extern void convert_saop_to_hashed_saop(Node *node);
|
|
147
|
+
|
|
144
148
|
extern Node *estimate_expression_value(PlannerInfo *root, Node *node);
|
|
145
149
|
|
|
146
150
|
extern Expr *evaluate_expr(Expr *expr, Oid result_type, int32 result_typmod,
|
|
147
151
|
Oid result_collation);
|
|
148
152
|
|
|
149
|
-
extern List *expand_function_arguments(List *args,
|
|
153
|
+
extern List *expand_function_arguments(List *args, bool include_out_arguments,
|
|
154
|
+
Oid result_type,
|
|
150
155
|
struct HeapTupleData *func_tuple);
|
|
151
156
|
|
|
152
157
|
/* in util/predtest.c: */
|
|
@@ -184,16 +189,14 @@ extern SortGroupClause *get_sortgroupref_clause_noerr(Index sortref,
|
|
|
184
189
|
#define PVC_RECURSE_PLACEHOLDERS 0x0020 /* recurse into PlaceHolderVar
|
|
185
190
|
* arguments */
|
|
186
191
|
|
|
187
|
-
extern Bitmapset *pull_varnos(Node *node);
|
|
188
|
-
extern Bitmapset *pull_varnos_of_level(Node *node, int levelsup);
|
|
189
|
-
extern Bitmapset *pull_varnos_new(PlannerInfo *root, Node *node);
|
|
190
|
-
extern Bitmapset *pull_varnos_of_level_new(PlannerInfo *root, Node *node, int levelsup);
|
|
192
|
+
extern Bitmapset *pull_varnos(PlannerInfo *root, Node *node);
|
|
193
|
+
extern Bitmapset *pull_varnos_of_level(PlannerInfo *root, Node *node, int levelsup);
|
|
191
194
|
extern void pull_varattnos(Node *node, Index varno, Bitmapset **varattnos);
|
|
192
195
|
extern List *pull_vars_of_level(Node *node, int levelsup);
|
|
193
196
|
extern bool contain_var_clause(Node *node);
|
|
194
197
|
extern bool contain_vars_of_level(Node *node, int levelsup);
|
|
195
198
|
extern int locate_var_of_level(Node *node, int levelsup);
|
|
196
199
|
extern List *pull_var_clause(Node *node, int flags);
|
|
197
|
-
extern Node *flatten_join_alias_vars(Query *query, Node *node);
|
|
200
|
+
extern Node *flatten_join_alias_vars(PlannerInfo *root, Query *query, Node *node);
|
|
198
201
|
|
|
199
202
|
#endif /* OPTIMIZER_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for various files in optimizer/path
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/optimizer/paths.h
|
|
@@ -104,6 +104,9 @@ extern void add_paths_to_joinrel(PlannerInfo *root, RelOptInfo *joinrel,
|
|
|
104
104
|
extern void join_search_one_level(PlannerInfo *root, int level);
|
|
105
105
|
extern RelOptInfo *make_join_rel(PlannerInfo *root,
|
|
106
106
|
RelOptInfo *rel1, RelOptInfo *rel2);
|
|
107
|
+
extern Relids add_outer_joins_to_relids(PlannerInfo *root, Relids input_relids,
|
|
108
|
+
SpecialJoinInfo *sjinfo,
|
|
109
|
+
List **pushed_down_joins);
|
|
107
110
|
extern bool have_join_order_restriction(PlannerInfo *root,
|
|
108
111
|
RelOptInfo *rel1, RelOptInfo *rel2);
|
|
109
112
|
extern bool have_dangerous_phv(PlannerInfo *root,
|
|
@@ -122,29 +125,35 @@ typedef bool (*ec_matches_callback_type) (PlannerInfo *root,
|
|
|
122
125
|
|
|
123
126
|
extern bool process_equivalence(PlannerInfo *root,
|
|
124
127
|
RestrictInfo **p_restrictinfo,
|
|
125
|
-
|
|
128
|
+
JoinDomain *jdomain);
|
|
126
129
|
extern Expr *canonicalize_ec_expression(Expr *expr,
|
|
127
130
|
Oid req_type, Oid req_collation);
|
|
128
131
|
extern void reconsider_outer_join_clauses(PlannerInfo *root);
|
|
129
132
|
extern EquivalenceClass *get_eclass_for_sort_expr(PlannerInfo *root,
|
|
130
133
|
Expr *expr,
|
|
131
|
-
Relids nullable_relids,
|
|
132
134
|
List *opfamilies,
|
|
133
135
|
Oid opcintype,
|
|
134
136
|
Oid collation,
|
|
135
137
|
Index sortref,
|
|
136
138
|
Relids rel,
|
|
137
139
|
bool create_it);
|
|
138
|
-
extern
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
extern EquivalenceMember *find_ec_member_matching_expr(EquivalenceClass *ec,
|
|
141
|
+
Expr *expr,
|
|
142
|
+
Relids relids);
|
|
143
|
+
extern EquivalenceMember *find_computable_ec_member(PlannerInfo *root,
|
|
144
|
+
EquivalenceClass *ec,
|
|
145
|
+
List *exprs,
|
|
146
|
+
Relids relids,
|
|
147
|
+
bool require_parallel_safe);
|
|
148
|
+
extern bool relation_can_be_sorted_early(PlannerInfo *root, RelOptInfo *rel,
|
|
149
|
+
EquivalenceClass *ec,
|
|
150
|
+
bool require_parallel_safe);
|
|
143
151
|
extern void generate_base_implied_equalities(PlannerInfo *root);
|
|
144
152
|
extern List *generate_join_implied_equalities(PlannerInfo *root,
|
|
145
153
|
Relids join_relids,
|
|
146
154
|
Relids outer_relids,
|
|
147
|
-
RelOptInfo *inner_rel
|
|
155
|
+
RelOptInfo *inner_rel,
|
|
156
|
+
SpecialJoinInfo *sjinfo);
|
|
148
157
|
extern List *generate_join_implied_equalities_for_ecs(PlannerInfo *root,
|
|
149
158
|
List *eclasses,
|
|
150
159
|
Relids join_relids,
|
|
@@ -154,6 +163,8 @@ extern bool exprs_known_equal(PlannerInfo *root, Node *item1, Node *item2);
|
|
|
154
163
|
extern EquivalenceClass *match_eclasses_to_foreign_key_col(PlannerInfo *root,
|
|
155
164
|
ForeignKeyOptInfo *fkinfo,
|
|
156
165
|
int colno);
|
|
166
|
+
extern RestrictInfo *find_derived_clause_for_ec_member(EquivalenceClass *ec,
|
|
167
|
+
EquivalenceMember *em);
|
|
157
168
|
extern void add_child_rel_equivalences(PlannerInfo *root,
|
|
158
169
|
AppendRelInfo *appinfo,
|
|
159
170
|
RelOptInfo *parent_rel,
|
|
@@ -161,8 +172,8 @@ extern void add_child_rel_equivalences(PlannerInfo *root,
|
|
|
161
172
|
extern void add_child_join_rel_equivalences(PlannerInfo *root,
|
|
162
173
|
int nappinfos,
|
|
163
174
|
AppendRelInfo **appinfos,
|
|
164
|
-
RelOptInfo *
|
|
165
|
-
RelOptInfo *
|
|
175
|
+
RelOptInfo *parent_joinrel,
|
|
176
|
+
RelOptInfo *child_joinrel);
|
|
166
177
|
extern List *generate_implied_equalities_for_column(PlannerInfo *root,
|
|
167
178
|
RelOptInfo *rel,
|
|
168
179
|
ec_matches_callback_type callback,
|
|
@@ -208,7 +219,7 @@ extern List *build_index_pathkeys(PlannerInfo *root, IndexOptInfo *index,
|
|
|
208
219
|
extern List *build_partition_pathkeys(PlannerInfo *root, RelOptInfo *partrel,
|
|
209
220
|
ScanDirection scandir, bool *partialkeys);
|
|
210
221
|
extern List *build_expression_pathkey(PlannerInfo *root, Expr *expr,
|
|
211
|
-
|
|
222
|
+
Oid opno,
|
|
212
223
|
Relids rel, bool create_it);
|
|
213
224
|
extern List *convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
|
|
214
225
|
List *subquery_pathkeys,
|
|
@@ -220,6 +231,11 @@ extern List *build_join_pathkeys(PlannerInfo *root,
|
|
|
220
231
|
extern List *make_pathkeys_for_sortclauses(PlannerInfo *root,
|
|
221
232
|
List *sortclauses,
|
|
222
233
|
List *tlist);
|
|
234
|
+
extern List *make_pathkeys_for_sortclauses_extended(PlannerInfo *root,
|
|
235
|
+
List **sortclauses,
|
|
236
|
+
List *tlist,
|
|
237
|
+
bool remove_redundant,
|
|
238
|
+
bool *sortable);
|
|
223
239
|
extern void initialize_mergeclause_eclasses(PlannerInfo *root,
|
|
224
240
|
RestrictInfo *restrictinfo);
|
|
225
241
|
extern void update_mergeclause_eclasses(PlannerInfo *root,
|
|
@@ -240,6 +256,7 @@ extern List *truncate_useless_pathkeys(PlannerInfo *root,
|
|
|
240
256
|
RelOptInfo *rel,
|
|
241
257
|
List *pathkeys);
|
|
242
258
|
extern bool has_useful_pathkeys(PlannerInfo *root, RelOptInfo *rel);
|
|
259
|
+
extern List *append_pathkeys(List *target, List *source);
|
|
243
260
|
extern PathKey *make_canonical_pathkey(PlannerInfo *root,
|
|
244
261
|
EquivalenceClass *eclass, Oid opfamily,
|
|
245
262
|
int strategy, bool nulls_first);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for various files in optimizer/plan
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/optimizer/planmain.h
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
/* GUC parameters */
|
|
21
21
|
#define DEFAULT_CURSOR_TUPLE_FRACTION 0.1
|
|
22
|
-
extern double cursor_tuple_fraction;
|
|
22
|
+
extern PGDLLIMPORT double cursor_tuple_fraction;
|
|
23
23
|
|
|
24
24
|
/* query_planner callback to compute query_pathkeys */
|
|
25
25
|
typedef void (*query_pathkeys_callback) (PlannerInfo *root, void *extra);
|
|
@@ -64,36 +64,33 @@ extern Limit *make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount,
|
|
|
64
64
|
/*
|
|
65
65
|
* prototypes for plan/initsplan.c
|
|
66
66
|
*/
|
|
67
|
-
extern int
|
|
68
|
-
extern int
|
|
67
|
+
extern PGDLLIMPORT int from_collapse_limit;
|
|
68
|
+
extern PGDLLIMPORT int join_collapse_limit;
|
|
69
69
|
|
|
70
70
|
extern void add_base_rels_to_query(PlannerInfo *root, Node *jtnode);
|
|
71
71
|
extern void add_other_rels_to_query(PlannerInfo *root);
|
|
72
72
|
extern void build_base_rel_tlists(PlannerInfo *root, List *final_tlist);
|
|
73
73
|
extern void add_vars_to_targetlist(PlannerInfo *root, List *vars,
|
|
74
|
-
Relids where_needed
|
|
74
|
+
Relids where_needed);
|
|
75
75
|
extern void find_lateral_references(PlannerInfo *root);
|
|
76
76
|
extern void create_lateral_join_info(PlannerInfo *root);
|
|
77
77
|
extern List *deconstruct_jointree(PlannerInfo *root);
|
|
78
78
|
extern void distribute_restrictinfo_to_rels(PlannerInfo *root,
|
|
79
79
|
RestrictInfo *restrictinfo);
|
|
80
|
-
extern
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
bool below_outer_join,
|
|
89
|
-
bool both_const);
|
|
80
|
+
extern RestrictInfo *process_implied_equality(PlannerInfo *root,
|
|
81
|
+
Oid opno,
|
|
82
|
+
Oid collation,
|
|
83
|
+
Expr *item1,
|
|
84
|
+
Expr *item2,
|
|
85
|
+
Relids qualscope,
|
|
86
|
+
Index security_level,
|
|
87
|
+
bool both_const);
|
|
90
88
|
extern RestrictInfo *build_implied_join_equality(PlannerInfo *root,
|
|
91
89
|
Oid opno,
|
|
92
90
|
Oid collation,
|
|
93
91
|
Expr *item1,
|
|
94
92
|
Expr *item2,
|
|
95
93
|
Relids qualscope,
|
|
96
|
-
Relids nullable_relids,
|
|
97
94
|
Index security_level);
|
|
98
95
|
extern void match_foreign_keys_to_quals(PlannerInfo *root);
|
|
99
96
|
|
|
@@ -112,8 +109,9 @@ extern bool innerrel_is_unique(PlannerInfo *root,
|
|
|
112
109
|
* prototypes for plan/setrefs.c
|
|
113
110
|
*/
|
|
114
111
|
extern Plan *set_plan_references(PlannerInfo *root, Plan *plan);
|
|
112
|
+
extern bool trivial_subqueryscan(SubqueryScan *plan);
|
|
115
113
|
extern void record_plan_function_dependency(PlannerInfo *root, Oid funcid);
|
|
116
114
|
extern void record_plan_type_dependency(PlannerInfo *root, Oid typid);
|
|
117
|
-
extern bool extract_query_dependencies_walker(Node *node, PlannerInfo *
|
|
115
|
+
extern bool extract_query_dependencies_walker(Node *node, PlannerInfo *context);
|
|
118
116
|
|
|
119
117
|
#endif /* PLANMAIN_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* parse analysis for optimizable statements
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/parser/analyze.h
|
|
@@ -14,27 +14,40 @@
|
|
|
14
14
|
#ifndef ANALYZE_H
|
|
15
15
|
#define ANALYZE_H
|
|
16
16
|
|
|
17
|
+
#include "nodes/params.h"
|
|
18
|
+
#include "nodes/queryjumble.h"
|
|
17
19
|
#include "parser/parse_node.h"
|
|
18
20
|
|
|
19
21
|
/* Hook for plugins to get control at end of parse analysis */
|
|
20
22
|
typedef void (*post_parse_analyze_hook_type) (ParseState *pstate,
|
|
21
|
-
Query *query
|
|
23
|
+
Query *query,
|
|
24
|
+
JumbleState *jstate);
|
|
22
25
|
extern PGDLLIMPORT post_parse_analyze_hook_type post_parse_analyze_hook;
|
|
23
26
|
|
|
24
27
|
|
|
25
|
-
extern Query *
|
|
26
|
-
|
|
28
|
+
extern Query *parse_analyze_fixedparams(RawStmt *parseTree, const char *sourceText,
|
|
29
|
+
const Oid *paramTypes, int numParams, QueryEnvironment *queryEnv);
|
|
27
30
|
extern Query *parse_analyze_varparams(RawStmt *parseTree, const char *sourceText,
|
|
28
|
-
Oid **paramTypes, int *numParams);
|
|
31
|
+
Oid **paramTypes, int *numParams, QueryEnvironment *queryEnv);
|
|
32
|
+
extern Query *parse_analyze_withcb(RawStmt *parseTree, const char *sourceText,
|
|
33
|
+
ParserSetupHook parserSetup,
|
|
34
|
+
void *parserSetupArg,
|
|
35
|
+
QueryEnvironment *queryEnv);
|
|
29
36
|
|
|
30
37
|
extern Query *parse_sub_analyze(Node *parseTree, ParseState *parentParseState,
|
|
31
38
|
CommonTableExpr *parentCTE,
|
|
32
39
|
bool locked_from_parent,
|
|
33
40
|
bool resolve_unknowns);
|
|
34
41
|
|
|
42
|
+
extern List *transformInsertRow(ParseState *pstate, List *exprlist,
|
|
43
|
+
List *stmtcols, List *icolumns, List *attrnos,
|
|
44
|
+
bool strip_indirection);
|
|
45
|
+
extern List *transformUpdateTargetList(ParseState *pstate,
|
|
46
|
+
List *origTlist);
|
|
35
47
|
extern Query *transformTopLevelStmt(ParseState *pstate, RawStmt *parseTree);
|
|
36
48
|
extern Query *transformStmt(ParseState *pstate, Node *parseTree);
|
|
37
49
|
|
|
50
|
+
extern bool stmt_requires_parse_analysis(RawStmt *parseTree);
|
|
38
51
|
extern bool analyze_requires_snapshot(RawStmt *parseTree);
|
|
39
52
|
|
|
40
53
|
extern const char *LCS_asString(LockClauseStrength strength);
|
|
@@ -46,4 +59,6 @@ extern void applyLockingClause(Query *qry, Index rtindex,
|
|
|
46
59
|
extern List *BuildOnConflictExcludedTargetlist(Relation targetrel,
|
|
47
60
|
Index exclRelIndex);
|
|
48
61
|
|
|
62
|
+
extern SortGroupClause *makeSortGroupClauseForSetOp(Oid rescoltype, bool require_hash);
|
|
63
|
+
|
|
49
64
|
#endif /* ANALYZE_H */
|