pg_query 2.2.1 → 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 (466) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -1
  3. data/README.md +29 -33
  4. data/Rakefile +2 -2
  5. data/ext/pg_query/include/access/amapi.h +45 -1
  6. data/ext/pg_query/include/access/attmap.h +1 -1
  7. data/ext/pg_query/include/access/attnum.h +2 -2
  8. data/ext/pg_query/include/access/clog.h +4 -2
  9. data/ext/pg_query/include/access/commit_ts.h +6 -9
  10. data/ext/pg_query/include/access/detoast.h +1 -11
  11. data/ext/pg_query/include/access/genam.h +15 -12
  12. data/ext/pg_query/include/access/gin.h +2 -2
  13. data/ext/pg_query/include/access/htup.h +1 -1
  14. data/ext/pg_query/include/access/htup_details.h +75 -87
  15. data/ext/pg_query/include/access/itup.h +7 -1
  16. data/ext/pg_query/include/access/parallel.h +2 -2
  17. data/ext/pg_query/include/access/printtup.h +1 -1
  18. data/ext/pg_query/include/access/relation.h +1 -1
  19. data/ext/pg_query/include/access/relscan.h +17 -2
  20. data/ext/pg_query/include/access/rmgr.h +30 -3
  21. data/ext/pg_query/include/access/rmgrlist.h +23 -23
  22. data/ext/pg_query/include/access/sdir.h +1 -1
  23. data/ext/pg_query/include/access/skey.h +1 -1
  24. data/ext/pg_query/include/access/stratnum.h +4 -2
  25. data/ext/pg_query/include/access/sysattr.h +1 -1
  26. data/ext/pg_query/include/access/table.h +2 -1
  27. data/ext/pg_query/include/access/tableam.h +272 -20
  28. data/ext/pg_query/include/access/toast_compression.h +73 -0
  29. data/ext/pg_query/include/access/transam.h +123 -13
  30. data/ext/pg_query/include/access/tupconvert.h +1 -1
  31. data/ext/pg_query/include/access/tupdesc.h +1 -1
  32. data/ext/pg_query/include/access/tupmacs.h +3 -3
  33. data/ext/pg_query/include/access/twophase.h +3 -1
  34. data/ext/pg_query/include/access/xact.h +73 -19
  35. data/ext/pg_query/include/access/xlog.h +60 -155
  36. data/ext/pg_query/include/access/xlog_internal.h +40 -13
  37. data/ext/pg_query/include/access/xlogdefs.h +8 -16
  38. data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
  39. data/ext/pg_query/include/access/xlogreader.h +145 -39
  40. data/ext/pg_query/include/access/xlogrecord.h +18 -9
  41. data/ext/pg_query/include/access/xlogrecovery.h +157 -0
  42. data/ext/pg_query/include/c.h +101 -44
  43. data/ext/pg_query/include/catalog/catalog.h +3 -1
  44. data/ext/pg_query/include/catalog/catversion.h +2 -2
  45. data/ext/pg_query/include/catalog/dependency.h +8 -16
  46. data/ext/pg_query/include/catalog/genbki.h +83 -5
  47. data/ext/pg_query/include/catalog/index.h +18 -3
  48. data/ext/pg_query/include/catalog/indexing.h +12 -324
  49. data/ext/pg_query/include/catalog/namespace.h +4 -2
  50. data/ext/pg_query/include/catalog/objectaccess.h +70 -2
  51. data/ext/pg_query/include/catalog/objectaddress.h +11 -6
  52. data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
  53. data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
  54. data/ext/pg_query/include/catalog/pg_am.h +4 -1
  55. data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
  56. data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
  57. data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
  58. data/ext/pg_query/include/catalog/pg_authid.h +7 -2
  59. data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
  60. data/ext/pg_query/include/catalog/pg_class.h +44 -14
  61. data/ext/pg_query/include/catalog/pg_class_d.h +30 -1
  62. data/ext/pg_query/include/catalog/pg_collation.h +33 -8
  63. data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
  64. data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
  65. data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
  66. data/ext/pg_query/include/catalog/pg_control.h +3 -5
  67. data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
  68. data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
  69. data/ext/pg_query/include/catalog/pg_depend.h +11 -7
  70. data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
  71. data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
  72. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
  73. data/ext/pg_query/include/catalog/pg_index.h +17 -7
  74. data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
  75. data/ext/pg_query/include/catalog/pg_language.h +10 -5
  76. data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
  77. data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
  78. data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
  79. data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
  80. data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
  81. data/ext/pg_query/include/catalog/pg_operator.h +18 -15
  82. data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
  83. data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
  84. data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
  85. data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
  86. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
  87. data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
  88. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
  89. data/ext/pg_query/include/catalog/pg_proc.h +20 -11
  90. data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
  91. data/ext/pg_query/include/catalog/pg_publication.h +50 -7
  92. data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
  93. data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
  94. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
  95. data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
  96. data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
  97. data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
  98. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
  99. data/ext/pg_query/include/catalog/pg_transform.h +8 -5
  100. data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
  101. data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
  102. data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
  103. data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
  104. data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
  105. data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
  106. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
  107. data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
  108. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
  109. data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
  110. data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
  111. data/ext/pg_query/include/catalog/pg_type.h +55 -24
  112. data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
  113. data/ext/pg_query/include/catalog/storage.h +5 -3
  114. data/ext/pg_query/include/commands/async.h +3 -4
  115. data/ext/pg_query/include/commands/dbcommands.h +2 -1
  116. data/ext/pg_query/include/commands/defrem.h +11 -24
  117. data/ext/pg_query/include/commands/event_trigger.h +2 -2
  118. data/ext/pg_query/include/commands/explain.h +1 -1
  119. data/ext/pg_query/include/commands/prepare.h +1 -1
  120. data/ext/pg_query/include/commands/tablespace.h +2 -2
  121. data/ext/pg_query/include/commands/trigger.h +18 -16
  122. data/ext/pg_query/include/commands/user.h +2 -2
  123. data/ext/pg_query/include/commands/vacuum.h +88 -41
  124. data/ext/pg_query/include/commands/variable.h +1 -1
  125. data/ext/pg_query/include/common/file_perm.h +4 -4
  126. data/ext/pg_query/include/common/hashfn.h +1 -1
  127. data/ext/pg_query/include/common/ip.h +1 -7
  128. data/ext/pg_query/include/common/keywords.h +2 -6
  129. data/ext/pg_query/include/common/kwlookup.h +1 -1
  130. data/ext/pg_query/include/common/pg_prng.h +60 -0
  131. data/ext/pg_query/include/common/relpath.h +2 -2
  132. data/ext/pg_query/include/common/string.h +24 -1
  133. data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
  134. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
  135. data/ext/pg_query/include/datatype/timestamp.h +40 -1
  136. data/ext/pg_query/include/executor/execdesc.h +1 -1
  137. data/ext/pg_query/include/executor/executor.h +65 -22
  138. data/ext/pg_query/include/executor/functions.h +17 -3
  139. data/ext/pg_query/include/executor/instrument.h +33 -16
  140. data/ext/pg_query/include/executor/spi.h +41 -3
  141. data/ext/pg_query/include/executor/tablefunc.h +1 -1
  142. data/ext/pg_query/include/executor/tuptable.h +1 -1
  143. data/ext/pg_query/include/fmgr.h +13 -7
  144. data/ext/pg_query/include/funcapi.h +16 -4
  145. data/ext/pg_query/include/getaddrinfo.h +1 -1
  146. data/ext/pg_query/include/jit/jit.h +11 -11
  147. data/ext/pg_query/include/kwlist_d.h +517 -494
  148. data/ext/pg_query/include/lib/dshash.h +112 -0
  149. data/ext/pg_query/include/lib/ilist.h +20 -1
  150. data/ext/pg_query/include/lib/pairingheap.h +1 -1
  151. data/ext/pg_query/include/lib/simplehash.h +140 -15
  152. data/ext/pg_query/include/lib/sort_template.h +432 -0
  153. data/ext/pg_query/include/lib/stringinfo.h +1 -1
  154. data/ext/pg_query/include/libpq/auth.h +6 -4
  155. data/ext/pg_query/include/libpq/crypt.h +5 -4
  156. data/ext/pg_query/include/libpq/hba.h +43 -4
  157. data/ext/pg_query/include/libpq/libpq-be.h +23 -6
  158. data/ext/pg_query/include/libpq/libpq.h +30 -20
  159. data/ext/pg_query/include/libpq/pqcomm.h +17 -31
  160. data/ext/pg_query/include/libpq/pqformat.h +1 -1
  161. data/ext/pg_query/include/libpq/pqsignal.h +4 -4
  162. data/ext/pg_query/include/mb/pg_wchar.h +105 -23
  163. data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
  164. data/ext/pg_query/include/miscadmin.h +47 -41
  165. data/ext/pg_query/include/nodes/bitmapset.h +1 -1
  166. data/ext/pg_query/include/nodes/execnodes.h +270 -78
  167. data/ext/pg_query/include/nodes/extensible.h +4 -2
  168. data/ext/pg_query/include/nodes/lockoptions.h +1 -1
  169. data/ext/pg_query/include/nodes/makefuncs.h +7 -6
  170. data/ext/pg_query/include/nodes/memnodes.h +5 -3
  171. data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
  172. data/ext/pg_query/include/nodes/nodes.h +30 -11
  173. data/ext/pg_query/include/nodes/params.h +1 -1
  174. data/ext/pg_query/include/nodes/parsenodes.h +322 -90
  175. data/ext/pg_query/include/nodes/pathnodes.h +243 -66
  176. data/ext/pg_query/include/nodes/pg_list.h +75 -69
  177. data/ext/pg_query/include/nodes/plannodes.h +111 -28
  178. data/ext/pg_query/include/nodes/primnodes.h +99 -47
  179. data/ext/pg_query/include/nodes/print.h +1 -1
  180. data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
  181. data/ext/pg_query/include/nodes/value.h +58 -39
  182. data/ext/pg_query/include/optimizer/cost.h +9 -2
  183. data/ext/pg_query/include/optimizer/geqo.h +9 -7
  184. data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
  185. data/ext/pg_query/include/optimizer/optimizer.h +25 -17
  186. data/ext/pg_query/include/optimizer/paths.h +6 -6
  187. data/ext/pg_query/include/optimizer/planmain.h +15 -14
  188. data/ext/pg_query/include/parser/analyze.h +19 -5
  189. data/ext/pg_query/include/parser/gram.h +947 -913
  190. data/ext/pg_query/include/parser/gramparse.h +1 -1
  191. data/ext/pg_query/include/parser/kwlist.h +463 -453
  192. data/ext/pg_query/include/parser/parse_agg.h +2 -7
  193. data/ext/pg_query/include/parser/parse_coerce.h +3 -1
  194. data/ext/pg_query/include/parser/parse_expr.h +2 -3
  195. data/ext/pg_query/include/parser/parse_func.h +2 -1
  196. data/ext/pg_query/include/parser/parse_node.h +21 -9
  197. data/ext/pg_query/include/parser/parse_oper.h +1 -3
  198. data/ext/pg_query/include/parser/parse_relation.h +5 -4
  199. data/ext/pg_query/include/parser/parse_type.h +1 -1
  200. data/ext/pg_query/include/parser/parser.h +31 -4
  201. data/ext/pg_query/include/parser/parsetree.h +1 -1
  202. data/ext/pg_query/include/parser/scanner.h +1 -1
  203. data/ext/pg_query/include/parser/scansup.h +2 -5
  204. data/ext/pg_query/include/partitioning/partdefs.h +1 -1
  205. data/ext/pg_query/include/pg_config.h +83 -41
  206. data/ext/pg_query/include/pg_config_manual.h +74 -21
  207. data/ext/pg_query/include/pg_getopt.h +6 -6
  208. data/ext/pg_query/include/pg_query.h +5 -4
  209. data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
  210. data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
  211. data/ext/pg_query/include/pg_query_fingerprint_defs.c +939 -113
  212. data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
  213. data/ext/pg_query/include/pg_query_outfuncs_defs.c +151 -26
  214. data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
  215. data/ext/pg_query/include/pg_query_readfuncs_defs.c +173 -30
  216. data/ext/pg_query/include/pg_trace.h +1 -1
  217. data/ext/pg_query/include/pgstat.h +449 -1238
  218. data/ext/pg_query/include/pgtime.h +14 -4
  219. data/ext/pg_query/include/pl_gram.h +126 -128
  220. data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
  221. data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
  222. data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
  223. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
  224. data/ext/pg_query/include/plerrcodes.h +9 -1
  225. data/ext/pg_query/include/plpgsql.h +52 -54
  226. data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
  227. data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
  228. data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
  229. data/ext/pg_query/include/port/atomics/fallback.h +1 -1
  230. data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
  231. data/ext/pg_query/include/port/atomics/generic.h +1 -1
  232. data/ext/pg_query/include/port/atomics.h +1 -1
  233. data/ext/pg_query/include/port/pg_bitutils.h +40 -10
  234. data/ext/pg_query/include/port/pg_bswap.h +1 -1
  235. data/ext/pg_query/include/port/pg_crc32c.h +1 -1
  236. data/ext/pg_query/include/port.h +71 -46
  237. data/ext/pg_query/include/portability/instr_time.h +1 -1
  238. data/ext/pg_query/include/postgres.h +60 -16
  239. data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
  240. data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
  241. data/ext/pg_query/include/postmaster/bgworker.h +2 -1
  242. data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
  243. data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
  244. data/ext/pg_query/include/postmaster/fork_process.h +1 -1
  245. data/ext/pg_query/include/postmaster/interrupt.h +1 -1
  246. data/ext/pg_query/include/postmaster/pgarch.h +42 -8
  247. data/ext/pg_query/include/postmaster/postmaster.h +18 -17
  248. data/ext/pg_query/include/postmaster/startup.h +39 -0
  249. data/ext/pg_query/include/postmaster/syslogger.h +15 -10
  250. data/ext/pg_query/include/postmaster/walwriter.h +3 -3
  251. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1419 -914
  252. data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
  253. data/ext/pg_query/include/regex/regex.h +18 -16
  254. data/ext/pg_query/include/replication/logicallauncher.h +3 -5
  255. data/ext/pg_query/include/replication/logicalproto.h +161 -17
  256. data/ext/pg_query/include/replication/logicalworker.h +1 -1
  257. data/ext/pg_query/include/replication/origin.h +7 -7
  258. data/ext/pg_query/include/replication/reorderbuffer.h +259 -42
  259. data/ext/pg_query/include/replication/slot.h +22 -11
  260. data/ext/pg_query/include/replication/syncrep.h +5 -5
  261. data/ext/pg_query/include/replication/walreceiver.h +145 -13
  262. data/ext/pg_query/include/replication/walsender.h +8 -8
  263. data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
  264. data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
  265. data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
  266. data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
  267. data/ext/pg_query/include/storage/backendid.h +3 -3
  268. data/ext/pg_query/include/storage/block.h +4 -10
  269. data/ext/pg_query/include/storage/buf.h +1 -1
  270. data/ext/pg_query/include/storage/bufmgr.h +19 -14
  271. data/ext/pg_query/include/storage/bufpage.h +6 -8
  272. data/ext/pg_query/include/storage/condition_variable.h +13 -2
  273. data/ext/pg_query/include/storage/dsm.h +4 -1
  274. data/ext/pg_query/include/storage/dsm_impl.h +3 -2
  275. data/ext/pg_query/include/storage/fd.h +33 -3
  276. data/ext/pg_query/include/storage/fileset.h +40 -0
  277. data/ext/pg_query/include/storage/ipc.h +4 -1
  278. data/ext/pg_query/include/storage/item.h +1 -1
  279. data/ext/pg_query/include/storage/itemid.h +1 -1
  280. data/ext/pg_query/include/storage/itemptr.h +3 -1
  281. data/ext/pg_query/include/storage/large_object.h +2 -2
  282. data/ext/pg_query/include/storage/latch.h +9 -13
  283. data/ext/pg_query/include/storage/lmgr.h +2 -1
  284. data/ext/pg_query/include/storage/lock.h +11 -8
  285. data/ext/pg_query/include/storage/lockdefs.h +2 -2
  286. data/ext/pg_query/include/storage/lwlock.h +5 -32
  287. data/ext/pg_query/include/storage/lwlocknames.h +0 -1
  288. data/ext/pg_query/include/storage/off.h +1 -1
  289. data/ext/pg_query/include/storage/pg_sema.h +1 -1
  290. data/ext/pg_query/include/storage/pg_shmem.h +9 -7
  291. data/ext/pg_query/include/storage/pmsignal.h +15 -4
  292. data/ext/pg_query/include/storage/predicate.h +4 -4
  293. data/ext/pg_query/include/storage/proc.h +173 -59
  294. data/ext/pg_query/include/storage/procarray.h +98 -0
  295. data/ext/pg_query/include/storage/proclist_types.h +1 -1
  296. data/ext/pg_query/include/storage/procsignal.h +3 -7
  297. data/ext/pg_query/include/storage/relfilenode.h +1 -1
  298. data/ext/pg_query/include/storage/s_lock.h +60 -21
  299. data/ext/pg_query/include/storage/sharedfileset.h +3 -11
  300. data/ext/pg_query/include/storage/shm_mq.h +5 -4
  301. data/ext/pg_query/include/storage/shm_toc.h +1 -1
  302. data/ext/pg_query/include/storage/shmem.h +1 -1
  303. data/ext/pg_query/include/storage/sinval.h +3 -3
  304. data/ext/pg_query/include/storage/sinvaladt.h +1 -1
  305. data/ext/pg_query/include/storage/smgr.h +10 -8
  306. data/ext/pg_query/include/storage/spin.h +2 -2
  307. data/ext/pg_query/include/storage/standby.h +13 -6
  308. data/ext/pg_query/include/storage/standbydefs.h +2 -2
  309. data/ext/pg_query/include/storage/sync.h +7 -3
  310. data/ext/pg_query/include/tcop/cmdtag.h +1 -1
  311. data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
  312. data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
  313. data/ext/pg_query/include/tcop/dest.h +1 -1
  314. data/ext/pg_query/include/tcop/fastpath.h +1 -2
  315. data/ext/pg_query/include/tcop/pquery.h +1 -1
  316. data/ext/pg_query/include/tcop/tcopprot.h +19 -11
  317. data/ext/pg_query/include/tcop/utility.h +7 -3
  318. data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
  319. data/ext/pg_query/include/utils/acl.h +24 -3
  320. data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
  321. data/ext/pg_query/include/utils/array.h +7 -2
  322. data/ext/pg_query/include/utils/backend_progress.h +44 -0
  323. data/ext/pg_query/include/utils/backend_status.h +321 -0
  324. data/ext/pg_query/include/utils/builtins.h +10 -11
  325. data/ext/pg_query/include/utils/bytea.h +3 -2
  326. data/ext/pg_query/include/utils/catcache.h +1 -1
  327. data/ext/pg_query/include/utils/date.h +1 -1
  328. data/ext/pg_query/include/utils/datetime.h +8 -7
  329. data/ext/pg_query/include/utils/datum.h +9 -1
  330. data/ext/pg_query/include/utils/dsa.h +1 -1
  331. data/ext/pg_query/include/utils/dynahash.h +4 -3
  332. data/ext/pg_query/include/utils/elog.h +52 -21
  333. data/ext/pg_query/include/utils/errcodes.h +2 -0
  334. data/ext/pg_query/include/utils/expandeddatum.h +1 -1
  335. data/ext/pg_query/include/utils/expandedrecord.h +1 -1
  336. data/ext/pg_query/include/utils/float.h +7 -7
  337. data/ext/pg_query/include/utils/fmgroids.h +1300 -696
  338. data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
  339. data/ext/pg_query/include/utils/fmgrtab.h +6 -5
  340. data/ext/pg_query/include/utils/guc.h +69 -43
  341. data/ext/pg_query/include/utils/guc_tables.h +23 -19
  342. data/ext/pg_query/include/utils/hsearch.h +15 -11
  343. data/ext/pg_query/include/utils/inval.h +4 -1
  344. data/ext/pg_query/include/utils/lsyscache.h +11 -1
  345. data/ext/pg_query/include/utils/memdebug.h +1 -1
  346. data/ext/pg_query/include/utils/memutils.h +8 -3
  347. data/ext/pg_query/include/utils/numeric.h +19 -5
  348. data/ext/pg_query/include/utils/palloc.h +25 -3
  349. data/ext/pg_query/include/utils/partcache.h +1 -1
  350. data/ext/pg_query/include/utils/pg_locale.h +17 -9
  351. data/ext/pg_query/include/utils/pg_lsn.h +1 -1
  352. data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
  353. data/ext/pg_query/include/utils/pidfile.h +1 -1
  354. data/ext/pg_query/include/utils/plancache.h +6 -5
  355. data/ext/pg_query/include/utils/portal.h +10 -12
  356. data/ext/pg_query/include/utils/ps_status.h +1 -1
  357. data/ext/pg_query/include/utils/queryenvironment.h +1 -1
  358. data/ext/pg_query/include/utils/queryjumble.h +88 -0
  359. data/ext/pg_query/include/utils/regproc.h +14 -3
  360. data/ext/pg_query/include/utils/rel.h +71 -19
  361. data/ext/pg_query/include/utils/relcache.h +8 -5
  362. data/ext/pg_query/include/utils/reltrigger.h +1 -1
  363. data/ext/pg_query/include/utils/resowner.h +1 -1
  364. data/ext/pg_query/include/utils/rls.h +2 -2
  365. data/ext/pg_query/include/utils/ruleutils.h +4 -1
  366. data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
  367. data/ext/pg_query/include/utils/snapmgr.h +34 -14
  368. data/ext/pg_query/include/utils/snapshot.h +14 -1
  369. data/ext/pg_query/include/utils/sortsupport.h +117 -2
  370. data/ext/pg_query/include/utils/syscache.h +6 -1
  371. data/ext/pg_query/include/utils/timeout.h +11 -4
  372. data/ext/pg_query/include/utils/timestamp.h +6 -5
  373. data/ext/pg_query/include/utils/tuplesort.h +25 -11
  374. data/ext/pg_query/include/utils/tuplestore.h +2 -2
  375. data/ext/pg_query/include/utils/typcache.h +24 -17
  376. data/ext/pg_query/include/utils/tzparser.h +1 -1
  377. data/ext/pg_query/include/utils/varlena.h +5 -3
  378. data/ext/pg_query/include/utils/wait_event.h +289 -0
  379. data/ext/pg_query/include/utils/xml.h +4 -4
  380. data/ext/pg_query/pg_query.pb-c.c +4302 -2304
  381. data/ext/pg_query/pg_query_deparse.c +1106 -373
  382. data/ext/pg_query/pg_query_fingerprint.c +30 -10
  383. data/ext/pg_query/pg_query_json_plpgsql.c +0 -25
  384. data/ext/pg_query/pg_query_normalize.c +1 -1
  385. data/ext/pg_query/pg_query_outfuncs_json.c +54 -16
  386. data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
  387. data/ext/pg_query/pg_query_parse.c +1 -1
  388. data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
  389. data/ext/pg_query/pg_query_scan.c +2 -1
  390. data/ext/pg_query/pg_query_split.c +3 -2
  391. data/ext/pg_query/src_backend_catalog_namespace.c +20 -9
  392. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  393. data/ext/pg_query/src_backend_commands_define.c +11 -1
  394. data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
  395. data/ext/pg_query/src_backend_nodes_copyfuncs.c +401 -76
  396. data/ext/pg_query/src_backend_nodes_equalfuncs.c +290 -46
  397. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  398. data/ext/pg_query/src_backend_nodes_list.c +74 -11
  399. data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
  400. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
  401. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  402. data/ext/pg_query/src_backend_parser_gram.c +33874 -31261
  403. data/ext/pg_query/src_backend_parser_parser.c +26 -7
  404. data/ext/pg_query/src_backend_parser_scan.c +172 -209
  405. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  406. data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
  407. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  408. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
  409. data/ext/pg_query/src_backend_tcop_postgres.c +62 -23
  410. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  411. data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
  412. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  413. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  414. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +71 -5
  415. data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
  416. data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
  417. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
  418. data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
  419. data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
  420. data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
  421. data/ext/pg_query/src_backend_utils_misc_guc.c +206 -45
  422. data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
  423. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
  424. data/ext/pg_query/src_common_encnames.c +1 -1
  425. data/ext/pg_query/src_common_hashfn.c +3 -3
  426. data/ext/pg_query/src_common_keywords.c +15 -2
  427. data/ext/pg_query/src_common_kwlist_d.h +517 -494
  428. data/ext/pg_query/src_common_kwlookup.c +1 -1
  429. data/ext/pg_query/src_common_pg_prng.c +152 -0
  430. data/ext/pg_query/src_common_psprintf.c +1 -1
  431. data/ext/pg_query/src_common_string.c +7 -1
  432. data/ext/pg_query/src_common_stringinfo.c +1 -1
  433. data/ext/pg_query/src_common_wchar.c +701 -109
  434. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +45 -20
  435. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
  436. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1233 -1259
  437. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  438. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  439. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  440. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
  441. data/ext/pg_query/src_port_pg_bitutils.c +41 -31
  442. data/ext/pg_query/src_port_pgsleep.c +1 -1
  443. data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
  444. data/ext/pg_query/src_port_qsort.c +12 -224
  445. data/ext/pg_query/src_port_snprintf.c +37 -13
  446. data/ext/pg_query/src_port_strerror.c +9 -19
  447. data/ext/pg_query/src_port_strnlen.c +1 -1
  448. data/lib/pg_query/filter_columns.rb +1 -1
  449. data/lib/pg_query/fingerprint.rb +5 -1
  450. data/lib/pg_query/node.rb +2 -2
  451. data/lib/pg_query/param_refs.rb +1 -1
  452. data/lib/pg_query/parse.rb +18 -8
  453. data/lib/pg_query/pg_query_pb.rb +1108 -942
  454. data/lib/pg_query/truncate.rb +1 -1
  455. data/lib/pg_query/version.rb +1 -1
  456. metadata +28 -18
  457. data/ext/pg_query/include/access/xloginsert.h +0 -64
  458. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  459. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  460. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  461. data/ext/pg_query/include/parser/parse_target.h +0 -46
  462. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  463. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
  464. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  465. data/ext/pg_query/src_port_erand48.c +0 -127
  466. data/ext/pg_query/src_port_random.c +0 -31
