pg_query 2.2.1 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/Rakefile +2 -2
  4. data/ext/pg_query/include/access/amapi.h +45 -1
  5. data/ext/pg_query/include/access/attmap.h +1 -1
  6. data/ext/pg_query/include/access/attnum.h +2 -2
  7. data/ext/pg_query/include/access/clog.h +4 -2
  8. data/ext/pg_query/include/access/commit_ts.h +6 -9
  9. data/ext/pg_query/include/access/detoast.h +1 -11
  10. data/ext/pg_query/include/access/genam.h +15 -12
  11. data/ext/pg_query/include/access/gin.h +2 -2
  12. data/ext/pg_query/include/access/htup.h +1 -1
  13. data/ext/pg_query/include/access/htup_details.h +75 -87
  14. data/ext/pg_query/include/access/itup.h +7 -1
  15. data/ext/pg_query/include/access/parallel.h +2 -2
  16. data/ext/pg_query/include/access/printtup.h +1 -1
  17. data/ext/pg_query/include/access/relation.h +1 -1
  18. data/ext/pg_query/include/access/relscan.h +17 -2
  19. data/ext/pg_query/include/access/rmgr.h +30 -3
  20. data/ext/pg_query/include/access/rmgrlist.h +23 -23
  21. data/ext/pg_query/include/access/sdir.h +1 -1
  22. data/ext/pg_query/include/access/skey.h +1 -1
  23. data/ext/pg_query/include/access/stratnum.h +4 -2
  24. data/ext/pg_query/include/access/sysattr.h +1 -1
  25. data/ext/pg_query/include/access/table.h +2 -1
  26. data/ext/pg_query/include/access/tableam.h +272 -20
  27. data/ext/pg_query/include/access/toast_compression.h +73 -0
  28. data/ext/pg_query/include/access/transam.h +123 -13
  29. data/ext/pg_query/include/access/tupconvert.h +1 -1
  30. data/ext/pg_query/include/access/tupdesc.h +1 -1
  31. data/ext/pg_query/include/access/tupmacs.h +3 -3
  32. data/ext/pg_query/include/access/twophase.h +3 -1
  33. data/ext/pg_query/include/access/xact.h +73 -19
  34. data/ext/pg_query/include/access/xlog.h +60 -155
  35. data/ext/pg_query/include/access/xlog_internal.h +40 -13
  36. data/ext/pg_query/include/access/xlogdefs.h +8 -16
  37. data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
  38. data/ext/pg_query/include/access/xlogreader.h +145 -39
  39. data/ext/pg_query/include/access/xlogrecord.h +18 -9
  40. data/ext/pg_query/include/access/xlogrecovery.h +157 -0
  41. data/ext/pg_query/include/c.h +101 -44
  42. data/ext/pg_query/include/catalog/catalog.h +3 -1
  43. data/ext/pg_query/include/catalog/catversion.h +2 -2
  44. data/ext/pg_query/include/catalog/dependency.h +8 -16
  45. data/ext/pg_query/include/catalog/genbki.h +83 -5
  46. data/ext/pg_query/include/catalog/index.h +18 -3
  47. data/ext/pg_query/include/catalog/indexing.h +12 -324
  48. data/ext/pg_query/include/catalog/namespace.h +4 -2
  49. data/ext/pg_query/include/catalog/objectaccess.h +70 -2
  50. data/ext/pg_query/include/catalog/objectaddress.h +11 -6
  51. data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
  52. data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
  53. data/ext/pg_query/include/catalog/pg_am.h +4 -1
  54. data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
  55. data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
  56. data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
  57. data/ext/pg_query/include/catalog/pg_authid.h +7 -2
  58. data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
  59. data/ext/pg_query/include/catalog/pg_class.h +44 -14
  60. data/ext/pg_query/include/catalog/pg_class_d.h +30 -1
  61. data/ext/pg_query/include/catalog/pg_collation.h +33 -8
  62. data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
  63. data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
  64. data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
  65. data/ext/pg_query/include/catalog/pg_control.h +3 -5
  66. data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
  67. data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
  68. data/ext/pg_query/include/catalog/pg_depend.h +11 -7
  69. data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
  70. data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
  71. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
  72. data/ext/pg_query/include/catalog/pg_index.h +17 -7
  73. data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
  74. data/ext/pg_query/include/catalog/pg_language.h +10 -5
  75. data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
  76. data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
  77. data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
  78. data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
  79. data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
  80. data/ext/pg_query/include/catalog/pg_operator.h +18 -15
  81. data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
  82. data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
  83. data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
  84. data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
  85. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
  86. data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
  87. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
  88. data/ext/pg_query/include/catalog/pg_proc.h +20 -11
  89. data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
  90. data/ext/pg_query/include/catalog/pg_publication.h +50 -7
  91. data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
  92. data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
  93. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
  94. data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
  95. data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
  96. data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
  97. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
  98. data/ext/pg_query/include/catalog/pg_transform.h +8 -5
  99. data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
  100. data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
  101. data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
  102. data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
  103. data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
  104. data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
  105. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
  106. data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
  107. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
  108. data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
  109. data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
  110. data/ext/pg_query/include/catalog/pg_type.h +55 -24
  111. data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
  112. data/ext/pg_query/include/catalog/storage.h +5 -3
  113. data/ext/pg_query/include/commands/async.h +3 -4
  114. data/ext/pg_query/include/commands/dbcommands.h +2 -1
  115. data/ext/pg_query/include/commands/defrem.h +11 -24
  116. data/ext/pg_query/include/commands/event_trigger.h +2 -2
  117. data/ext/pg_query/include/commands/explain.h +1 -1
  118. data/ext/pg_query/include/commands/prepare.h +1 -1
  119. data/ext/pg_query/include/commands/tablespace.h +2 -2
  120. data/ext/pg_query/include/commands/trigger.h +18 -16
  121. data/ext/pg_query/include/commands/user.h +2 -2
  122. data/ext/pg_query/include/commands/vacuum.h +88 -41
  123. data/ext/pg_query/include/commands/variable.h +1 -1
  124. data/ext/pg_query/include/common/file_perm.h +4 -4
  125. data/ext/pg_query/include/common/hashfn.h +1 -1
  126. data/ext/pg_query/include/common/ip.h +1 -7
  127. data/ext/pg_query/include/common/keywords.h +2 -6
  128. data/ext/pg_query/include/common/kwlookup.h +1 -1
  129. data/ext/pg_query/include/common/pg_prng.h +60 -0
  130. data/ext/pg_query/include/common/relpath.h +2 -2
  131. data/ext/pg_query/include/common/string.h +24 -1
  132. data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
  133. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
  134. data/ext/pg_query/include/datatype/timestamp.h +40 -1
  135. data/ext/pg_query/include/executor/execdesc.h +1 -1
  136. data/ext/pg_query/include/executor/executor.h +65 -22
  137. data/ext/pg_query/include/executor/functions.h +17 -3
  138. data/ext/pg_query/include/executor/instrument.h +33 -16
  139. data/ext/pg_query/include/executor/spi.h +41 -3
  140. data/ext/pg_query/include/executor/tablefunc.h +1 -1
  141. data/ext/pg_query/include/executor/tuptable.h +1 -1
  142. data/ext/pg_query/include/fmgr.h +13 -7
  143. data/ext/pg_query/include/funcapi.h +16 -4
  144. data/ext/pg_query/include/getaddrinfo.h +1 -1
  145. data/ext/pg_query/include/jit/jit.h +11 -11
  146. data/ext/pg_query/include/kwlist_d.h +517 -494
  147. data/ext/pg_query/include/lib/dshash.h +112 -0
  148. data/ext/pg_query/include/lib/ilist.h +20 -1
  149. data/ext/pg_query/include/lib/pairingheap.h +1 -1
  150. data/ext/pg_query/include/lib/simplehash.h +140 -15
  151. data/ext/pg_query/include/lib/sort_template.h +432 -0
  152. data/ext/pg_query/include/lib/stringinfo.h +1 -1
  153. data/ext/pg_query/include/libpq/auth.h +6 -4
  154. data/ext/pg_query/include/libpq/crypt.h +5 -4
  155. data/ext/pg_query/include/libpq/hba.h +43 -4
  156. data/ext/pg_query/include/libpq/libpq-be.h +23 -6
  157. data/ext/pg_query/include/libpq/libpq.h +30 -20
  158. data/ext/pg_query/include/libpq/pqcomm.h +17 -31
  159. data/ext/pg_query/include/libpq/pqformat.h +1 -1
  160. data/ext/pg_query/include/libpq/pqsignal.h +4 -4
  161. data/ext/pg_query/include/mb/pg_wchar.h +105 -23
  162. data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
  163. data/ext/pg_query/include/miscadmin.h +47 -41
  164. data/ext/pg_query/include/nodes/bitmapset.h +1 -1
  165. data/ext/pg_query/include/nodes/execnodes.h +270 -78
  166. data/ext/pg_query/include/nodes/extensible.h +4 -2
  167. data/ext/pg_query/include/nodes/lockoptions.h +1 -1
  168. data/ext/pg_query/include/nodes/makefuncs.h +7 -6
  169. data/ext/pg_query/include/nodes/memnodes.h +5 -3
  170. data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
  171. data/ext/pg_query/include/nodes/nodes.h +30 -11
  172. data/ext/pg_query/include/nodes/params.h +1 -1
  173. data/ext/pg_query/include/nodes/parsenodes.h +322 -90
  174. data/ext/pg_query/include/nodes/pathnodes.h +243 -66
  175. data/ext/pg_query/include/nodes/pg_list.h +75 -69
  176. data/ext/pg_query/include/nodes/plannodes.h +111 -28
  177. data/ext/pg_query/include/nodes/primnodes.h +99 -47
  178. data/ext/pg_query/include/nodes/print.h +1 -1
  179. data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
  180. data/ext/pg_query/include/nodes/value.h +58 -39
  181. data/ext/pg_query/include/optimizer/cost.h +9 -2
  182. data/ext/pg_query/include/optimizer/geqo.h +9 -7
  183. data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
  184. data/ext/pg_query/include/optimizer/optimizer.h +25 -17
  185. data/ext/pg_query/include/optimizer/paths.h +6 -6
  186. data/ext/pg_query/include/optimizer/planmain.h +15 -14
  187. data/ext/pg_query/include/parser/analyze.h +19 -5
  188. data/ext/pg_query/include/parser/gram.h +947 -913
  189. data/ext/pg_query/include/parser/gramparse.h +1 -1
  190. data/ext/pg_query/include/parser/kwlist.h +463 -453
  191. data/ext/pg_query/include/parser/parse_agg.h +2 -7
  192. data/ext/pg_query/include/parser/parse_coerce.h +3 -1
  193. data/ext/pg_query/include/parser/parse_expr.h +2 -3
  194. data/ext/pg_query/include/parser/parse_func.h +2 -1
  195. data/ext/pg_query/include/parser/parse_node.h +21 -9
  196. data/ext/pg_query/include/parser/parse_oper.h +1 -3
  197. data/ext/pg_query/include/parser/parse_relation.h +5 -4
  198. data/ext/pg_query/include/parser/parse_type.h +1 -1
  199. data/ext/pg_query/include/parser/parser.h +31 -4
  200. data/ext/pg_query/include/parser/parsetree.h +1 -1
  201. data/ext/pg_query/include/parser/scanner.h +1 -1
  202. data/ext/pg_query/include/parser/scansup.h +2 -5
  203. data/ext/pg_query/include/partitioning/partdefs.h +1 -1
  204. data/ext/pg_query/include/pg_config.h +83 -41
  205. data/ext/pg_query/include/pg_config_manual.h +74 -21
  206. data/ext/pg_query/include/pg_getopt.h +6 -6
  207. data/ext/pg_query/include/pg_query.h +5 -4
  208. data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
  209. data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
  210. data/ext/pg_query/include/pg_query_fingerprint_defs.c +939 -113
  211. data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
  212. data/ext/pg_query/include/pg_query_outfuncs_defs.c +151 -26
  213. data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
  214. data/ext/pg_query/include/pg_query_readfuncs_defs.c +173 -30
  215. data/ext/pg_query/include/pg_trace.h +1 -1
  216. data/ext/pg_query/include/pgstat.h +449 -1238
  217. data/ext/pg_query/include/pgtime.h +14 -4
  218. data/ext/pg_query/include/pl_gram.h +126 -128
  219. data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
  220. data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
  221. data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
  222. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
  223. data/ext/pg_query/include/plerrcodes.h +9 -1
  224. data/ext/pg_query/include/plpgsql.h +52 -54
  225. data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
  226. data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
  227. data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
  228. data/ext/pg_query/include/port/atomics/fallback.h +1 -1
  229. data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
  230. data/ext/pg_query/include/port/atomics/generic.h +1 -1
  231. data/ext/pg_query/include/port/atomics.h +1 -1
  232. data/ext/pg_query/include/port/pg_bitutils.h +40 -10
  233. data/ext/pg_query/include/port/pg_bswap.h +1 -1
  234. data/ext/pg_query/include/port/pg_crc32c.h +1 -1
  235. data/ext/pg_query/include/port.h +71 -46
  236. data/ext/pg_query/include/portability/instr_time.h +1 -1
  237. data/ext/pg_query/include/postgres.h +60 -16
  238. data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
  239. data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
  240. data/ext/pg_query/include/postmaster/bgworker.h +2 -1
  241. data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
  242. data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
  243. data/ext/pg_query/include/postmaster/fork_process.h +1 -1
  244. data/ext/pg_query/include/postmaster/interrupt.h +1 -1
  245. data/ext/pg_query/include/postmaster/pgarch.h +42 -8
  246. data/ext/pg_query/include/postmaster/postmaster.h +18 -17
  247. data/ext/pg_query/include/postmaster/startup.h +39 -0
  248. data/ext/pg_query/include/postmaster/syslogger.h +15 -10
  249. data/ext/pg_query/include/postmaster/walwriter.h +3 -3
  250. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1419 -914
  251. data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
  252. data/ext/pg_query/include/regex/regex.h +18 -16
  253. data/ext/pg_query/include/replication/logicallauncher.h +3 -5
  254. data/ext/pg_query/include/replication/logicalproto.h +161 -17
  255. data/ext/pg_query/include/replication/logicalworker.h +1 -1
  256. data/ext/pg_query/include/replication/origin.h +7 -7
  257. data/ext/pg_query/include/replication/reorderbuffer.h +259 -42
  258. data/ext/pg_query/include/replication/slot.h +22 -11
  259. data/ext/pg_query/include/replication/syncrep.h +5 -5
  260. data/ext/pg_query/include/replication/walreceiver.h +145 -13
  261. data/ext/pg_query/include/replication/walsender.h +8 -8
  262. data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
  263. data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
  264. data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
  265. data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
  266. data/ext/pg_query/include/storage/backendid.h +3 -3
  267. data/ext/pg_query/include/storage/block.h +4 -10
  268. data/ext/pg_query/include/storage/buf.h +1 -1
  269. data/ext/pg_query/include/storage/bufmgr.h +19 -14
  270. data/ext/pg_query/include/storage/bufpage.h +6 -8
  271. data/ext/pg_query/include/storage/condition_variable.h +13 -2
  272. data/ext/pg_query/include/storage/dsm.h +4 -1
  273. data/ext/pg_query/include/storage/dsm_impl.h +3 -2
  274. data/ext/pg_query/include/storage/fd.h +33 -3
  275. data/ext/pg_query/include/storage/fileset.h +40 -0
  276. data/ext/pg_query/include/storage/ipc.h +4 -1
  277. data/ext/pg_query/include/storage/item.h +1 -1
  278. data/ext/pg_query/include/storage/itemid.h +1 -1
  279. data/ext/pg_query/include/storage/itemptr.h +3 -1
  280. data/ext/pg_query/include/storage/large_object.h +2 -2
  281. data/ext/pg_query/include/storage/latch.h +9 -13
  282. data/ext/pg_query/include/storage/lmgr.h +2 -1
  283. data/ext/pg_query/include/storage/lock.h +11 -8
  284. data/ext/pg_query/include/storage/lockdefs.h +2 -2
  285. data/ext/pg_query/include/storage/lwlock.h +5 -32
  286. data/ext/pg_query/include/storage/lwlocknames.h +0 -1
  287. data/ext/pg_query/include/storage/off.h +1 -1
  288. data/ext/pg_query/include/storage/pg_sema.h +1 -1
  289. data/ext/pg_query/include/storage/pg_shmem.h +9 -7
  290. data/ext/pg_query/include/storage/pmsignal.h +15 -4
  291. data/ext/pg_query/include/storage/predicate.h +4 -4
  292. data/ext/pg_query/include/storage/proc.h +173 -59
  293. data/ext/pg_query/include/storage/procarray.h +98 -0
  294. data/ext/pg_query/include/storage/proclist_types.h +1 -1
  295. data/ext/pg_query/include/storage/procsignal.h +3 -7
  296. data/ext/pg_query/include/storage/relfilenode.h +1 -1
  297. data/ext/pg_query/include/storage/s_lock.h +60 -21
  298. data/ext/pg_query/include/storage/sharedfileset.h +3 -11
  299. data/ext/pg_query/include/storage/shm_mq.h +5 -4
  300. data/ext/pg_query/include/storage/shm_toc.h +1 -1
  301. data/ext/pg_query/include/storage/shmem.h +1 -1
  302. data/ext/pg_query/include/storage/sinval.h +3 -3
  303. data/ext/pg_query/include/storage/sinvaladt.h +1 -1
  304. data/ext/pg_query/include/storage/smgr.h +10 -8
  305. data/ext/pg_query/include/storage/spin.h +2 -2
  306. data/ext/pg_query/include/storage/standby.h +13 -6
  307. data/ext/pg_query/include/storage/standbydefs.h +2 -2
  308. data/ext/pg_query/include/storage/sync.h +7 -3
  309. data/ext/pg_query/include/tcop/cmdtag.h +1 -1
  310. data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
  311. data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
  312. data/ext/pg_query/include/tcop/dest.h +1 -1
  313. data/ext/pg_query/include/tcop/fastpath.h +1 -2
  314. data/ext/pg_query/include/tcop/pquery.h +1 -1
  315. data/ext/pg_query/include/tcop/tcopprot.h +19 -11
  316. data/ext/pg_query/include/tcop/utility.h +7 -3
  317. data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
  318. data/ext/pg_query/include/utils/acl.h +24 -3
  319. data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
  320. data/ext/pg_query/include/utils/array.h +7 -2
  321. data/ext/pg_query/include/utils/backend_progress.h +44 -0
  322. data/ext/pg_query/include/utils/backend_status.h +321 -0
  323. data/ext/pg_query/include/utils/builtins.h +10 -11
  324. data/ext/pg_query/include/utils/bytea.h +3 -2
  325. data/ext/pg_query/include/utils/catcache.h +1 -1
  326. data/ext/pg_query/include/utils/date.h +1 -1
  327. data/ext/pg_query/include/utils/datetime.h +8 -7
  328. data/ext/pg_query/include/utils/datum.h +9 -1
  329. data/ext/pg_query/include/utils/dsa.h +1 -1
  330. data/ext/pg_query/include/utils/dynahash.h +4 -3
  331. data/ext/pg_query/include/utils/elog.h +52 -21
  332. data/ext/pg_query/include/utils/errcodes.h +2 -0
  333. data/ext/pg_query/include/utils/expandeddatum.h +1 -1
  334. data/ext/pg_query/include/utils/expandedrecord.h +1 -1
  335. data/ext/pg_query/include/utils/float.h +7 -7
  336. data/ext/pg_query/include/utils/fmgroids.h +1300 -696
  337. data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
  338. data/ext/pg_query/include/utils/fmgrtab.h +6 -5
  339. data/ext/pg_query/include/utils/guc.h +69 -43
  340. data/ext/pg_query/include/utils/guc_tables.h +23 -19
  341. data/ext/pg_query/include/utils/hsearch.h +15 -11
  342. data/ext/pg_query/include/utils/inval.h +4 -1
  343. data/ext/pg_query/include/utils/lsyscache.h +11 -1
  344. data/ext/pg_query/include/utils/memdebug.h +1 -1
  345. data/ext/pg_query/include/utils/memutils.h +8 -3
  346. data/ext/pg_query/include/utils/numeric.h +19 -5
  347. data/ext/pg_query/include/utils/palloc.h +25 -3
  348. data/ext/pg_query/include/utils/partcache.h +1 -1
  349. data/ext/pg_query/include/utils/pg_locale.h +17 -9
  350. data/ext/pg_query/include/utils/pg_lsn.h +1 -1
  351. data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
  352. data/ext/pg_query/include/utils/pidfile.h +1 -1
  353. data/ext/pg_query/include/utils/plancache.h +6 -5
  354. data/ext/pg_query/include/utils/portal.h +10 -12
  355. data/ext/pg_query/include/utils/ps_status.h +1 -1
  356. data/ext/pg_query/include/utils/queryenvironment.h +1 -1
  357. data/ext/pg_query/include/utils/queryjumble.h +88 -0
  358. data/ext/pg_query/include/utils/regproc.h +14 -3
  359. data/ext/pg_query/include/utils/rel.h +71 -19
  360. data/ext/pg_query/include/utils/relcache.h +8 -5
  361. data/ext/pg_query/include/utils/reltrigger.h +1 -1
  362. data/ext/pg_query/include/utils/resowner.h +1 -1
  363. data/ext/pg_query/include/utils/rls.h +2 -2
  364. data/ext/pg_query/include/utils/ruleutils.h +4 -1
  365. data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
  366. data/ext/pg_query/include/utils/snapmgr.h +34 -14
  367. data/ext/pg_query/include/utils/snapshot.h +14 -1
  368. data/ext/pg_query/include/utils/sortsupport.h +117 -2
  369. data/ext/pg_query/include/utils/syscache.h +6 -1
  370. data/ext/pg_query/include/utils/timeout.h +11 -4
  371. data/ext/pg_query/include/utils/timestamp.h +6 -5
  372. data/ext/pg_query/include/utils/tuplesort.h +25 -11
  373. data/ext/pg_query/include/utils/tuplestore.h +2 -2
  374. data/ext/pg_query/include/utils/typcache.h +24 -17
  375. data/ext/pg_query/include/utils/tzparser.h +1 -1
  376. data/ext/pg_query/include/utils/varlena.h +5 -3
  377. data/ext/pg_query/include/utils/wait_event.h +289 -0
  378. data/ext/pg_query/include/utils/xml.h +4 -4
  379. data/ext/pg_query/pg_query.pb-c.c +4302 -2304
  380. data/ext/pg_query/pg_query_deparse.c +986 -301
  381. data/ext/pg_query/pg_query_fingerprint.c +30 -10
  382. data/ext/pg_query/pg_query_json_plpgsql.c +0 -25
  383. data/ext/pg_query/pg_query_normalize.c +1 -1
  384. data/ext/pg_query/pg_query_outfuncs_json.c +54 -16
  385. data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
  386. data/ext/pg_query/pg_query_parse.c +1 -1
  387. data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
  388. data/ext/pg_query/pg_query_scan.c +2 -1
  389. data/ext/pg_query/pg_query_split.c +3 -2
  390. data/ext/pg_query/src_backend_catalog_namespace.c +20 -9
  391. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  392. data/ext/pg_query/src_backend_commands_define.c +11 -1
  393. data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
  394. data/ext/pg_query/src_backend_nodes_copyfuncs.c +401 -76
  395. data/ext/pg_query/src_backend_nodes_equalfuncs.c +290 -46
  396. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  397. data/ext/pg_query/src_backend_nodes_list.c +74 -11
  398. data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
  399. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
  400. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  401. data/ext/pg_query/src_backend_parser_gram.c +33874 -31261
  402. data/ext/pg_query/src_backend_parser_parser.c +26 -7
  403. data/ext/pg_query/src_backend_parser_scan.c +172 -209
  404. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  405. data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
  406. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  407. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
  408. data/ext/pg_query/src_backend_tcop_postgres.c +62 -23
  409. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  410. data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
  411. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  412. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  413. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +71 -5
  414. data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
  415. data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
  416. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
  417. data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
  418. data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
  419. data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
  420. data/ext/pg_query/src_backend_utils_misc_guc.c +206 -45
  421. data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
  422. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
  423. data/ext/pg_query/src_common_encnames.c +1 -1
  424. data/ext/pg_query/src_common_hashfn.c +3 -3
  425. data/ext/pg_query/src_common_keywords.c +15 -2
  426. data/ext/pg_query/src_common_kwlist_d.h +517 -494
  427. data/ext/pg_query/src_common_kwlookup.c +1 -1
  428. data/ext/pg_query/src_common_pg_prng.c +152 -0
  429. data/ext/pg_query/src_common_psprintf.c +1 -1
  430. data/ext/pg_query/src_common_string.c +7 -1
  431. data/ext/pg_query/src_common_stringinfo.c +1 -1
  432. data/ext/pg_query/src_common_wchar.c +701 -109
  433. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +45 -20
  434. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
  435. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1233 -1259
  436. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  437. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  438. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  439. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
  440. data/ext/pg_query/src_port_pg_bitutils.c +41 -31
  441. data/ext/pg_query/src_port_pgsleep.c +1 -1
  442. data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
  443. data/ext/pg_query/src_port_qsort.c +12 -224
  444. data/ext/pg_query/src_port_snprintf.c +37 -13
  445. data/ext/pg_query/src_port_strerror.c +9 -19
  446. data/ext/pg_query/src_port_strnlen.c +1 -1
  447. data/lib/pg_query/filter_columns.rb +1 -1
  448. data/lib/pg_query/fingerprint.rb +5 -1
  449. data/lib/pg_query/node.rb +2 -2
  450. data/lib/pg_query/param_refs.rb +1 -1
  451. data/lib/pg_query/parse.rb +8 -7
  452. data/lib/pg_query/pg_query_pb.rb +1108 -942
  453. data/lib/pg_query/truncate.rb +1 -1
  454. data/lib/pg_query/version.rb +1 -1
  455. metadata +23 -13
  456. data/ext/pg_query/include/access/xloginsert.h +0 -64
  457. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  458. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  459. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  460. data/ext/pg_query/include/parser/parse_target.h +0 -46
  461. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  462. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
  463. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  464. data/ext/pg_query/src_port_erand48.c +0 -127
  465. data/ext/pg_query/src_port_random.c +0 -31
