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
@@ -8,7 +8,7 @@
8
8
  * objects, created by CREATE STATISTICS, but not the actual statistical data,
9
9
  * created by running ANALYZE.
10
10
  *
11
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
11
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
12
12
  * Portions Copyright (c) 1994, Regents of the University of California
13
13
  *
14
14
  * src/include/catalog/pg_statistic_ext.h
@@ -34,24 +34,29 @@ CATALOG(pg_statistic_ext,3381,StatisticExtRelationId)
34
34
  {
35
35
  Oid oid; /* oid */
36
36
 
37
- Oid stxrelid; /* relation containing attributes */
37
+ Oid stxrelid BKI_LOOKUP(pg_class); /* relation containing
38
+ * attributes */
38
39
 
39
40
  /* These two fields form the unique key for the entry: */
40
41
  NameData stxname; /* statistics object name */
41
- Oid stxnamespace; /* OID of statistics object's namespace */
42
+ Oid stxnamespace BKI_LOOKUP(pg_namespace); /* OID of statistics
43
+ * object's namespace */
42
44
 
43
- Oid stxowner; /* statistics object's owner */
45
+ Oid stxowner BKI_LOOKUP(pg_authid); /* statistics object's owner */
44
46
  int32 stxstattarget BKI_DEFAULT(-1); /* statistics target */
45
47
 
46
48
  /*
47
49
  * variable-length fields start here, but we allow direct access to
48
50
  * stxkeys
49
51
  */
50
- int2vector stxkeys; /* array of column keys */
52
+ int2vector stxkeys BKI_FORCE_NOT_NULL; /* array of column keys */
51
53
 
52
54
  #ifdef CATALOG_VARLEN
53
55
  char stxkind[1] BKI_FORCE_NOT_NULL; /* statistics kinds requested
54
56
  * to build */
57
+ pg_node_tree stxexprs; /* A list of expression trees for stats
58
+ * attributes that are not simple column
59
+ * references. */
55
60
  #endif
56
61
 
57
62
  } FormData_pg_statistic_ext;
@@ -63,11 +68,20 @@ CATALOG(pg_statistic_ext,3381,StatisticExtRelationId)
63
68
  */
64
69
  typedef FormData_pg_statistic_ext *Form_pg_statistic_ext;
65
70
 
71
+ DECLARE_TOAST(pg_statistic_ext, 3439, 3440);
72
+
73
+ DECLARE_UNIQUE_INDEX_PKEY(pg_statistic_ext_oid_index, 3380, StatisticExtOidIndexId, on pg_statistic_ext using btree(oid oid_ops));
74
+ DECLARE_UNIQUE_INDEX(pg_statistic_ext_name_index, 3997, StatisticExtNameIndexId, on pg_statistic_ext using btree(stxname name_ops, stxnamespace oid_ops));
75
+ DECLARE_INDEX(pg_statistic_ext_relid_index, 3379, StatisticExtRelidIndexId, on pg_statistic_ext using btree(stxrelid oid_ops));
76
+
77
+ DECLARE_ARRAY_FOREIGN_KEY((stxrelid, stxkeys), pg_attribute, (attrelid, attnum));
78
+
66
79
  #ifdef EXPOSE_TO_CLIENT_CODE
67
80
 
68
81
  #define STATS_EXT_NDISTINCT 'd'
69
82
  #define STATS_EXT_DEPENDENCIES 'f'
70
83
  #define STATS_EXT_MCV 'm'
84
+ #define STATS_EXT_EXPRESSIONS 'e'
71
85
 
72
86
  #endif /* EXPOSE_TO_CLIENT_CODE */
73
87
 
@@ -3,7 +3,7 @@
3
3
  * pg_statistic_ext_d.h
4
4
  * Macro definitions for pg_statistic_ext
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_STATISTIC_EXT_D_H
20
20
 
21
21
  #define StatisticExtRelationId 3381
22
+ #define StatisticExtOidIndexId 3380
23
+ #define StatisticExtNameIndexId 3997
24
+ #define StatisticExtRelidIndexId 3379
22
25
 
23
26
  #define Anum_pg_statistic_ext_oid 1
24
27
  #define Anum_pg_statistic_ext_stxrelid 2
@@ -28,13 +31,15 @@
28
31
  #define Anum_pg_statistic_ext_stxstattarget 6