@@ -3,7 +3,7 @@
3
3
  * pg_type_d.h
4
4
  * Macro definitions for pg_type
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
@@ -20,6 +20,8 @@
20
20
 
21
21
  #define TypeRelationId 1247
22
22
  #define TypeRelation_Rowtype_Id 71
23
+ #define TypeOidIndexId 2703
24
+ #define TypeNameNspIndexId 2704
23
25
 
24
26
  #define Anum_pg_type_oid 1
25
27
  #define Anum_pg_type_typname 2
@@ -33,27 +35,28 @@
33
35
  #define Anum_pg_type_typisdefined 10
34
36
  #define Anum_pg_type_typdelim 11
35
37
  #define Anum_pg_type_typrelid 12
36
- #define Anum_pg_type_typelem 13
37
- #define Anum_pg_type_typarray 14
38
- #define Anum_pg_type_typinput 15
39
- #define Anum_pg_type_typoutput 16
40
- #define Anum_pg_type_typreceive 17
41
- #define Anum_pg_type_typsend 18
42
- #define Anum_pg_type_typmodin 19
43
- #define Anum_pg_type_typmodout 20
44
- #define Anum_pg_type_typanalyze 21
45
- #define Anum_pg_type_typalign 22
46
- #define Anum_pg_type_typstorage 23
47
- #define Anum_pg_type_typnotnull 24
48
- #define Anum_pg_type_typbasetype 25
49
- #define Anum_pg_type_typtypmod 26
50
- #define Anum_pg_type_typndims 27
51
- #define Anum_pg_type_typcollation 28
52
- #define Anum_pg_type_typdefaultbin 29
53
- #define Anum_pg_type_typdefault 30
54
- #define Anum_pg_type_typacl 31
38
+ #define Anum_pg_type_typsubscript 13
39
+ #define Anum_pg_type_typelem 14
40
+ #define Anum_pg_type_typarray 15
41
+ #define Anum_pg_type_typinput 16
42
+ #define Anum_pg_type_typoutput 17
43
+ #define Anum_pg_type_typreceive 18
44
+ #define Anum_pg_type_typsend 19
45
+ #define Anum_pg_type_typmodin 20
46
+ #define Anum_pg_type_typmodout 21
47
+ #define Anum_pg_type_typanalyze 22
48
+ #define Anum_pg_type_typalign 23
49
+ #define Anum_pg_type_typstorage 24
50
+ #define Anum_pg_type_typnotnull 25
51
+ #define Anum_pg_type_typbasetype 26
52
+ #define Anum_pg_type_typtypmod 27
53
+ #define Anum_pg_type_typndims 28
54
+ #define Anum_pg_type_typcollation 29
55
+ #define Anum_pg_type_typdefaultbin 30
56
+ #define Anum_pg_type_typdefault 31
57
+ #define Anum_pg_type_typacl 32
55
58
 
