pg_query 2.1.0 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +104 -0
  3. data/README.md +59 -31
  4. data/Rakefile +2 -2
  5. data/ext/pg_query/extconf.rb +8 -2
  6. data/ext/pg_query/include/access/amapi.h +45 -1
  7. data/ext/pg_query/include/access/attmap.h +1 -1
  8. data/ext/pg_query/include/access/attnum.h +2 -2
  9. data/ext/pg_query/include/access/clog.h +4 -2
  10. data/ext/pg_query/include/access/commit_ts.h +6 -9
  11. data/ext/pg_query/include/access/detoast.h +1 -11
  12. data/ext/pg_query/include/access/genam.h +15 -12
  13. data/ext/pg_query/include/access/gin.h +2 -2
  14. data/ext/pg_query/include/access/htup.h +1 -1
  15. data/ext/pg_query/include/access/htup_details.h +75 -87
  16. data/ext/pg_query/include/access/itup.h +7 -1
  17. data/ext/pg_query/include/access/parallel.h +2 -2
  18. data/ext/pg_query/include/access/printtup.h +1 -1
  19. data/ext/pg_query/include/access/relation.h +1 -1
  20. data/ext/pg_query/include/access/relscan.h +17 -2
  21. data/ext/pg_query/include/access/rmgr.h +30 -3
  22. data/ext/pg_query/include/access/rmgrlist.h +23 -23
  23. data/ext/pg_query/include/access/sdir.h +1 -1
  24. data/ext/pg_query/include/access/skey.h +1 -1
  25. data/ext/pg_query/include/access/stratnum.h +4 -2
  26. data/ext/pg_query/include/access/sysattr.h +1 -1
  27. data/ext/pg_query/include/access/table.h +2 -1
  28. data/ext/pg_query/include/access/tableam.h +272 -20
  29. data/ext/pg_query/include/access/toast_compression.h +73 -0
  30. data/ext/pg_query/include/access/transam.h +123 -13
  31. data/ext/pg_query/include/access/tupconvert.h +1 -1
  32. data/ext/pg_query/include/access/tupdesc.h +1 -1
  33. data/ext/pg_query/include/access/tupmacs.h +3 -3
  34. data/ext/pg_query/include/access/twophase.h +5 -1
  35. data/ext/pg_query/include/access/xact.h +79 -19
  36. data/ext/pg_query/include/access/xlog.h +60 -155
  37. data/ext/pg_query/include/access/xlog_internal.h +50 -14
  38. data/ext/pg_query/include/access/xlogdefs.h +8 -16
  39. data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
  40. data/ext/pg_query/include/access/xlogreader.h +148 -32
  41. data/ext/pg_query/include/access/xlogrecord.h +18 -9
  42. data/ext/pg_query/include/access/xlogrecovery.h +157 -0
  43. data/ext/pg_query/include/c.h +101 -44
  44. data/ext/pg_query/include/catalog/catalog.h +3 -1
  45. data/ext/pg_query/include/catalog/catversion.h +2 -2
  46. data/ext/pg_query/include/catalog/dependency.h +10 -16
  47. data/ext/pg_query/include/catalog/genbki.h +83 -5
  48. data/ext/pg_query/include/catalog/index.h +18 -3
  49. data/ext/pg_query/include/catalog/indexing.h +12 -324
  50. data/ext/pg_query/include/catalog/namespace.h +4 -2
  51. data/ext/pg_query/include/catalog/objectaccess.h +70 -2
  52. data/ext/pg_query/include/catalog/objectaddress.h +11 -6
  53. data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
  54. data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
  55. data/ext/pg_query/include/catalog/pg_am.h +4 -1
  56. data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
  57. data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
  58. data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
  59. data/ext/pg_query/include/catalog/pg_authid.h +7 -2
  60. data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
  61. data/ext/pg_query/include/catalog/pg_class.h +45 -15
  62. data/ext/pg_query/include/catalog/pg_class_d.h +31 -2
  63. data/ext/pg_query/include/catalog/pg_collation.h +33 -8
  64. data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
  65. data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
  66. data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
  67. data/ext/pg_query/include/catalog/pg_control.h +5 -5
  68. data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
  69. data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
  70. data/ext/pg_query/include/catalog/pg_depend.h +11 -7
  71. data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
  72. data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
  73. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
  74. data/ext/pg_query/include/catalog/pg_index.h +17 -7
  75. data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
  76. data/ext/pg_query/include/catalog/pg_language.h +10 -5
  77. data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
  78. data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
  79. data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
  80. data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
  81. data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
  82. data/ext/pg_query/include/catalog/pg_operator.h +21 -16
  83. data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
  84. data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
  85. data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
  86. data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
  87. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
  88. data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
  89. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
  90. data/ext/pg_query/include/catalog/pg_proc.h +20 -11
  91. data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
  92. data/ext/pg_query/include/catalog/pg_publication.h +50 -4
  93. data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
  94. data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
  95. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
  96. data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
  97. data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
  98. data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
  99. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
  100. data/ext/pg_query/include/catalog/pg_transform.h +8 -5
  101. data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
  102. data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
  103. data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
  104. data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
  105. data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
  106. data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
  107. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
  108. data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
  109. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
  110. data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
  111. data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
  112. data/ext/pg_query/include/catalog/pg_type.h +56 -24
  113. data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
  114. data/ext/pg_query/include/catalog/storage.h +5 -3
  115. data/ext/pg_query/include/commands/async.h +4 -5
  116. data/ext/pg_query/include/commands/dbcommands.h +2 -1
  117. data/ext/pg_query/include/commands/defrem.h +11 -24
  118. data/ext/pg_query/include/commands/event_trigger.h +2 -2
  119. data/ext/pg_query/include/commands/explain.h +1 -1
  120. data/ext/pg_query/include/commands/prepare.h +1 -1
  121. data/ext/pg_query/include/commands/tablespace.h +3 -1
  122. data/ext/pg_query/include/commands/trigger.h +27 -17
  123. data/ext/pg_query/include/commands/user.h +2 -2
  124. data/ext/pg_query/include/commands/vacuum.h +88 -41
  125. data/ext/pg_query/include/commands/variable.h +1 -1
  126. data/ext/pg_query/include/common/file_perm.h +4 -4
  127. data/ext/pg_query/include/common/hashfn.h +1 -1
  128. data/ext/pg_query/include/common/ip.h +1 -7
  129. data/ext/pg_query/include/common/keywords.h +2 -6
  130. data/ext/pg_query/include/common/kwlookup.h +1 -1
  131. data/ext/pg_query/include/common/pg_prng.h +60 -0
  132. data/ext/pg_query/include/common/relpath.h +2 -2
  133. data/ext/pg_query/include/common/string.h +24 -1
  134. data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
  135. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
  136. data/ext/pg_query/include/datatype/timestamp.h +40 -1
  137. data/ext/pg_query/include/executor/execdesc.h +1 -1
  138. data/ext/pg_query/include/executor/executor.h +65 -22
  139. data/ext/pg_query/include/executor/functions.h +17 -3
  140. data/ext/pg_query/include/executor/instrument.h +33 -16
  141. data/ext/pg_query/include/executor/spi.h +41 -3
  142. data/ext/pg_query/include/executor/tablefunc.h +1 -1
  143. data/ext/pg_query/include/executor/tuptable.h +1 -1
  144. data/ext/pg_query/include/fmgr.h +13 -7
  145. data/ext/pg_query/include/funcapi.h +16 -4
  146. data/ext/pg_query/include/getaddrinfo.h +1 -1
  147. data/ext/pg_query/include/jit/jit.h +11 -11
  148. data/ext/pg_query/include/kwlist_d.h +517 -494
  149. data/ext/pg_query/include/lib/dshash.h +112 -0
  150. data/ext/pg_query/include/lib/ilist.h +20 -1
  151. data/ext/pg_query/include/lib/pairingheap.h +1 -1
  152. data/ext/pg_query/include/lib/simplehash.h +150 -25
  153. data/ext/pg_query/include/lib/sort_template.h +432 -0
  154. data/ext/pg_query/include/lib/stringinfo.h +1 -1
  155. data/ext/pg_query/include/libpq/auth.h +6 -4
  156. data/ext/pg_query/include/libpq/crypt.h +5 -4
  157. data/ext/pg_query/include/libpq/hba.h +43 -4
  158. data/ext/pg_query/include/libpq/libpq-be.h +23 -6
  159. data/ext/pg_query/include/libpq/libpq.h +31 -20
  160. data/ext/pg_query/include/libpq/pqcomm.h +17 -31
  161. data/ext/pg_query/include/libpq/pqformat.h +1 -1
  162. data/ext/pg_query/include/libpq/pqsignal.h +4 -4
  163. data/ext/pg_query/include/mb/pg_wchar.h +106 -23
  164. data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
  165. data/ext/pg_query/include/miscadmin.h +71 -52
  166. data/ext/pg_query/include/nodes/bitmapset.h +1 -1
  167. data/ext/pg_query/include/nodes/execnodes.h +272 -80
  168. data/ext/pg_query/include/nodes/extensible.h +4 -2
  169. data/ext/pg_query/include/nodes/lockoptions.h +1 -1
  170. data/ext/pg_query/include/nodes/makefuncs.h +7 -6
  171. data/ext/pg_query/include/nodes/memnodes.h +5 -3
  172. data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
  173. data/ext/pg_query/include/nodes/nodes.h +30 -11
  174. data/ext/pg_query/include/nodes/params.h +1 -1
  175. data/ext/pg_query/include/nodes/parsenodes.h +327 -94
  176. data/ext/pg_query/include/nodes/pathnodes.h +245 -67
  177. data/ext/pg_query/include/nodes/pg_list.h +75 -68
  178. data/ext/pg_query/include/nodes/plannodes.h +128 -30
  179. data/ext/pg_query/include/nodes/primnodes.h +99 -47
  180. data/ext/pg_query/include/nodes/print.h +1 -1
  181. data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
  182. data/ext/pg_query/include/nodes/value.h +58 -39
  183. data/ext/pg_query/include/optimizer/cost.h +9 -2
  184. data/ext/pg_query/include/optimizer/geqo.h +9 -7
  185. data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
  186. data/ext/pg_query/include/optimizer/optimizer.h +25 -22
  187. data/ext/pg_query/include/optimizer/paths.h +6 -6
  188. data/ext/pg_query/include/optimizer/planmain.h +15 -14
  189. data/ext/pg_query/include/parser/analyze.h +19 -5
  190. data/ext/pg_query/include/parser/gram.h +947 -913
  191. data/ext/pg_query/include/parser/gramparse.h +1 -1
  192. data/ext/pg_query/include/parser/kwlist.h +463 -453
  193. data/ext/pg_query/include/parser/parse_agg.h +2 -7
  194. data/ext/pg_query/include/parser/parse_coerce.h +4 -1
  195. data/ext/pg_query/include/parser/parse_expr.h +2 -3
  196. data/ext/pg_query/include/parser/parse_func.h +2 -1
  197. data/ext/pg_query/include/parser/parse_node.h +21 -9
  198. data/ext/pg_query/include/parser/parse_oper.h +1 -3
  199. data/ext/pg_query/include/parser/parse_relation.h +5 -4
  200. data/ext/pg_query/include/parser/parse_type.h +1 -1
  201. data/ext/pg_query/include/parser/parser.h +31 -4
  202. data/ext/pg_query/include/parser/parsetree.h +1 -1
  203. data/ext/pg_query/include/parser/scanner.h +1 -1
  204. data/ext/pg_query/include/parser/scansup.h +2 -5
  205. data/ext/pg_query/include/partitioning/partdefs.h +1 -1
  206. data/ext/pg_query/include/pg_config.h +94 -46
  207. data/ext/pg_query/include/pg_config_manual.h +74 -21
  208. data/ext/pg_query/include/pg_getopt.h +6 -6
  209. data/ext/pg_query/include/pg_query.h +5 -4
  210. data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
  211. data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
  212. data/ext/pg_query/include/pg_query_fingerprint_defs.c +1220 -422
  213. data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
  214. data/ext/pg_query/include/pg_query_outfuncs_defs.c +152 -26
  215. data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
  216. data/ext/pg_query/include/pg_query_readfuncs_defs.c +174 -30
  217. data/ext/pg_query/include/pg_trace.h +1 -1
  218. data/ext/pg_query/include/pgstat.h +449 -1237
  219. data/ext/pg_query/include/pgtime.h +14 -4
  220. data/ext/pg_query/include/pl_gram.h +126 -128
  221. data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
  222. data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
  223. data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
  224. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
  225. data/ext/pg_query/include/plerrcodes.h +9 -1
  226. data/ext/pg_query/include/plpgsql.h +52 -54
  227. data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
  228. data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
  229. data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
  230. data/ext/pg_query/include/port/atomics/fallback.h +1 -1
  231. data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
  232. data/ext/pg_query/include/port/atomics/generic.h +1 -1
  233. data/ext/pg_query/include/port/atomics.h +1 -1
  234. data/ext/pg_query/include/port/pg_bitutils.h +88 -12
  235. data/ext/pg_query/include/port/pg_bswap.h +1 -1
  236. data/ext/pg_query/include/port/pg_crc32c.h +1 -1
  237. data/ext/pg_query/include/port.h +72 -43
  238. data/ext/pg_query/include/portability/instr_time.h +1 -1
  239. data/ext/pg_query/include/postgres.h +60 -16
  240. data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
  241. data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
  242. data/ext/pg_query/include/postmaster/bgworker.h +2 -1
  243. data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
  244. data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
  245. data/ext/pg_query/include/postmaster/fork_process.h +1 -1
  246. data/ext/pg_query/include/postmaster/interrupt.h +1 -1
  247. data/ext/pg_query/include/postmaster/pgarch.h +42 -8
  248. data/ext/pg_query/include/postmaster/postmaster.h +18 -17
  249. data/ext/pg_query/include/postmaster/startup.h +39 -0
  250. data/ext/pg_query/include/postmaster/syslogger.h +15 -10
  251. data/ext/pg_query/include/postmaster/walwriter.h +3 -3
  252. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1422 -916
  253. data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
  254. data/ext/pg_query/include/regex/regex.h +18 -16
  255. data/ext/pg_query/include/replication/logicallauncher.h +3 -5
  256. data/ext/pg_query/include/replication/logicalproto.h +161 -17
  257. data/ext/pg_query/include/replication/logicalworker.h +1 -1
  258. data/ext/pg_query/include/replication/origin.h +7 -7
  259. data/ext/pg_query/include/replication/reorderbuffer.h +262 -44
  260. data/ext/pg_query/include/replication/slot.h +23 -12
  261. data/ext/pg_query/include/replication/syncrep.h +5 -5
  262. data/ext/pg_query/include/replication/walreceiver.h +145 -13
  263. data/ext/pg_query/include/replication/walsender.h +8 -8
  264. data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
  265. data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
  266. data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
  267. data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
  268. data/ext/pg_query/include/storage/backendid.h +3 -3
  269. data/ext/pg_query/include/storage/block.h +4 -10
  270. data/ext/pg_query/include/storage/buf.h +1 -1
  271. data/ext/pg_query/include/storage/bufmgr.h +19 -14
  272. data/ext/pg_query/include/storage/bufpage.h +6 -8
  273. data/ext/pg_query/include/storage/condition_variable.h +13 -2
  274. data/ext/pg_query/include/storage/dsm.h +4 -1
  275. data/ext/pg_query/include/storage/dsm_impl.h +3 -2
  276. data/ext/pg_query/include/storage/fd.h +33 -3
  277. data/ext/pg_query/include/storage/fileset.h +40 -0
  278. data/ext/pg_query/include/storage/ipc.h +4 -1
  279. data/ext/pg_query/include/storage/item.h +1 -1
  280. data/ext/pg_query/include/storage/itemid.h +1 -1
  281. data/ext/pg_query/include/storage/itemptr.h +3 -1
  282. data/ext/pg_query/include/storage/large_object.h +2 -2
  283. data/ext/pg_query/include/storage/latch.h +9 -13
  284. data/ext/pg_query/include/storage/lmgr.h +2 -1
  285. data/ext/pg_query/include/storage/lock.h +17 -13
  286. data/ext/pg_query/include/storage/lockdefs.h +2 -2
  287. data/ext/pg_query/include/storage/lwlock.h +6 -32
  288. data/ext/pg_query/include/storage/lwlocknames.h +0 -1
  289. data/ext/pg_query/include/storage/off.h +1 -1
  290. data/ext/pg_query/include/storage/pg_sema.h +1 -1
  291. data/ext/pg_query/include/storage/pg_shmem.h +9 -7
  292. data/ext/pg_query/include/storage/pmsignal.h +15 -4
  293. data/ext/pg_query/include/storage/predicate.h +4 -4
  294. data/ext/pg_query/include/storage/proc.h +183 -55
  295. data/ext/pg_query/include/storage/procarray.h +98 -0
  296. data/ext/pg_query/include/storage/proclist_types.h +1 -1
  297. data/ext/pg_query/include/storage/procsignal.h +3 -7
  298. data/ext/pg_query/include/storage/relfilenode.h +1 -1
  299. data/ext/pg_query/include/storage/s_lock.h +67 -4
  300. data/ext/pg_query/include/storage/sharedfileset.h +3 -11
  301. data/ext/pg_query/include/storage/shm_mq.h +5 -4
  302. data/ext/pg_query/include/storage/shm_toc.h +1 -1
  303. data/ext/pg_query/include/storage/shmem.h +1 -1
  304. data/ext/pg_query/include/storage/sinval.h +3 -3
  305. data/ext/pg_query/include/storage/sinvaladt.h +1 -1
  306. data/ext/pg_query/include/storage/smgr.h +10 -8
  307. data/ext/pg_query/include/storage/spin.h +2 -2
  308. data/ext/pg_query/include/storage/standby.h +13 -6
  309. data/ext/pg_query/include/storage/standbydefs.h +2 -2
  310. data/ext/pg_query/include/storage/sync.h +7 -3
  311. data/ext/pg_query/include/tcop/cmdtag.h +1 -1
  312. data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
  313. data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
  314. data/ext/pg_query/include/tcop/dest.h +1 -1
  315. data/ext/pg_query/include/tcop/fastpath.h +1 -2
  316. data/ext/pg_query/include/tcop/pquery.h +7 -1
  317. data/ext/pg_query/include/tcop/tcopprot.h +19 -11
  318. data/ext/pg_query/include/tcop/utility.h +7 -3
  319. data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
  320. data/ext/pg_query/include/utils/acl.h +24 -3
  321. data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
  322. data/ext/pg_query/include/utils/array.h +7 -2
  323. data/ext/pg_query/include/utils/backend_progress.h +44 -0
  324. data/ext/pg_query/include/utils/backend_status.h +321 -0
  325. data/ext/pg_query/include/utils/builtins.h +11 -11
  326. data/ext/pg_query/include/utils/bytea.h +3 -2
  327. data/ext/pg_query/include/utils/catcache.h +1 -1
  328. data/ext/pg_query/include/utils/date.h +1 -1
  329. data/ext/pg_query/include/utils/datetime.h +8 -7
  330. data/ext/pg_query/include/utils/datum.h +9 -1
  331. data/ext/pg_query/include/utils/dsa.h +1 -1
  332. data/ext/pg_query/include/utils/dynahash.h +4 -3
  333. data/ext/pg_query/include/utils/elog.h +52 -21
  334. data/ext/pg_query/include/utils/errcodes.h +2 -0
  335. data/ext/pg_query/include/utils/expandeddatum.h +1 -1
  336. data/ext/pg_query/include/utils/expandedrecord.h +1 -1
  337. data/ext/pg_query/include/utils/float.h +7 -7
  338. data/ext/pg_query/include/utils/fmgroids.h +1300 -696
  339. data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
  340. data/ext/pg_query/include/utils/fmgrtab.h +6 -5
  341. data/ext/pg_query/include/utils/guc.h +69 -43
  342. data/ext/pg_query/include/utils/guc_tables.h +23 -19
  343. data/ext/pg_query/include/utils/hsearch.h +15 -11
  344. data/ext/pg_query/include/utils/inval.h +5 -1
  345. data/ext/pg_query/include/utils/lsyscache.h +11 -1
  346. data/ext/pg_query/include/utils/memdebug.h +1 -1
  347. data/ext/pg_query/include/utils/memutils.h +8 -3
  348. data/ext/pg_query/include/utils/numeric.h +19 -5
  349. data/ext/pg_query/include/utils/palloc.h +25 -3
  350. data/ext/pg_query/include/utils/partcache.h +1 -1
  351. data/ext/pg_query/include/utils/pg_locale.h +17 -9
  352. data/ext/pg_query/include/utils/pg_lsn.h +1 -1
  353. data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
  354. data/ext/pg_query/include/utils/pidfile.h +1 -1
  355. data/ext/pg_query/include/utils/plancache.h +6 -5
  356. data/ext/pg_query/include/utils/portal.h +12 -1
  357. data/ext/pg_query/include/utils/ps_status.h +1 -1
  358. data/ext/pg_query/include/utils/queryenvironment.h +1 -1
  359. data/ext/pg_query/include/utils/queryjumble.h +88 -0
  360. data/ext/pg_query/include/utils/regproc.h +14 -3
  361. data/ext/pg_query/include/utils/rel.h +71 -20
  362. data/ext/pg_query/include/utils/relcache.h +9 -7
  363. data/ext/pg_query/include/utils/reltrigger.h +1 -1
  364. data/ext/pg_query/include/utils/resowner.h +1 -1
  365. data/ext/pg_query/include/utils/rls.h +2 -2
  366. data/ext/pg_query/include/utils/ruleutils.h +4 -1
  367. data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
  368. data/ext/pg_query/include/utils/snapmgr.h +35 -14
  369. data/ext/pg_query/include/utils/snapshot.h +14 -1
  370. data/ext/pg_query/include/utils/sortsupport.h +117 -2
  371. data/ext/pg_query/include/utils/syscache.h +6 -1
  372. data/ext/pg_query/include/utils/timeout.h +11 -4
  373. data/ext/pg_query/include/utils/timestamp.h +6 -5
  374. data/ext/pg_query/include/utils/tuplesort.h +25 -11
  375. data/ext/pg_query/include/utils/tuplestore.h +2 -2
  376. data/ext/pg_query/include/utils/typcache.h +24 -17
  377. data/ext/pg_query/include/utils/tzparser.h +1 -1
  378. data/ext/pg_query/include/utils/varlena.h +5 -3
  379. data/ext/pg_query/include/utils/wait_event.h +289 -0
  380. data/ext/pg_query/include/utils/xml.h +4 -4
  381. data/ext/pg_query/pg_query.pb-c.c +4318 -2307
  382. data/ext/pg_query/pg_query_deparse.c +1114 -381
  383. data/ext/pg_query/pg_query_fingerprint.c +46 -10
  384. data/ext/pg_query/pg_query_fingerprint.h +3 -1
  385. data/ext/pg_query/pg_query_json_plpgsql.c +55 -12
  386. data/ext/pg_query/pg_query_normalize.c +163 -20
  387. data/ext/pg_query/pg_query_outfuncs.h +1 -0
  388. data/ext/pg_query/pg_query_outfuncs_json.c +65 -16
  389. data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
  390. data/ext/pg_query/pg_query_parse.c +1 -1
  391. data/ext/pg_query/pg_query_parse_plpgsql.c +79 -16
  392. data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
  393. data/ext/pg_query/pg_query_ruby.c +1 -1
  394. data/ext/pg_query/pg_query_scan.c +2 -1
  395. data/ext/pg_query/pg_query_split.c +3 -2
  396. data/ext/pg_query/src_backend_catalog_namespace.c +21 -9
  397. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  398. data/ext/pg_query/src_backend_commands_define.c +11 -1
  399. data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
  400. data/ext/pg_query/src_backend_nodes_copyfuncs.c +424 -109
  401. data/ext/pg_query/src_backend_nodes_equalfuncs.c +291 -46
  402. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  403. data/ext/pg_query/src_backend_nodes_list.c +86 -11
  404. data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
  405. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
  406. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  407. data/ext/pg_query/src_backend_parser_gram.c +33890 -31262
  408. data/ext/pg_query/src_backend_parser_parser.c +26 -7
  409. data/ext/pg_query/src_backend_parser_scan.c +644 -441
  410. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  411. data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
  412. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  413. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
  414. data/ext/pg_query/src_backend_tcop_postgres.c +73 -24
  415. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  416. data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
  417. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  418. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  419. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +109 -15
  420. data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
  421. data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
  422. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
  423. data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
  424. data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
  425. data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
  426. data/ext/pg_query/src_backend_utils_misc_guc.c +207 -45
  427. data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
  428. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
  429. data/ext/pg_query/src_common_encnames.c +1 -1
  430. data/ext/pg_query/src_common_hashfn.c +3 -3
  431. data/ext/pg_query/src_common_keywords.c +15 -2
  432. data/ext/pg_query/src_common_kwlist_d.h +517 -494
  433. data/ext/pg_query/src_common_kwlookup.c +1 -1
  434. data/ext/pg_query/src_common_pg_prng.c +152 -0
  435. data/ext/pg_query/src_common_psprintf.c +1 -1
  436. data/ext/pg_query/src_common_string.c +7 -1
  437. data/ext/pg_query/src_common_stringinfo.c +1 -1
  438. data/ext/pg_query/src_common_wchar.c +712 -109
  439. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
  440. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
  441. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1235 -1261
  442. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  443. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  444. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  445. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
  446. data/ext/pg_query/src_port_pg_bitutils.c +41 -52
  447. data/ext/pg_query/src_port_pgsleep.c +1 -1
  448. data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
  449. data/ext/pg_query/src_port_qsort.c +12 -224
  450. data/ext/pg_query/src_port_snprintf.c +46 -20
  451. data/ext/pg_query/src_port_strerror.c +9 -19
  452. data/ext/pg_query/src_port_strnlen.c +1 -1
  453. data/lib/pg_query/deparse.rb +7 -1
  454. data/lib/pg_query/filter_columns.rb +6 -4
  455. data/lib/pg_query/fingerprint.rb +18 -3
  456. data/lib/pg_query/node.rb +2 -2
  457. data/lib/pg_query/param_refs.rb +1 -1
  458. data/lib/pg_query/parse.rb +87 -51
  459. data/lib/pg_query/pg_query_pb.rb +1109 -942
  460. data/lib/pg_query/treewalker.rb +6 -0
  461. data/lib/pg_query/truncate.rb +54 -8
  462. data/lib/pg_query/version.rb +1 -1
  463. metadata +29 -18
  464. data/ext/pg_query/include/access/xloginsert.h +0 -64
  465. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  466. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  467. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  468. data/ext/pg_query/include/parser/parse_target.h +0 -46
  469. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
  470. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  471. data/ext/pg_query/src_port_erand48.c +0 -127
  472. data/ext/pg_query/src_port_random.c +0 -31