@@ -4,11 +4,8 @@
4
4
  * This file provides some definitions to support indexing
5
5
  * on system catalogs
6
6
  *
7
- * Caution: all #define's with numeric values in this file had better be
8
- * object OIDs, else renumber_oids.pl might change them inappropriately.
9
7
  *
10
- *
11
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
12
9
  * Portions Copyright (c) 1994, Regents of the University of California
13
10
  *
14
11
  * src/include/catalog/indexing.h
@@ -19,6 +16,7 @@
19
16
  #define INDEXING_H
20
17
 
21
18
  #include "access/htup.h"
19
+ #include "nodes/execnodes.h"
22
20
  #include "utils/relcache.h"
23
21
 
24
22
  /*
@@ -28,6 +26,12 @@
28
26
  */
29
27
  typedef struct ResultRelInfo *CatalogIndexState;
30
28
 
29
+ /*
30
+ * Cap the maximum amount of bytes allocated for multi-inserts with system
31
+ * catalogs, limiting the number of slots used.
32
+ */
33
+ #define MAX_CATALOG_MULTI_INSERT_BYTES 65535
34
+
31
35
  /*
32
36
  * indexing.c prototypes
33
37
  */
@@ -36,6 +40,10 @@ extern void CatalogCloseIndexes(CatalogIndexState indstate);
36
40
  extern void CatalogTupleInsert(Relation heapRel, HeapTuple tup);
