pg_query 2.1.0 → 4.2.1

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.
Files changed (472) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +104 -0
  3. data/README.md +59 -31
  4. data/Rakefile +2 -2
  5. data/ext/pg_query/extconf.rb +8 -2
  6. data/ext/pg_query/include/access/amapi.h +45 -1
  7. data/ext/pg_query/include/access/attmap.h +1 -1
  8. data/ext/pg_query/include/access/attnum.h +2 -2
  9. data/ext/pg_query/include/access/clog.h +4 -2
  10. data/ext/pg_query/include/access/commit_ts.h +6 -9
  11. data/ext/pg_query/include/access/detoast.h +1 -11
  12. data/ext/pg_query/include/access/genam.h +15 -12
  13. data/ext/pg_query/include/access/gin.h +2 -2
  14. data/ext/pg_query/include/access/htup.h +1 -1
  15. data/ext/pg_query/include/access/htup_details.h +75 -87
  16. data/ext/pg_query/include/access/itup.h +7 -1
  17. data/ext/pg_query/include/access/parallel.h +2 -2
  18. data/ext/pg_query/include/access/printtup.h +1 -1
  19. data/ext/pg_query/include/access/relation.h +1 -1
  20. data/ext/pg_query/include/access/relscan.h +17 -2
  21. data/ext/pg_query/include/access/rmgr.h +30 -3
  22. data/ext/pg_query/include/access/rmgrlist.h +23 -23
  23. data/ext/pg_query/include/access/sdir.h +1 -1
  24. data/ext/pg_query/include/access/skey.h +1 -1
  25. data/ext/pg_query/include/access/stratnum.h +4 -2
  26. data/ext/pg_query/include/access/sysattr.h +1 -1
  27. data/ext/pg_query/include/access/table.h +2 -1
  28. data/ext/pg_query/include/access/tableam.h +272 -20
  29. data/ext/pg_query/include/access/toast_compression.h +73 -0
  30. data/ext/pg_query/include/access/transam.h +123 -13
  31. data/ext/pg_query/include/access/tupconvert.h +1 -1
  32. data/ext/pg_query/include/access/tupdesc.h +1 -1
  33. data/ext/pg_query/include/access/tupmacs.h +3 -3
  34. data/ext/pg_query/include/access/twophase.h +5 -1
  35. data/ext/pg_query/include/access/xact.h +79 -19
  36. data/ext/pg_query/include/access/xlog.h +60 -155
  37. data/ext/pg_query/include/access/xlog_internal.h +50 -14
  38. data/ext/pg_query/include/access/xlogdefs.h +8 -16
  39. data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
  40. data/ext/pg_query/include/access/xlogreader.h +148 -32
  41. data/ext/pg_query/include/access/xlogrecord.h +18 -9
  42. data/ext/pg_query/include/access/xlogrecovery.h +157 -0
  43. data/ext/pg_query/include/c.h +101 -44
  44. data/ext/pg_query/include/catalog/catalog.h +3 -1
  45. data/ext/pg_query/include/catalog/catversion.h +2 -2
  46. data/ext/pg_query/include/catalog/dependency.h +10 -16
  47. data/ext/pg_query/include/catalog/genbki.h +83 -5
  48. data/ext/pg_query/include/catalog/index.h +18 -3
  49. data/ext/pg_query/include/catalog/indexing.h +12 -324
  50. data/ext/pg_query/include/catalog/namespace.h +4 -2
  51. data/ext/pg_query/include/catalog/objectaccess.h +70 -2
  52. data/ext/pg_query/include/catalog/objectaddress.h +11 -6
  53. data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
  54. data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
  55. data/ext/pg_query/include/catalog/pg_am.h +4 -1
  56. data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
  57. data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
  58. data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
  59. data/ext/pg_query/include/catalog/pg_authid.h +7 -2
  60. data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
  61. data/ext/pg_query/include/catalog/pg_class.h +45 -15
  62. data/ext/pg_query/include/catalog/pg_class_d.h +31 -2
  63. data/ext/pg_query/include/catalog/pg_collation.h +33 -8
  64. data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
  65. data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
  66. data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
  67. data/ext/pg_query/include/catalog/pg_control.h +5 -5
  68. data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
  69. data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
  70. data/ext/pg_query/include/catalog/pg_depend.h +11 -7
  71. data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
  72. data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
  73. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
  74. data/ext/pg_query/include/catalog/pg_index.h +17 -7
  75. data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
  76. data/ext/pg_query/include/catalog/pg_language.h +10 -5
  77. data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
  78. data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
  79. data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
  80. data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
  81. data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
  82. data/ext/pg_query/include/catalog/pg_operator.h +21 -16
  83. data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
  84. data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
  85. data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
  86. data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
  87. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
  88. data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
  89. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
  90. data/ext/pg_query/include/catalog/pg_proc.h +20 -11
  91. data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
  92. data/ext/pg_query/include/catalog/pg_publication.h +50 -4
  93. data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
  94. data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
  95. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
  96. data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
  97. data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
  98. data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
  99. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
  100. data/ext/pg_query/include/catalog/pg_transform.h +8 -5
  101. data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
  102. data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
  103. data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
  104. data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
  105. data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
  106. data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
  107. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
  108. data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
  109. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
  110. data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
  111. data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
  112. data/ext/pg_query/include/catalog/pg_type.h +56 -24
  113. data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
  114. data/ext/pg_query/include/catalog/storage.h +5 -3
  115. data/ext/pg_query/include/commands/async.h +4 -5
  116. data/ext/pg_query/include/commands/dbcommands.h +2 -1
  117. data/ext/pg_query/include/commands/defrem.h +11 -24
  118. data/ext/pg_query/include/commands/event_trigger.h +2 -2
  119. data/ext/pg_query/include/commands/explain.h +1 -1
  120. data/ext/pg_query/include/commands/prepare.h +1 -1
  121. data/ext/pg_query/include/commands/tablespace.h +3 -1
  122. data/ext/pg_query/include/commands/trigger.h +27 -17
  123. data/ext/pg_query/include/commands/user.h +2 -2
  124. data/ext/pg_query/include/commands/vacuum.h +88 -41
  125. data/ext/pg_query/include/commands/variable.h +1 -1
  126. data/ext/pg_query/include/common/file_perm.h +4 -4
  127. data/ext/pg_query/include/common/hashfn.h +1 -1
  128. data/ext/pg_query/include/common/ip.h +1 -7
  129. data/ext/pg_query/include/common/keywords.h +2 -6
  130. data/ext/pg_query/include/common/kwlookup.h +1 -1
  131. data/ext/pg_query/include/common/pg_prng.h +60 -0
  132. data/ext/pg_query/include/common/relpath.h +2 -2
  133. data/ext/pg_query/include/common/string.h +24 -1
  134. data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
  135. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
  136. data/ext/pg_query/include/datatype/timestamp.h +40 -1
  137. data/ext/pg_query/include/executor/execdesc.h +1 -1
  138. data/ext/pg_query/include/executor/executor.h +65 -22
  139. data/ext/pg_query/include/executor/functions.h +17 -3
  140. data/ext/pg_query/include/executor/instrument.h +33 -16
  141. data/ext/pg_query/include/executor/spi.h +41 -3
  142. data/ext/pg_query/include/executor/tablefunc.h +1 -1
  143. data/ext/pg_query/include/executor/tuptable.h +1 -1
  144. data/ext/pg_query/include/fmgr.h +13 -7
  145. data/ext/pg_query/include/funcapi.h +16 -4
  146. data/ext/pg_query/include/getaddrinfo.h +1 -1
  147. data/ext/pg_query/include/jit/jit.h +11 -11
  148. data/ext/pg_query/include/kwlist_d.h +517 -494
  149. data/ext/pg_query/include/lib/dshash.h +112 -0
  150. data/ext/pg_query/include/lib/ilist.h +20 -1
  151. data/ext/pg_query/include/lib/pairingheap.h +1 -1
  152. data/ext/pg_query/include/lib/simplehash.h +150 -25
  153. data/ext/pg_query/include/lib/sort_template.h +432 -0
  154. data/ext/pg_query/include/lib/stringinfo.h +1 -1
  155. data/ext/pg_query/include/libpq/auth.h +6 -4
  156. data/ext/pg_query/include/libpq/crypt.h +5 -4
  157. data/ext/pg_query/include/libpq/hba.h +43 -4
  158. data/ext/pg_query/include/libpq/libpq-be.h +23 -6
  159. data/ext/pg_query/include/libpq/libpq.h +31 -20
  160. data/ext/pg_query/include/libpq/pqcomm.h +17 -31
  161. data/ext/pg_query/include/libpq/pqformat.h +1 -1
  162. data/ext/pg_query/include/libpq/pqsignal.h +4 -4
  163. data/ext/pg_query/include/mb/pg_wchar.h +106 -23
  164. data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
  165. data/ext/pg_query/include/miscadmin.h +71 -52
  166. data/ext/pg_query/include/nodes/bitmapset.h +1 -1
  167. data/ext/pg_query/include/nodes/execnodes.h +272 -80
  168. data/ext/pg_query/include/nodes/extensible.h +4 -2
  169. data/ext/pg_query/include/nodes/lockoptions.h +1 -1
  170. data/ext/pg_query/include/nodes/makefuncs.h +7 -6
  171. data/ext/pg_query/include/nodes/memnodes.h +5 -3
  172. data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
  173. data/ext/pg_query/include/nodes/nodes.h +30 -11
  174. data/ext/pg_query/include/nodes/params.h +1 -1
  175. data/ext/pg_query/include/nodes/parsenodes.h +327 -94
  176. data/ext/pg_query/include/nodes/pathnodes.h +245 -67
  177. data/ext/pg_query/include/nodes/pg_list.h +75 -68
  178. data/ext/pg_query/include/nodes/plannodes.h +128 -30
  179. data/ext/pg_query/include/nodes/primnodes.h +99 -47
  180. data/ext/pg_query/include/nodes/print.h +1 -1
  181. data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
  182. data/ext/pg_query/include/nodes/value.h +58 -39
  183. data/ext/pg_query/include/optimizer/cost.h +9 -2
  184. data/ext/pg_query/include/optimizer/geqo.h +9 -7
  185. data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
  186. data/ext/pg_query/include/optimizer/optimizer.h +25 -22
  187. data/ext/pg_query/include/optimizer/paths.h +6 -6
  188. data/ext/pg_query/include/optimizer/planmain.h +15 -14
  189. data/ext/pg_query/include/parser/analyze.h +19 -5
  190. data/ext/pg_query/include/parser/gram.h +947 -913
  191. data/ext/pg_query/include/parser/gramparse.h +1 -1
  192. data/ext/pg_query/include/parser/kwlist.h +463 -453
  193. data/ext/pg_query/include/parser/parse_agg.h +2 -7
  194. data/ext/pg_query/include/parser/parse_coerce.h +4 -1
  195. data/ext/pg_query/include/parser/parse_expr.h +2 -3
  196. data/ext/pg_query/include/parser/parse_func.h +2 -1
  197. data/ext/pg_query/include/parser/parse_node.h +21 -9
  198. data/ext/pg_query/include/parser/parse_oper.h +1 -3
  199. data/ext/pg_query/include/parser/parse_relation.h +5 -4
  200. data/ext/pg_query/include/parser/parse_type.h +1 -1
  201. data/ext/pg_query/include/parser/parser.h +31 -4
  202. data/ext/pg_query/include/parser/parsetree.h +1 -1
  203. data/ext/pg_query/include/parser/scanner.h +1 -1
  204. data/ext/pg_query/include/parser/scansup.h +2 -5
  205. data/ext/pg_query/include/partitioning/partdefs.h +1 -1
  206. data/ext/pg_query/include/pg_config.h +94 -46
  207. data/ext/pg_query/include/pg_config_manual.h +74 -21
  208. data/ext/pg_query/include/pg_getopt.h +6 -6
  209. data/ext/pg_query/include/pg_query.h +5 -4
  210. data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
  211. data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
  212. data/ext/pg_query/include/pg_query_fingerprint_defs.c +1220 -422
  213. data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
  214. data/ext/pg_query/include/pg_query_outfuncs_defs.c +152 -26
  215. data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
  216. data/ext/pg_query/include/pg_query_readfuncs_defs.c +174 -30
  217. data/ext/pg_query/include/pg_trace.h +1 -1
  218. data/ext/pg_query/include/pgstat.h +449 -1237
  219. data/ext/pg_query/include/pgtime.h +14 -4
  220. data/ext/pg_query/include/pl_gram.h +126 -128
  221. data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
  222. data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
  223. data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
  224. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
  225. data/ext/pg_query/include/plerrcodes.h +9 -1
  226. data/ext/pg_query/include/plpgsql.h +52 -54
  227. data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
  228. data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
  229. data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
  230. data/ext/pg_query/include/port/atomics/fallback.h +1 -1
  231. data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
  232. data/ext/pg_query/include/port/atomics/generic.h +1 -1
  233. data/ext/pg_query/include/port/atomics.h +1 -1
  234. data/ext/pg_query/include/port/pg_bitutils.h +88 -12
  235. data/ext/pg_query/include/port/pg_bswap.h +1 -1
  236. data/ext/pg_query/include/port/pg_crc32c.h +1 -1
  237. data/ext/pg_query/include/port.h +72 -43
  238. data/ext/pg_query/include/portability/instr_time.h +1 -1
  239. data/ext/pg_query/include/postgres.h +60 -16
  240. data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
  241. data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
  242. data/ext/pg_query/include/postmaster/bgworker.h +2 -1
  243. data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
  244. data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
  245. data/ext/pg_query/include/postmaster/fork_process.h +1 -1
  246. data/ext/pg_query/include/postmaster/interrupt.h +1 -1
  247. data/ext/pg_query/include/postmaster/pgarch.h +42 -8
  248. data/ext/pg_query/include/postmaster/postmaster.h +18 -17
  249. data/ext/pg_query/include/postmaster/startup.h +39 -0
  250. data/ext/pg_query/include/postmaster/syslogger.h +15 -10
  251. data/ext/pg_query/include/postmaster/walwriter.h +3 -3
  252. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1422 -916
  253. data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
  254. data/ext/pg_query/include/regex/regex.h +18 -16
  255. data/ext/pg_query/include/replication/logicallauncher.h +3 -5
  256. data/ext/pg_query/include/replication/logicalproto.h +161 -17
  257. data/ext/pg_query/include/replication/logicalworker.h +1 -1
  258. data/ext/pg_query/include/replication/origin.h +7 -7
  259. data/ext/pg_query/include/replication/reorderbuffer.h +262 -44
  260. data/ext/pg_query/include/replication/slot.h +23 -12
  261. data/ext/pg_query/include/replication/syncrep.h +5 -5
  262. data/ext/pg_query/include/replication/walreceiver.h +145 -13
  263. data/ext/pg_query/include/replication/walsender.h +8 -8
  264. data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
  265. data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
  266. data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
  267. data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
  268. data/ext/pg_query/include/storage/backendid.h +3 -3
  269. data/ext/pg_query/include/storage/block.h +4 -10
  270. data/ext/pg_query/include/storage/buf.h +1 -1
  271. data/ext/pg_query/include/storage/bufmgr.h +19 -14
  272. data/ext/pg_query/include/storage/bufpage.h +6 -8
  273. data/ext/pg_query/include/storage/condition_variable.h +13 -2
  274. data/ext/pg_query/include/storage/dsm.h +4 -1
  275. data/ext/pg_query/include/storage/dsm_impl.h +3 -2
  276. data/ext/pg_query/include/storage/fd.h +33 -3
  277. data/ext/pg_query/include/storage/fileset.h +40 -0
  278. data/ext/pg_query/include/storage/ipc.h +4 -1
  279. data/ext/pg_query/include/storage/item.h +1 -1
  280. data/ext/pg_query/include/storage/itemid.h +1 -1
  281. data/ext/pg_query/include/storage/itemptr.h +3 -1
  282. data/ext/pg_query/include/storage/large_object.h +2 -2
  283. data/ext/pg_query/include/storage/latch.h +9 -13
  284. data/ext/pg_query/include/storage/lmgr.h +2 -1
  285. data/ext/pg_query/include/storage/lock.h +17 -13
  286. data/ext/pg_query/include/storage/lockdefs.h +2 -2
  287. data/ext/pg_query/include/storage/lwlock.h +6 -32
  288. data/ext/pg_query/include/storage/lwlocknames.h +0 -1
  289. data/ext/pg_query/include/storage/off.h +1 -1
  290. data/ext/pg_query/include/storage/pg_sema.h +1 -1
  291. data/ext/pg_query/include/storage/pg_shmem.h +9 -7
  292. data/ext/pg_query/include/storage/pmsignal.h +15 -4
  293. data/ext/pg_query/include/storage/predicate.h +4 -4
  294. data/ext/pg_query/include/storage/proc.h +183 -55
  295. data/ext/pg_query/include/storage/procarray.h +98 -0
  296. data/ext/pg_query/include/storage/proclist_types.h +1 -1
  297. data/ext/pg_query/include/storage/procsignal.h +3 -7
  298. data/ext/pg_query/include/storage/relfilenode.h +1 -1
  299. data/ext/pg_query/include/storage/s_lock.h +67 -4
  300. data/ext/pg_query/include/storage/sharedfileset.h +3 -11
  301. data/ext/pg_query/include/storage/shm_mq.h +5 -4
  302. data/ext/pg_query/include/storage/shm_toc.h +1 -1
  303. data/ext/pg_query/include/storage/shmem.h +1 -1
  304. data/ext/pg_query/include/storage/sinval.h +3 -3
  305. data/ext/pg_query/include/storage/sinvaladt.h +1 -1
  306. data/ext/pg_query/include/storage/smgr.h +10 -8
  307. data/ext/pg_query/include/storage/spin.h +2 -2
  308. data/ext/pg_query/include/storage/standby.h +13 -6
  309. data/ext/pg_query/include/storage/standbydefs.h +2 -2
  310. data/ext/pg_query/include/storage/sync.h +7 -3
  311. data/ext/pg_query/include/tcop/cmdtag.h +1 -1
  312. data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
  313. data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
  314. data/ext/pg_query/include/tcop/dest.h +1 -1
  315. data/ext/pg_query/include/tcop/fastpath.h +1 -2
  316. data/ext/pg_query/include/tcop/pquery.h +7 -1
  317. data/ext/pg_query/include/tcop/tcopprot.h +19 -11
  318. data/ext/pg_query/include/tcop/utility.h +7 -3
  319. data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
  320. data/ext/pg_query/include/utils/acl.h +24 -3
  321. data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
  322. data/ext/pg_query/include/utils/array.h +7 -2
  323. data/ext/pg_query/include/utils/backend_progress.h +44 -0
  324. data/ext/pg_query/include/utils/backend_status.h +321 -0
  325. data/ext/pg_query/include/utils/builtins.h +11 -11
  326. data/ext/pg_query/include/utils/bytea.h +3 -2
  327. data/ext/pg_query/include/utils/catcache.h +1 -1
  328. data/ext/pg_query/include/utils/date.h +1 -1
  329. data/ext/pg_query/include/utils/datetime.h +8 -7
  330. data/ext/pg_query/include/utils/datum.h +9 -1
  331. data/ext/pg_query/include/utils/dsa.h +1 -1
  332. data/ext/pg_query/include/utils/dynahash.h +4 -3
  333. data/ext/pg_query/include/utils/elog.h +52 -21
  334. data/ext/pg_query/include/utils/errcodes.h +2 -0
  335. data/ext/pg_query/include/utils/expandeddatum.h +1 -1
  336. data/ext/pg_query/include/utils/expandedrecord.h +1 -1
  337. data/ext/pg_query/include/utils/float.h +7 -7
  338. data/ext/pg_query/include/utils/fmgroids.h +1300 -696
  339. data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
  340. data/ext/pg_query/include/utils/fmgrtab.h +6 -5
  341. data/ext/pg_query/include/utils/guc.h +69 -43
  342. data/ext/pg_query/include/utils/guc_tables.h +23 -19
  343. data/ext/pg_query/include/utils/hsearch.h +15 -11
  344. data/ext/pg_query/include/utils/inval.h +5 -1
  345. data/ext/pg_query/include/utils/lsyscache.h +11 -1
  346. data/ext/pg_query/include/utils/memdebug.h +1 -1
  347. data/ext/pg_query/include/utils/memutils.h +8 -3
  348. data/ext/pg_query/include/utils/numeric.h +19 -5
  349. data/ext/pg_query/include/utils/palloc.h +25 -3
  350. data/ext/pg_query/include/utils/partcache.h +1 -1
  351. data/ext/pg_query/include/utils/pg_locale.h +17 -9
  352. data/ext/pg_query/include/utils/pg_lsn.h +1 -1
  353. data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
  354. data/ext/pg_query/include/utils/pidfile.h +1 -1
  355. data/ext/pg_query/include/utils/plancache.h +6 -5
  356. data/ext/pg_query/include/utils/portal.h +12 -1
  357. data/ext/pg_query/include/utils/ps_status.h +1 -1
  358. data/ext/pg_query/include/utils/queryenvironment.h +1 -1
  359. data/ext/pg_query/include/utils/queryjumble.h +88 -0
  360. data/ext/pg_query/include/utils/regproc.h +14 -3
  361. data/ext/pg_query/include/utils/rel.h +71 -20
  362. data/ext/pg_query/include/utils/relcache.h +9 -7
  363. data/ext/pg_query/include/utils/reltrigger.h +1 -1
  364. data/ext/pg_query/include/utils/resowner.h +1 -1
  365. data/ext/pg_query/include/utils/rls.h +2 -2
  366. data/ext/pg_query/include/utils/ruleutils.h +4 -1
  367. data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
  368. data/ext/pg_query/include/utils/snapmgr.h +35 -14
  369. data/ext/pg_query/include/utils/snapshot.h +14 -1
  370. data/ext/pg_query/include/utils/sortsupport.h +117 -2
  371. data/ext/pg_query/include/utils/syscache.h +6 -1
  372. data/ext/pg_query/include/utils/timeout.h +11 -4
  373. data/ext/pg_query/include/utils/timestamp.h +6 -5
  374. data/ext/pg_query/include/utils/tuplesort.h +25 -11
  375. data/ext/pg_query/include/utils/tuplestore.h +2 -2
  376. data/ext/pg_query/include/utils/typcache.h +24 -17
  377. data/ext/pg_query/include/utils/tzparser.h +1 -1
  378. data/ext/pg_query/include/utils/varlena.h +5 -3
  379. data/ext/pg_query/include/utils/wait_event.h +289 -0
  380. data/ext/pg_query/include/utils/xml.h +4 -4
  381. data/ext/pg_query/pg_query.pb-c.c +4318 -2307
  382. data/ext/pg_query/pg_query_deparse.c +1114 -381
  383. data/ext/pg_query/pg_query_fingerprint.c +46 -10
  384. data/ext/pg_query/pg_query_fingerprint.h +3 -1
  385. data/ext/pg_query/pg_query_json_plpgsql.c +55 -12
  386. data/ext/pg_query/pg_query_normalize.c +163 -20
  387. data/ext/pg_query/pg_query_outfuncs.h +1 -0
  388. data/ext/pg_query/pg_query_outfuncs_json.c +65 -16
  389. data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
  390. data/ext/pg_query/pg_query_parse.c +1 -1
  391. data/ext/pg_query/pg_query_parse_plpgsql.c +79 -16
  392. data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
  393. data/ext/pg_query/pg_query_ruby.c +1 -1
  394. data/ext/pg_query/pg_query_scan.c +2 -1
  395. data/ext/pg_query/pg_query_split.c +3 -2
  396. data/ext/pg_query/src_backend_catalog_namespace.c +21 -9
  397. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  398. data/ext/pg_query/src_backend_commands_define.c +11 -1
  399. data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
  400. data/ext/pg_query/src_backend_nodes_copyfuncs.c +424 -109
  401. data/ext/pg_query/src_backend_nodes_equalfuncs.c +291 -46
  402. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  403. data/ext/pg_query/src_backend_nodes_list.c +86 -11
  404. data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
  405. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
  406. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  407. data/ext/pg_query/src_backend_parser_gram.c +33890 -31262
  408. data/ext/pg_query/src_backend_parser_parser.c +26 -7
  409. data/ext/pg_query/src_backend_parser_scan.c +644 -441
  410. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  411. data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
  412. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  413. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
  414. data/ext/pg_query/src_backend_tcop_postgres.c +73 -24
  415. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  416. data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
  417. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  418. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  419. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +109 -15
  420. data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
  421. data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
  422. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
  423. data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
  424. data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
  425. data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
  426. data/ext/pg_query/src_backend_utils_misc_guc.c +207 -45
  427. data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
  428. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
  429. data/ext/pg_query/src_common_encnames.c +1 -1
  430. data/ext/pg_query/src_common_hashfn.c +3 -3
  431. data/ext/pg_query/src_common_keywords.c +15 -2
  432. data/ext/pg_query/src_common_kwlist_d.h +517 -494
  433. data/ext/pg_query/src_common_kwlookup.c +1 -1
  434. data/ext/pg_query/src_common_pg_prng.c +152 -0
  435. data/ext/pg_query/src_common_psprintf.c +1 -1
  436. data/ext/pg_query/src_common_string.c +7 -1
  437. data/ext/pg_query/src_common_stringinfo.c +1 -1
  438. data/ext/pg_query/src_common_wchar.c +712 -109
  439. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
  440. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
  441. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1235 -1261
  442. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  443. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  444. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  445. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
  446. data/ext/pg_query/src_port_pg_bitutils.c +41 -52
  447. data/ext/pg_query/src_port_pgsleep.c +1 -1
  448. data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
  449. data/ext/pg_query/src_port_qsort.c +12 -224
  450. data/ext/pg_query/src_port_snprintf.c +46 -20
  451. data/ext/pg_query/src_port_strerror.c +9 -19
  452. data/ext/pg_query/src_port_strnlen.c +1 -1
  453. data/lib/pg_query/deparse.rb +7 -1
  454. data/lib/pg_query/filter_columns.rb +6 -4
  455. data/lib/pg_query/fingerprint.rb +18 -3
  456. data/lib/pg_query/node.rb +2 -2
  457. data/lib/pg_query/param_refs.rb +1 -1
  458. data/lib/pg_query/parse.rb +87 -51
  459. data/lib/pg_query/pg_query_pb.rb +1109 -942
  460. data/lib/pg_query/treewalker.rb +6 -0
  461. data/lib/pg_query/truncate.rb +54 -8
  462. data/lib/pg_query/version.rb +1 -1
  463. metadata +29 -18
  464. data/ext/pg_query/include/access/xloginsert.h +0 -64
  465. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  466. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  467. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  468. data/ext/pg_query/include/parser/parse_target.h +0 -46
  469. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
  470. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  471. data/ext/pg_query/src_port_erand48.c +0 -127
  472. data/ext/pg_query/src_port_random.c +0 -31