29
32
  #define Anum_pg_statistic_ext_stxkeys 7
30
33
  #define Anum_pg_statistic_ext_stxkind 8
34
+ #define Anum_pg_statistic_ext_stxexprs 9
31
35
 
32
- #define Natts_pg_statistic_ext 8
36
+ #define Natts_pg_statistic_ext 9
33
37
 
34
38
 
35
39
  #define STATS_EXT_NDISTINCT 'd'
36
40
  #define STATS_EXT_DEPENDENCIES 'f'
37
41
  #define STATS_EXT_MCV 'm'
42
+ #define STATS_EXT_EXPRESSIONS 'e'
38
43
 
39
44
 
40
45
  #endif /* PG_STATISTIC_EXT_D_H */
@@ -4,7 +4,7 @@
4
4
  * definition of the "transform" system catalog (pg_transform)
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_transform.h
@@ -29,10 +29,10 @@
29
29
  CATALOG(pg_transform,3576,TransformRelationId)
30
30
  {
31
31
  Oid oid; /* oid */
32
- Oid trftype;
33
- Oid trflang;
34
- regproc trffromsql;
35
- regproc trftosql;
32
+ Oid trftype BKI_LOOKUP(pg_type);
33
+ Oid trflang BKI_LOOKUP(pg_language);
34
+ regproc trffromsql BKI_LOOKUP_OPT(pg_proc);
35
+ regproc trftosql BKI_LOOKUP_OPT(pg_proc);
36
36
  } FormData_pg_transform;
37
37
 
38
38
  /* ----------------
@@ -42,4 +42,7 @@ CATALOG(pg_transform,3576,TransformRelationId)
42
42
  */
43
43
  typedef FormData_pg_transform *Form_pg_transform;
44
44
 
45
+ DECLARE_UNIQUE_INDEX_PKEY(pg_transform_oid_index, 3574, TransformOidIndexId, on pg_transform using btree(oid oid_ops));
46
+ DECLARE_UNIQUE_INDEX(pg_transform_type_lang_index, 3575, TransformTypeLangIndexId, on pg_transform using btree(trftype oid_ops, trflang oid_ops));
47
+
45
48
  #endif /* PG_TRANSFORM_H */
@@ -3,7 +3,7 @@
3
3
  * pg_transform_d.h
4
4
  * Macro definitions for pg_transform
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_TRANSFORM_D_H
20
20
 
21
21
  #define TransformRelationId 3576
22
+ #define TransformOidIndexId 3574
23
+ #define TransformTypeLangIndexId 3575
22
24
 
23
25
  #define Anum_pg_transform_oid 1
24
26
  #define Anum_pg_transform_trftype 2
