pg_query 2.2.0 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +59 -31
  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 +20 -8
  453. data/lib/pg_query/pg_query_pb.rb +1108 -942
  454. data/lib/pg_query/treewalker.rb +6 -0
  455. data/lib/pg_query/truncate.rb +1 -1
  456. data/lib/pg_query/version.rb +1 -1
  457. metadata +27 -17
  458. data/ext/pg_query/include/access/xloginsert.h +0 -64
  459. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  460. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  461. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  462. data/ext/pg_query/include/parser/parse_target.h +0 -46
  463. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  464. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
  465. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  466. data/ext/pg_query/src_port_erand48.c +0 -127
  467. data/ext/pg_query/src_port_random.c +0 -31
@@ -3,7 +3,7 @@
3
3
  * pg_constraint_d.h
4
4
  * Macro definitions for pg_constraint
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,11 @@
19
19
  #define PG_CONSTRAINT_D_H
20
20
 
21
21
  #define ConstraintRelationId 2606
22
+ #define ConstraintNameNspIndexId 2664
23
+ #define ConstraintRelidTypidNameIndexId 2665
24
+ #define ConstraintTypidIndexId 2666
25
+ #define ConstraintOidIndexId 2667
26
+ #define ConstraintParentIndexId 2579
22
27
 
23
28
  #define Anum_pg_constraint_oid 1
24
29
  #define Anum_pg_constraint_conname 2
@@ -43,10 +48,11 @@
43
48
  #define Anum_pg_constraint_conpfeqop 21
44
49
  #define Anum_pg_constraint_conppeqop 22
45
50
  #define Anum_pg_constraint_conffeqop 23
46
- #define Anum_pg_constraint_conexclop 24
47
- #define Anum_pg_constraint_conbin 25
51
+ #define Anum_pg_constraint_confdelsetcols 24
52
+ #define Anum_pg_constraint_conexclop 25
53
+ #define Anum_pg_constraint_conbin 26
48
54
 
49
- #define Natts_pg_constraint 25
55
+ #define Natts_pg_constraint 26
50
56
 
51
57
 
52
58
  /* Valid values for contype */
@@ -5,7 +5,7 @@
5
5
  * However, we define it here so that the format is documented.
6
6
  *
7
7
  *
8
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
9
9
  * Portions Copyright (c) 1994, Regents of the University of California
10
10
  *
11
11
  * src/include/catalog/pg_control.h
@@ -40,7 +40,7 @@ typedef struct CheckPoint
40
40
  TimeLineID PrevTimeLineID; /* previous TLI, if this record begins a new
41
41
  * timeline (equals ThisTimeLineID otherwise) */
42
42
  bool fullPageWrites; /* current full_page_writes */
43
- FullTransactionId nextFullXid; /* next free full transaction ID */
43
+ FullTransactionId nextXid; /* next free transaction ID */
44
44
  Oid nextOid; /* next free OID */
45
45
  MultiXactId nextMulti; /* next free MultiXactId */
46
46
  MultiXactOffset nextMultiOffset; /* next free MultiXact offset */
@@ -161,9 +161,7 @@ typedef struct ControlFileData
161
161
  *
162
162
  * If backupEndRequired is true, we know for sure that we're restoring
163
163
  * from a backup, and must see a backup-end record before we can safely
164
- * start up. If it's false, but backupStartPoint is set, a backup_label
165
- * file was found at startup but it may have been a leftover from a stray
166
- * pg_start_backup() call, not accompanied by pg_stop_backup().
164
+ * start up.
167
165
  */
168
166
  XLogRecPtr minRecoveryPoint;
169
167
  TimeLineID minRecoveryPointTLI;
@@ -3,7 +3,7 @@
3
3
  * pg_conversion.h
4
4
  * definition of the "conversion" system catalog (pg_conversion)
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/pg_conversion.h
@@ -35,10 +35,10 @@ CATALOG(pg_conversion,2607,ConversionRelationId)
35
35
  NameData conname;
36
36
 
37
37
  /* namespace that the conversion belongs to */