@@ -3,7 +3,7 @@
3
3
  * fmgrprotos.h
4
4
  * Prototypes for built-in functions.
5
5
  *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * NOTES
@@ -79,7 +79,6 @@ extern Datum scalarltjoinsel(PG_FUNCTION_ARGS);
79
79
  extern Datum scalargtjoinsel(PG_FUNCTION_ARGS);
80
80
  extern Datum unknownin(PG_FUNCTION_ARGS);
81
81
  extern Datum unknownout(PG_FUNCTION_ARGS);
82
- extern Datum numeric_fac(PG_FUNCTION_ARGS);
83
82
  extern Datum box_above_eq(PG_FUNCTION_ARGS);
84
83
  extern Datum box_below_eq(PG_FUNCTION_ARGS);
85
84
  extern Datum point_in(PG_FUNCTION_ARGS);
@@ -184,7 +183,6 @@ extern Datum float8_accum(PG_FUNCTION_ARGS);
184
183
  extern Datum float8larger(PG_FUNCTION_ARGS);
185
184
  extern Datum float8smaller(PG_FUNCTION_ARGS);
186
185
  extern Datum lseg_center(PG_FUNCTION_ARGS);
187
- extern Datum path_center(PG_FUNCTION_ARGS);
188
186
  extern Datum poly_center(PG_FUNCTION_ARGS);