37
41
  extern void CatalogTupleInsertWithInfo(Relation heapRel, HeapTuple tup,
38
42
  CatalogIndexState indstate);
43
+ extern void CatalogTuplesMultiInsertWithInfo(Relation heapRel,
44
+ TupleTableSlot **slot,
45
+ int ntuples,
46
+ CatalogIndexState indstate);
39
47
  extern void CatalogTupleUpdate(Relation heapRel, ItemPointer otid,
40
48
  HeapTuple tup);
41
49
  extern void CatalogTupleUpdateWithInfo(Relation heapRel,
@@ -43,324 +51,4 @@ extern void CatalogTupleUpdateWithInfo(Relation heapRel,
43
51
  CatalogIndexState indstate);
44
52
  extern void CatalogTupleDelete(Relation heapRel, ItemPointer tid);
45
53
 
46
-
47
- /*
48
- * These macros are just to keep the C compiler from spitting up on the
49
- * upcoming commands for Catalog.pm.
50
- */
51
- #define DECLARE_INDEX(name,oid,decl) extern int no_such_variable
52
- #define DECLARE_UNIQUE_INDEX(name,oid,decl) extern int no_such_variable
53
-
54
-
55
- /*
56
- * What follows are lines processed by genbki.pl to create the statements
57
- * the bootstrap parser will turn into DefineIndex calls.
58
- *
59
- * The keyword is DECLARE_INDEX or DECLARE_UNIQUE_INDEX. The first two
60
- * arguments are the index name and OID, the rest is much like a standard
61
- * 'create index' SQL command.
62
- *
63
- * For each index, we also provide a #define for its OID. References to
64
- * the index in the C code should always use these #defines, not the actual
65
- * index name (much less the numeric OID).
66
- */
67
-
68
- DECLARE_UNIQUE_INDEX(pg_aggregate_fnoid_index, 2650, on pg_aggregate using btree(aggfnoid oid_ops));
69
- #define AggregateFnoidIndexId 2650
70
-
71
- DECLARE_UNIQUE_INDEX(pg_am_name_index, 2651, on pg_am using btree(amname name_ops));
72
- #define AmNameIndexId 2651
73
- DECLARE_UNIQUE_INDEX(pg_am_oid_index, 2652, on pg_am using btree(oid oid_ops));
74
- #define AmOidIndexId 2652
75
-
76
- DECLARE_UNIQUE_INDEX(pg_amop_fam_strat_index, 2653, on pg_amop using btree(amopfamily oid_ops, amoplefttype oid_ops, amoprighttype oid_ops, amopstrategy int2_ops));
77
- #define AccessMethodStrategyIndexId 2653
78
- DECLARE_UNIQUE_INDEX(pg_amop_opr_fam_index, 2654, on pg_amop using btree(amopopr oid_ops, amoppurpose char_ops, amopfamily oid_ops));
79
- #define AccessMethodOperatorIndexId 2654
80
- DECLARE_UNIQUE_INDEX(pg_amop_oid_index, 2756, on pg_amop using btree(oid oid_ops));
81
- #define AccessMethodOperatorOidIndexId 2756
82
-
83
- DECLARE_UNIQUE_INDEX(pg_amproc_fam_proc_index, 2655, on pg_amproc using btree(amprocfamily oid_ops, amproclefttype oid_ops, amprocrighttype oid_ops, amprocnum int2_ops));
84
- #define AccessMethodProcedureIndexId 2655
85
- DECLARE_UNIQUE_INDEX(pg_amproc_oid_index, 2757, on pg_amproc using btree(oid oid_ops));
86
- #define AccessMethodProcedureOidIndexId 2757
87
-
88
- DECLARE_UNIQUE_INDEX(pg_attrdef_adrelid_adnum_index, 2656, on pg_attrdef using btree(adrelid oid_ops, adnum int2_ops));
89
- #define AttrDefaultIndexId 2656
90
- DECLARE_UNIQUE_INDEX(pg_attrdef_oid_index, 2657, on pg_attrdef using btree(oid oid_ops));
91
- #define AttrDefaultOidIndexId 2657
92
-
93
- DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnam_index, 2658, on pg_attribute using btree(attrelid oid_ops, attname name_ops));
94
- #define AttributeRelidNameIndexId 2658
95
- DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnum_index, 2659, on pg_attribute using btree(attrelid oid_ops, attnum int2_ops));
96
- #define AttributeRelidNumIndexId 2659
97
-
98
- DECLARE_UNIQUE_INDEX(pg_authid_rolname_index, 2676, on pg_authid using btree(rolname name_ops));
99
- #define AuthIdRolnameIndexId 2676
100
- DECLARE_UNIQUE_INDEX(pg_authid_oid_index, 2677, on pg_authid using btree(oid oid_ops));
101
- #define AuthIdOidIndexId 2677
102
-
103
- DECLARE_UNIQUE_INDEX(pg_auth_members_role_member_index, 2694, on pg_auth_members using btree(roleid oid_ops, member oid_ops));
104
- #define AuthMemRoleMemIndexId 2694
105
- DECLARE_UNIQUE_INDEX(pg_auth_members_member_role_index, 2695, on pg_auth_members using btree(member oid_ops, roleid oid_ops));
106
- #define AuthMemMemRoleIndexId 2695
107
-
108
- DECLARE_UNIQUE_INDEX(pg_cast_oid_index, 2660, on pg_cast using btree(oid oid_ops));
109
- #define CastOidIndexId 2660
110
- DECLARE_UNIQUE_INDEX(pg_cast_source_target_index, 2661, on pg_cast using btree(castsource oid_ops, casttarget oid_ops));
111
- #define CastSourceTargetIndexId 2661
112
-
113
- DECLARE_UNIQUE_INDEX(pg_class_oid_index, 2662, on pg_class using btree(oid oid_ops));
114
- #define ClassOidIndexId 2662
115
- DECLARE_UNIQUE_INDEX(pg_class_relname_nsp_index, 2663, on pg_class using btree(relname name_ops, relnamespace oid_ops));
116
- #define ClassNameNspIndexId 2663
117
- DECLARE_INDEX(pg_class_tblspc_relfilenode_index, 3455, on pg_class using btree(reltablespace oid_ops, relfilenode oid_ops));
118
- #define ClassTblspcRelfilenodeIndexId 3455
119
-
120
- DECLARE_UNIQUE_INDEX(pg_collation_name_enc_nsp_index, 3164, on pg_collation using btree(collname name_ops, collencoding int4_ops, collnamespace oid_ops));
121
- #define CollationNameEncNspIndexId 3164
122
- DECLARE_UNIQUE_INDEX(pg_collation_oid_index, 3085, on pg_collation using btree(oid oid_ops));
123
- #define CollationOidIndexId 3085
124
-
125
- DECLARE_INDEX(pg_constraint_conname_nsp_index, 2664, on pg_constraint using btree(conname name_ops, connamespace oid_ops));
126
- #define ConstraintNameNspIndexId 2664
127
- DECLARE_UNIQUE_INDEX(pg_constraint_conrelid_contypid_conname_index, 2665, on pg_constraint using btree(conrelid oid_ops, contypid oid_ops, conname name_ops));
128
- #define ConstraintRelidTypidNameIndexId 2665
129
- DECLARE_INDEX(pg_constraint_contypid_index, 2666, on pg_constraint using btree(contypid oid_ops));
130
- #define ConstraintTypidIndexId 2666
131
- DECLARE_UNIQUE_INDEX(pg_constraint_oid_index, 2667, on pg_constraint using btree(oid oid_ops));
132
- #define ConstraintOidIndexId 2667
133
- DECLARE_INDEX(pg_constraint_conparentid_index, 2579, on pg_constraint using btree(conparentid oid_ops));
134
- #define ConstraintParentIndexId 2579
135
-
136
- DECLARE_UNIQUE_INDEX(pg_conversion_default_index, 2668, on pg_conversion using btree(connamespace oid_ops, conforencoding int4_ops, contoencoding int4_ops, oid oid_ops));
137
- #define ConversionDefaultIndexId 2668
138
- DECLARE_UNIQUE_INDEX(pg_conversion_name_nsp_index, 2669, on pg_conversion using btree(conname name_ops, connamespace oid_ops));
139
- #define ConversionNameNspIndexId 2669
140
- DECLARE_UNIQUE_INDEX(pg_conversion_oid_index, 2670, on pg_conversion using btree(oid oid_ops));
141
- #define ConversionOidIndexId 2670
142
-
143
- DECLARE_UNIQUE_INDEX(pg_database_datname_index, 2671, on pg_database using btree(datname name_ops));
144
- #define DatabaseNameIndexId 2671
145
- DECLARE_UNIQUE_INDEX(pg_database_oid_index, 2672, on pg_database using btree(oid oid_ops));
146
- #define DatabaseOidIndexId 2672
147
-
148
- DECLARE_INDEX(pg_depend_depender_index, 2673, on pg_depend using btree(classid oid_ops, objid oid_ops, objsubid int4_ops));
149
- #define DependDependerIndexId 2673
150
- DECLARE_INDEX(pg_depend_reference_index, 2674, on pg_depend using btree(refclassid oid_ops, refobjid oid_ops, refobjsubid int4_ops));
151
- #define DependReferenceIndexId 2674
152
-
153
- DECLARE_UNIQUE_INDEX(pg_description_o_c_o_index, 2675, on pg_description using btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops));
154
- #define DescriptionObjIndexId 2675
155
- DECLARE_UNIQUE_INDEX(pg_shdescription_o_c_index, 2397, on pg_shdescription using btree(objoid oid_ops, classoid oid_ops));
156
- #define SharedDescriptionObjIndexId 2397
157
-
158
- DECLARE_UNIQUE_INDEX(pg_enum_oid_index, 3502, on pg_enum using btree(oid oid_ops));
159
- #define EnumOidIndexId 3502
160
- DECLARE_UNIQUE_INDEX(pg_enum_typid_label_index, 3503, on pg_enum using btree(enumtypid oid_ops, enumlabel name_ops));
161
- #define EnumTypIdLabelIndexId 3503
162
- DECLARE_UNIQUE_INDEX(pg_enum_typid_sortorder_index, 3534, on pg_enum using btree(enumtypid oid_ops, enumsortorder float4_ops));
163
- #define EnumTypIdSortOrderIndexId 3534
164
-
165
- DECLARE_INDEX(pg_index_indrelid_index, 2678, on pg_index using btree(indrelid oid_ops));
166
- #define IndexIndrelidIndexId 2678
167
- DECLARE_UNIQUE_INDEX(pg_index_indexrelid_index, 2679, on pg_index using btree(indexrelid oid_ops));
168
- #define IndexRelidIndexId 2679
169
-
170
- DECLARE_UNIQUE_INDEX(pg_inherits_relid_seqno_index, 2680, on pg_inherits using btree(inhrelid oid_ops, inhseqno int4_ops));
171
- #define InheritsRelidSeqnoIndexId 2680
172
- DECLARE_INDEX(pg_inherits_parent_index, 2187, on pg_inherits using btree(inhparent oid_ops));
173
- #define InheritsParentIndexId 2187
174
-
175
- DECLARE_UNIQUE_INDEX(pg_init_privs_o_c_o_index, 3395, on pg_init_privs using btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops));
176
- #define InitPrivsObjIndexId 3395
177
-
178
- DECLARE_UNIQUE_INDEX(pg_language_name_index, 2681, on pg_language using btree(lanname name_ops));
179
- #define LanguageNameIndexId 2681
180
- DECLARE_UNIQUE_INDEX(pg_language_oid_index, 2682, on pg_language using btree(oid oid_ops));
181
- #define LanguageOidIndexId 2682
182
-
183
- DECLARE_UNIQUE_INDEX(pg_largeobject_loid_pn_index, 2683, on pg_largeobject using btree(loid oid_ops, pageno int4_ops));
184
- #define LargeObjectLOidPNIndexId 2683
185
-
186
- DECLARE_UNIQUE_INDEX(pg_largeobject_metadata_oid_index, 2996, on pg_largeobject_metadata using btree(oid oid_ops));
187
- #define LargeObjectMetadataOidIndexId 2996
188
-
189
- DECLARE_UNIQUE_INDEX(pg_namespace_nspname_index, 2684, on pg_namespace using btree(nspname name_ops));
190
- #define NamespaceNameIndexId 2684
191
- DECLARE_UNIQUE_INDEX(pg_namespace_oid_index, 2685, on pg_namespace using btree(oid oid_ops));
192
- #define NamespaceOidIndexId 2685
193
-
194
- DECLARE_UNIQUE_INDEX(pg_opclass_am_name_nsp_index, 2686, on pg_opclass using btree(opcmethod oid_ops, opcname name_ops, opcnamespace oid_ops));
195
- #define OpclassAmNameNspIndexId 2686
196
- DECLARE_UNIQUE_INDEX(pg_opclass_oid_index, 2687, on pg_opclass using btree(oid oid_ops));
197
- #define OpclassOidIndexId 2687
198
-
199
- DECLARE_UNIQUE_INDEX(pg_operator_oid_index, 2688, on pg_operator using btree(oid oid_ops));
200
- #define OperatorOidIndexId 2688
201
- DECLARE_UNIQUE_INDEX(pg_operator_oprname_l_r_n_index, 2689, on pg_operator using btree(oprname name_ops, oprleft oid_ops, oprright oid_ops, oprnamespace oid_ops));
202
- #define OperatorNameNspIndexId 2689
203
-
204
- DECLARE_UNIQUE_INDEX(pg_opfamily_am_name_nsp_index, 2754, on pg_opfamily using btree(opfmethod oid_ops, opfname name_ops, opfnamespace oid_ops));
205
- #define OpfamilyAmNameNspIndexId 2754
206
- DECLARE_UNIQUE_INDEX(pg_opfamily_oid_index, 2755, on pg_opfamily using btree(oid oid_ops));
207
- #define OpfamilyOidIndexId 2755
208
-
209
- DECLARE_UNIQUE_INDEX(pg_proc_oid_index, 2690, on pg_proc using btree(oid oid_ops));
210
- #define ProcedureOidIndexId 2690
211
- DECLARE_UNIQUE_INDEX(pg_proc_proname_args_nsp_index, 2691, on pg_proc using btree(proname name_ops, proargtypes oidvector_ops, pronamespace oid_ops));
212
- #define ProcedureNameArgsNspIndexId 2691
213
-
214
- DECLARE_UNIQUE_INDEX(pg_rewrite_oid_index, 2692, on pg_rewrite using btree(oid oid_ops));
215
- #define RewriteOidIndexId 2692
216
- DECLARE_UNIQUE_INDEX(pg_rewrite_rel_rulename_index, 2693, on pg_rewrite using btree(ev_class oid_ops, rulename name_ops));
217
- #define RewriteRelRulenameIndexId 2693
218
-
219
- DECLARE_UNIQUE_INDEX(pg_sequence_seqrelid_index, 5002, on pg_sequence using btree(seqrelid oid_ops));
220
- #define SequenceRelidIndexId 5002
221
-
222
- DECLARE_INDEX(pg_shdepend_depender_index, 1232, on pg_shdepend using btree(dbid oid_ops, classid oid_ops, objid oid_ops, objsubid int4_ops));
223
- #define SharedDependDependerIndexId 1232
224
- DECLARE_INDEX(pg_shdepend_reference_index, 1233, on pg_shdepend using btree(refclassid oid_ops, refobjid oid_ops));
225
- #define SharedDependReferenceIndexId 1233
226
-
227
- DECLARE_UNIQUE_INDEX(pg_statistic_relid_att_inh_index, 2696, on pg_statistic using btree(starelid oid_ops, staattnum int2_ops, stainherit bool_ops));
228
- #define StatisticRelidAttnumInhIndexId 2696
229
-
230
- DECLARE_UNIQUE_INDEX(pg_statistic_ext_oid_index, 3380, on pg_statistic_ext using btree(oid oid_ops));
231
- #define StatisticExtOidIndexId 3380
232
- DECLARE_UNIQUE_INDEX(pg_statistic_ext_name_index, 3997, on pg_statistic_ext using btree(stxname name_ops, stxnamespace oid_ops));
233
- #define StatisticExtNameIndexId 3997
234
- DECLARE_INDEX(pg_statistic_ext_relid_index, 3379, on pg_statistic_ext using btree(stxrelid oid_ops));
235
- #define StatisticExtRelidIndexId 3379
236
-
237
- DECLARE_UNIQUE_INDEX(pg_statistic_ext_data_stxoid_index, 3433, on pg_statistic_ext_data using btree(stxoid oid_ops));
238
- #define StatisticExtDataStxoidIndexId 3433
239
-
240
- DECLARE_UNIQUE_INDEX(pg_tablespace_oid_index, 2697, on pg_tablespace using btree(oid oid_ops));
241
- #define TablespaceOidIndexId 2697
242
- DECLARE_UNIQUE_INDEX(pg_tablespace_spcname_index, 2698, on pg_tablespace using btree(spcname name_ops));
243
- #define TablespaceNameIndexId 2698
244
-
245
- DECLARE_UNIQUE_INDEX(pg_transform_oid_index, 3574, on pg_transform using btree(oid oid_ops));
246
- #define TransformOidIndexId 3574
247
- DECLARE_UNIQUE_INDEX(pg_transform_type_lang_index, 3575, on pg_transform using btree(trftype oid_ops, trflang oid_ops));
248
- #define TransformTypeLangIndexId 3575
249
-
250
- DECLARE_INDEX(pg_trigger_tgconstraint_index, 2699, on pg_trigger using btree(tgconstraint oid_ops));
251
- #define TriggerConstraintIndexId 2699
252
- DECLARE_UNIQUE_INDEX(pg_trigger_tgrelid_tgname_index, 2701, on pg_trigger using btree(tgrelid oid_ops, tgname name_ops));
253
- #define TriggerRelidNameIndexId 2701
254
- DECLARE_UNIQUE_INDEX(pg_trigger_oid_index, 2702, on pg_trigger using btree(oid oid_ops));
255
- #define TriggerOidIndexId 2702
256
-
257
- DECLARE_UNIQUE_INDEX(pg_event_trigger_evtname_index, 3467, on pg_event_trigger using btree(evtname name_ops));
258
- #define EventTriggerNameIndexId 3467
259
- DECLARE_UNIQUE_INDEX(pg_event_trigger_oid_index, 3468, on pg_event_trigger using btree(oid oid_ops));
260
- #define EventTriggerOidIndexId 3468
261
-
262
- DECLARE_UNIQUE_INDEX(pg_ts_config_cfgname_index, 3608, on pg_ts_config using btree(cfgname name_ops, cfgnamespace oid_ops));
263
- #define TSConfigNameNspIndexId 3608
264
- DECLARE_UNIQUE_INDEX(pg_ts_config_oid_index, 3712, on pg_ts_config using btree(oid oid_ops));
265
- #define TSConfigOidIndexId 3712
266
-
267
- DECLARE_UNIQUE_INDEX(pg_ts_config_map_index, 3609, on pg_ts_config_map using btree(mapcfg oid_ops, maptokentype int4_ops, mapseqno int4_ops));
268
- #define TSConfigMapIndexId 3609
269
-
270
- DECLARE_UNIQUE_INDEX(pg_ts_dict_dictname_index, 3604, on pg_ts_dict using btree(dictname name_ops, dictnamespace oid_ops));
271
- #define TSDictionaryNameNspIndexId 3604
272
- DECLARE_UNIQUE_INDEX(pg_ts_dict_oid_index, 3605, on pg_ts_dict using btree(oid oid_ops));
273
- #define TSDictionaryOidIndexId 3605
274
-
275
- DECLARE_UNIQUE_INDEX(pg_ts_parser_prsname_index, 3606, on pg_ts_parser using btree(prsname name_ops, prsnamespace oid_ops));
276
- #define TSParserNameNspIndexId 3606
277
- DECLARE_UNIQUE_INDEX(pg_ts_parser_oid_index, 3607, on pg_ts_parser using btree(oid oid_ops));
278
- #define TSParserOidIndexId 3607
279
-
280
- DECLARE_UNIQUE_INDEX(pg_ts_template_tmplname_index, 3766, on pg_ts_template using btree(tmplname name_ops, tmplnamespace oid_ops));
281
- #define TSTemplateNameNspIndexId 3766
282
- DECLARE_UNIQUE_INDEX(pg_ts_template_oid_index, 3767, on pg_ts_template using btree(oid oid_ops));
283
- #define TSTemplateOidIndexId 3767
284
-
285
- DECLARE_UNIQUE_INDEX(pg_type_oid_index, 2703, on pg_type using btree(oid oid_ops));
286
- #define TypeOidIndexId 2703
287
- DECLARE_UNIQUE_INDEX(pg_type_typname_nsp_index, 2704, on pg_type using btree(typname name_ops, typnamespace oid_ops));
288
- #define TypeNameNspIndexId 2704
289
-
290
- DECLARE_UNIQUE_INDEX(pg_foreign_data_wrapper_oid_index, 112, on pg_foreign_data_wrapper using btree(oid oid_ops));
291
- #define ForeignDataWrapperOidIndexId 112
292
- DECLARE_UNIQUE_INDEX(pg_foreign_data_wrapper_name_index, 548, on pg_foreign_data_wrapper using btree(fdwname name_ops));
293
- #define ForeignDataWrapperNameIndexId 548
294
-
295
- DECLARE_UNIQUE_INDEX(pg_foreign_server_oid_index, 113, on pg_foreign_server using btree(oid oid_ops));
296
- #define ForeignServerOidIndexId 113
297
- DECLARE_UNIQUE_INDEX(pg_foreign_server_name_index, 549, on pg_foreign_server using btree(srvname name_ops));
298
- #define ForeignServerNameIndexId 549
299
-
300
- DECLARE_UNIQUE_INDEX(pg_user_mapping_oid_index, 174, on pg_user_mapping using btree(oid oid_ops));
301
- #define UserMappingOidIndexId 174
302
- DECLARE_UNIQUE_INDEX(pg_user_mapping_user_server_index, 175, on pg_user_mapping using btree(umuser oid_ops, umserver oid_ops));
303
- #define UserMappingUserServerIndexId 175
304
-
305
- DECLARE_UNIQUE_INDEX(pg_foreign_table_relid_index, 3119, on pg_foreign_table using btree(ftrelid oid_ops));
306
- #define ForeignTableRelidIndexId 3119
307
-
308
- DECLARE_UNIQUE_INDEX(pg_default_acl_role_nsp_obj_index, 827, on pg_default_acl using btree(defaclrole oid_ops, defaclnamespace oid_ops, defaclobjtype char_ops));
309
- #define DefaultAclRoleNspObjIndexId 827
310
- DECLARE_UNIQUE_INDEX(pg_default_acl_oid_index, 828, on pg_default_acl using btree(oid oid_ops));
311
- #define DefaultAclOidIndexId 828
312
-
313
- DECLARE_UNIQUE_INDEX(pg_db_role_setting_databaseid_rol_index, 2965, on pg_db_role_setting using btree(setdatabase oid_ops, setrole oid_ops));
314
- #define DbRoleSettingDatidRolidIndexId 2965
315
-
316
- DECLARE_UNIQUE_INDEX(pg_seclabel_object_index, 3597, on pg_seclabel using btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops, provider text_ops));
317
- #define SecLabelObjectIndexId 3597
318
-
319
- DECLARE_UNIQUE_INDEX(pg_shseclabel_object_index, 3593, on pg_shseclabel using btree(objoid oid_ops, classoid oid_ops, provider text_ops));
320
- #define SharedSecLabelObjectIndexId 3593
321
-
322
- DECLARE_UNIQUE_INDEX(pg_extension_oid_index, 3080, on pg_extension using btree(oid oid_ops));
323
- #define ExtensionOidIndexId 3080
324
- DECLARE_UNIQUE_INDEX(pg_extension_name_index, 3081, on pg_extension using btree(extname name_ops));
325
- #define ExtensionNameIndexId 3081
326
-
327
- DECLARE_UNIQUE_INDEX(pg_range_rngtypid_index, 3542, on pg_range using btree(rngtypid oid_ops));
328
- #define RangeTypidIndexId 3542
329
-
330
- DECLARE_UNIQUE_INDEX(pg_policy_oid_index, 3257, on pg_policy using btree(oid oid_ops));
331
- #define PolicyOidIndexId 3257
332
-
333
- DECLARE_UNIQUE_INDEX(pg_policy_polrelid_polname_index, 3258, on pg_policy using btree(polrelid oid_ops, polname name_ops));
334
- #define PolicyPolrelidPolnameIndexId 3258
335
-
336
- DECLARE_UNIQUE_INDEX(pg_replication_origin_roiident_index, 6001, on pg_replication_origin using btree(roident oid_ops));
337
- #define ReplicationOriginIdentIndex 6001
338
-
339
- DECLARE_UNIQUE_INDEX(pg_replication_origin_roname_index, 6002, on pg_replication_origin using btree(roname text_ops));
340
- #define ReplicationOriginNameIndex 6002
341
-
342
- DECLARE_UNIQUE_INDEX(pg_partitioned_table_partrelid_index, 3351, on pg_partitioned_table using btree(partrelid oid_ops));
343
- #define PartitionedRelidIndexId 3351
344
-
345
- DECLARE_UNIQUE_INDEX(pg_publication_oid_index, 6110, on pg_publication using btree(oid oid_ops));
346
- #define PublicationObjectIndexId 6110
347
-
348
- DECLARE_UNIQUE_INDEX(pg_publication_pubname_index, 6111, on pg_publication using btree(pubname name_ops));
349
- #define PublicationNameIndexId 6111
350
-
351
- DECLARE_UNIQUE_INDEX(pg_publication_rel_oid_index, 6112, on pg_publication_rel using btree(oid oid_ops));
352
- #define PublicationRelObjectIndexId 6112
353
-
354
- DECLARE_UNIQUE_INDEX(pg_publication_rel_prrelid_prpubid_index, 6113, on pg_publication_rel using btree(prrelid oid_ops, prpubid oid_ops));
355
- #define PublicationRelPrrelidPrpubidIndexId 6113
356
-
357
- DECLARE_UNIQUE_INDEX(pg_subscription_oid_index, 6114, on pg_subscription using btree(oid oid_ops));
358
- #define SubscriptionObjectIndexId 6114
359
-
360
- DECLARE_UNIQUE_INDEX(pg_subscription_subname_index, 6115, on pg_subscription using btree(subdbid oid_ops, subname name_ops));
361
- #define SubscriptionNameIndexId 6115
362
-
363
- DECLARE_UNIQUE_INDEX(pg_subscription_rel_srrelid_srsubid_index, 6117, on pg_subscription_rel using btree(srrelid oid_ops, srsubid oid_ops));
364
- #define SubscriptionRelSrrelidSrsubidIndexId 6117
365
-
366
54
  #endif /* INDEXING_H */