38
- Oid connamespace BKI_DEFAULT(PGNSP);
38
+ Oid connamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
39
39
 
40
40
  /* owner of the conversion */
41
- Oid conowner BKI_DEFAULT(PGUID);
41
+ Oid conowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
42
42
 
43
43
  /* FOR encoding id */
44
44
  int32 conforencoding BKI_LOOKUP(encoding);
@@ -60,12 +60,15 @@ CATALOG(pg_conversion,2607,ConversionRelationId)
60
60
  */
61
61
  typedef FormData_pg_conversion *Form_pg_conversion;
62
62
 
63
+ DECLARE_UNIQUE_INDEX(pg_conversion_default_index, 2668, ConversionDefaultIndexId, on pg_conversion using btree(connamespace oid_ops, conforencoding int4_ops, contoencoding int4_ops, oid oid_ops));
64
+ DECLARE_UNIQUE_INDEX(pg_conversion_name_nsp_index, 2669, ConversionNameNspIndexId, on pg_conversion using btree(conname name_ops, connamespace oid_ops));
65
+ DECLARE_UNIQUE_INDEX_PKEY(pg_conversion_oid_index, 2670, ConversionOidIndexId, on pg_conversion using btree(oid oid_ops));
66
+
63
67
 
64
68
  extern ObjectAddress ConversionCreate(const char *conname, Oid connamespace,
65
69
  Oid conowner,
66
70
  int32 conforencoding, int32 contoencoding,
67
71
  Oid conproc, bool def);
68
- extern void RemoveConversionById(Oid conversionOid);
69
72
  extern Oid FindDefaultConversion(Oid connamespace, int32 for_encoding,
70
73
  int32 to_encoding);
71
74
 
@@ -3,7 +3,7 @@
3
3
  * pg_conversion_d.h
4
4
  * Macro definitions for pg_conversion
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,9 @@
19
19
  #define PG_CONVERSION_D_H
20
20
 
21
21
  #define ConversionRelationId 2607
22
+ #define ConversionDefaultIndexId 2668
23
+ #define ConversionNameNspIndexId 2669
24
+ #define ConversionOidIndexId 2670
22
25
 
23
26
  #define Anum_pg_conversion_oid 1
24
27
  #define Anum_pg_conversion_conname 2
@@ -4,8 +4,9 @@
4
4
  * definition of the "dependency" system catalog (pg_depend)
5
5
  *
6
6
  * pg_depend has no preloaded contents, so there is no pg_depend.dat
7
- * file; system-defined dependencies are loaded into it during a late stage
8
- * of the initdb process.
7
+ * file; dependencies for system-defined objects are loaded into it
8
+ * on-the-fly during initdb. Most built-in objects are pinned anyway,
9
+ * and hence need no explicit entries in pg_depend.
9
10
  *
10
11
  * NOTE: we do not represent all possible dependency pairs in pg_depend;
11
12
  * for example, there's not much value in creating an explicit dependency
@@ -16,7 +17,7 @@
16
17
  * convenient to find from the contents of other catalogs.
17
18
  *
18
19
  *
19
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
20
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
20
21
  * Portions Copyright (c) 1994, Regents of the University of California
21
22
  *
22
23
  * src/include/catalog/pg_depend.h