189
187
  extern Datum dround(PG_FUNCTION_ARGS);
190
188
  extern Datum dtrunc(PG_FUNCTION_ARGS);
@@ -419,7 +417,6 @@ extern Datum network_masklen(PG_FUNCTION_ARGS);
419
417
  extern Datum network_broadcast(PG_FUNCTION_ARGS);
420
418
  extern Datum network_host(PG_FUNCTION_ARGS);
421
419
  extern Datum dist_lp(PG_FUNCTION_ARGS);
422
- extern Datum dist_bl(PG_FUNCTION_ARGS);
423
420
  extern Datum dist_ls(PG_FUNCTION_ARGS);
424
421
  extern Datum current_user(PG_FUNCTION_ARGS);
425
422
  extern Datum network_family(PG_FUNCTION_ARGS);
@@ -433,7 +430,6 @@ extern Datum byteaSetByte(PG_FUNCTION_ARGS);
433
430
  extern Datum byteaGetBit(PG_FUNCTION_ARGS);
434
431
  extern Datum byteaSetBit(PG_FUNCTION_ARGS);
435
432
  extern Datum dist_pl(PG_FUNCTION_ARGS);
436
- extern Datum dist_lb(PG_FUNCTION_ARGS);
437
433
  extern Datum dist_sl(PG_FUNCTION_ARGS);