@@ -4,7 +4,7 @@
4
4
  * definition of the "trigger" system catalog (pg_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_trigger.h
@@ -34,18 +34,25 @@
34
34
  CATALOG(pg_trigger,2620,TriggerRelationId)
35
35
  {
36
36
  Oid oid; /* oid */
37
- Oid tgrelid; /* relation trigger is attached to */
38
- Oid tgparentid; /* OID of parent trigger, if any */
37
+ Oid tgrelid BKI_LOOKUP(pg_class); /* relation trigger is
38
+ * attached to */
39
+ Oid tgparentid BKI_LOOKUP_OPT(pg_trigger); /* OID of parent
40
+ * trigger, if any */
39
41
  NameData tgname; /* trigger's name */
40
- Oid tgfoid; /* OID of function to be called */
42
+ Oid tgfoid BKI_LOOKUP(pg_proc); /* OID of function to be called */
41
43
  int16 tgtype; /* BEFORE/AFTER/INSTEAD, UPDATE/DELETE/INSERT,
42
44
  * ROW/STATEMENT; see below */
43
45
  char tgenabled; /* trigger's firing configuration WRT
44
46
  * session_replication_role */
45
47
  bool tgisinternal; /* trigger is system-generated */
46
- Oid tgconstrrelid; /* constraint's FROM table, if any */
47
- Oid tgconstrindid; /* constraint's supporting index, if any */
48
- Oid tgconstraint; /* associated pg_constraint entry, if any */
48
+ Oid tgconstrrelid BKI_LOOKUP_OPT(pg_class); /* constraint's FROM
49
+ * table, if any */
50
+ Oid tgconstrindid BKI_LOOKUP_OPT(pg_class); /* constraint's
51
+ * supporting index, if
52
+ * any */
53
+ Oid tgconstraint BKI_LOOKUP_OPT(pg_constraint); /* associated
54
+ * pg_constraint entry,
55
+ * if any */
49
56
  bool tgdeferrable; /* constraint trigger is deferrable */
50
57
  bool tginitdeferred; /* constraint trigger is deferred initially */
51
58
  int16 tgnargs; /* # of extra arguments in tgargs */
@@ -54,7 +61,8 @@ CATALOG(pg_trigger,2620,TriggerRelationId)
54
61
  * Variable-length fields start here, but we allow direct access to
55
62
  * tgattr. Note: tgattr and tgargs must not be null.
56
63
  */
57
- int2vector tgattr; /* column numbers, if trigger is on columns */
64
+ int2vector tgattr BKI_FORCE_NOT_NULL; /* column numbers, if trigger is
65
+ * on columns */
58
66
 
59
67
  #ifdef CATALOG_VARLEN
60
68
  bytea tgargs BKI_FORCE_NOT_NULL; /* first\000second\000tgnargs\000 */
@@ -71,6 +79,14 @@ CATALOG(pg_trigger,2620,TriggerRelationId)
71
79
  */
72
80
  typedef FormData_pg_trigger *Form_pg_trigger;
73
81
 
82
+ DECLARE_TOAST(pg_trigger, 2336, 2337);
83
+
84
+ DECLARE_INDEX(pg_trigger_tgconstraint_index, 2699, TriggerConstraintIndexId, on pg_trigger using btree(tgconstraint oid_ops));
85
+ DECLARE_UNIQUE_INDEX(pg_trigger_tgrelid_tgname_index, 2701, TriggerRelidNameIndexId, on pg_trigger using btree(tgrelid oid_ops, tgname name_ops));
86
+ DECLARE_UNIQUE_INDEX_PKEY(pg_trigger_oid_index, 2702, TriggerOidIndexId, on pg_trigger using btree(oid oid_ops));
87
+
88
+ DECLARE_ARRAY_FOREIGN_KEY((tgrelid, tgattr), pg_attribute, (attrelid, attnum));
89
+
74
90
  #ifdef EXPOSE_TO_CLIENT_CODE
75
91
 
76
92
  /* Bits within tgtype */
@@ -3,7 +3,7 @@
3
3
  * pg_trigger_d.h
4
4
  * Macro definitions for pg_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,9 @@
19
19
  #define PG_TRIGGER_D_H
20
20
 
21
21
  #define TriggerRelationId 2620
22
+ #define TriggerConstraintIndexId 2699
23
+ #define TriggerRelidNameIndexId 2701
24
+ #define TriggerOidIndexId 2702
22
25
 
23
26
  #define Anum_pg_trigger_oid 1
24
27
  #define Anum_pg_trigger_tgrelid 2
@@ -5,7 +5,7 @@
5
5
  * (pg_ts_config)
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_ts_config.h
@@ -36,10 +36,10 @@ CATALOG(pg_ts_config,3602,TSConfigRelationId)
36
36
  NameData cfgname;
37
37
 
38
38
  /* name space */
39
- Oid cfgnamespace BKI_DEFAULT(PGNSP);
39
+ Oid cfgnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
40
40
 
41
41
  /* owner */
42
- Oid cfgowner BKI_DEFAULT(PGUID);
42
+ Oid cfgowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
43
43
 
44
44
  /* OID of parser */
45
45
  Oid cfgparser BKI_LOOKUP(pg_ts_parser);
@@ -47,4 +47,7 @@ CATALOG(pg_ts_config,3602,TSConfigRelationId)
47
47
 
48
48
  typedef FormData_pg_ts_config *Form_pg_ts_config;
49
49
 
50
+ DECLARE_UNIQUE_INDEX(pg_ts_config_cfgname_index, 3608, TSConfigNameNspIndexId, on pg_ts_config using btree(cfgname name_ops, cfgnamespace oid_ops));
51
+ DECLARE_UNIQUE_INDEX_PKEY(pg_ts_config_oid_index, 3712, TSConfigOidIndexId, on pg_ts_config using btree(oid oid_ops));
52
+
50
53
  #endif /* PG_TS_CONFIG_H */
@@ -3,7 +3,7 @@
3
3
  * pg_ts_config_d.h
4
4
  * Macro definitions for pg_ts_config
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_TS_CONFIG_D_H
20
20
 
21
21
  #define TSConfigRelationId 3602
22
+ #define TSConfigNameNspIndexId 3608
23
+ #define TSConfigOidIndexId 3712
22
24
 
23
25
  #define Anum_pg_ts_config_oid 1
24
26
  #define Anum_pg_ts_config_cfgname 2
@@ -4,7 +4,7 @@
4
4
  * definition of the "text search dictionary" system catalog (pg_ts_dict)
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_ts_dict.h
@@ -35,10 +35,10 @@ CATALOG(pg_ts_dict,3600,TSDictionaryRelationId)
35
35
  NameData dictname;
36
36
 
37
37
  /* name space */
38
- Oid dictnamespace BKI_DEFAULT(PGNSP);
38
+ Oid dictnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
39
39
 
40
40
  /* owner */
41
- Oid dictowner BKI_DEFAULT(PGUID);
41
+ Oid dictowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
42
42
 
43
43
  /* dictionary's template */
44
44
  Oid dicttemplate BKI_LOOKUP(pg_ts_template);
@@ -51,4 +51,9 @@ CATALOG(pg_ts_dict,3600,TSDictionaryRelationId)
51
51
 
52
52
  typedef FormData_pg_ts_dict *Form_pg_ts_dict;
53
53
 
54
+ DECLARE_TOAST(pg_ts_dict, 4169, 4170);
55
+
56
+ DECLARE_UNIQUE_INDEX(pg_ts_dict_dictname_index, 3604, TSDictionaryNameNspIndexId, on pg_ts_dict using btree(dictname name_ops, dictnamespace oid_ops));
57
+ DECLARE_UNIQUE_INDEX_PKEY(pg_ts_dict_oid_index, 3605, TSDictionaryOidIndexId, on pg_ts_dict using btree(oid oid_ops));
58
+
54
59
  #endif /* PG_TS_DICT_H */
@@ -3,7 +3,7 @@
3
3
  * pg_ts_dict_d.h
4
4
  * Macro definitions for pg_ts_dict
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_TS_DICT_D_H
20
20
 
21
21
  #define TSDictionaryRelationId 3600
22
+ #define TSDictionaryNameNspIndexId 3604
23
+ #define TSDictionaryOidIndexId 3605
22
24
 
23
25
  #define Anum_pg_ts_dict_oid 1
24
26
  #define Anum_pg_ts_dict_dictname 2
@@ -4,7 +4,7 @@
4
4
  * definition of the "text search parser" system catalog (pg_ts_parser)
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_ts_parser.h
@@ -34,7 +34,7 @@ CATALOG(pg_ts_parser,3601,TSParserRelationId)
34
34
  NameData prsname;
35
35
 
36
36
  /* name space */
37
- Oid prsnamespace BKI_DEFAULT(PGNSP);
37
+ Oid prsnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
38
38
 
39
39
  /* init parsing session */
40
40
  regproc prsstart BKI_LOOKUP(pg_proc);
@@ -46,7 +46,7 @@ CATALOG(pg_ts_parser,3601,TSParserRelationId)
46
46
  regproc prsend BKI_LOOKUP(pg_proc);
47
47
 
48
48
  /* return data for headline creation */
49
- regproc prsheadline BKI_LOOKUP(pg_proc);
49
+ regproc prsheadline BKI_LOOKUP_OPT(pg_proc);
50
50
 
51
51
  /* return descriptions of lexeme's types */
52
52
  regproc prslextype BKI_LOOKUP(pg_proc);
@@ -54,4 +54,7 @@ CATALOG(pg_ts_parser,3601,TSParserRelationId)
54
54
 
55
55
  typedef FormData_pg_ts_parser *Form_pg_ts_parser;
56
56
 
57
+ DECLARE_UNIQUE_INDEX(pg_ts_parser_prsname_index, 3606, TSParserNameNspIndexId, on pg_ts_parser using btree(prsname name_ops, prsnamespace oid_ops));
58
+ DECLARE_UNIQUE_INDEX_PKEY(pg_ts_parser_oid_index, 3607, TSParserOidIndexId, on pg_ts_parser using btree(oid oid_ops));
59
+
57
60
  #endif /* PG_TS_PARSER_H */
@@ -3,7 +3,7 @@
3
3
  * pg_ts_parser_d.h
4
4
  * Macro definitions for pg_ts_parser
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_TS_PARSER_D_H
20
20
 
21
21
  #define TSParserRelationId 3601
22
+ #define TSParserNameNspIndexId 3606
23
+ #define TSParserOidIndexId 3607
22
24
 
23
25
  #define Anum_pg_ts_parser_oid 1
24
26
  #define Anum_pg_ts_parser_prsname 2
@@ -4,7 +4,7 @@
4
4
  * definition of the "text search template" system catalog (pg_ts_template)
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_ts_template.h
@@ -34,10 +34,10 @@ CATALOG(pg_ts_template,3764,TSTemplateRelationId)
34
34
  NameData tmplname;
35
35
 
36
36
  /* name space */
37
- Oid tmplnamespace BKI_DEFAULT(PGNSP);
37
+ Oid tmplnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
38
38
 
39
39
  /* initialization method of dict (may be 0) */
40
- regproc tmplinit BKI_LOOKUP(pg_proc);
40
+ regproc tmplinit BKI_LOOKUP_OPT(pg_proc);
41
41
 
42
42
  /* base method of dictionary */
43
43
  regproc tmpllexize BKI_LOOKUP(pg_proc);
@@ -45,4 +45,7 @@ CATALOG(pg_ts_template,3764,TSTemplateRelationId)
45
45
 
46
46
  typedef FormData_pg_ts_template *Form_pg_ts_template;
47
47
 
48
+ DECLARE_UNIQUE_INDEX(pg_ts_template_tmplname_index, 3766, TSTemplateNameNspIndexId, on pg_ts_template using btree(tmplname name_ops, tmplnamespace oid_ops));
49
+ DECLARE_UNIQUE_INDEX_PKEY(pg_ts_template_oid_index, 3767, TSTemplateOidIndexId, on pg_ts_template using btree(oid oid_ops));
50
+
48
51
  #endif /* PG_TS_TEMPLATE_H */
@@ -3,7 +3,7 @@
3
3
  * pg_ts_template_d.h
4
4
  * Macro definitions for pg_ts_template
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_TS_TEMPLATE_D_H
20
20
 
21
21
  #define TSTemplateRelationId 3764
22
+ #define TSTemplateNameNspIndexId 3766
23
+ #define TSTemplateOidIndexId 3767
22
24
 
23
25
  #define Anum_pg_ts_template_oid 1
24
26
  #define Anum_pg_ts_template_tmplname 2
@@ -4,7 +4,7 @@
4
4
  * definition of the "type" system catalog (pg_type)
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_type.h
@@ -41,10 +41,10 @@ CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71,TypeRelati
41
41
  NameData typname;
42
42
 
43
43
  /* OID of namespace containing this type */
44
- Oid typnamespace BKI_DEFAULT(PGNSP);
44
+ Oid typnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
45
45
 
46
46
  /* type owner */
47
- Oid typowner BKI_DEFAULT(PGUID);
47
+ Oid typowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
48
48
 
49
49
  /*
50
50
  * For a fixed-size type, typlen is the number of bytes we use to
@@ -98,26 +98,32 @@ CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71,TypeRelati
98
98
  char typdelim BKI_DEFAULT(',');
99
99
 
100
100
  /* associated pg_class OID if a composite type, else 0 */
101
- Oid typrelid BKI_DEFAULT(0) BKI_ARRAY_DEFAULT(0) BKI_LOOKUP(pg_class);
101
+ Oid typrelid BKI_DEFAULT(0) BKI_ARRAY_DEFAULT(0) BKI_LOOKUP_OPT(pg_class);
102
102
 
103
103
  /*
104
- * If typelem is not 0 then it identifies another row in pg_type. The
105
- * current type can then be subscripted like an array yielding values of
106
- * type typelem. A non-zero typelem does not guarantee this type to be a
107
- * "real" array type; some ordinary fixed-length types can also be
108
- * subscripted (e.g., name, point). Variable-length types can *not* be
109
- * turned into pseudo-arrays like that. Hence, the way to determine
110
- * whether a type is a "true" array type is if:
111
- *
112
- * typelem != 0 and typlen == -1.
104
+ * Type-specific subscripting handler. If typsubscript is 0, it means
105
+ * that this type doesn't support subscripting. Note that various parts
106
+ * of the system deem types to be "true" array types only if their
107
+ * typsubscript is array_subscript_handler.
108
+ */
109
+ regproc typsubscript BKI_DEFAULT(-) BKI_ARRAY_DEFAULT(array_subscript_handler) BKI_LOOKUP_OPT(pg_proc);
110
+
111
+ /*
112
+ * If typelem is not 0 then it identifies another row in pg_type, defining
113
+ * the type yielded by subscripting. This should be 0 if typsubscript is
114
+ * 0. However, it can be 0 when typsubscript isn't 0, if the handler
115
+ * doesn't need typelem to determine the subscripting result type. Note
116
+ * that a typelem dependency is considered to imply physical containment
117
+ * of the element type in this type; so DDL changes on the element type
118
+ * might be restricted by the presence of this type.
113
119
  */
114
- Oid typelem BKI_DEFAULT(0) BKI_LOOKUP(pg_type);
120
+ Oid typelem BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_type);
115
121
 
116
122
  /*
117
123
  * If there is a "true" array type having this type as element type,
118
124
  * typarray links to it. Zero if no associated "true" array type.
119
125
  */
120
- Oid typarray BKI_DEFAULT(0) BKI_ARRAY_DEFAULT(0) BKI_LOOKUP(pg_type);
126
+ Oid typarray BKI_DEFAULT(0) BKI_ARRAY_DEFAULT(0) BKI_LOOKUP_OPT(pg_type);
121
127
 
122
128
  /*
123
129
  * I/O conversion procedures for the datatype.
@@ -128,19 +134,19 @@ CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71,TypeRelati
128
134
  regproc typoutput BKI_ARRAY_DEFAULT(array_out) BKI_LOOKUP(pg_proc);
129
135
 
130
136
  /* binary format (optional) */
131
- regproc typreceive BKI_ARRAY_DEFAULT(array_recv) BKI_LOOKUP(pg_proc);
132
- regproc typsend BKI_ARRAY_DEFAULT(array_send) BKI_LOOKUP(pg_proc);
137
+ regproc typreceive BKI_ARRAY_DEFAULT(array_recv) BKI_LOOKUP_OPT(pg_proc);
138
+ regproc typsend BKI_ARRAY_DEFAULT(array_send) BKI_LOOKUP_OPT(pg_proc);
133
139
 
134
140
  /*
135
141
  * I/O functions for optional type modifiers.
136
142
  */
137
- regproc typmodin BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
138
- regproc typmodout BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
143
+ regproc typmodin BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
144
+ regproc typmodout BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
139
145
 
140
146
  /*
141
147
  * Custom ANALYZE procedure for the datatype (0 selects the default).
142
148
  */
143
- regproc typanalyze BKI_DEFAULT(-) BKI_ARRAY_DEFAULT(array_typanalyze) BKI_LOOKUP(pg_proc);
149
+ regproc typanalyze BKI_DEFAULT(-) BKI_ARRAY_DEFAULT(array_typanalyze) BKI_LOOKUP_OPT(pg_proc);
144
150
 
145
151
  /* ----------------
146
152
  * typalign is the alignment required when storing a value of this
@@ -199,7 +205,7 @@ CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71,TypeRelati
199
205
  * Domains use typbasetype to show the base (or domain) type that the
200
206
  * domain is based on. Zero if the type is not a domain.
201
207
  */
202
- Oid typbasetype BKI_DEFAULT(0);
208
+ Oid typbasetype BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_type);
203
209
 