56
- #define Natts_pg_type 31
59
+ #define Natts_pg_type 32
57
60
 
58
61
 
59
62
  /*
@@ -63,6 +66,7 @@
63
66
  #define TYPTYPE_COMPOSITE 'c' /* composite (e.g., table's rowtype) */
64
67
  #define TYPTYPE_DOMAIN 'd' /* domain over another type */
65
68
  #define TYPTYPE_ENUM 'e' /* enumerated type */
69
+ #define TYPTYPE_MULTIRANGE 'm' /* multirange type */
66
70
  #define TYPTYPE_PSEUDO 'p' /* pseudo-type */
67
71
  #define TYPTYPE_RANGE 'r' /* range type */
68
72
 
@@ -82,6 +86,7 @@
82
86
  #define TYPCATEGORY_USER 'U'
83
87
  #define TYPCATEGORY_BITSTRING 'V' /* er ... "varbit"? */
84
88
  #define TYPCATEGORY_UNKNOWN 'X'
89
+ #define TYPCATEGORY_INTERNAL 'Z'
85
90
 
86
91
  #define TYPALIGN_CHAR 'c' /* char alignment (i.e. unaligned) */
87
92
  #define TYPALIGN_SHORT 's' /* short alignment (typically 2 bytes) */
@@ -104,13 +109,27 @@
104
109
  (typid) == ANYARRAYOID || \