438
434
  extern Datum dist_cpoly(PG_FUNCTION_ARGS);
439
435
  extern Datum poly_distance(PG_FUNCTION_ARGS);
@@ -567,8 +563,6 @@ extern Datum be_lo_tell(PG_FUNCTION_ARGS);
567
563
  extern Datum on_pl(PG_FUNCTION_ARGS);
568
564
  extern Datum on_sl(PG_FUNCTION_ARGS);
569
565
  extern Datum close_pl(PG_FUNCTION_ARGS);
570
- extern Datum close_sl(PG_FUNCTION_ARGS);
571
- extern Datum close_lb(PG_FUNCTION_ARGS);
572
566
  extern Datum be_lo_unlink(PG_FUNCTION_ARGS);
573
567
  extern Datum hashbpcharextended(PG_FUNCTION_ARGS);
574
568
  extern Datum path_inter(PG_FUNCTION_ARGS);
@@ -646,6 +640,8 @@ extern Datum time_gt(PG_FUNCTION_ARGS);
646
640
  extern Datum time_ge(PG_FUNCTION_ARGS);
647
641
  extern Datum time_ne(PG_FUNCTION_ARGS);
648
642
  extern Datum time_cmp(PG_FUNCTION_ARGS);
643
+ extern Datum pg_stat_get_wal(PG_FUNCTION_ARGS);
644
+ extern Datum pg_get_wal_replay_pause_state(PG_FUNCTION_ARGS);
649
645
  extern Datum date_larger(PG_FUNCTION_ARGS);
650
646
  extern Datum date_smaller(PG_FUNCTION_ARGS);
651
647
  extern Datum date_mi(PG_FUNCTION_ARGS);
@@ -750,7 +746,7 @@ extern Datum oidtoi8(PG_FUNCTION_ARGS);
750
746
  extern Datum quote_nullable(PG_FUNCTION_ARGS);
751
747
  extern Datum suppress_redundant_updates_trigger(PG_FUNCTION_ARGS);
752
748
  extern Datum tideq(PG_FUNCTION_ARGS);
753
- extern Datum currtid_byreloid(PG_FUNCTION_ARGS);
749
+ extern Datum multirange_unnest(PG_FUNCTION_ARGS);
754
750
  extern Datum currtid_byrelname(PG_FUNCTION_ARGS);
755
751
  extern Datum interval_justify_days(PG_FUNCTION_ARGS);
756
752
  extern Datum datetimetz_timestamptz(PG_FUNCTION_ARGS);
@@ -786,6 +782,7 @@ extern Datum pg_lock_status(PG_FUNCTION_ARGS);
786
782
  extern Datum date_finite(PG_FUNCTION_ARGS);
787
783
  extern Datum textoctetlen(PG_FUNCTION_ARGS);
788
784
  extern Datum bpcharoctetlen(PG_FUNCTION_ARGS);
785
+ extern Datum numeric_fac(PG_FUNCTION_ARGS);
789
786
  extern Datum time_larger(PG_FUNCTION_ARGS);
790
787
  extern Datum time_smaller(PG_FUNCTION_ARGS);
791
788
  extern Datum timetz_larger(PG_FUNCTION_ARGS);
@@ -1173,7 +1170,6 @@ extern Datum timestamp_hash(PG_FUNCTION_ARGS);
1173
1170
  extern Datum timetz_time(PG_FUNCTION_ARGS);
1174
1171
  extern Datum time_timetz(PG_FUNCTION_ARGS);
1175
1172
  extern Datum timestamp_to_char(PG_FUNCTION_ARGS);
1176
- extern Datum aggregate_dummy(PG_FUNCTION_ARGS);
1177
1173
  extern Datum timestamp_age(PG_FUNCTION_ARGS);
1178
1174
  extern Datum timestamp_zone(PG_FUNCTION_ARGS);
1179
1175
  extern Datum timestamp_izone(PG_FUNCTION_ARGS);
@@ -1191,7 +1187,7 @@ extern Datum pg_operator_is_visible(PG_FUNCTION_ARGS);
1191
1187
  extern Datum pg_opclass_is_visible(PG_FUNCTION_ARGS);
1192
1188
  extern Datum show_all_settings(PG_FUNCTION_ARGS);
1193
1189
  extern Datum replace_text(PG_FUNCTION_ARGS);
1194
- extern Datum split_text(PG_FUNCTION_ARGS);
1190
+ extern Datum split_part(PG_FUNCTION_ARGS);
1195
1191
  extern Datum to_hex32(PG_FUNCTION_ARGS);
1196
1192
  extern Datum to_hex64(PG_FUNCTION_ARGS);
1197
1193
  extern Datum array_lower(PG_FUNCTION_ARGS);
@@ -1200,6 +1196,8 @@ extern Datum pg_conversion_is_visible(PG_FUNCTION_ARGS);
1200
1196
  extern Datum pg_stat_get_backend_activity_start(PG_FUNCTION_ARGS);
1201
1197
  extern Datum pg_terminate_backend(PG_FUNCTION_ARGS);
1202
1198
  extern Datum pg_get_functiondef(PG_FUNCTION_ARGS);
1199
+ extern Datum pg_column_compression(PG_FUNCTION_ARGS);
1200
+ extern Datum pg_stat_force_next_flush(PG_FUNCTION_ARGS);
1203
1201
  extern Datum text_pattern_lt(PG_FUNCTION_ARGS);
1204
1202
  extern Datum text_pattern_le(PG_FUNCTION_ARGS);
1205
1203
  extern Datum pg_get_function_arguments(PG_FUNCTION_ARGS);
@@ -1210,8 +1208,7 @@ extern Datum bttext_pattern_cmp(PG_FUNCTION_ARGS);
1210
1208
  extern Datum pg_database_size_name(PG_FUNCTION_ARGS);
1211
1209
  extern Datum width_bucket_numeric(PG_FUNCTION_ARGS);
1212
1210
  extern Datum pg_cancel_backend(PG_FUNCTION_ARGS);
1213
- extern Datum pg_start_backup(PG_FUNCTION_ARGS);
1214
- extern Datum pg_stop_backup(PG_FUNCTION_ARGS);
1211
+ extern Datum pg_backup_start(PG_FUNCTION_ARGS);
1215
1212
  extern Datum bpchar_pattern_lt(PG_FUNCTION_ARGS);
1216
1213
  extern Datum bpchar_pattern_le(PG_FUNCTION_ARGS);
1217
1214
  extern Datum array_length(PG_FUNCTION_ARGS);
@@ -1279,6 +1276,7 @@ extern Datum has_schema_privilege_id_id(PG_FUNCTION_ARGS);
1279
1276
  extern Datum has_schema_privilege_name(PG_FUNCTION_ARGS);
1280
1277
  extern Datum has_schema_privilege_id(PG_FUNCTION_ARGS);
1281
1278
  extern Datum pg_stat_reset(PG_FUNCTION_ARGS);