204
210
  /*
205
211
  * Domains use typtypmod to record the typmod to be applied to their base
@@ -219,7 +225,7 @@ CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71,TypeRelati
219
225
  * DEFAULT_COLLATION_OID) for collatable base types, possibly some other
220
226
  * OID for domains over collatable types
221
227
  */
222
- Oid typcollation BKI_DEFAULT(0) BKI_LOOKUP(pg_collation);
228
+ Oid typcollation BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_collation);
223
229
 
224
230
  #ifdef CATALOG_VARLEN /* variable-length fields start here */
225
231
 
@@ -254,6 +260,11 @@ CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71,TypeRelati
254
260
  */
255
261
  typedef FormData_pg_type *Form_pg_type;
256
262
 
263
+ DECLARE_TOAST(pg_type, 4171, 4172);
264
+
265
+ DECLARE_UNIQUE_INDEX_PKEY(pg_type_oid_index, 2703, TypeOidIndexId, on pg_type using btree(oid oid_ops));
266
+ DECLARE_UNIQUE_INDEX(pg_type_typname_nsp_index, 2704, TypeNameNspIndexId, on pg_type using btree(typname name_ops, typnamespace oid_ops));
267
+
257
268
  #ifdef EXPOSE_TO_CLIENT_CODE
258
269
 