105
110
  (typid) == ANYNONARRAYOID || \
106
111
  (typid) == ANYENUMOID || \
107
- (typid) == ANYRANGEOID)
112
+ (typid) == ANYRANGEOID || \
113
+ (typid) == ANYMULTIRANGEOID)
108
114
 
109
115
  #define IsPolymorphicTypeFamily2(typid) \
110
116
  ((typid) == ANYCOMPATIBLEOID || \
111
117
  (typid) == ANYCOMPATIBLEARRAYOID || \
112
118
  (typid) == ANYCOMPATIBLENONARRAYOID || \
113
- (typid) == ANYCOMPATIBLERANGEOID)
119
+ (typid) == ANYCOMPATIBLERANGEOID || \
120
+ (typid) == ANYCOMPATIBLEMULTIRANGEOID)
121
+
122
+ /* Is this a "true" array type? (Requires fmgroids.h) */
123
+ #define IsTrueArrayType(typeForm) \
124
+ (OidIsValid((typeForm)->typelem) && \
125
+ (typeForm)->typsubscript == F_ARRAY_SUBSCRIPT_HANDLER)
126
+
127
+ /*
128
+ * Backwards compatibility for ancient random spellings of pg_type OID macros.
129
+ * Don't use these names in new code.
130
+ */
131
+ #define CASHOID MONEYOID
132
+ #define LSNOID PG_LSNOID
114
133
 