@@ -3,7 +3,7 @@
3
3
  * pgtime.h
4
4
  * PostgreSQL internal timezone library
5
5
  *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
7
  *
8
8
  * IDENTIFICATION
9
9
  * src/include/pgtime.h
@@ -22,14 +22,23 @@
22
22
 
23
23
  typedef int64 pg_time_t;
24
24
 
25
+ /*
26
+ * Data structure representing a broken-down timestamp.
27
+ *
28
+ * CAUTION: the IANA timezone library (src/timezone/) follows the POSIX
29
+ * convention that tm_mon counts from 0 and tm_year is relative to 1900.
30
+ * However, Postgres' datetime functions generally treat tm_mon as counting
31
+ * from 1 and tm_year as relative to 1 BC. Be sure to make the appropriate
32
+ * adjustments when moving from one code domain to the other.
33
+ */
25
34
  struct pg_tm
26
35
  {
27
36
  int tm_sec;
28
37
  int tm_min;
29
38
  int tm_hour;
30
39
  int tm_mday;
31
- int tm_mon; /* origin 1, not 0! */
32
- int tm_year; /* relative to 1900 */
40
+ int tm_mon; /* see above */
41
+ int tm_year; /* see above */
33
42
  int tm_wday;
34
43
  int tm_yday;
35
44
  int tm_isdst;
@@ -37,6 +46,7 @@ struct pg_tm
37
46
  const char *tm_zone;
38
47
  };