259
270
  /*
@@ -263,6 +274,7 @@ typedef FormData_pg_type *Form_pg_type;
263
274
  #define TYPTYPE_COMPOSITE 'c' /* composite (e.g., table's rowtype) */
264
275
  #define TYPTYPE_DOMAIN 'd' /* domain over another type */
265
276
  #define TYPTYPE_ENUM 'e' /* enumerated type */
277
+ #define TYPTYPE_MULTIRANGE 'm' /* multirange type */
266
278
  #define TYPTYPE_PSEUDO 'p' /* pseudo-type */
267
279
  #define TYPTYPE_RANGE 'r' /* range type */
268
280
 
@@ -282,6 +294,7 @@ typedef FormData_pg_type *Form_pg_type;
282
294
  #define TYPCATEGORY_USER 'U'
283
295
  #define TYPCATEGORY_BITSTRING 'V' /* er ... "varbit"? */
284
296
  #define TYPCATEGORY_UNKNOWN 'X'
297
+ #define TYPCATEGORY_INTERNAL 'Z'
285
298
 
286
299
  #define TYPALIGN_CHAR 'c' /* char alignment (i.e. unaligned) */
287
300
  #define TYPALIGN_SHORT 's' /* short alignment (typically 2 bytes) */
@@ -304,13 +317,27 @@ typedef FormData_pg_type *Form_pg_type;
304
317
  (typid) == ANYARRAYOID || \