@@ -4,7 +4,7 @@
4
4
  * prototypes for functions in backend/catalog/namespace.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/namespace.h
@@ -30,6 +30,7 @@ typedef struct _FuncCandidateList
30
30
  struct _FuncCandidateList *next;
31
31
  int pathpos; /* for internal use of namespace lookup */
32
32
  Oid oid; /* the function or operator's OID */
33
+ int nominalnargs; /* either pronargs or length(proallargtypes) */
33
34
  int nargs; /* number of arg types returned */
34
35
  int nvargs; /* number of args to become variadic array */
35
36
  int ndargs; /* number of defaulted args */
@@ -99,6 +100,7 @@ extern FuncCandidateList FuncnameGetCandidates(List *names,
99
100
  int nargs, List *argnames,
100
101
  bool expand_variadic,
101
102
  bool expand_defaults,
103
+ bool include_out_arguments,
102
104
  bool missing_ok);
103
105
  extern bool FunctionIsVisible(Oid funcid);
104
106
 
@@ -180,7 +182,7 @@ extern void AtEOSubXact_Namespace(bool isCommit, SubTransactionId mySubid,
180
182
  SubTransactionId parentSubid);
181
183
 
182
184
  /* stuff for search_path GUC variable */
183
- extern char *namespace_search_path;
185
+ extern PGDLLIMPORT char *namespace_search_path;
184
186
 