@@ -42,17 +43,17 @@ CATALOG(pg_depend,2608,DependRelationId)
42
43
  {
43
44
  /*
44
45
  * Identification of the dependent (referencing) object.
45
- *
46
- * These fields are all zeroes for a DEPENDENCY_PIN entry.
47
46
  */
48
- Oid classid; /* OID of table containing object */
47
+ Oid classid BKI_LOOKUP(pg_class); /* OID of table containing
48
+ * object */
49
49
  Oid objid; /* OID of object itself */
50
50
  int32 objsubid; /* column number, or 0 if not used */
51
51
 
52
52
  /*
53
53
  * Identification of the independent (referenced) object.
54
54
  */
55
- Oid refclassid; /* OID of table containing object */
55
+ Oid refclassid BKI_LOOKUP(pg_class); /* OID of table containing
56
+ * object */
56
57
  Oid refobjid; /* OID of object itself */
57
58
  int32 refobjsubid; /* column number, or 0 if not used */
58
59
 
@@ -70,4 +71,7 @@ CATALOG(pg_depend,2608,DependRelationId)
70
71
  */
71
72
  typedef FormData_pg_depend *Form_pg_depend;
72
73
 
74
+ DECLARE_INDEX(pg_depend_depender_index, 2673, DependDependerIndexId, on pg_depend using btree(classid oid_ops, objid oid_ops, objsubid int4_ops));
75
+ DECLARE_INDEX(pg_depend_reference_index, 2674, DependReferenceIndexId, on pg_depend using btree(refclassid oid_ops, refobjid oid_ops, refobjsubid int4_ops));
76
+
73
77
  #endif /* PG_DEPEND_H */
@@ -3,7 +3,7 @@
3
3
  * pg_depend_d.h
4
4
  * Macro definitions for pg_depend
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,8 @@
19
19
  #define PG_DEPEND_D_H
20
20
 
21
21
  #define DependRelationId 2608
22
+ #define DependDependerIndexId 2673
23
+ #define DependReferenceIndexId 2674
22
24
 
23
25
  #define Anum_pg_depend_classid 1
24
26
  #define Anum_pg_depend_objid 2
@@ -4,7 +4,7 @@
4
4
  * definition of the "event trigger" system catalog (pg_event_trigger)
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_event_trigger.h
@@ -31,8 +31,9 @@ CATALOG(pg_event_trigger,3466,EventTriggerRelationId)
31
31
  Oid oid; /* oid */
32
32
  NameData evtname; /* trigger's name */
33
33
  NameData evtevent; /* trigger's event */
34
- Oid evtowner; /* trigger's owner */
35
- Oid evtfoid; /* OID of function to be called */
34
+ Oid evtowner BKI_LOOKUP(pg_authid); /* trigger's owner */
35
+ Oid evtfoid BKI_LOOKUP(pg_proc); /* OID of function to be
36
+ * called */
36
37
  char evtenabled; /* trigger's firing configuration WRT
37
38
  * session_replication_role */
38
39
 
@@ -48,4 +49,9 @@ CATALOG(pg_event_trigger,3466,EventTriggerRelationId)
48
49
  */
49
50
  typedef FormData_pg_event_trigger *Form_pg_event_trigger;
50
51
 
52
+ DECLARE_TOAST(pg_event_trigger, 4145, 4146);
53
+
54
+ DECLARE_UNIQUE_INDEX(pg_event_trigger_evtname_index, 3467, EventTriggerNameIndexId, on pg_event_trigger using btree(evtname name_ops));
55
+ DECLARE_UNIQUE_INDEX_PKEY(pg_event_trigger_oid_index, 3468, EventTriggerOidIndexId, on pg_event_trigger using btree(oid oid_ops));
56
+
51
57
  #endif /* PG_EVENT_TRIGGER_H */
@@ -3,7 +3,7 @@
3
3
  * pg_event_trigger_d.h
4
4
  * Macro definitions for pg_event_trigger
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,8 @@
19
19
  #define PG_EVENT_TRIGGER_D_H
20
20
 
21
21
  #define EventTriggerRelationId 3466
22
+ #define EventTriggerNameIndexId 3467
23
+ #define EventTriggerOidIndexId 3468
22
24
 
23
25
  #define Anum_pg_event_trigger_oid 1
24
26
  #define Anum_pg_event_trigger_evtname 2
@@ -4,7 +4,7 @@
4
4
  * definition of the "index" system catalog (pg_index)
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_index.h
@@ -28,11 +28,13 @@
28
28
  */
29
29
  CATALOG(pg_index,2610,IndexRelationId) BKI_SCHEMA_MACRO
30
30
  {
31
- Oid indexrelid; /* OID of the index */
32
- Oid indrelid; /* OID of the relation it indexes */
31
+ Oid indexrelid BKI_LOOKUP(pg_class); /* OID of the index */
32
+ Oid indrelid BKI_LOOKUP(pg_class); /* OID of the relation it
33
+ * indexes */
33
34
  int16 indnatts; /* total number of columns in index */
34
35
  int16 indnkeyatts; /* number of key columns in index */
35
36
  bool indisunique; /* is this a unique index? */
37
+ bool indnullsnotdistinct; /* null treatment in unique index */
36
38
  bool indisprimary; /* is this index for primary key? */
37
39
  bool indisexclusion; /* is this index for exclusion constraint? */
38
40
  bool indimmediate; /* is uniqueness enforced immediately? */
@@ -44,12 +46,14 @@ CATALOG(pg_index,2610,IndexRelationId) BKI_SCHEMA_MACRO
44
46
  bool indisreplident; /* is this index the identity for replication? */
45
47
 
46
48
  /* variable-length fields start here, but we allow direct access to indkey */
47
- int2vector indkey; /* column numbers of indexed cols, or 0 */
49
+ int2vector indkey BKI_FORCE_NOT_NULL; /* column numbers of indexed cols,
50
+ * or 0 */
48
51
 
49
52
  #ifdef CATALOG_VARLEN
50
- oidvector indcollation; /* collation identifiers */
51
- oidvector indclass; /* opclass identifiers */
52
- int2vector indoption; /* per-column flags (AM-specific meanings) */
53
+ oidvector indcollation BKI_LOOKUP_OPT(pg_collation) BKI_FORCE_NOT_NULL; /* collation identifiers */
54
+ oidvector indclass BKI_LOOKUP(pg_opclass) BKI_FORCE_NOT_NULL; /* opclass identifiers */
55
+ int2vector indoption BKI_FORCE_NOT_NULL; /* per-column flags
56
+ * (AM-specific meanings) */
53
57
  pg_node_tree indexprs; /* expression trees for index attributes that
54
58
  * are not simple column references; one for
55
59
  * each zero entry in indkey[] */
@@ -65,6 +69,12 @@ CATALOG(pg_index,2610,IndexRelationId) BKI_SCHEMA_MACRO
65
69
  */
66
70
  typedef FormData_pg_index *Form_pg_index;
67
71
 
72
+ DECLARE_INDEX(pg_index_indrelid_index, 2678, IndexIndrelidIndexId, on pg_index using btree(indrelid oid_ops));
73
+ DECLARE_UNIQUE_INDEX_PKEY(pg_index_indexrelid_index, 2679, IndexRelidIndexId, on pg_index using btree(indexrelid oid_ops));
74
+
75
+ /* indkey can contain zero (InvalidAttrNumber) to represent expressions */
76
+ DECLARE_ARRAY_FOREIGN_KEY_OPT((indrelid, indkey), pg_attribute, (attrelid, attnum));
77
+
68
78
  #ifdef EXPOSE_TO_CLIENT_CODE
69
79
 
70
80
  /*
@@ -3,7 +3,7 @@
3
3
  * pg_index_d.h
4
4
  * Macro definitions for pg_index
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,29 +19,32 @@
19
19
  #define PG_INDEX_D_H
20
20
 
21
21
  #define IndexRelationId 2610
22
+ #define IndexIndrelidIndexId 2678
23
+ #define IndexRelidIndexId 2679
22
24
 
23
25
  #define Anum_pg_index_indexrelid 1
24
26
  #define Anum_pg_index_indrelid 2
25
27
  #define Anum_pg_index_indnatts 3
26
28
  #define Anum_pg_index_indnkeyatts 4
27
29
  #define Anum_pg_index_indisunique 5
28
- #define Anum_pg_index_indisprimary 6
29
- #define Anum_pg_index_indisexclusion 7
30
- #define Anum_pg_index_indimmediate 8
31
- #define Anum_pg_index_indisclustered 9
32
- #define Anum_pg_index_indisvalid 10
33
- #define Anum_pg_index_indcheckxmin 11
34
- #define Anum_pg_index_indisready 12
35
- #define Anum_pg_index_indislive 13
36
- #define Anum_pg_index_indisreplident 14
37
- #define Anum_pg_index_indkey 15
38
- #define Anum_pg_index_indcollation 16
39
- #define Anum_pg_index_indclass 17
40
- #define Anum_pg_index_indoption 18
41
- #define Anum_pg_index_indexprs 19
42
- #define Anum_pg_index_indpred 20
30
+ #define Anum_pg_index_indnullsnotdistinct 6
31
+ #define Anum_pg_index_indisprimary 7
32
+ #define Anum_pg_index_indisexclusion 8
33
+ #define Anum_pg_index_indimmediate 9
34
+ #define Anum_pg_index_indisclustered 10
35
+ #define Anum_pg_index_indisvalid 11
36
+ #define Anum_pg_index_indcheckxmin 12
37
+ #define Anum_pg_index_indisready 13
38
+ #define Anum_pg_index_indislive 14
39
+ #define Anum_pg_index_indisreplident 15
40
+ #define Anum_pg_index_indkey 16
41
+ #define Anum_pg_index_indcollation 17
42
+ #define Anum_pg_index_indclass 18
43
+ #define Anum_pg_index_indoption 19
44
+ #define Anum_pg_index_indexprs 20
45
+ #define Anum_pg_index_indpred 21
43
46
 
44
- #define Natts_pg_index 20
47
+ #define Natts_pg_index 21
45
48
 
46
49
 
47
50
  /*
@@ -4,7 +4,7 @@
4
4
  * definition of the "language" system catalog (pg_language)
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_language.h
@@ -34,7 +34,7 @@ CATALOG(pg_language,2612,LanguageRelationId)
34
34
  NameData lanname;
35
35
 
36
36
  /* Language's owner */
37
- Oid lanowner BKI_DEFAULT(PGUID);
37
+ Oid lanowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
38
38
 
39
39
  /* Is a procedural language */
40
40
  bool lanispl BKI_DEFAULT(f);
@@ -43,13 +43,13 @@ CATALOG(pg_language,2612,LanguageRelationId)
43
43
  bool lanpltrusted BKI_DEFAULT(f);
44
44
 
45
45
  /* Call handler, if it's a PL */
46
- Oid lanplcallfoid BKI_DEFAULT(0) BKI_LOOKUP(pg_proc);
46
+ Oid lanplcallfoid BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_proc);
47
47
 
48
48
  /* Optional anonymous-block handler function */
49
- Oid laninline BKI_DEFAULT(0) BKI_LOOKUP(pg_proc);
49
+ Oid laninline BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_proc);
50
50
 