305
318
  (typid) == ANYNONARRAYOID || \
306
319
  (typid) == ANYENUMOID || \
307
- (typid) == ANYRANGEOID)
320
+ (typid) == ANYRANGEOID || \
321
+ (typid) == ANYMULTIRANGEOID)
308
322
 
309
323
  #define IsPolymorphicTypeFamily2(typid) \
310
324
  ((typid) == ANYCOMPATIBLEOID || \
311
325
  (typid) == ANYCOMPATIBLEARRAYOID || \
312
326
  (typid) == ANYCOMPATIBLENONARRAYOID || \
313
- (typid) == ANYCOMPATIBLERANGEOID)
327
+ (typid) == ANYCOMPATIBLERANGEOID || \
328
+ (typid) == ANYCOMPATIBLEMULTIRANGEOID)
329
+
330
+ /* Is this a "true" array type? (Requires fmgroids.h) */
331
+ #define IsTrueArrayType(typeForm) \
332
+ (OidIsValid((typeForm)->typelem) && \
333
+ (typeForm)->typsubscript == F_ARRAY_SUBSCRIPT_HANDLER)
334
+
335
+ /*
336
+ * Backwards compatibility for ancient random spellings of pg_type OID macros.
337
+ * Don't use these names in new code.
338
+ */
339
+ #define CASHOID MONEYOID
340
+ #define LSNOID PG_LSNOID
314
341
 
315
342
  #endif /* EXPOSE_TO_CLIENT_CODE */
316
343
 
@@ -337,6 +364,7 @@ extern ObjectAddress TypeCreate(Oid newTypeOid,
337
364
  Oid typmodinProcedure,
338
365
  Oid typmodoutProcedure,
339
366
  Oid analyzeProcedure,
367
+ Oid subscriptProcedure,
340
368
  Oid elementType,
341
369
  bool isImplicitArray,
342
370
  Oid arrayType,
@@ -370,4 +398,7 @@ extern char *makeArrayTypeName(const char *typeName, Oid typeNamespace);
370
398
  extern bool moveArrayTypeName(Oid typeOid, const char *typeName,
371
399
  Oid typeNamespace);
372
400
 
401
+ extern char *makeMultirangeTypeName(const char *rangeTypeName,
402
+ Oid typeNamespace);
403
+
373
404
  #endif /* PG_TYPE_H */