185
187
  extern List *fetch_search_path(bool includeImplicit);
186
188
  extern int fetch_search_path_array(Oid *sarray, int sarray_len);
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Object access hooks.
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
 
@@ -121,15 +121,23 @@ typedef struct
121
121
  bool result;
122
122
  } ObjectAccessNamespaceSearch;
123
123
 
124
- /* Plugin provides a hook function matching this signature. */
124
+ /* Plugin provides a hook function matching one or both of these signatures. */
125
125
  typedef void (*object_access_hook_type) (ObjectAccessType access,
126
126
  Oid classId,
127
127
  Oid objectId,
128
128
  int subId,
129
129
  void *arg);
130
130
 
131
+ typedef void (*object_access_hook_type_str) (ObjectAccessType access,
132
+ Oid classId,
133
+ const char *objectStr,
134
+ int subId,
135
+ void *arg);
136
+
131
137
  /* Plugin sets this variable to a suitable hook function. */
132
138
  extern PGDLLIMPORT object_access_hook_type object_access_hook;
139
+ extern PGDLLIMPORT object_access_hook_type_str object_access_hook_str;
140
+
133
141
 
134
142
  /* Core code uses these functions to call the hook (see macros below). */
135
143
  extern void RunObjectPostCreateHook(Oid classId, Oid objectId, int subId,
@@ -142,6 +150,18 @@ extern void RunObjectPostAlterHook(Oid classId, Oid objectId, int subId,
142
150
  extern bool RunNamespaceSearchHook(Oid objectId, bool ereport_on_violation);
143
151
  extern void RunFunctionExecuteHook(Oid objectId);
144
152
 
153
+ /* String versions */
154
+ extern void RunObjectPostCreateHookStr(Oid classId, const char *objectStr, int subId,
155
+ bool is_internal);
156
+ extern void RunObjectDropHookStr(Oid classId, const char *objectStr, int subId,
157
+ int dropflags);
158
+ extern void RunObjectTruncateHookStr(const char *objectStr);
159
+ extern void RunObjectPostAlterHookStr(Oid classId, const char *objectStr, int subId,
160
+ Oid auxiliaryId, bool is_internal);
161
+ extern bool RunNamespaceSearchHookStr(const char *objectStr, bool ereport_on_violation);
162
+ extern void RunFunctionExecuteHookStr(const char *objectStr);
163
+
164
+
145
165
  /*
146
166
  * The following macros are wrappers around the functions above; these should
147
167
  * normally be used to invoke the hook in lieu of calling the above functions
@@ -194,4 +214,52 @@ extern void RunFunctionExecuteHook(Oid objectId);
194
214
  RunFunctionExecuteHook(objectId); \
195
215
  } while(0)
196
216
 
217
+
218
+ #define InvokeObjectPostCreateHookStr(classId,objectName,subId) \
219
+ InvokeObjectPostCreateHookArgStr((classId),(objectName),(subId),false)
220
+ #define InvokeObjectPostCreateHookArgStr(classId,objectName,subId,is_internal) \
221
+ do { \
222
+ if (object_access_hook_str) \
223
+ RunObjectPostCreateHookStr((classId),(objectName),(subId), \
224
+ (is_internal)); \
225
+ } while(0)
226
+
227
+ #define InvokeObjectDropHookStr(classId,objectName,subId) \
228
+ InvokeObjectDropHookArgStr((classId),(objectName),(subId),0)
229
+ #define InvokeObjectDropHookArgStr(classId,objectName,subId,dropflags) \
230
+ do { \
231
+ if (object_access_hook_str) \
232
+ RunObjectDropHookStr((classId),(objectName),(subId), \
233
+ (dropflags)); \
234
+ } while(0)
235
+
236
+ #define InvokeObjectTruncateHookStr(objectName) \
237
+ do { \
238
+ if (object_access_hook_str) \
239
+ RunObjectTruncateHookStr(objectName); \
240
+ } while(0)
241
+
242
+ #define InvokeObjectPostAlterHookStr(classId,objectName,subId) \
243
+ InvokeObjectPostAlterHookArgStr((classId),(objectName),(subId), \
244
+ InvalidOid,false)
245
+ #define InvokeObjectPostAlterHookArgStr(classId,objectName,subId, \
246
+ auxiliaryId,is_internal) \
247
+ do { \
248
+ if (object_access_hook_str) \
249
+ RunObjectPostAlterHookStr((classId),(objectName),(subId), \
250
+ (auxiliaryId),(is_internal)); \
251
+ } while(0)
252
+
253
+ #define InvokeNamespaceSearchHookStr(objectName, ereport_on_violation) \
254
+ (!object_access_hook_str \
255
+ ? true \
256
+ : RunNamespaceSearchHookStr((objectName), (ereport_on_violation)))
257
+
258
+ #define InvokeFunctionExecuteHookStr(objectName) \
259
+ do { \
260
+ if (object_access_hook_str) \
261
+ RunFunctionExecuteHookStr(objectName); \
262
+ } while(0)
263
+
264
+
197
265
  #endif /* OBJECTACCESS_H */
@@ -3,7 +3,7 @@
3
3
  * objectaddress.h
4
4
  * functions for working with object addresses
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/catalog/objectaddress.h
@@ -28,7 +28,7 @@ typedef struct ObjectAddress
28
28
  int32 objectSubId; /* Subitem within object (eg column), or 0 */
29
29
  } ObjectAddress;
30
30
 
31
- extern const ObjectAddress InvalidObjectAddress;
31
+ extern PGDLLIMPORT const ObjectAddress InvalidObjectAddress;
32
32
 
33
33
  #define ObjectAddressSubSet(addr, class_id, object_id, object_sub_id) \
34
34
  do { \
@@ -55,6 +55,7 @@ extern void check_object_ownership(Oid roleid,
55
55
  extern Oid get_object_namespace(const ObjectAddress *address);
56
56
 
57
57
  extern bool is_objectclass_supported(Oid class_id);
58
+ extern const char *get_object_class_descr(Oid class_id);
58
59
  extern Oid get_object_oid_index(Oid class_id);
59
60
  extern int get_object_catcache_oid(Oid class_id);
60
61
  extern int get_object_catcache_name(Oid class_id);
@@ -69,14 +70,18 @@ extern bool get_object_namensp_unique(Oid class_id);
69
70
  extern HeapTuple get_catalog_object_by_oid(Relation catalog,
70
71
  AttrNumber oidcol, Oid objectId);
71
72
 
72
- extern char *getObjectDescription(const ObjectAddress *object);
73
+ extern char *getObjectDescription(const ObjectAddress *object,
74
+ bool missing_ok);
73
75
  extern char *getObjectDescriptionOids(Oid classid, Oid objid);
74
76
 
75
77
  extern int read_objtype_from_string(const char *objtype);
76
- extern char *getObjectTypeDescription(const ObjectAddress *object);
77
- extern char *getObjectIdentity(const ObjectAddress *address);
78
+ extern char *getObjectTypeDescription(const ObjectAddress *object,
79
+ bool missing_ok);
80
+ extern char *getObjectIdentity(const ObjectAddress *address,
81
+ bool missing_ok);
78
82
  extern char *getObjectIdentityParts(const ObjectAddress *address,
79
- List **objname, List **objargs);
83
+ List **objname, List **objargs,
84
+ bool missing_ok);
80
85
  extern struct ArrayType *strlist_to_textarray(List *list);
81
86
 
82
87
  extern ObjectType get_relkind_objtype(char relkind);
@@ -4,7 +4,7 @@
4
4
  * definition of the "aggregate" system catalog (pg_aggregate)
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/pg_aggregate.h
@@ -44,25 +44,25 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
44
44
  regproc aggtransfn BKI_LOOKUP(pg_proc);
45
45
 
46
46
  /* final function (0 if none) */
47
- regproc aggfinalfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
47
+ regproc aggfinalfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
48
48
 
49
49
  /* combine function (0 if none) */
50
- regproc aggcombinefn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
50
+ regproc aggcombinefn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
51
51
 
52
52
  /* function to convert transtype to bytea (0 if none) */
53
- regproc aggserialfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
53
+ regproc aggserialfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
54
54
 
55
55
  /* function to convert bytea to transtype (0 if none) */
56
- regproc aggdeserialfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
56
+ regproc aggdeserialfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
57
57
 
58
58
  /* forward function for moving-aggregate mode (0 if none) */
59
- regproc aggmtransfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
59
+ regproc aggmtransfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
60
60
 
61
61
  /* inverse function for moving-aggregate mode (0 if none) */
62
- regproc aggminvtransfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
62
+ regproc aggminvtransfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
63
63
 
64
64
  /* final function for moving-aggregate mode (0 if none) */
65
- regproc aggmfinalfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
65
+ regproc aggmfinalfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
66
66
 
67
67
  /* true to pass extra dummy arguments to aggfinalfn */
68
68
  bool aggfinalextra BKI_DEFAULT(f);
@@ -77,7 +77,7 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
77
77
  char aggmfinalmodify BKI_DEFAULT(r);
78
78
 
79
79
  /* associated sort operator (0 if none) */
80
- Oid aggsortop BKI_DEFAULT(0) BKI_LOOKUP(pg_operator);
80
+ Oid aggsortop BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_operator);
81
81
 
82
82
  /* type of aggregate's transition (state) data */
83
83
  Oid aggtranstype BKI_LOOKUP(pg_type);
@@ -86,7 +86,7 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
86
86
  int32 aggtransspace BKI_DEFAULT(0);
87
87
 
88
88
  /* type of moving-aggregate state data (0 if none) */
89
- Oid aggmtranstype BKI_DEFAULT(0) BKI_LOOKUP(pg_type);
89
+ Oid aggmtranstype BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_type);
90
90
 