51
51
  /* Optional validation function */
52
- Oid lanvalidator BKI_DEFAULT(0) BKI_LOOKUP(pg_proc);
52
+ Oid lanvalidator BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_proc);
53
53
 
54
54
  #ifdef CATALOG_VARLEN /* variable-length fields start here */
55
55
  /* Access privileges */
@@ -64,4 +64,9 @@ CATALOG(pg_language,2612,LanguageRelationId)
64
64
  */
65
65
  typedef FormData_pg_language *Form_pg_language;
66
66
 
67
+ DECLARE_TOAST(pg_language, 4157, 4158);
68
+
69
+ DECLARE_UNIQUE_INDEX(pg_language_name_index, 2681, LanguageNameIndexId, on pg_language using btree(lanname name_ops));
70
+ DECLARE_UNIQUE_INDEX_PKEY(pg_language_oid_index, 2682, LanguageOidIndexId, on pg_language using btree(oid oid_ops));
71
+
67
72
  #endif /* PG_LANGUAGE_H */
@@ -3,7 +3,7 @@
3
3
  * pg_language_d.h
4
4
  * Macro definitions for pg_language
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,8 @@
19
19
  #define PG_LANGUAGE_D_H
20
20
 
21
21
  #define LanguageRelationId 2612
22
+ #define LanguageNameIndexId 2681
23
+ #define LanguageOidIndexId 2682
22
24
 