39
48
 
49
+ /* These structs are opaque outside the timezone library */
40
50
  typedef struct pg_tz pg_tz;
41
51
  typedef struct pg_tzenum pg_tzenum;
42
52
 
@@ -71,7 +81,7 @@ extern size_t pg_strftime(char *s, size_t max, const char *format,
71
81
  /* these functions and variables are in pgtz.c */
72
82
 
73
83
  extern PGDLLIMPORT pg_tz *session_timezone;
74
- extern pg_tz *log_timezone;
84
+ extern PGDLLIMPORT pg_tz *log_timezone;
75
85
 
76
86
  extern void pg_timezone_initialize(void);
77
87
  extern pg_tz *pg_tzset(const char *tzname);
@@ -120,29 +120,29 @@
120
120
  K_LAST = 336,
121
121
  K_LOG = 337,
122
122
  K_LOOP = 338,
123
- K_MESSAGE = 339,
124
- K_MESSAGE_TEXT = 340,
125
- K_MOVE = 341,
126
- K_NEXT = 342,
127
- K_NO = 343,
128
- K_NOT = 344,
129
- K_NOTICE = 345,
130
- K_NULL = 346,
131
- K_OPEN = 347,
132
- K_OPTION = 348,
133
- K_OR = 349,
134
- K_PERFORM = 350,
135
- K_PG_CONTEXT = 351,
136
- K_PG_DATATYPE_NAME = 352,
137
- K_PG_EXCEPTION_CONTEXT = 353,
138
- K_PG_EXCEPTION_DETAIL = 354,
139
- K_PG_EXCEPTION_HINT = 355,
140
- K_PRINT_STRICT_PARAMS = 356,
141
- K_PRIOR = 357,
142
- K_QUERY = 358,
143
- K_RAISE = 359,
144
- K_RELATIVE = 360,
145
- K_RESET = 361,
123
+ K_MERGE = 339,
124
+ K_MESSAGE = 340,
125
+ K_MESSAGE_TEXT = 341,
126
+ K_MOVE = 342,
127
+ K_NEXT = 343,
128
+ K_NO = 344,
129
+ K_NOT = 345,
130
+ K_NOTICE = 346,
131
+ K_NULL = 347,
132
+ K_OPEN = 348,
133
+ K_OPTION = 349,
134
+ K_OR = 350,
135
+ K_PERFORM = 351,
136
+ K_PG_CONTEXT = 352,
137
+ K_PG_DATATYPE_NAME = 353,
138
+ K_PG_EXCEPTION_CONTEXT = 354,
139
+ K_PG_EXCEPTION_DETAIL = 355,
140
+ K_PG_EXCEPTION_HINT = 356,
141
+ K_PRINT_STRICT_PARAMS = 357,
142
+ K_PRIOR = 358,
143
+ K_QUERY = 359,
144
+ K_RAISE = 360,
145
+ K_RELATIVE = 361,
146
146
  K_RETURN = 362,
147
147
  K_RETURNED_SQLSTATE = 363,
148
148
  K_REVERSE = 364,
@@ -152,23 +152,22 @@
152
152
  K_SCHEMA = 368,
153
153
  K_SCHEMA_NAME = 369,
154
154
  K_SCROLL = 370,
155
- K_SET = 371,
156
- K_SLICE = 372,
157
- K_SQLSTATE = 373,
158
- K_STACKED = 374,
159
- K_STRICT = 375,
160
- K_TABLE = 376,
161
- K_TABLE_NAME = 377,
162
- K_THEN = 378,
163
- K_TO = 379,
164
- K_TYPE = 380,
165
- K_USE_COLUMN = 381,
166
- K_USE_VARIABLE = 382,
167
- K_USING = 383,
168
- K_VARIABLE_CONFLICT = 384,
169
- K_WARNING = 385,
170
- K_WHEN = 386,
171
- K_WHILE = 387
155
+ K_SLICE = 371,
156
+ K_SQLSTATE = 372,
157
+ K_STACKED = 373,
158
+ K_STRICT = 374,
159
+ K_TABLE = 375,
160
+ K_TABLE_NAME = 376,
161
+ K_THEN = 377,
162
+ K_TO = 378,
163
+ K_TYPE = 379,
164
+ K_USE_COLUMN = 380,
165
+ K_USE_VARIABLE = 381,
166
+ K_USING = 382,
167
+ K_VARIABLE_CONFLICT = 383,
168
+ K_WARNING = 384,
169
+ K_WHEN = 385,
170
+ K_WHILE = 386
172
171
  };