91
91
  /* estimated size of moving-agg state (0 for default est) */
92
92
  int32 aggmtransspace BKI_DEFAULT(0);
@@ -108,6 +108,10 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
108
108
  */
109
109
  typedef FormData_pg_aggregate *Form_pg_aggregate;
110
110
 
111
+ DECLARE_TOAST(pg_aggregate, 4159, 4160);
112
+
113
+ DECLARE_UNIQUE_INDEX_PKEY(pg_aggregate_fnoid_index, 2650, AggregateFnoidIndexId, on pg_aggregate using btree(aggfnoid oid_ops));
114
+
111
115
  #ifdef EXPOSE_TO_CLIENT_CODE
112
116
 
113
117
  /*
@@ -3,7 +3,7 @@
3
3
  * pg_aggregate_d.h
4
4
  * Macro definitions for pg_aggregate
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
@@ -19,6 +19,7 @@
19
19
  #define PG_AGGREGATE_D_H
20
20
 
21
21
  #define AggregateRelationId 2600
22
+ #define AggregateFnoidIndexId 2650
22
23
 
23
24
  #define Anum_pg_aggregate_aggfnoid 1
24
25
  #define Anum_pg_aggregate_aggkind 2
@@ -4,7 +4,7 @@
4
4
  * definition of the "access method" system catalog (pg_am)
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/pg_am.h
@@ -47,6 +47,9 @@ CATALOG(pg_am,2601,AccessMethodRelationId)
47
47
  */
48
48
  typedef FormData_pg_am *Form_pg_am;
49
49
 
50
+ DECLARE_UNIQUE_INDEX(pg_am_name_index, 2651, AmNameIndexId, on pg_am using btree(amname name_ops));
51
+ DECLARE_UNIQUE_INDEX_PKEY(pg_am_oid_index, 2652, AmOidIndexId, on pg_am using btree(oid oid_ops));
52
+
50
53
  #ifdef EXPOSE_TO_CLIENT_CODE
51
54
 
52
55
  /*