1279
+ extern Datum pg_get_backend_memory_contexts(PG_FUNCTION_ARGS);
1282
1280
  extern Datum textregexreplace_noopt(PG_FUNCTION_ARGS);
1283
1281
  extern Datum textregexreplace(PG_FUNCTION_ARGS);
1284
1282
  extern Datum pg_total_relation_size(PG_FUNCTION_ARGS);
@@ -1547,7 +1545,7 @@ extern Datum dsind(PG_FUNCTION_ARGS);
1547
1545
  extern Datum dcosd(PG_FUNCTION_ARGS);
1548
1546
  extern Datum dtand(PG_FUNCTION_ARGS);
1549
1547
  extern Datum dcotd(PG_FUNCTION_ARGS);
1550
- extern Datum pg_stop_backup_v2(PG_FUNCTION_ARGS);
1548
+ extern Datum pg_backup_stop(PG_FUNCTION_ARGS);
1551
1549
  extern Datum numeric_avg_serialize(PG_FUNCTION_ARGS);
1552
1550
  extern Datum numeric_avg_deserialize(PG_FUNCTION_ARGS);
1553
1551
  extern Datum ginarrayextract(PG_FUNCTION_ARGS);
@@ -2047,6 +2045,7 @@ extern Datum pg_stats_ext_mcvlist_items(PG_FUNCTION_ARGS);
2047
2045
  extern Datum pg_stat_get_db_checksum_last_failure(PG_FUNCTION_ARGS);
2048
2046
  extern Datum gen_random_uuid(PG_FUNCTION_ARGS);
2049
2047
  extern Datum gtsvector_options(PG_FUNCTION_ARGS);
2048
+ extern Datum gist_point_sortsupport(PG_FUNCTION_ARGS);
2050
2049
  extern Datum pg_promote(PG_FUNCTION_ARGS);
2051
2050
  extern Datum prefixsel(PG_FUNCTION_ARGS);
2052
2051
  extern Datum prefixjoinsel(PG_FUNCTION_ARGS);
@@ -2159,7 +2158,6 @@ extern Datum pg_xact_commit_timestamp(PG_FUNCTION_ARGS);
2159
2158
  extern Datum binary_upgrade_set_next_pg_type_oid(PG_FUNCTION_ARGS);
2160
2159
  extern Datum pg_last_committed_xact(PG_FUNCTION_ARGS);
2161
2160
  extern Datum binary_upgrade_set_next_array_pg_type_oid(PG_FUNCTION_ARGS);
2162
- extern Datum binary_upgrade_set_next_toast_pg_type_oid(PG_FUNCTION_ARGS);
2163
2161
  extern Datum binary_upgrade_set_next_heap_pg_class_oid(PG_FUNCTION_ARGS);
2164
2162
  extern Datum binary_upgrade_set_next_index_pg_class_oid(PG_FUNCTION_ARGS);
2165
2163
  extern Datum binary_upgrade_set_next_toast_pg_class_oid(PG_FUNCTION_ARGS);
@@ -2318,8 +2316,6 @@ extern Datum pg_export_snapshot(PG_FUNCTION_ARGS);
2318
2316
  extern Datum pg_is_in_recovery(PG_FUNCTION_ARGS);
2319
2317
  extern Datum int4_cash(PG_FUNCTION_ARGS);
2320
2318
  extern Datum int8_cash(PG_FUNCTION_ARGS);
2321
- extern Datum pg_is_in_backup(PG_FUNCTION_ARGS);
2322
- extern Datum pg_backup_start_time(PG_FUNCTION_ARGS);
2323
2319
  extern Datum pg_collation_is_visible(PG_FUNCTION_ARGS);
2324
2320
  extern Datum array_typanalyze(PG_FUNCTION_ARGS);
2325
2321
  extern Datum arraycontsel(PG_FUNCTION_ARGS);
@@ -2562,11 +2558,116 @@ extern Datum pg_copy_physical_replication_slot_b(PG_FUNCTION_ARGS);
2562
2558
  extern Datum pg_copy_logical_replication_slot_a(PG_FUNCTION_ARGS);
2563
2559
  extern Datum pg_copy_logical_replication_slot_b(PG_FUNCTION_ARGS);
2564
2560
  extern Datum pg_copy_logical_replication_slot_c(PG_FUNCTION_ARGS);
2561
+ extern Datum anycompatiblemultirange_in(PG_FUNCTION_ARGS);
2562
+ extern Datum anycompatiblemultirange_out(PG_FUNCTION_ARGS);
2563
+ extern Datum range_merge_from_multirange(PG_FUNCTION_ARGS);
2564
+ extern Datum anymultirange_in(PG_FUNCTION_ARGS);
2565
+ extern Datum anymultirange_out(PG_FUNCTION_ARGS);
2566
+ extern Datum multirange_in(PG_FUNCTION_ARGS);
2567
+ extern Datum multirange_out(PG_FUNCTION_ARGS);
2568
+ extern Datum multirange_recv(PG_FUNCTION_ARGS);
2569
+ extern Datum multirange_send(PG_FUNCTION_ARGS);
2570
+ extern Datum multirange_lower(PG_FUNCTION_ARGS);
2571
+ extern Datum multirange_upper(PG_FUNCTION_ARGS);
2572
+ extern Datum multirange_empty(PG_FUNCTION_ARGS);
2573
+ extern Datum multirange_lower_inc(PG_FUNCTION_ARGS);
2574
+ extern Datum multirange_upper_inc(PG_FUNCTION_ARGS);
2575
+ extern Datum multirange_lower_inf(PG_FUNCTION_ARGS);
2576
+ extern Datum multirange_upper_inf(PG_FUNCTION_ARGS);
2577
+ extern Datum multirange_typanalyze(PG_FUNCTION_ARGS);
2578
+ extern Datum multirangesel(PG_FUNCTION_ARGS);
2579
+ extern Datum multirange_eq(PG_FUNCTION_ARGS);
2580
+ extern Datum multirange_ne(PG_FUNCTION_ARGS);
2581
+ extern Datum range_overlaps_multirange(PG_FUNCTION_ARGS);
2582
+ extern Datum multirange_overlaps_range(PG_FUNCTION_ARGS);
2583
+ extern Datum multirange_overlaps_multirange(PG_FUNCTION_ARGS);
2584
+ extern Datum multirange_contains_elem(PG_FUNCTION_ARGS);
2585
+ extern Datum multirange_contains_range(PG_FUNCTION_ARGS);
2586
+ extern Datum multirange_contains_multirange(PG_FUNCTION_ARGS);
2587
+ extern Datum elem_contained_by_multirange(PG_FUNCTION_ARGS);
2588
+ extern Datum range_contained_by_multirange(PG_FUNCTION_ARGS);
2589
+ extern Datum multirange_contained_by_multirange(PG_FUNCTION_ARGS);
2590
+ extern Datum range_adjacent_multirange(PG_FUNCTION_ARGS);
2591
+ extern Datum multirange_adjacent_multirange(PG_FUNCTION_ARGS);
2592
+ extern Datum multirange_adjacent_range(PG_FUNCTION_ARGS);
2593
+ extern Datum range_before_multirange(PG_FUNCTION_ARGS);
2594
+ extern Datum multirange_before_range(PG_FUNCTION_ARGS);
2595
+ extern Datum multirange_before_multirange(PG_FUNCTION_ARGS);
2596
+ extern Datum range_after_multirange(PG_FUNCTION_ARGS);
2597
+ extern Datum multirange_after_range(PG_FUNCTION_ARGS);
2598
+ extern Datum multirange_after_multirange(PG_FUNCTION_ARGS);
2599
+ extern Datum range_overleft_multirange(PG_FUNCTION_ARGS);
2600
+ extern Datum multirange_overleft_range(PG_FUNCTION_ARGS);
2601
+ extern Datum multirange_overleft_multirange(PG_FUNCTION_ARGS);
2602
+ extern Datum range_overright_multirange(PG_FUNCTION_ARGS);
2603
+ extern Datum multirange_overright_range(PG_FUNCTION_ARGS);
2604
+ extern Datum multirange_overright_multirange(PG_FUNCTION_ARGS);
2605
+ extern Datum multirange_union(PG_FUNCTION_ARGS);
2606
+ extern Datum multirange_minus(PG_FUNCTION_ARGS);
2607
+ extern Datum multirange_intersect(PG_FUNCTION_ARGS);
2608
+ extern Datum multirange_cmp(PG_FUNCTION_ARGS);
2609
+ extern Datum multirange_lt(PG_FUNCTION_ARGS);
2610
+ extern Datum multirange_le(PG_FUNCTION_ARGS);
2611
+ extern Datum multirange_ge(PG_FUNCTION_ARGS);
2612
+ extern Datum multirange_gt(PG_FUNCTION_ARGS);
2613
+ extern Datum hash_multirange(PG_FUNCTION_ARGS);
2614
+ extern Datum hash_multirange_extended(PG_FUNCTION_ARGS);
2615
+ extern Datum multirange_constructor0(PG_FUNCTION_ARGS);
2616
+ extern Datum multirange_constructor1(PG_FUNCTION_ARGS);
2617
+ extern Datum multirange_constructor2(PG_FUNCTION_ARGS);
2618
+ extern Datum range_agg_transfn(PG_FUNCTION_ARGS);
2619
+ extern Datum range_agg_finalfn(PG_FUNCTION_ARGS);
2565
2620
  extern Datum unicode_normalize_func(PG_FUNCTION_ARGS);