115
134
  #define BOOLOID 16
116
135
  #define BYTEAOID 17
@@ -129,11 +148,11 @@
129
148
  #define OIDVECTOROID 30
130
149
  #define JSONOID 114
131
150
  #define XMLOID 142
132
- #define PGNODETREEOID 194
133
- #define PGNDISTINCTOID 3361
134
- #define PGDEPENDENCIESOID 3402
135
- #define PGMCVLISTOID 5017
136
- #define PGDDLCOMMANDOID 32
151
+ #define PG_NODE_TREEOID 194
152
+ #define PG_NDISTINCTOID 3361
153
+ #define PG_DEPENDENCIESOID 3402
154
+ #define PG_MCV_LISTOID 5017
155
+ #define PG_DDL_COMMANDOID 32
137
156
  #define XID8OID 5069
138
157
  #define POINTOID 600
139
158
  #define LSEGOID 601
@@ -145,7 +164,7 @@
145
164
  #define FLOAT8OID 701
146
165
  #define UNKNOWNOID 705
147
166
  #define CIRCLEOID 718
148
- #define CASHOID 790
167
+ #define MONEYOID 790
149
168
  #define MACADDROID 829
150
169
  #define INETOID 869
151
170
  #define CIDROID 650
@@ -172,7 +191,7 @@
172
191
  #define REGROLEOID 4096
173
192
  #define REGNAMESPACEOID 4089
174
193
  #define UUIDOID 2950
175
- #define LSNOID 3220
194
+ #define PG_LSNOID 3220
176
195
  #define TSVECTOROID 3614
177
196
  #define GTSVECTOROID 3642
178
197
  #define TSQUERYOID 3615
@@ -188,6 +207,12 @@
188
207
  #define TSTZRANGEOID 3910
189
208
  #define DATERANGEOID 3912
190
209
  #define INT8RANGEOID 3926
210
+ #define INT4MULTIRANGEOID 4451
211
+ #define NUMMULTIRANGEOID 4532
212
+ #define TSMULTIRANGEOID 4533
213
+ #define TSTZMULTIRANGEOID 4534
214
+ #define DATEMULTIRANGEOID 4535
215
+ #define INT8MULTIRANGEOID 4536
191
216
  #define RECORDOID 2249
192
217
  #define RECORDARRAYOID 2287
193
218
  #define CSTRINGOID 2275
@@ -195,7 +220,7 @@
195
220
  #define ANYARRAYOID 2277
196
221
  #define VOIDOID 2278
197
222
  #define TRIGGEROID 2279
198
- #define EVTTRIGGEROID 3838
223
+ #define EVENT_TRIGGEROID 3838
199
224
  #define LANGUAGE_HANDLEROID 2280
200
225
  #define INTERNALOID 2281
201
226
  #define ANYELEMENTOID 2283
@@ -210,6 +235,10 @@
210
235
  #define ANYCOMPATIBLEARRAYOID 5078
211
236
  #define ANYCOMPATIBLENONARRAYOID 5079
212
237
  #define ANYCOMPATIBLERANGEOID 5080