173
172
  #endif
174
173
  /* Tokens. */
@@ -253,29 +252,29 @@
253
252
  #define K_LAST 336
254
253
  #define K_LOG 337
255
254
  #define K_LOOP 338
256
- #define K_MESSAGE 339
257
- #define K_MESSAGE_TEXT 340
258
- #define K_MOVE 341
259
- #define K_NEXT 342
260
- #define K_NO 343
261
- #define K_NOT 344
262
- #define K_NOTICE 345
263
- #define K_NULL 346
264
- #define K_OPEN 347
265
- #define K_OPTION 348
266
- #define K_OR 349
267
- #define K_PERFORM 350
268
- #define K_PG_CONTEXT 351
269
- #define K_PG_DATATYPE_NAME 352
270
- #define K_PG_EXCEPTION_CONTEXT 353
271
- #define K_PG_EXCEPTION_DETAIL 354
272
- #define K_PG_EXCEPTION_HINT 355
273
- #define K_PRINT_STRICT_PARAMS 356
274
- #define K_PRIOR 357
275
- #define K_QUERY 358
276
- #define K_RAISE 359
277
- #define K_RELATIVE 360
278
- #define K_RESET 361
255
+ #define K_MERGE 339
256
+ #define K_MESSAGE 340
257
+ #define K_MESSAGE_TEXT 341
258
+ #define K_MOVE 342
259
+ #define K_NEXT 343
260
+ #define K_NO 344
261
+ #define K_NOT 345
262
+ #define K_NOTICE 346
263
+ #define K_NULL 347
264
+ #define K_OPEN 348
265
+ #define K_OPTION 349
266
+ #define K_OR 350
267
+ #define K_PERFORM 351
268
+ #define K_PG_CONTEXT 352
269
+ #define K_PG_DATATYPE_NAME 353
270
+ #define K_PG_EXCEPTION_CONTEXT 354
271
+ #define K_PG_EXCEPTION_DETAIL 355
272
+ #define K_PG_EXCEPTION_HINT 356
273
+ #define K_PRINT_STRICT_PARAMS 357
274
+ #define K_PRIOR 358
275
+ #define K_QUERY 359
276
+ #define K_RAISE 360
277
+ #define K_RELATIVE 361
279
278
  #define K_RETURN 362