2566
2621
  extern Datum unicode_is_normalized(PG_FUNCTION_ARGS);
2622
+ extern Datum multirange_intersect_agg_transfn(PG_FUNCTION_ARGS);
2623
+ extern Datum binary_upgrade_set_next_multirange_pg_type_oid(PG_FUNCTION_ARGS);
2624
+ extern Datum binary_upgrade_set_next_multirange_array_pg_type_oid(PG_FUNCTION_ARGS);
2625
+ extern Datum range_intersect_agg_transfn(PG_FUNCTION_ARGS);
2626
+ extern Datum range_contains_multirange(PG_FUNCTION_ARGS);
2627
+ extern Datum multirange_contained_by_range(PG_FUNCTION_ARGS);
2628
+ extern Datum pg_log_backend_memory_contexts(PG_FUNCTION_ARGS);
2629
+ extern Datum binary_upgrade_set_next_heap_relfilenode(PG_FUNCTION_ARGS);
2630
+ extern Datum binary_upgrade_set_next_index_relfilenode(PG_FUNCTION_ARGS);
2631
+ extern Datum binary_upgrade_set_next_toast_relfilenode(PG_FUNCTION_ARGS);
2632
+ extern Datum binary_upgrade_set_next_pg_tablespace_oid(PG_FUNCTION_ARGS);
2567
2633
  extern Datum pg_event_trigger_table_rewrite_oid(PG_FUNCTION_ARGS);
2568
2634
  extern Datum pg_event_trigger_table_rewrite_reason(PG_FUNCTION_ARGS);
2569
2635
  extern Datum pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS);
2636
+ extern Datum brin_bloom_opcinfo(PG_FUNCTION_ARGS);
2637
+ extern Datum brin_bloom_add_value(PG_FUNCTION_ARGS);
2638
+ extern Datum brin_bloom_consistent(PG_FUNCTION_ARGS);
2639
+ extern Datum brin_bloom_union(PG_FUNCTION_ARGS);
2640
+ extern Datum brin_bloom_options(PG_FUNCTION_ARGS);
2641
+ extern Datum brin_bloom_summary_in(PG_FUNCTION_ARGS);
2642
+ extern Datum brin_bloom_summary_out(PG_FUNCTION_ARGS);
2643
+ extern Datum brin_bloom_summary_recv(PG_FUNCTION_ARGS);
2644
+ extern Datum brin_bloom_summary_send(PG_FUNCTION_ARGS);
2645
+ extern Datum brin_minmax_multi_opcinfo(PG_FUNCTION_ARGS);
2646
+ extern Datum brin_minmax_multi_add_value(PG_FUNCTION_ARGS);
2647
+ extern Datum brin_minmax_multi_consistent(PG_FUNCTION_ARGS);
2648
+ extern Datum brin_minmax_multi_union(PG_FUNCTION_ARGS);
2649
+ extern Datum brin_minmax_multi_options(PG_FUNCTION_ARGS);
2650
+ extern Datum brin_minmax_multi_distance_int2(PG_FUNCTION_ARGS);
2651
+ extern Datum brin_minmax_multi_distance_int4(PG_FUNCTION_ARGS);
2652
+ extern Datum brin_minmax_multi_distance_int8(PG_FUNCTION_ARGS);
2653
+ extern Datum brin_minmax_multi_distance_float4(PG_FUNCTION_ARGS);
2654
+ extern Datum brin_minmax_multi_distance_float8(PG_FUNCTION_ARGS);
2655
+ extern Datum brin_minmax_multi_distance_numeric(PG_FUNCTION_ARGS);
2656
+ extern Datum brin_minmax_multi_distance_tid(PG_FUNCTION_ARGS);
2657
+ extern Datum brin_minmax_multi_distance_uuid(PG_FUNCTION_ARGS);
2658
+ extern Datum brin_minmax_multi_distance_date(PG_FUNCTION_ARGS);
2659
+ extern Datum brin_minmax_multi_distance_time(PG_FUNCTION_ARGS);
2660
+ extern Datum brin_minmax_multi_distance_interval(PG_FUNCTION_ARGS);
2661
+ extern Datum brin_minmax_multi_distance_timetz(PG_FUNCTION_ARGS);
2662
+ extern Datum brin_minmax_multi_distance_pg_lsn(PG_FUNCTION_ARGS);
2663
+ extern Datum brin_minmax_multi_distance_macaddr(PG_FUNCTION_ARGS);
2664
+ extern Datum brin_minmax_multi_distance_macaddr8(PG_FUNCTION_ARGS);
2665
+ extern Datum brin_minmax_multi_distance_inet(PG_FUNCTION_ARGS);
2666
+ extern Datum brin_minmax_multi_distance_timestamp(PG_FUNCTION_ARGS);
2667
+ extern Datum brin_minmax_multi_summary_in(PG_FUNCTION_ARGS);
2668
+ extern Datum brin_minmax_multi_summary_out(PG_FUNCTION_ARGS);
2669
+ extern Datum brin_minmax_multi_summary_recv(PG_FUNCTION_ARGS);
2670
+ extern Datum brin_minmax_multi_summary_send(PG_FUNCTION_ARGS);
2570
2671
  extern Datum phraseto_tsquery(PG_FUNCTION_ARGS);
2571
2672
  extern Datum tsquery_phrase(PG_FUNCTION_ARGS);
2572
2673
  extern Datum tsquery_phrase_distance(PG_FUNCTION_ARGS);
@@ -2584,6 +2685,8 @@ extern Datum pg_mcv_list_in(PG_FUNCTION_ARGS);
2584
2685
  extern Datum pg_mcv_list_out(PG_FUNCTION_ARGS);
2585
2686
  extern Datum pg_mcv_list_recv(PG_FUNCTION_ARGS);
2586
2687
  extern Datum pg_mcv_list_send(PG_FUNCTION_ARGS);
2688
+ extern Datum pg_lsn_pli(PG_FUNCTION_ARGS);
2689
+ extern Datum pg_lsn_mii(PG_FUNCTION_ARGS);
2587
2690
  extern Datum satisfies_hash_partition(PG_FUNCTION_ARGS);
2588
2691
  extern Datum pg_ls_tmpdir_noargs(PG_FUNCTION_ARGS);
2589
2692
  extern Datum pg_ls_tmpdir_1arg(PG_FUNCTION_ARGS);
@@ -2626,6 +2729,8 @@ extern Datum anycompatiblenonarray_out(PG_FUNCTION_ARGS);
2626
2729
  extern Datum anycompatiblerange_in(PG_FUNCTION_ARGS);
2627
2730
  extern Datum anycompatiblerange_out(PG_FUNCTION_ARGS);
2628
2731
  extern Datum xid8cmp(PG_FUNCTION_ARGS);
2732
+ extern Datum xid8_larger(PG_FUNCTION_ARGS);
2733
+ extern Datum xid8_smaller(PG_FUNCTION_ARGS);
2629
2734
  extern Datum pg_replication_origin_create(PG_FUNCTION_ARGS);
2630
2735
  extern Datum pg_replication_origin_drop(PG_FUNCTION_ARGS);
2631
2736
  extern Datum pg_replication_origin_oid(PG_FUNCTION_ARGS);
@@ -2638,9 +2743,87 @@ extern Datum pg_replication_origin_xact_reset(PG_FUNCTION_ARGS);
2638
2743
  extern Datum pg_replication_origin_advance(PG_FUNCTION_ARGS);
2639
2744
  extern Datum pg_replication_origin_progress(PG_FUNCTION_ARGS);
2640
2745
  extern Datum pg_show_replication_origin_status(PG_FUNCTION_ARGS);
2746
+ extern Datum jsonb_subscript_handler(PG_FUNCTION_ARGS);
2747
+ extern Datum numeric_pg_lsn(PG_FUNCTION_ARGS);
2641
2748
  extern Datum pg_stat_get_subscription(PG_FUNCTION_ARGS);
2642
2749
  extern Datum pg_get_publication_tables(PG_FUNCTION_ARGS);
2643
2750
  extern Datum pg_get_replica_identity_index(PG_FUNCTION_ARGS);
2644
2751
  extern Datum pg_relation_is_publishable(PG_FUNCTION_ARGS);