238
+ #define ANYMULTIRANGEOID 4537
239
+ #define ANYCOMPATIBLEMULTIRANGEOID 4538
240
+ #define PG_BRIN_BLOOM_SUMMARYOID 4600
241
+ #define PG_BRIN_MINMAX_MULTI_SUMMARYOID 4601
213
242
  #define BOOLARRAYOID 1000
214
243
  #define BYTEAARRAYOID 1001
215
244
  #define CHARARRAYOID 1002
@@ -225,6 +254,10 @@
225
254
  #define XIDARRAYOID 1011
226
255
  #define CIDARRAYOID 1012
227
256
  #define OIDVECTORARRAYOID 1013
257
+ #define PG_TYPEARRAYOID 210
258
+ #define PG_ATTRIBUTEARRAYOID 270
259
+ #define PG_PROCARRAYOID 272
260
+ #define PG_CLASSARRAYOID 273
228
261
  #define JSONARRAYOID 199
229
262
  #define XMLARRAYOID 143
230
263
  #define XID8ARRAYOID 271
@@ -280,6 +313,12 @@
280
313
  #define TSTZRANGEARRAYOID 3911
281
314
  #define DATERANGEARRAYOID 3913
282
315
  #define INT8RANGEARRAYOID 3927
316
+ #define INT4MULTIRANGEARRAYOID 6150
317
+ #define NUMMULTIRANGEARRAYOID 6151
318
+ #define TSMULTIRANGEARRAYOID 6152
319
+ #define TSTZMULTIRANGEARRAYOID 6153
320
+ #define DATEMULTIRANGEARRAYOID 6155
321
+ #define INT8MULTIRANGEARRAYOID 6157
283
322
  #define CSTRINGARRAYOID 1263
284
323
 
285
324
  #endif /* PG_TYPE_D_H */
@@ -4,7 +4,7 @@
4
4
  * prototypes for functions in backend/catalog/storage.c
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/catalog/storage.h
@@ -20,9 +20,11 @@
20
20
  #include "utils/relcache.h"
21
21
 
22
22
  /* GUC variables */
23
- extern int wal_skip_threshold;
23
+ extern PGDLLIMPORT int wal_skip_threshold;
24
24
 
25
- extern SMgrRelation RelationCreateStorage(RelFileNode rnode, char relpersistence);
25
+ extern SMgrRelation RelationCreateStorage(RelFileNode rnode,
26
+ char relpersistence,
27
+ bool register_delete);
26
28
  extern void RelationDropStorage(Relation rel);
27
29
  extern void RelationPreserveStorage(RelFileNode rnode, bool atCommit);
28
30
  extern void RelationPreTruncate(Relation rel);
@@ -3,7 +3,7 @@
3
3
  * async.h
4
4
  * Asynchronous notification: NOTIFY, LISTEN, UNLISTEN
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/commands/async.h
@@ -20,8 +20,8 @@
20
20
  */
21
21
  #define NUM_NOTIFY_BUFFERS 8
22
22
 
23
- extern bool Trace_notify;
24
- extern volatile sig_atomic_t notifyInterruptPending;
23
+ extern PGDLLIMPORT bool Trace_notify;
24
+ extern PGDLLIMPORT volatile sig_atomic_t notifyInterruptPending;
25
25
 
26
26
  extern Size AsyncShmemSize(void);
27
27
  extern void AsyncShmemInit(void);
@@ -43,7 +43,6 @@ extern void AtAbort_Notify(void);
43
43
  extern void AtSubCommit_Notify(void);
44
44
  extern void AtSubAbort_Notify(void);
45
45
  extern void AtPrepare_Notify(void);
46
- extern void ProcessCompletedNotifies(void);
47
46
 
48
47
  /* signal handler for inbound notifies (PROCSIG_NOTIFY_INTERRUPT) */
49
48
  extern void HandleNotifyInterrupt(void);
@@ -4,7 +4,7 @@
4
4
  * Database management commands (create/drop database).
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/commands/dbcommands.h
@@ -24,6 +24,7 @@ extern void dropdb(const char *dbname, bool missing_ok, bool force);
24
24
  extern void DropDatabase(ParseState *pstate, DropdbStmt *stmt);
25
25
  extern ObjectAddress RenameDatabase(const char *oldname, const char *newname);
26
26
  extern Oid AlterDatabase(ParseState *pstate, AlterDatabaseStmt *stmt, bool isTopLevel);
27
+ extern ObjectAddress AlterDatabaseRefreshColl(AlterDatabaseRefreshCollStmt *stmt);
27
28
  extern Oid AlterDatabaseSet(AlterDatabaseSetStmt *stmt);
28
29
  extern ObjectAddress AlterDatabaseOwner(const char *dbname, Oid newOwnerId);
29
30
 
@@ -4,7 +4,7 @@
4
4
  * POSTGRES define and remove utility definitions.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/commands/defrem.h
@@ -34,10 +34,7 @@ extern ObjectAddress DefineIndex(Oid relationId,
34
34
  bool check_not_in_use,
35
35
  bool skip_build,
36
36
  bool quiet);
37
- extern void ReindexIndex(RangeVar *indexRelation, int options, bool concurrent);
38
- extern Oid ReindexTable(RangeVar *relation, int options, bool concurrent);
39
- extern void ReindexMultipleTables(const char *objectName, ReindexObjectType objectKind,
40
- int options, bool concurrent);
37
+ extern void ExecReindex(ParseState *pstate, ReindexStmt *stmt, bool isTopLevel);
41
38
  extern char *makeObjectName(const char *name1, const char *name2,
42
39
  const char *label);