23
25
  #define Anum_pg_language_oid 1
24
26
  #define Anum_pg_language_lanname 2
@@ -4,7 +4,7 @@
4
4
  * definition of the "namespace" system catalog (pg_namespace)
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_namespace.h
@@ -37,7 +37,7 @@ CATALOG(pg_namespace,2615,NamespaceRelationId)
37
37
  Oid oid; /* oid */
38
38
 
39
39
  NameData nspname;
40
- Oid nspowner;
40
+ Oid nspowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
41
41
 
42
42
  #ifdef CATALOG_VARLEN /* variable-length fields start here */
43
43
  aclitem nspacl[1];
@@ -51,6 +51,11 @@ CATALOG(pg_namespace,2615,NamespaceRelationId)
51
51
  */
52
52
  typedef FormData_pg_namespace *Form_pg_namespace;
53
53
 
54
+ DECLARE_TOAST(pg_namespace, 4163, 4164);
55
+
56
+ DECLARE_UNIQUE_INDEX(pg_namespace_nspname_index, 2684, NamespaceNameIndexId, on pg_namespace using btree(nspname name_ops));
57
+ DECLARE_UNIQUE_INDEX_PKEY(pg_namespace_oid_index, 2685, NamespaceOidIndexId, on pg_namespace using btree(oid oid_ops));
58
+
54
59
  /*
55
60
  * prototypes for functions in pg_namespace.c
56
61
  */