2752
+ extern Datum multirange_gist_consistent(PG_FUNCTION_ARGS);
2753
+ extern Datum multirange_gist_compress(PG_FUNCTION_ARGS);
2754
+ extern Datum pg_get_catalog_foreign_keys(PG_FUNCTION_ARGS);
2755
+ extern Datum text_to_table(PG_FUNCTION_ARGS);
2756
+ extern Datum text_to_table_null(PG_FUNCTION_ARGS);
2757
+ extern Datum bit_bit_count(PG_FUNCTION_ARGS);
2758
+ extern Datum bytea_bit_count(PG_FUNCTION_ARGS);
2759
+ extern Datum pg_xact_commit_timestamp_origin(PG_FUNCTION_ARGS);
2760
+ extern Datum pg_stat_get_replication_slot(PG_FUNCTION_ARGS);
2761
+ extern Datum pg_stat_reset_replication_slot(PG_FUNCTION_ARGS);
2762
+ extern Datum trim_array(PG_FUNCTION_ARGS);
2763
+ extern Datum pg_get_statisticsobjdef_expressions(PG_FUNCTION_ARGS);
2764
+ extern Datum pg_get_statisticsobjdef_columns(PG_FUNCTION_ARGS);
2765
+ extern Datum timestamp_bin(PG_FUNCTION_ARGS);
2766
+ extern Datum timestamptz_bin(PG_FUNCTION_ARGS);
2767
+ extern Datum array_subscript_handler(PG_FUNCTION_ARGS);
2768
+ extern Datum raw_array_subscript_handler(PG_FUNCTION_ARGS);
2769
+ extern Datum pg_stat_get_db_session_time(PG_FUNCTION_ARGS);
2770
+ extern Datum pg_stat_get_db_active_time(PG_FUNCTION_ARGS);
2771
+ extern Datum pg_stat_get_db_idle_in_transaction_time(PG_FUNCTION_ARGS);
2772
+ extern Datum pg_stat_get_db_sessions(PG_FUNCTION_ARGS);
2773
+ extern Datum pg_stat_get_db_sessions_abandoned(PG_FUNCTION_ARGS);
2774
+ extern Datum pg_stat_get_db_sessions_fatal(PG_FUNCTION_ARGS);
2775
+ extern Datum pg_stat_get_db_sessions_killed(PG_FUNCTION_ARGS);
2776
+ extern Datum hash_record(PG_FUNCTION_ARGS);
2777
+ extern Datum hash_record_extended(PG_FUNCTION_ARGS);
2778
+ extern Datum bytealtrim(PG_FUNCTION_ARGS);
2779
+ extern Datum byteartrim(PG_FUNCTION_ARGS);
2780
+ extern Datum pg_get_function_sqlbody(PG_FUNCTION_ARGS);
2781
+ extern Datum unistr(PG_FUNCTION_ARGS);
2782
+ extern Datum extract_date(PG_FUNCTION_ARGS);
2783
+ extern Datum extract_time(PG_FUNCTION_ARGS);
2784
+ extern Datum extract_timetz(PG_FUNCTION_ARGS);
2785
+ extern Datum extract_timestamp(PG_FUNCTION_ARGS);
2786
+ extern Datum extract_timestamptz(PG_FUNCTION_ARGS);
2787
+ extern Datum extract_interval(PG_FUNCTION_ARGS);
2788
+ extern Datum has_parameter_privilege_name_name(PG_FUNCTION_ARGS);
2789
+ extern Datum has_parameter_privilege_id_name(PG_FUNCTION_ARGS);
2790
+ extern Datum has_parameter_privilege_name(PG_FUNCTION_ARGS);
2791
+ extern Datum pg_get_wal_resource_managers(PG_FUNCTION_ARGS);
2792
+ extern Datum multirange_agg_transfn(PG_FUNCTION_ARGS);
2793
+ extern Datum pg_stat_have_stats(PG_FUNCTION_ARGS);
2794
+ extern Datum pg_stat_get_subscription_stats(PG_FUNCTION_ARGS);
2795
+ extern Datum pg_stat_reset_subscription_stats(PG_FUNCTION_ARGS);
2796
+ extern Datum window_row_number_support(PG_FUNCTION_ARGS);
2797
+ extern Datum window_rank_support(PG_FUNCTION_ARGS);
2798
+ extern Datum window_dense_rank_support(PG_FUNCTION_ARGS);
2799
+ extern Datum int8inc_support(PG_FUNCTION_ARGS);
2800
+ extern Datum pg_settings_get_flags(PG_FUNCTION_ARGS);
2801
+ extern Datum pg_stop_making_pinned_objects(PG_FUNCTION_ARGS);
2802
+ extern Datum text_starts_with_support(PG_FUNCTION_ARGS);
2803
+ extern Datum pg_stat_get_recovery_prefetch(PG_FUNCTION_ARGS);
2804
+ extern Datum pg_database_collation_actual_version(PG_FUNCTION_ARGS);
2805
+ extern Datum pg_ident_file_mappings(PG_FUNCTION_ARGS);
2806
+ extern Datum textregexreplace_extended(PG_FUNCTION_ARGS);
2807
+ extern Datum textregexreplace_extended_no_flags(PG_FUNCTION_ARGS);
2808
+ extern Datum textregexreplace_extended_no_n(PG_FUNCTION_ARGS);
2809
+ extern Datum regexp_count_no_start(PG_FUNCTION_ARGS);
2810
+ extern Datum regexp_count_no_flags(PG_FUNCTION_ARGS);
2811
+ extern Datum regexp_count(PG_FUNCTION_ARGS);
2812
+ extern Datum regexp_instr_no_start(PG_FUNCTION_ARGS);
2813
+ extern Datum regexp_instr_no_n(PG_FUNCTION_ARGS);
2814
+ extern Datum regexp_instr_no_endoption(PG_FUNCTION_ARGS);
2815
+ extern Datum regexp_instr_no_flags(PG_FUNCTION_ARGS);
2816
+ extern Datum regexp_instr_no_subexpr(PG_FUNCTION_ARGS);
2817
+ extern Datum regexp_instr(PG_FUNCTION_ARGS);
2818
+ extern Datum regexp_like_no_flags(PG_FUNCTION_ARGS);
2819
+ extern Datum regexp_like(PG_FUNCTION_ARGS);
2820
+ extern Datum regexp_substr_no_start(PG_FUNCTION_ARGS);
2821
+ extern Datum regexp_substr_no_n(PG_FUNCTION_ARGS);
2822
+ extern Datum regexp_substr_no_flags(PG_FUNCTION_ARGS);
2823
+ extern Datum regexp_substr_no_subexpr(PG_FUNCTION_ARGS);
2824
+ extern Datum regexp_substr(PG_FUNCTION_ARGS);
2825
+ extern Datum pg_ls_logicalsnapdir(PG_FUNCTION_ARGS);
2826
+ extern Datum pg_ls_logicalmapdir(PG_FUNCTION_ARGS);
2827
+ extern Datum pg_ls_replslotdir(PG_FUNCTION_ARGS);
2645
2828
 
2646
2829
  #endif /* FMGRPROTOS_H */
@@ -3,7 +3,7 @@
3
3
  * fmgrtab.h
4
4
  * The function manager's table of internal functions.
5
5
  *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/utils/fmgrtab.h
@@ -32,17 +32,18 @@ typedef struct
32
32
  PGFunction func; /* pointer to compiled function */
33
33
  } FmgrBuiltin;
34
34
 
35
- extern const FmgrBuiltin fmgr_builtins[];
35
+ extern PGDLLIMPORT const FmgrBuiltin fmgr_builtins[];
36
36
 
37
- extern const int fmgr_nbuiltins; /* number of entries in table */
37
+ extern PGDLLIMPORT const int fmgr_nbuiltins; /* number of entries in table */
38
38
 
39
- extern const Oid fmgr_last_builtin_oid; /* highest function OID in table */
39
+ extern PGDLLIMPORT const Oid fmgr_last_builtin_oid; /* highest function OID in
40
+ * table */
40
41
 
41
42
  /*
42
43
  * Mapping from a builtin function's OID to its index in the fmgr_builtins
43
44
  * array. This is indexed from 0 through fmgr_last_builtin_oid.
44
45
  */
45
46
  #define InvalidOidBuiltinMapping PG_UINT16_MAX
46
- extern const uint16 fmgr_builtin_oid_index[];
47
+ extern PGDLLIMPORT const uint16 fmgr_builtin_oid_index[];
47
48
 
48
49
  #endif /* FMGRTAB_H */
@@ -4,7 +4,7 @@
4
4
  * External declarations pertaining to backend/utils/misc/guc.c and
5
5
  * backend/utils/misc/guc-file.l
6
6
  *
7
- * Copyright (c) 2000-2020, PostgreSQL Global Development Group
7
+ * Copyright (c) 2000-2022, PostgreSQL Global Development Group
8
8
  * Written by Peter Eisentraut <peter_e@gmx.net>.
9
9
  *
10
10
  * src/include/utils/guc.h
@@ -83,23 +83,26 @@ typedef enum
83
83
  * override the postmaster command line.) Tracking the source allows us
84
84
  * to process sources in any convenient order without affecting results.
85
85
  * Sources <= PGC_S_OVERRIDE will set the default used by RESET, as well
86
- * as the current value. Note that source == PGC_S_OVERRIDE should be
87
- * used when setting a PGC_INTERNAL option.
86
+ * as the current value.
88
87
  *
89
88
  * PGC_S_INTERACTIVE isn't actually a source value, but is the
90
89
  * dividing line between "interactive" and "non-interactive" sources for
91
90
  * error reporting purposes.
92
91
  *