280
279
  #define K_RETURNED_SQLSTATE 363
281
280
  #define K_REVERSE 364
@@ -285,23 +284,22 @@
285
284
  #define K_SCHEMA 368
286
285
  #define K_SCHEMA_NAME 369
287
286
  #define K_SCROLL 370
288
- #define K_SET 371
289
- #define K_SLICE 372
290
- #define K_SQLSTATE 373
291
- #define K_STACKED 374
292
- #define K_STRICT 375
293
- #define K_TABLE 376
294
- #define K_TABLE_NAME 377
295
- #define K_THEN 378
296
- #define K_TO 379
297
- #define K_TYPE 380
298
- #define K_USE_COLUMN 381
299
- #define K_USE_VARIABLE 382
300
- #define K_USING 383
301
- #define K_VARIABLE_CONFLICT 384
302
- #define K_WARNING 385
303
- #define K_WHEN 386
304
- #define K_WHILE 387
287
+ #define K_SLICE 371
288
+ #define K_SQLSTATE 372
289
+ #define K_STACKED 373
290
+ #define K_STRICT 374
291
+ #define K_TABLE 375
292
+ #define K_TABLE_NAME 376
293
+ #define K_THEN 377
294
+ #define K_TO 378
295
+ #define K_TYPE 379
296
+ #define K_USE_COLUMN 380
297
+ #define K_USE_VARIABLE 381
298
+ #define K_USING 382
299
+ #define K_VARIABLE_CONFLICT 383
300
+ #define K_WARNING 384
301
+ #define K_WHEN 385
302
+ #define K_WHILE 386
305
303
 