@@ -3,7 +3,7 @@
3
3
  * pg_namespace_d.h
4
4
  * Macro definitions for pg_namespace
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,8 @@
19
19
  #define PG_NAMESPACE_D_H
20
20
 
21
21
  #define NamespaceRelationId 2615
22
+ #define NamespaceNameIndexId 2684
23
+ #define NamespaceOidIndexId 2685
22
24
 
23
25
  #define Anum_pg_namespace_oid 1
24
26
  #define Anum_pg_namespace_nspname 2
@@ -24,7 +24,7 @@
24
24
  * AMs support this.
25
25
  *
26
26
  *
27
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
27
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
28
28
  * Portions Copyright (c) 1994, Regents of the University of California
29
29
  *
30
30
  * src/include/catalog/pg_opclass.h
@@ -57,10 +57,10 @@ CATALOG(pg_opclass,2616,OperatorClassRelationId)
57
57
  NameData opcname;
58
58
 
59
59
  /* namespace of this opclass */
60
- Oid opcnamespace BKI_DEFAULT(PGNSP);
60
+ Oid opcnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
61
61
 
62
62
  /* opclass owner */
63
- Oid opcowner BKI_DEFAULT(PGUID);
63
+ Oid opcowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
64
64
 
65
65
  /* containing operator family */
66
66
  Oid opcfamily BKI_LOOKUP(pg_opfamily);
@@ -71,8 +71,8 @@ CATALOG(pg_opclass,2616,OperatorClassRelationId)
71
71
  /* T if opclass is default for opcintype */
72
72
  bool opcdefault BKI_DEFAULT(t);
73
73
 
74
- /* type of data in index, or InvalidOid */
75
- Oid opckeytype BKI_DEFAULT(0) BKI_LOOKUP(pg_type);
74
+ /* type of data in index, or InvalidOid if same as input column type */
75
+ Oid opckeytype BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_type);
76
76
  } FormData_pg_opclass;
77
77
 
78
78
  /* ----------------
@@ -82,4 +82,7 @@ CATALOG(pg_opclass,2616,OperatorClassRelationId)
82
82
  */
83
83
  typedef FormData_pg_opclass *Form_pg_opclass;
84
84
 
85
+ DECLARE_UNIQUE_INDEX(pg_opclass_am_name_nsp_index, 2686, OpclassAmNameNspIndexId, on pg_opclass using btree(opcmethod oid_ops, opcname name_ops, opcnamespace oid_ops));
86
+ DECLARE_UNIQUE_INDEX_PKEY(pg_opclass_oid_index, 2687, OpclassOidIndexId, on pg_opclass using btree(oid oid_ops));
87
+
85
88
  #endif /* PG_OPCLASS_H */
@@ -3,7 +3,7 @@
3
3
  * pg_opclass_d.h