93
- * PGC_S_TEST is used when testing values to be used later ("doit" will always
94
- * be false, so this never gets stored as the actual source of any value).
95
- * For example, ALTER DATABASE/ROLE tests proposed per-database or per-user
96
- * defaults this way, and CREATE FUNCTION tests proposed function SET clauses
97
- * this way. This is an interactive case, but it needs its own source value
98
- * because some assign hooks need to make different validity checks in this
99
- * case. In particular, references to nonexistent database objects generally
92
+ * PGC_S_TEST is used when testing values to be used later. For example,
93
+ * ALTER DATABASE/ROLE tests proposed per-database or per-user defaults this
94
+ * way, and CREATE FUNCTION tests proposed function SET clauses this way.
95
+ * This is an interactive case, but it needs its own source value because
96
+ * some assign hooks need to make different validity checks in this case.
97
+ * In particular, references to nonexistent database objects generally
100
98
  * shouldn't throw hard errors in this case, at most NOTICEs, since the
101
99
  * objects might exist by the time the setting is used for real.
102
100
  *
101
+ * When setting the value of a non-compile-time-constant PGC_INTERNAL option,
102
+ * source == PGC_S_DYNAMIC_DEFAULT should typically be used so that the value
103
+ * will show as "default" in pg_settings. If there is a specific reason not
104
+ * to want that, use source == PGC_S_OVERRIDE.
105
+ *
103
106
  * NB: see GucSource_Names in guc.c if you change this.
104
107
  */
105
108
  typedef enum
@@ -155,6 +158,7 @@ extern bool ParseConfigDirectory(const char *includedir,
155
158
  ConfigVariable **head_p,
156
159
  ConfigVariable **tail_p);
157
160
  extern void FreeConfigVariables(ConfigVariable *list);
161
+ extern char *DeescapeQuotedString(const char *s);
158
162
 
159
163
  /*
160
164
  * The possible values of an enum variable are specified by an array of
@@ -229,57 +233,63 @@ typedef enum
229
233
 
230
234
  #define GUC_EXPLAIN 0x100000 /* include in explain */
231
235
 
236
+ /*
237
+ * GUC_RUNTIME_COMPUTED is intended for runtime-computed GUCs that are only
238
+ * available via 'postgres -C' if the server is not running.
239
+ */
240
+ #define GUC_RUNTIME_COMPUTED 0x200000
241
+
232
242
  #define GUC_UNIT (GUC_UNIT_MEMORY | GUC_UNIT_TIME)
233
243
 
234
244
 
235
245
  /* GUC vars that are actually declared in guc.c, rather than elsewhere */
236
- extern bool Debug_print_plan;
237
- extern bool Debug_print_parse;
238
- extern bool Debug_print_rewritten;
239
- extern bool Debug_pretty_print;
246
+ extern PGDLLIMPORT bool Debug_print_plan;
247
+ extern PGDLLIMPORT bool Debug_print_parse;
248
+ extern PGDLLIMPORT bool Debug_print_rewritten;
249
+ extern PGDLLIMPORT bool Debug_pretty_print;
240
250
 
241
- extern bool log_parser_stats;
242
- extern bool log_planner_stats;
243
- extern bool log_executor_stats;
244
- extern bool log_statement_stats;
245
- extern bool log_btree_build_stats;
251
+ extern PGDLLIMPORT bool log_parser_stats;
252
+ extern PGDLLIMPORT bool log_planner_stats;
253
+ extern PGDLLIMPORT bool log_executor_stats;
254
+ extern PGDLLIMPORT bool log_statement_stats;
255
+ extern PGDLLIMPORT bool log_btree_build_stats;
246
256
 
247
257
  extern PGDLLIMPORT __thread bool check_function_bodies;
248
- extern bool session_auth_is_superuser;
258
+ extern PGDLLIMPORT bool session_auth_is_superuser;
249
259
 
250
- extern bool log_duration;
251
- extern int log_parameter_max_length;
252
- extern int log_parameter_max_length_on_error;
253
- extern int log_min_error_statement;
260
+ extern PGDLLIMPORT bool log_duration;
261
+ extern PGDLLIMPORT int log_parameter_max_length;
262
+ extern PGDLLIMPORT int log_parameter_max_length_on_error;
263
+ extern PGDLLIMPORT int log_min_error_statement;
254
264
  extern PGDLLIMPORT __thread int log_min_messages;
255
265
  extern PGDLLIMPORT __thread int client_min_messages;
256
- extern int log_min_duration_sample;
257
- extern int log_min_duration_statement;
258
- extern int log_temp_files;
259
- extern double log_statement_sample_rate;
260
- extern double log_xact_sample_rate;
261
- extern __thread char *backtrace_functions;
262
- extern __thread char *backtrace_symbol_list;
266
+ extern PGDLLIMPORT int log_min_duration_sample;
267
+ extern PGDLLIMPORT int log_min_duration_statement;
268
+ extern PGDLLIMPORT int log_temp_files;
269
+ extern PGDLLIMPORT double log_statement_sample_rate;
270
+ extern PGDLLIMPORT double log_xact_sample_rate;
271
+ extern PGDLLIMPORT __thread char *backtrace_functions;
272
+ extern PGDLLIMPORT __thread char *backtrace_symbol_list;
263
273
 
264
- extern int temp_file_limit;
274
+ extern PGDLLIMPORT int temp_file_limit;
265
275
 
266
- extern int num_temp_buffers;
276
+ extern PGDLLIMPORT int num_temp_buffers;
267
277
 
268
- extern char *cluster_name;
278
+ extern PGDLLIMPORT char *cluster_name;
269
279
  extern PGDLLIMPORT char *ConfigFileName;
270
- extern char *HbaFileName;
271
- extern char *IdentFileName;
272
- extern char *external_pid_file;
280
+ extern PGDLLIMPORT char *HbaFileName;
281
+ extern PGDLLIMPORT char *IdentFileName;
282
+ extern PGDLLIMPORT char *external_pid_file;
273
283
 
274
284
  extern PGDLLIMPORT char *application_name;
275
285
 
276
- extern int tcp_keepalives_idle;
277
- extern int tcp_keepalives_interval;
278
- extern int tcp_keepalives_count;
279
- extern int tcp_user_timeout;
286
+ extern PGDLLIMPORT int tcp_keepalives_idle;
287
+ extern PGDLLIMPORT int tcp_keepalives_interval;
288
+ extern PGDLLIMPORT int tcp_keepalives_count;
289
+ extern PGDLLIMPORT int tcp_user_timeout;
280
290
 
281
291
  #ifdef TRACE_SORT
282
- extern bool trace_sort;
292
+ extern PGDLLIMPORT bool trace_sort;
283
293
  #endif
284
294
 
285
295
  /*
@@ -348,20 +358,27 @@ extern void DefineCustomEnumVariable(const char *name,
348
358
  GucEnumAssignHook assign_hook,
349
359
  GucShowHook show_hook);
350
360
 
351
- extern void EmitWarningsOnPlaceholders(const char *className);
361
+ extern void MarkGUCPrefixReserved(const char *className);
362
+
363
+ /* old name for MarkGUCPrefixReserved, for backwards compatibility: */
364
+ #define EmitWarningsOnPlaceholders(className) MarkGUCPrefixReserved(className)
352
365
 
353
366
  extern const char *GetConfigOption(const char *name, bool missing_ok,
354
367
  bool restrict_privileged);
355
368
  extern const char *GetConfigOptionResetString(const char *name);
356
369
  extern int GetConfigOptionFlags(const char *name, bool missing_ok);
357
370
  extern void ProcessConfigFile(GucContext context);
371
+ extern char *convert_GUC_name_for_parameter_acl(const char *name);
372
+ extern bool check_GUC_name_for_parameter_acl(const char *name);
358
373
  extern void InitializeGUCOptions(void);
374
+ extern void InitializeWalConsistencyChecking(void);
359
375
  extern bool SelectConfigFiles(const char *userDoption, const char *progname);
360
376
  extern void ResetAllOptions(void);
361
377
  extern void AtStart_GUC(void);
362
378
  extern int NewGUCNestLevel(void);
363
379
  extern void AtEOXact_GUC(bool isCommit, int nestLevel);
364
380
  extern void BeginReportingGUCOptions(void);
381
+ extern void ReportChangedGUCOptions(void);
365
382
  extern void ParseLongOption(const char *string, char **name, char **value);
366
383
  extern bool parse_int(const char *value, int *result, int flags,
367
384
  const char **hintmsg);
@@ -371,6 +388,11 @@ extern int set_config_option(const char *name, const char *value,
371
388
  GucContext context, GucSource source,
372
389
  GucAction action, bool changeVal, int elevel,
373
390
  bool is_reload);
391
+ extern int set_config_option_ext(const char *name, const char *value,
392
+ GucContext context, GucSource source,
393
+ Oid srole,
394
+ GucAction action, bool changeVal, int elevel,
395
+ bool is_reload);
374
396
  extern void AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt);
375
397
  extern char *GetConfigOptionByName(const char *name, const char **varname,
376
398
  bool missing_ok);
@@ -440,4 +462,8 @@ extern void assign_search_path(const char *newval, void *extra);
440
462
  extern bool check_wal_buffers(int *newval, void **extra, GucSource source);
441
463
  extern void assign_xlog_sync_method(int new_sync_method, void *extra);
442
464
 
465
+ /* in access/transam/xlogprefetcher.c */
466
+ extern bool check_recovery_prefetch(int *new_value, void **extra, GucSource source);
467
+ extern void assign_recovery_prefetch(int new_value, void *extra);
468
+
443
469
  #endif /* GUC_H */