306
304
 
307
305
 
@@ -310,57 +308,57 @@
310
308
  typedef union YYSTYPE
311
309
  #line 120 "pl_gram.y"
312
310
  {
313
- core_YYSTYPE core_yystype;
314
- /* these fields must match core_YYSTYPE: */
315
- int ival;
316
- char *str;
317
- const char *keyword;
311
+ core_YYSTYPE core_yystype;
312
+ /* these fields must match core_YYSTYPE: */
313
+ int ival;
314
+ char *str;
315
+ const char *keyword;
318
316
 
319
- PLword word;
320
- PLcword cword;
321
- PLwdatum wdatum;
322
- bool boolean;
323
- Oid oid;
324
- struct
325
- {
326
- char *name;
327
- int lineno;
328
- } varname;
329
- struct
330
- {
331
- char *name;
332
- int lineno;
333
- PLpgSQL_datum *scalar;
334
- PLpgSQL_datum *row;
335
- } forvariable;
336
- struct
337
- {
338
- char *label;
339
- int n_initvars;
340
- int *initvarnos;
341
- } declhdr;
342
- struct
343
- {
344
- List *stmts;
345
- char *end_label;
346
- int end_label_location;
347
- } loop_body;
348
- List *list;
349
- PLpgSQL_type *dtype;
350
- PLpgSQL_datum *datum;
351
- PLpgSQL_var *var;
352
- PLpgSQL_expr *expr;
353
- PLpgSQL_stmt *stmt;
354
- PLpgSQL_condition *condition;
355
- PLpgSQL_exception *exception;
356
- PLpgSQL_exception_block *exception_block;
357
- PLpgSQL_nsitem *nsitem;
358
- PLpgSQL_diag_item *diagitem;
359
- PLpgSQL_stmt_fetch *fetch;
360
- PLpgSQL_case_when *casewhen;
317
+ PLword word;
318
+ PLcword cword;
319
+ PLwdatum wdatum;
320
+ bool boolean;
321
+ Oid oid;
322
+ struct
323
+ {
324
+ char *name;
325
+ int lineno;
326
+ } varname;
327
+ struct
328
+ {
329
+ char *name;
330
+ int lineno;
331
+ PLpgSQL_datum *scalar;
332
+ PLpgSQL_datum *row;
333
+ } forvariable;
334
+ struct
335
+ {
336
+ char *label;
337
+ int n_initvars;
338
+ int *initvarnos;
339
+ } declhdr;
340
+ struct
341
+ {
342
+ List *stmts;
343
+ char *end_label;
344
+ int end_label_location;
345
+ } loop_body;
346
+ List *list;
347
+ PLpgSQL_type *dtype;
348
+ PLpgSQL_datum *datum;
349
+ PLpgSQL_var *var;
350
+ PLpgSQL_expr *expr;
351
+ PLpgSQL_stmt *stmt;
352
+ PLpgSQL_condition *condition;
353
+ PLpgSQL_exception *exception;
354
+ PLpgSQL_exception_block *exception_block;
355
+ PLpgSQL_nsitem *nsitem;
356
+ PLpgSQL_diag_item *diagitem;
357
+ PLpgSQL_stmt_fetch *fetch;
358
+ PLpgSQL_case_when *casewhen;
361
359
  }