4
4
  * Macro definitions for pg_opclass
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,8 @@
19
19
  #define PG_OPCLASS_D_H
20
20
 
21
21
  #define OperatorClassRelationId 2616
22
+ #define OpclassAmNameNspIndexId 2686
23
+ #define OpclassOidIndexId 2687
22
24
 
23
25
  #define Anum_pg_opclass_oid 1
24
26
  #define Anum_pg_opclass_opcmethod 2
@@ -4,7 +4,7 @@
4
4
  * definition of the "operator" system catalog (pg_operator)
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_operator.h
@@ -36,12 +36,12 @@ CATALOG(pg_operator,2617,OperatorRelationId)
36
36
  NameData oprname;
37
37
 
38
38
  /* OID of namespace containing this oper */
39
- Oid oprnamespace BKI_DEFAULT(PGNSP);
39
+ Oid oprnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
40
40
 
41
41
  /* operator owner */
42
- Oid oprowner BKI_DEFAULT(PGUID);
42
+ Oid oprowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
43
43
 
44
- /* 'l', 'r', or 'b' */
44
+ /* 'l' for prefix or 'b' for infix */
45
45
  char oprkind BKI_DEFAULT(b);
46
46
 
47
47
  /* can be used in merge join? */
@@ -50,29 +50,29 @@ CATALOG(pg_operator,2617,OperatorRelationId)
50
50
  /* can be used in hash join? */
51
51
  bool oprcanhash BKI_DEFAULT(f);
52
52
 
53
- /* left arg type, or 0 if 'l' oprkind */
54
- Oid oprleft BKI_LOOKUP(pg_type);
53
+ /* left arg type, or 0 if prefix operator */
54
+ Oid oprleft BKI_LOOKUP_OPT(pg_type);
55
55
 
56
- /* right arg type, or 0 if 'r' oprkind */
56
+ /* right arg type */
57
57
  Oid oprright BKI_LOOKUP(pg_type);
58
58
 
59
- /* result datatype */
60
- Oid oprresult BKI_LOOKUP(pg_type);
59
+ /* result datatype; can be 0 in a "shell" operator */
60
+ Oid oprresult BKI_LOOKUP_OPT(pg_type);
61
61
 
62
62
  /* OID of commutator oper, or 0 if none */
63
- Oid oprcom BKI_DEFAULT(0) BKI_LOOKUP(pg_operator);
63
+ Oid oprcom BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_operator);
64
64
 
65
65
  /* OID of negator oper, or 0 if none */
66
- Oid oprnegate BKI_DEFAULT(0) BKI_LOOKUP(pg_operator);
66
+ Oid oprnegate BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_operator);
67
67
 
68
- /* OID of underlying function */
69
- regproc oprcode BKI_LOOKUP(pg_proc);
68
+ /* OID of underlying function; can be 0 in a "shell" operator */
69
+ regproc oprcode BKI_LOOKUP_OPT(pg_proc);
70
70
 
71
71
  /* OID of restriction estimator, or 0 */
72
- regproc oprrest BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
72
+ regproc oprrest BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
73
73
 
74
74
  /* OID of join estimator, or 0 */
75
- regproc oprjoin BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
75
+ regproc oprjoin BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
76
76
  } FormData_pg_operator;
77
77
 
78
78
  /* ----------------
@@ -82,6 +82,9 @@ CATALOG(pg_operator,2617,OperatorRelationId)
82
82
  */
83
83
  typedef FormData_pg_operator *Form_pg_operator;
84
84
 
85
+ DECLARE_UNIQUE_INDEX_PKEY(pg_operator_oid_index, 2688, OperatorOidIndexId, on pg_operator using btree(oid oid_ops));
86
+ DECLARE_UNIQUE_INDEX(pg_operator_oprname_l_r_n_index, 2689, OperatorNameNspIndexId, on pg_operator using btree(oprname name_ops, oprleft oid_ops, oprright oid_ops, oprnamespace oid_ops));
87
+
85
88
 
86
89
  extern ObjectAddress OperatorCreate(const char *operatorName,
87
90
  Oid operatorNamespace,