43
40
  extern char *ChooseRelationName(const char *name1, const char *name2,
@@ -56,12 +53,10 @@ extern ObjectAddress CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt
56
53
  extern void RemoveFunctionById(Oid funcOid);
57
54
  extern ObjectAddress AlterFunction(ParseState *pstate, AlterFunctionStmt *stmt);
58
55
  extern ObjectAddress CreateCast(CreateCastStmt *stmt);
59
- extern void DropCastById(Oid castOid);
60
56
  extern ObjectAddress CreateTransform(CreateTransformStmt *stmt);
61
- extern void DropTransformById(Oid transformOid);
62
57
  extern void IsThereFunctionInNamespace(const char *proname, int pronargs,
63
58
  oidvector *proargtypes, Oid nspOid);
64
- extern void ExecuteDoStmt(DoStmt *stmt, bool atomic);
59
+ extern void ExecuteDoStmt(ParseState *pstate, DoStmt *stmt, bool atomic);
65
60
  extern void ExecuteCallStmt(CallStmt *stmt, ParamListInfo params, bool atomic, DestReceiver *dest);
66
61
  extern TupleDesc CallStmtResultDesc(CallStmt *stmt);
67
62
  extern Oid get_transform_oid(Oid type_id, Oid lang_id, bool missing_ok);
@@ -70,9 +65,11 @@ extern void interpret_function_parameter_list(ParseState *pstate,
70
65
  Oid languageOid,
71
66
  ObjectType objtype,
72
67
  oidvector **parameterTypes,
68
+ List **parameterTypes_list,
73
69
  ArrayType **allParameterTypes,
74
70
  ArrayType **parameterModes,
75
71
  ArrayType **parameterNames,
72
+ List **inParameterNames_list,
76
73
  List **parameterDefaults,
77
74
  Oid *variadicArgType,
78
75
  Oid *requiredResultType);
@@ -86,9 +83,8 @@ extern ObjectAddress AlterOperator(AlterOperatorStmt *stmt);
86
83
  extern ObjectAddress CreateStatistics(CreateStatsStmt *stmt);
87
84
  extern ObjectAddress AlterStatistics(AlterStatsStmt *stmt);
88
85
  extern void RemoveStatisticsById(Oid statsOid);
89
- extern void UpdateStatisticsForTypeChange(Oid statsOid,
90
- Oid relationOid, int attnum,
91
- Oid oldColumnType, Oid newColumnType);
86
+ extern void RemoveStatisticsDataById(Oid statsOid, bool inh);
87
+ extern Oid StatisticsGetRelation(Oid statId, bool missing_ok);
92
88
 
93
89
  /* commands/aggregatecmds.c */
94
90
  extern ObjectAddress DefineAggregate(ParseState *pstate, List *name, List *args, bool oldstyle,
@@ -98,10 +94,6 @@ extern ObjectAddress DefineAggregate(ParseState *pstate, List *name, List *args,
98
94
  extern ObjectAddress DefineOpClass(CreateOpClassStmt *stmt);
99
95
  extern ObjectAddress DefineOpFamily(CreateOpFamilyStmt *stmt);
100
96
  extern Oid AlterOpFamily(AlterOpFamilyStmt *stmt);
101
- extern void RemoveOpClassById(Oid opclassOid);
102
- extern void RemoveOpFamilyById(Oid opfamilyOid);
103
- extern void RemoveAmOpEntryById(Oid entryOid);
104
- extern void RemoveAmProcEntryById(Oid entryOid);
105
97
  extern void IsThereOpClassInNamespace(const char *opcname, Oid opcmethod,
106
98
  Oid opcnamespace);
107
99
  extern void IsThereOpFamilyInNamespace(const char *opfname, Oid opfmethod,
@@ -111,14 +103,11 @@ extern Oid get_opfamily_oid(Oid amID, List *opfamilyname, bool missing_ok);
111
103
 
112
104
  /* commands/tsearchcmds.c */
113
105
  extern ObjectAddress DefineTSParser(List *names, List *parameters);
114
- extern void RemoveTSParserById(Oid prsId);
115
106
 
116
107
  extern ObjectAddress DefineTSDictionary(List *names, List *parameters);
117
- extern void RemoveTSDictionaryById(Oid dictId);
118
108
  extern ObjectAddress AlterTSDictionary(AlterTSDictionaryStmt *stmt);
119
109
 
120
110
  extern ObjectAddress DefineTSTemplate(List *names, List *parameters);
121
- extern void RemoveTSTemplateById(Oid tmplId);
122
111
 
123
112
  extern ObjectAddress DefineTSConfiguration(List *names, List *parameters,
124
113
  ObjectAddress *copied);
@@ -133,16 +122,13 @@ extern ObjectAddress AlterForeignServerOwner(const char *name, Oid newOwnerId);
133
122
  extern void AlterForeignServerOwner_oid(Oid, Oid newOwnerId);
134
123
  extern ObjectAddress AlterForeignDataWrapperOwner(const char *name, Oid newOwnerId);
135
124
  extern void AlterForeignDataWrapperOwner_oid(Oid fwdId, Oid newOwnerId);
136
- extern ObjectAddress CreateForeignDataWrapper(CreateFdwStmt *stmt);
137
- extern ObjectAddress AlterForeignDataWrapper(AlterFdwStmt *stmt);
138
- extern void RemoveForeignDataWrapperById(Oid fdwId);
125
+ extern ObjectAddress CreateForeignDataWrapper(ParseState *pstate, CreateFdwStmt *stmt);
126
+ extern ObjectAddress AlterForeignDataWrapper(ParseState *pstate, AlterFdwStmt *stmt);
139
127
  extern ObjectAddress CreateForeignServer(CreateForeignServerStmt *stmt);
140
128
  extern ObjectAddress AlterForeignServer(AlterForeignServerStmt *stmt);
141
- extern void RemoveForeignServerById(Oid srvId);
142
129
  extern ObjectAddress CreateUserMapping(CreateUserMappingStmt *stmt);
143
130
  extern ObjectAddress AlterUserMapping(AlterUserMappingStmt *stmt);
144
131
  extern Oid RemoveUserMapping(DropUserMappingStmt *stmt);
145
- extern void RemoveUserMappingById(Oid umId);
146
132
  extern void CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid);
147
133
  extern void ImportForeignSchema(ImportForeignSchemaStmt *stmt);
148
134
  extern Datum transformGenericOptions(Oid catalogId,
@@ -152,7 +138,6 @@ extern Datum transformGenericOptions(Oid catalogId,
152
138
 
153
139
  /* commands/amcmds.c */
154
140
  extern ObjectAddress CreateAccessMethod(CreateAmStmt *stmt);
155
- extern void RemoveAccessMethodById(Oid amOid);
156
141
  extern Oid get_index_am_oid(const char *amname, bool missing_ok);
157
142
  extern Oid get_table_am_oid(const char *amname, bool missing_ok);
158
143
  extern Oid get_am_oid(const char *amname, bool missing_ok);
@@ -165,9 +150,11 @@ extern double defGetNumeric(DefElem *def);
165
150
  extern bool defGetBoolean(DefElem *def);
166
151
  extern int32 defGetInt32(DefElem *def);
167
152
  extern int64 defGetInt64(DefElem *def);
153
+ extern Oid defGetObjectId(DefElem *def);
168
154
  extern List *defGetQualifiedName(DefElem *def);
169
155
  extern TypeName *defGetTypeName(DefElem *def);
170
156
  extern int defGetTypeLength(DefElem *def);
171
157
  extern List *defGetStringList(DefElem *def);
158
+ extern void errorConflictingDefElem(DefElem *defel, ParseState *pstate) pg_attribute_noreturn();
172
159
 
173
160
  #endif /* DEFREM_H */
@@ -3,7 +3,7 @@
3
3
  * event_trigger.h
4
4
  * Declarations for command trigger handling.
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/commands/event_trigger.h
@@ -32,6 +32,7 @@ typedef struct EventTriggerData
32
32
  #define AT_REWRITE_ALTER_PERSISTENCE 0x01
33
33
  #define AT_REWRITE_DEFAULT_VAL 0x02
34
34
  #define AT_REWRITE_COLUMN_REWRITE 0x04
35
+ #define AT_REWRITE_ACCESS_METHOD 0x08
35
36
 
36
37
  /*
37
38
  * EventTriggerData is the node type that is passed as fmgr "context" info
@@ -41,7 +42,6 @@ typedef struct EventTriggerData
41
42
  ((fcinfo)->context != NULL && IsA((fcinfo)->context, EventTriggerData))
42
43
 
43
44
  extern Oid CreateEventTrigger(CreateEventTrigStmt *stmt);
44
- extern void RemoveEventTriggerById(Oid trigOid);
45
45
  extern Oid get_event_trigger_oid(const char *trigname, bool missing_ok);
46
46
 
47
47
  extern Oid AlterEventTrigger(AlterEventTrigStmt *stmt);
@@ -3,7 +3,7 @@
3
3
  * explain.h
4
4
  * prototypes for explain.c
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-5, Regents of the University of California
8
8
  *
9
9
  * src/include/commands/explain.h
@@ -4,7 +4,7 @@
4
4
  * PREPARE, EXECUTE and DEALLOCATE commands, and prepared-stmt storage
5
5
  *
6
6
  *
7
- * Copyright (c) 2002-2020, PostgreSQL Global Development Group
7
+ * Copyright (c) 2002-2022, PostgreSQL Global Development Group
8
8
  *
9
9
  * src/include/commands/prepare.h
10
10
  *
@@ -4,7 +4,7 @@
4
4
  * Tablespace management commands (create/drop tablespace).
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/commands/tablespace.h
@@ -19,7 +19,7 @@
19
19
  #include "lib/stringinfo.h"
20
20
  #include "nodes/parsenodes.h"
21
21
 
22
- extern bool allow_in_place_tablespaces;
22
+ extern PGDLLIMPORT bool allow_in_place_tablespaces;
23
23
 
24
24
  /* XLOG stuff */
25
25
  #define XLOG_TBLSPC_CREATE 0x00
@@ -3,7 +3,7 @@
3
3
  * trigger.h
4
4
  * Declarations for trigger handling.
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/commands/trigger.h
@@ -13,6 +13,7 @@
13
13
  #ifndef TRIGGER_H
14
14
  #define TRIGGER_H
15
15
 
16
+ #include "access/tableam.h"
16
17
  #include "catalog/objectaddress.h"
17
18
  #include "nodes/execnodes.h"
18
19
  #include "nodes/parsenodes.h"
@@ -44,9 +45,9 @@ typedef struct TriggerData
44
45
 
45
46
  /*
46
47
  * The state for capturing old and new tuples into transition tables for a
47
- * single ModifyTable node (or other operation source, e.g. copy.c).
48
+ * single ModifyTable node (or other operation source, e.g. copyfrom.c).
48
49
  *
49
- * This is per-caller to avoid conflicts in setting tcs_map or
50
+ * This is per-caller to avoid conflicts in setting
50
51
  * tcs_original_insert_tuple. Note, however, that the pointed-to
51
52
  * private data may be shared across multiple callers.
52
53
  */
@@ -65,20 +66,12 @@ typedef struct TransitionCaptureState
65
66
  bool tcs_update_new_table;
66
67
  bool tcs_insert_new_table;
67
68
 
68
- /*
69
- * For UPDATE and DELETE, AfterTriggerSaveEvent may need to convert the
70
- * new and old tuples from a child table's format to the format of the
71
- * relation named in a query so that it is compatible with the transition
72
- * tuplestores. The caller must store the conversion map here if so.
73
- */
74
- TupleConversionMap *tcs_map;
75
-
76
69
  /*
77
70
  * For INSERT and COPY, it would be wasteful to convert tuples from child
78
71
  * format to parent format after they have already been converted in the
79
72
  * opposite direction during routing. In that case we bypass conversion
80
- * and allow the inserting code (copy.c and nodeModifyTable.c) to provide
81
- * a slot containing the original tuple directly.
73
+ * and allow the inserting code (copyfrom.c and nodeModifyTable.c) to
74
+ * provide a slot containing the original tuple directly.
82
75
  */
83
76
  TupleTableSlot *tcs_original_insert_tuple;
84
77
 
@@ -168,6 +161,10 @@ extern ObjectAddress CreateTriggerFiringOn(CreateTrigStmt *stmt, const char *que
168
161
  Node *whenClause, bool isInternal, bool in_partition,
169
162
  char trigger_fires_when);
170
163
 
164
+ extern void TriggerSetParentTrigger(Relation trigRel,
165
+ Oid childTrigId,
166
+ Oid parentTrigId,
167
+ Oid childTableId);
171
168
  extern void RemoveTriggerById(Oid trigOid);
172
169
  extern Oid get_trigger_oid(Oid relid, const char *name, bool missing_ok);
173
170
 
@@ -221,7 +218,8 @@ extern void ExecARDeleteTriggers(EState *estate,
221
218
  ResultRelInfo *relinfo,
222
219
  ItemPointer tupleid,
223
220
  HeapTuple fdw_trigtuple,
224
- TransitionCaptureState *transition_capture);
221
+ TransitionCaptureState *transition_capture,
222
+ bool is_crosspart_update);
225
223
  extern bool ExecIRDeleteTriggers(EState *estate,
226
224
  ResultRelInfo *relinfo,
227
225
  HeapTuple trigtuple);
@@ -235,14 +233,18 @@ extern bool ExecBRUpdateTriggers(EState *estate,
235
233
  ResultRelInfo *relinfo,
236
234
  ItemPointer tupleid,
237
235
  HeapTuple fdw_trigtuple,
238
- TupleTableSlot *slot);
236
+ TupleTableSlot *slot,
237
+ TM_FailureData *tmfdp);
239
238
  extern void ExecARUpdateTriggers(EState *estate,
240
239
  ResultRelInfo *relinfo,
240
+ ResultRelInfo *src_partinfo,
241
+ ResultRelInfo *dst_partinfo,
241
242
  ItemPointer tupleid,
242
243
  HeapTuple fdw_trigtuple,
243
244
  TupleTableSlot *slot,
244
245
  List *recheckIndexes,
245
- TransitionCaptureState *transition_capture);
246
+ TransitionCaptureState *transition_capture,
247
+ bool is_crosspart_update);
246
248
  extern bool ExecIRUpdateTriggers(EState *estate,
247
249
  ResultRelInfo *relinfo,
248
250
  HeapTuple trigtuple,
@@ -17,7 +17,7 @@
17
17
  #include "parser/parse_node.h"
18
18
 
19
19
  /* GUC. Is actually of type PasswordType. */
20
- extern int Password_encryption;
20
+ extern PGDLLIMPORT int Password_encryption;
21
21
 
22
22
  /* Hook to check passwords in CreateRole() and AlterRole() */
23
23
  typedef void (*check_password_hook_type) (const char *username, const char *shadow_pass, PasswordType password_type, Datum validuntil_time, bool validuntil_null);
@@ -25,7 +25,7 @@ typedef void (*check_password_hook_type) (const char *username, const char *shad
25
25
  extern PGDLLIMPORT check_password_hook_type check_password_hook;
26
26
 
27
27
  extern Oid CreateRole(ParseState *pstate, CreateRoleStmt *stmt);
28
- extern Oid AlterRole(AlterRoleStmt *stmt);
28
+ extern Oid AlterRole(ParseState *pstate, AlterRoleStmt *stmt);
29
29
  extern Oid AlterRoleSet(AlterRoleSetStmt *stmt);
30
30
  extern void DropRole(DropRoleStmt *stmt);
31
31
  extern void GrantRole(GrantRoleStmt *stmt);