362
360
  /* Line 1529 of yacc.c. */
363
- #line 364 "pl_gram.h"
361
+ #line 362 "pl_gram.h"
364
362
  YYSTYPE;
365
363
  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
366
364
  # define YYSTYPE_IS_DECLARED 1
@@ -7,7 +7,7 @@
7
7
  * by the PG_KEYWORD macro, which is not defined in this file; it can
8
8
  * be defined by the caller for special purposes.
9
9
  *
10
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
10
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
11
11
  * Portions Copyright (c) 1994, Regents of the University of California
12
12
  *
13
13
  * src/pl/plpgsql/src/pl_reserved_kwlist.h
@@ -3,7 +3,7 @@
3
3
  * pl_reserved_kwlist_d.h
4
4
  * List of keywords represented as a ScanKeywordList.
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
@@ -80,13 +80,13 @@ static int
80
80
  ReservedPLKeywords_hash_func(const void *key, size_t keylen)
81
81
  {
82
82
  static const int8 h[49] = {
83
- -2, 127, 7, 127, 0, 127, 127, 127,
84
- 18, 5, 127, 27, 127, 0, 127, 127,
85
- 0, 39, 32, 22, 10, 127, 19, -26,
86
- 127, -11, 0, 12, 127, 127, -1, 28,
87
- 20, 0, 23, 127, 0, 14, -8, 127,
88
- 127, 127, 13, 5, 127, -23, 1, 0,
89
- 127,
83
+ 127, 7, 127, 127, -2, 127, 13, 127,
84
+ 127, 5, 0, 23, 0, 2, 127, 0,
85
+ 17, 0, 127, 19, 5, 127, 6, 2,
86
+ -3, 17, 0, 6, 127, 8, 18, 127,
87
+ -6, 3, -5, 0, 127, 0, 0, 11,
88
+ 15, 127, 127, 127, 13, 127, 0, 17,
89
+ 127
90
90
  };
91
91
 
92
92
  const unsigned char *k = (const unsigned char *) key;
@@ -97,8 +97,8 @@ ReservedPLKeywords_hash_func(const void *key, size_t keylen)
97
97
  {
98
98
  unsigned char c = *k++ | 0x20;
99
99
 
100
- a = a * 31 + c;
101
- b = b * 127 + c;
100
+ a = a * 257 + c;
101
+ b = b * 8191 + c;
102
102
  }
103
103
  return h[a % 49] + h[b % 49];
104
104
  }
@@ -7,7 +7,7 @@
7
7
  * by the PG_KEYWORD macro, which is not defined in this file; it can
8
8
  * be defined by the caller for special purposes.
9
9
  *
10
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
10
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
11
11
  * Portions Copyright (c) 1994, Regents of the University of California
12
12
  *
13
13
  * src/pl/plpgsql/src/pl_unreserved_kwlist.h
@@ -70,6 +70,7 @@ PG_KEYWORD("insert", K_INSERT)
70
70
  PG_KEYWORD("is", K_IS)
71
71
  PG_KEYWORD("last", K_LAST)
72
72
  PG_KEYWORD("log", K_LOG)
73
+ PG_KEYWORD("merge", K_MERGE)
73
74
  PG_KEYWORD("message", K_MESSAGE)
74
75
  PG_KEYWORD("message_text", K_MESSAGE_TEXT)
75
76
  PG_KEYWORD("move", K_MOVE)
@@ -89,7 +90,6 @@ PG_KEYWORD("prior", K_PRIOR)
89
90
  PG_KEYWORD("query", K_QUERY)
90
91
  PG_KEYWORD("raise", K_RAISE)
91
92
  PG_KEYWORD("relative", K_RELATIVE)
92
- PG_KEYWORD("reset", K_RESET)
93
93
  PG_KEYWORD("return", K_RETURN)
94
94
  PG_KEYWORD("returned_sqlstate", K_RETURNED_SQLSTATE)
95
95
  PG_KEYWORD("reverse", K_REVERSE)
@@ -99,7 +99,6 @@ PG_KEYWORD("rowtype", K_ROWTYPE)
99
99
  PG_KEYWORD("schema", K_SCHEMA)
100
100
  PG_KEYWORD("schema_name", K_SCHEMA_NAME)
101
101
  PG_KEYWORD("scroll", K_SCROLL)
102
- PG_KEYWORD("set", K_SET)
103
102
  PG_KEYWORD("slice", K_SLICE)
104
103
  PG_KEYWORD("sqlstate", K_SQLSTATE)
105
104
  PG_KEYWORD("stacked", K_STACKED)
@@ -3,7 +3,7 @@
3
3
  * pl_unreserved_kwlist_d.h
4
4
  * List of keywords represented as a ScanKeywordList.
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
@@ -65,6 +65,7 @@ static const char UnreservedPLKeywords_kw_string[] =
65
65
  "is\0"
66
66
  "last\0"
67
67
  "log\0"
68
+ "merge\0"
68
69
  "message\0"
69
70
  "message_text\0"
70
71
  "move\0"
@@ -84,7 +85,6 @@ static const char UnreservedPLKeywords_kw_string[] =
84
85
  "query\0"
85
86
  "raise\0"
86
87
  "relative\0"
87
- "reset\0"
88
88
  "return\0"
89
89
  "returned_sqlstate\0"
90
90
  "reverse\0"
@@ -94,7 +94,6 @@ static const char UnreservedPLKeywords_kw_string[] =
94
94
  "schema\0"
95
95
  "schema_name\0"
96
96
  "scroll\0"
97
- "set\0"
98
97
  "slice\0"
99
98
  "sqlstate\0"
100
99
  "stacked\0"
@@ -151,25 +150,25 @@ static const uint16 UnreservedPLKeywords_kw_offsets[] = {
151
150
  295,
152
151
  300,
153
152
  304,
154
- 312,
155
- 325,
156
- 330,
157
- 335,
158
- 338,
159
- 345,
160
- 350,
161
- 357,
162
- 365,
163
- 376,
164
- 393,
165
- 414,
166
- 434,
167
- 452,
168
- 472,
153
+ 310,
154
+ 318,
155
+ 331,
156
+ 336,
157
+ 341,
158
+ 344,
159
+ 351,
160
+ 356,
161
+ 363,
162
+ 371,
163
+ 382,
164
+ 399,
165
+ 420,
166
+ 440,
167
+ 458,
169
168
  478,
170
169
  484,
171
170
  490,
172
- 499,
171
+ 496,
173
172
  505,
174
173
  512,
175
174
  530,
@@ -180,59 +179,58 @@ static const uint16 UnreservedPLKeywords_kw_offsets[] = {
180
179
  572,
181
180
  584,
182
181
  591,
183
- 595,
184
- 601,
185
- 610,
186
- 618,
187
- 624,
188
- 635,
189
- 640,
190
- 651,
191
- 664,
192
- 682,
182
+ 597,
183
+ 606,
184
+ 614,
185
+ 620,
186
+ 631,
187
+ 636,
188
+ 647,
189
+ 660,
190
+ 678,
193
191
  };
194
192
 
195
- #define UNRESERVEDPLKEYWORDS_NUM_KEYWORDS 83
193
+ #define UNRESERVEDPLKEYWORDS_NUM_KEYWORDS 82
196
194
 
197
195
  static int
198
196
  UnreservedPLKeywords_hash_func(const void *key, size_t keylen)
199
197
  {
200
- static const int16 h[167] = {
201
- 10, 32767, 32767, 57, 32767, 62, 21, 32767,
202
- 54, 18, 32767, 58, 59, -54, 47, 0,
203
- -22, -64, 32767, -22, 33, 44, -5, 32767,
204
- 32767, 43, 57, 102, 32767, -65, 7, 32767,
205
- 13, 32767, -28, 14, 32767, 32767, 82, 32767,
206
- 0, 0, 32767, 8, -43, 0, 19, 8,
207
- 75, -58, 32767, 32767, 0, 22, 29, 32767,
208
- -50, 6, 32767, 0, 30, 32767, 32767, 29,
209
- 0, 104, 32767, 32767, 26, 0, 32767, 32767,
210
- -9, 2, 32767, 50, 39, 38, 39, 80,
211
- 32767, 32767, 32767, 32767, -67, 89, 32767, -40,
212
- 64, 32767, 32767, 26, 10, 27, 32767, 19,
213
- 51, -13, 26, 32767, 32767, 32767, 84, 23,
214
- 0, 66, 12, -5, 32767, 32767, 0, 50,
215
- 141, 72, 45, 32767, 32767, 0, -22, 0,
216
- 32767, 32767, -34, 0, 19, -5, 32767, 32767,
217
- 32767, 0, 37, 13, 32767, 32767, 32767, 32767,
218
- -68, -4, 32767, 32767, 78, 32767, 32767, 0,
219
- 85, 32767, 32767, 32767, -93, 32767, 0, 0,
220
- 32767, 74, 5, 32767, 32767, 71, 0, 32767,
221
- 32767, 0, 32767, 32767, 32767, 46, 70,
198
+ static const int16 h[165] = {
199
+ 58, 0, 26, 32767, 0, 0, 9, 32767,
200
+ 0, 32767, 37, 74, 32767, -7, 32767, 39,
201
+ 58, -5, 32767, 31, 32767, 32767, 75, -23,
202
+ 32767, 0, 32767, 32767, 32767, -14, 32767, 81,
203
+ 32767, 32767, 32767, -36, -9, 32767, 32767, 32767,
204
+ 40, 32767, 54, 10, 11, 43, 32767, 0,
205
+ 52, 105, -22, 15, 32767, -33, 49, -65,
206
+ 48, 32767, 32767, 32767, 25, 49, -47, 37,
207
+ 21, 32767, 32767, -15, 70, 32767, 32767, 64,
208
+ -10, 126, 32767, 51, 0, 36, 32767, -55,
209
+ -22, 32767, 32767, 32767, 32767, 32767, -26, -35,
210
+ 32767, 61, 32767, 32767, 32767, -23, 98, 48,
211
+ 23, 19, 32767, 7, 35, 5, -18, 71,
212
+ 28, 5, 32767, 32767, 32767, 74, 32767, 82,
213
+ 32767, 0, 32767, 32767, 66, 0, 0, 50,
214
+ 32767, 32767, 5, 2, 0, 32767, 55, 32767,
215
+ 32767, 45, 79, 32767, 32767, 73, 22, 0,
216
+ 103, 32767, -20, 72, 32767, 0, 29, 32767,
217
+ 0, 32767, 32767, 0, 50, 28, 32767, -40,
218
+ 32767, 32767, 34, 56, 32767, 32767, 32767, 17,
219
+ -36, 32767, 67, 32767, 0
222
220
  };
223
221
 
224
222
  const unsigned char *k = (const unsigned char *) key;
225
223
  uint32 a = 0;
226
- uint32 b = 1;
224
+ uint32 b = 0;
227
225
 
228
226
  while (keylen--)
229
227
  {
230
228
  unsigned char c = *k++ | 0x20;
231
229
 
232
- a = a * 31 + c;
233
- b = b * 127 + c;
230
+ a = a * 257 + c;
231
+ b = b * 8191 + c;
234
232
  }
235
- return h[a % 167] + h[b % 167];
233
+ return h[a % 165] + h[b % 165];
236
234
  }
237
235
 
238
236
  static const ScanKeywordList UnreservedPLKeywords = {
@@ -1,5 +1,6 @@
1
1
  /* autogenerated from src/backend/utils/errcodes.txt, do not edit */
2
2
  /* there is deliberately not an #ifndef PLERRCODES_H here */
3
+
3
4
  {
4
5
  "sql_statement_not_yet_complete", ERRCODE_SQL_STATEMENT_NOT_YET_COMPLETE
5
6
  },
@@ -348,6 +349,10 @@
348
349
  "sql_json_scalar_required", ERRCODE_SQL_JSON_SCALAR_REQUIRED
349
350
  },
350
351
 
352
+ {
353
+ "sql_json_item_cannot_be_cast_to_target_type", ERRCODE_SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE
354
+ },
355
+
351
356
  {
352
357
  "integrity_constraint_violation", ERRCODE_INTEGRITY_CONSTRAINT_VIOLATION
353
358
  },
@@ -820,6 +825,10 @@
820
825
  "database_dropped", ERRCODE_DATABASE_DROPPED
821
826
  },
822
827
 
828
+ {
829
+ "idle_session_timeout", ERRCODE_IDLE_SESSION_TIMEOUT
830
+ },
831
+
823
832
  {
824
833
  "system_error", ERRCODE_SYSTEM_ERROR
825
834
  },
@@ -987,4 +996,3 @@
987
996
  {
988
997
  "index_corrupted", ERRCODE_INDEX_CORRUPTED
989
998
  },
990
-