pg_query 2.2.1 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (466) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -1
  3. data/README.md +29 -33
  4. data/Rakefile +2 -2
  5. data/ext/pg_query/include/access/amapi.h +45 -1
  6. data/ext/pg_query/include/access/attmap.h +1 -1
  7. data/ext/pg_query/include/access/attnum.h +2 -2
  8. data/ext/pg_query/include/access/clog.h +4 -2
  9. data/ext/pg_query/include/access/commit_ts.h +6 -9
  10. data/ext/pg_query/include/access/detoast.h +1 -11
  11. data/ext/pg_query/include/access/genam.h +15 -12
  12. data/ext/pg_query/include/access/gin.h +2 -2
  13. data/ext/pg_query/include/access/htup.h +1 -1
  14. data/ext/pg_query/include/access/htup_details.h +75 -87
  15. data/ext/pg_query/include/access/itup.h +7 -1
  16. data/ext/pg_query/include/access/parallel.h +2 -2
  17. data/ext/pg_query/include/access/printtup.h +1 -1
  18. data/ext/pg_query/include/access/relation.h +1 -1
  19. data/ext/pg_query/include/access/relscan.h +17 -2
  20. data/ext/pg_query/include/access/rmgr.h +30 -3
  21. data/ext/pg_query/include/access/rmgrlist.h +23 -23
  22. data/ext/pg_query/include/access/sdir.h +1 -1
  23. data/ext/pg_query/include/access/skey.h +1 -1
  24. data/ext/pg_query/include/access/stratnum.h +4 -2
  25. data/ext/pg_query/include/access/sysattr.h +1 -1
  26. data/ext/pg_query/include/access/table.h +2 -1
  27. data/ext/pg_query/include/access/tableam.h +272 -20
  28. data/ext/pg_query/include/access/toast_compression.h +73 -0
  29. data/ext/pg_query/include/access/transam.h +123 -13
  30. data/ext/pg_query/include/access/tupconvert.h +1 -1
  31. data/ext/pg_query/include/access/tupdesc.h +1 -1
  32. data/ext/pg_query/include/access/tupmacs.h +3 -3
  33. data/ext/pg_query/include/access/twophase.h +3 -1
  34. data/ext/pg_query/include/access/xact.h +73 -19
  35. data/ext/pg_query/include/access/xlog.h +60 -155
  36. data/ext/pg_query/include/access/xlog_internal.h +40 -13
  37. data/ext/pg_query/include/access/xlogdefs.h +8 -16
  38. data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
  39. data/ext/pg_query/include/access/xlogreader.h +145 -39
  40. data/ext/pg_query/include/access/xlogrecord.h +18 -9
  41. data/ext/pg_query/include/access/xlogrecovery.h +157 -0
  42. data/ext/pg_query/include/c.h +101 -44
  43. data/ext/pg_query/include/catalog/catalog.h +3 -1
  44. data/ext/pg_query/include/catalog/catversion.h +2 -2
  45. data/ext/pg_query/include/catalog/dependency.h +8 -16
  46. data/ext/pg_query/include/catalog/genbki.h +83 -5
  47. data/ext/pg_query/include/catalog/index.h +18 -3
  48. data/ext/pg_query/include/catalog/indexing.h +12 -324
  49. data/ext/pg_query/include/catalog/namespace.h +4 -2
  50. data/ext/pg_query/include/catalog/objectaccess.h +70 -2
  51. data/ext/pg_query/include/catalog/objectaddress.h +11 -6
  52. data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
  53. data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
  54. data/ext/pg_query/include/catalog/pg_am.h +4 -1
  55. data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
  56. data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
  57. data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
  58. data/ext/pg_query/include/catalog/pg_authid.h +7 -2
  59. data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
  60. data/ext/pg_query/include/catalog/pg_class.h +44 -14
  61. data/ext/pg_query/include/catalog/pg_class_d.h +30 -1
  62. data/ext/pg_query/include/catalog/pg_collation.h +33 -8
  63. data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
  64. data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
  65. data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
  66. data/ext/pg_query/include/catalog/pg_control.h +3 -5
  67. data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
  68. data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
  69. data/ext/pg_query/include/catalog/pg_depend.h +11 -7
  70. data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
  71. data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
  72. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
  73. data/ext/pg_query/include/catalog/pg_index.h +17 -7
  74. data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
  75. data/ext/pg_query/include/catalog/pg_language.h +10 -5
  76. data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
  77. data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
  78. data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
  79. data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
  80. data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
  81. data/ext/pg_query/include/catalog/pg_operator.h +18 -15
  82. data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
  83. data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
  84. data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
  85. data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
  86. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
  87. data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
  88. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
  89. data/ext/pg_query/include/catalog/pg_proc.h +20 -11
  90. data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
  91. data/ext/pg_query/include/catalog/pg_publication.h +50 -7
  92. data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
  93. data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
  94. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
  95. data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
  96. data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
  97. data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
  98. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
  99. data/ext/pg_query/include/catalog/pg_transform.h +8 -5
  100. data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
  101. data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
  102. data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
  103. data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
  104. data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
  105. data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
  106. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
  107. data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
  108. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
  109. data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
  110. data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
  111. data/ext/pg_query/include/catalog/pg_type.h +55 -24
  112. data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
  113. data/ext/pg_query/include/catalog/storage.h +5 -3
  114. data/ext/pg_query/include/commands/async.h +3 -4
  115. data/ext/pg_query/include/commands/dbcommands.h +2 -1
  116. data/ext/pg_query/include/commands/defrem.h +11 -24
  117. data/ext/pg_query/include/commands/event_trigger.h +2 -2
  118. data/ext/pg_query/include/commands/explain.h +1 -1
  119. data/ext/pg_query/include/commands/prepare.h +1 -1
  120. data/ext/pg_query/include/commands/tablespace.h +2 -2
  121. data/ext/pg_query/include/commands/trigger.h +18 -16
  122. data/ext/pg_query/include/commands/user.h +2 -2
  123. data/ext/pg_query/include/commands/vacuum.h +88 -41
  124. data/ext/pg_query/include/commands/variable.h +1 -1
  125. data/ext/pg_query/include/common/file_perm.h +4 -4
  126. data/ext/pg_query/include/common/hashfn.h +1 -1
  127. data/ext/pg_query/include/common/ip.h +1 -7
  128. data/ext/pg_query/include/common/keywords.h +2 -6
  129. data/ext/pg_query/include/common/kwlookup.h +1 -1
  130. data/ext/pg_query/include/common/pg_prng.h +60 -0
  131. data/ext/pg_query/include/common/relpath.h +2 -2
  132. data/ext/pg_query/include/common/string.h +24 -1
  133. data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
  134. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
  135. data/ext/pg_query/include/datatype/timestamp.h +40 -1
  136. data/ext/pg_query/include/executor/execdesc.h +1 -1
  137. data/ext/pg_query/include/executor/executor.h +65 -22
  138. data/ext/pg_query/include/executor/functions.h +17 -3
  139. data/ext/pg_query/include/executor/instrument.h +33 -16
  140. data/ext/pg_query/include/executor/spi.h +41 -3
  141. data/ext/pg_query/include/executor/tablefunc.h +1 -1
  142. data/ext/pg_query/include/executor/tuptable.h +1 -1
  143. data/ext/pg_query/include/fmgr.h +13 -7
  144. data/ext/pg_query/include/funcapi.h +16 -4
  145. data/ext/pg_query/include/getaddrinfo.h +1 -1
  146. data/ext/pg_query/include/jit/jit.h +11 -11
  147. data/ext/pg_query/include/kwlist_d.h +517 -494
  148. data/ext/pg_query/include/lib/dshash.h +112 -0
  149. data/ext/pg_query/include/lib/ilist.h +20 -1
  150. data/ext/pg_query/include/lib/pairingheap.h +1 -1
  151. data/ext/pg_query/include/lib/simplehash.h +140 -15
  152. data/ext/pg_query/include/lib/sort_template.h +432 -0
  153. data/ext/pg_query/include/lib/stringinfo.h +1 -1
  154. data/ext/pg_query/include/libpq/auth.h +6 -4
  155. data/ext/pg_query/include/libpq/crypt.h +5 -4
  156. data/ext/pg_query/include/libpq/hba.h +43 -4
  157. data/ext/pg_query/include/libpq/libpq-be.h +23 -6
  158. data/ext/pg_query/include/libpq/libpq.h +30 -20
  159. data/ext/pg_query/include/libpq/pqcomm.h +17 -31
  160. data/ext/pg_query/include/libpq/pqformat.h +1 -1
  161. data/ext/pg_query/include/libpq/pqsignal.h +4 -4
  162. data/ext/pg_query/include/mb/pg_wchar.h +105 -23
  163. data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
  164. data/ext/pg_query/include/miscadmin.h +47 -41
  165. data/ext/pg_query/include/nodes/bitmapset.h +1 -1
  166. data/ext/pg_query/include/nodes/execnodes.h +270 -78
  167. data/ext/pg_query/include/nodes/extensible.h +4 -2
  168. data/ext/pg_query/include/nodes/lockoptions.h +1 -1
  169. data/ext/pg_query/include/nodes/makefuncs.h +7 -6
  170. data/ext/pg_query/include/nodes/memnodes.h +5 -3
  171. data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
  172. data/ext/pg_query/include/nodes/nodes.h +30 -11
  173. data/ext/pg_query/include/nodes/params.h +1 -1
  174. data/ext/pg_query/include/nodes/parsenodes.h +322 -90
  175. data/ext/pg_query/include/nodes/pathnodes.h +243 -66
  176. data/ext/pg_query/include/nodes/pg_list.h +75 -69
  177. data/ext/pg_query/include/nodes/plannodes.h +111 -28
  178. data/ext/pg_query/include/nodes/primnodes.h +99 -47
  179. data/ext/pg_query/include/nodes/print.h +1 -1
  180. data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
  181. data/ext/pg_query/include/nodes/value.h +58 -39
  182. data/ext/pg_query/include/optimizer/cost.h +9 -2
  183. data/ext/pg_query/include/optimizer/geqo.h +9 -7
  184. data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
  185. data/ext/pg_query/include/optimizer/optimizer.h +25 -17
  186. data/ext/pg_query/include/optimizer/paths.h +6 -6
  187. data/ext/pg_query/include/optimizer/planmain.h +15 -14
  188. data/ext/pg_query/include/parser/analyze.h +19 -5
  189. data/ext/pg_query/include/parser/gram.h +947 -913
  190. data/ext/pg_query/include/parser/gramparse.h +1 -1
  191. data/ext/pg_query/include/parser/kwlist.h +463 -453
  192. data/ext/pg_query/include/parser/parse_agg.h +2 -7
  193. data/ext/pg_query/include/parser/parse_coerce.h +3 -1
  194. data/ext/pg_query/include/parser/parse_expr.h +2 -3
  195. data/ext/pg_query/include/parser/parse_func.h +2 -1
  196. data/ext/pg_query/include/parser/parse_node.h +21 -9
  197. data/ext/pg_query/include/parser/parse_oper.h +1 -3
  198. data/ext/pg_query/include/parser/parse_relation.h +5 -4
  199. data/ext/pg_query/include/parser/parse_type.h +1 -1
  200. data/ext/pg_query/include/parser/parser.h +31 -4
  201. data/ext/pg_query/include/parser/parsetree.h +1 -1
  202. data/ext/pg_query/include/parser/scanner.h +1 -1
  203. data/ext/pg_query/include/parser/scansup.h +2 -5
  204. data/ext/pg_query/include/partitioning/partdefs.h +1 -1
  205. data/ext/pg_query/include/pg_config.h +83 -41
  206. data/ext/pg_query/include/pg_config_manual.h +74 -21
  207. data/ext/pg_query/include/pg_getopt.h +6 -6
  208. data/ext/pg_query/include/pg_query.h +5 -4
  209. data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
  210. data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
  211. data/ext/pg_query/include/pg_query_fingerprint_defs.c +939 -113
  212. data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
  213. data/ext/pg_query/include/pg_query_outfuncs_defs.c +151 -26
  214. data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
  215. data/ext/pg_query/include/pg_query_readfuncs_defs.c +173 -30
  216. data/ext/pg_query/include/pg_trace.h +1 -1
  217. data/ext/pg_query/include/pgstat.h +449 -1238
  218. data/ext/pg_query/include/pgtime.h +14 -4
  219. data/ext/pg_query/include/pl_gram.h +126 -128
  220. data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
  221. data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
  222. data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
  223. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
  224. data/ext/pg_query/include/plerrcodes.h +9 -1
  225. data/ext/pg_query/include/plpgsql.h +52 -54
  226. data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
  227. data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
  228. data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
  229. data/ext/pg_query/include/port/atomics/fallback.h +1 -1
  230. data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
  231. data/ext/pg_query/include/port/atomics/generic.h +1 -1
  232. data/ext/pg_query/include/port/atomics.h +1 -1
  233. data/ext/pg_query/include/port/pg_bitutils.h +40 -10
  234. data/ext/pg_query/include/port/pg_bswap.h +1 -1
  235. data/ext/pg_query/include/port/pg_crc32c.h +1 -1
  236. data/ext/pg_query/include/port.h +71 -46
  237. data/ext/pg_query/include/portability/instr_time.h +1 -1
  238. data/ext/pg_query/include/postgres.h +60 -16
  239. data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
  240. data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
  241. data/ext/pg_query/include/postmaster/bgworker.h +2 -1
  242. data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
  243. data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
  244. data/ext/pg_query/include/postmaster/fork_process.h +1 -1
  245. data/ext/pg_query/include/postmaster/interrupt.h +1 -1
  246. data/ext/pg_query/include/postmaster/pgarch.h +42 -8
  247. data/ext/pg_query/include/postmaster/postmaster.h +18 -17
  248. data/ext/pg_query/include/postmaster/startup.h +39 -0
  249. data/ext/pg_query/include/postmaster/syslogger.h +15 -10
  250. data/ext/pg_query/include/postmaster/walwriter.h +3 -3
  251. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1419 -914
  252. data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
  253. data/ext/pg_query/include/regex/regex.h +18 -16
  254. data/ext/pg_query/include/replication/logicallauncher.h +3 -5
  255. data/ext/pg_query/include/replication/logicalproto.h +161 -17
  256. data/ext/pg_query/include/replication/logicalworker.h +1 -1
  257. data/ext/pg_query/include/replication/origin.h +7 -7
  258. data/ext/pg_query/include/replication/reorderbuffer.h +259 -42
  259. data/ext/pg_query/include/replication/slot.h +22 -11
  260. data/ext/pg_query/include/replication/syncrep.h +5 -5
  261. data/ext/pg_query/include/replication/walreceiver.h +145 -13
  262. data/ext/pg_query/include/replication/walsender.h +8 -8
  263. data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
  264. data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
  265. data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
  266. data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
  267. data/ext/pg_query/include/storage/backendid.h +3 -3
  268. data/ext/pg_query/include/storage/block.h +4 -10
  269. data/ext/pg_query/include/storage/buf.h +1 -1
  270. data/ext/pg_query/include/storage/bufmgr.h +19 -14
  271. data/ext/pg_query/include/storage/bufpage.h +6 -8
  272. data/ext/pg_query/include/storage/condition_variable.h +13 -2
  273. data/ext/pg_query/include/storage/dsm.h +4 -1
  274. data/ext/pg_query/include/storage/dsm_impl.h +3 -2
  275. data/ext/pg_query/include/storage/fd.h +33 -3
  276. data/ext/pg_query/include/storage/fileset.h +40 -0
  277. data/ext/pg_query/include/storage/ipc.h +4 -1
  278. data/ext/pg_query/include/storage/item.h +1 -1
  279. data/ext/pg_query/include/storage/itemid.h +1 -1
  280. data/ext/pg_query/include/storage/itemptr.h +3 -1
  281. data/ext/pg_query/include/storage/large_object.h +2 -2
  282. data/ext/pg_query/include/storage/latch.h +9 -13
  283. data/ext/pg_query/include/storage/lmgr.h +2 -1
  284. data/ext/pg_query/include/storage/lock.h +11 -8
  285. data/ext/pg_query/include/storage/lockdefs.h +2 -2
  286. data/ext/pg_query/include/storage/lwlock.h +5 -32
  287. data/ext/pg_query/include/storage/lwlocknames.h +0 -1
  288. data/ext/pg_query/include/storage/off.h +1 -1
  289. data/ext/pg_query/include/storage/pg_sema.h +1 -1
  290. data/ext/pg_query/include/storage/pg_shmem.h +9 -7
  291. data/ext/pg_query/include/storage/pmsignal.h +15 -4
  292. data/ext/pg_query/include/storage/predicate.h +4 -4
  293. data/ext/pg_query/include/storage/proc.h +173 -59
  294. data/ext/pg_query/include/storage/procarray.h +98 -0
  295. data/ext/pg_query/include/storage/proclist_types.h +1 -1
  296. data/ext/pg_query/include/storage/procsignal.h +3 -7
  297. data/ext/pg_query/include/storage/relfilenode.h +1 -1
  298. data/ext/pg_query/include/storage/s_lock.h +60 -21
  299. data/ext/pg_query/include/storage/sharedfileset.h +3 -11
  300. data/ext/pg_query/include/storage/shm_mq.h +5 -4
  301. data/ext/pg_query/include/storage/shm_toc.h +1 -1
  302. data/ext/pg_query/include/storage/shmem.h +1 -1
  303. data/ext/pg_query/include/storage/sinval.h +3 -3
  304. data/ext/pg_query/include/storage/sinvaladt.h +1 -1
  305. data/ext/pg_query/include/storage/smgr.h +10 -8
  306. data/ext/pg_query/include/storage/spin.h +2 -2
  307. data/ext/pg_query/include/storage/standby.h +13 -6
  308. data/ext/pg_query/include/storage/standbydefs.h +2 -2
  309. data/ext/pg_query/include/storage/sync.h +7 -3
  310. data/ext/pg_query/include/tcop/cmdtag.h +1 -1
  311. data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
  312. data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
  313. data/ext/pg_query/include/tcop/dest.h +1 -1
  314. data/ext/pg_query/include/tcop/fastpath.h +1 -2
  315. data/ext/pg_query/include/tcop/pquery.h +1 -1
  316. data/ext/pg_query/include/tcop/tcopprot.h +19 -11
  317. data/ext/pg_query/include/tcop/utility.h +7 -3
  318. data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
  319. data/ext/pg_query/include/utils/acl.h +24 -3
  320. data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
  321. data/ext/pg_query/include/utils/array.h +7 -2
  322. data/ext/pg_query/include/utils/backend_progress.h +44 -0
  323. data/ext/pg_query/include/utils/backend_status.h +321 -0
  324. data/ext/pg_query/include/utils/builtins.h +10 -11
  325. data/ext/pg_query/include/utils/bytea.h +3 -2
  326. data/ext/pg_query/include/utils/catcache.h +1 -1
  327. data/ext/pg_query/include/utils/date.h +1 -1
  328. data/ext/pg_query/include/utils/datetime.h +8 -7
  329. data/ext/pg_query/include/utils/datum.h +9 -1
  330. data/ext/pg_query/include/utils/dsa.h +1 -1
  331. data/ext/pg_query/include/utils/dynahash.h +4 -3
  332. data/ext/pg_query/include/utils/elog.h +52 -21
  333. data/ext/pg_query/include/utils/errcodes.h +2 -0
  334. data/ext/pg_query/include/utils/expandeddatum.h +1 -1
  335. data/ext/pg_query/include/utils/expandedrecord.h +1 -1
  336. data/ext/pg_query/include/utils/float.h +7 -7
  337. data/ext/pg_query/include/utils/fmgroids.h +1300 -696
  338. data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
  339. data/ext/pg_query/include/utils/fmgrtab.h +6 -5
  340. data/ext/pg_query/include/utils/guc.h +69 -43
  341. data/ext/pg_query/include/utils/guc_tables.h +23 -19
  342. data/ext/pg_query/include/utils/hsearch.h +15 -11
  343. data/ext/pg_query/include/utils/inval.h +4 -1
  344. data/ext/pg_query/include/utils/lsyscache.h +11 -1
  345. data/ext/pg_query/include/utils/memdebug.h +1 -1
  346. data/ext/pg_query/include/utils/memutils.h +8 -3
  347. data/ext/pg_query/include/utils/numeric.h +19 -5
  348. data/ext/pg_query/include/utils/palloc.h +25 -3
  349. data/ext/pg_query/include/utils/partcache.h +1 -1
  350. data/ext/pg_query/include/utils/pg_locale.h +17 -9
  351. data/ext/pg_query/include/utils/pg_lsn.h +1 -1
  352. data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
  353. data/ext/pg_query/include/utils/pidfile.h +1 -1
  354. data/ext/pg_query/include/utils/plancache.h +6 -5
  355. data/ext/pg_query/include/utils/portal.h +10 -12
  356. data/ext/pg_query/include/utils/ps_status.h +1 -1
  357. data/ext/pg_query/include/utils/queryenvironment.h +1 -1
  358. data/ext/pg_query/include/utils/queryjumble.h +88 -0
  359. data/ext/pg_query/include/utils/regproc.h +14 -3
  360. data/ext/pg_query/include/utils/rel.h +71 -19
  361. data/ext/pg_query/include/utils/relcache.h +8 -5
  362. data/ext/pg_query/include/utils/reltrigger.h +1 -1
  363. data/ext/pg_query/include/utils/resowner.h +1 -1
  364. data/ext/pg_query/include/utils/rls.h +2 -2
  365. data/ext/pg_query/include/utils/ruleutils.h +4 -1
  366. data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
  367. data/ext/pg_query/include/utils/snapmgr.h +34 -14
  368. data/ext/pg_query/include/utils/snapshot.h +14 -1
  369. data/ext/pg_query/include/utils/sortsupport.h +117 -2
  370. data/ext/pg_query/include/utils/syscache.h +6 -1
  371. data/ext/pg_query/include/utils/timeout.h +11 -4
  372. data/ext/pg_query/include/utils/timestamp.h +6 -5
  373. data/ext/pg_query/include/utils/tuplesort.h +25 -11
  374. data/ext/pg_query/include/utils/tuplestore.h +2 -2
  375. data/ext/pg_query/include/utils/typcache.h +24 -17
  376. data/ext/pg_query/include/utils/tzparser.h +1 -1
  377. data/ext/pg_query/include/utils/varlena.h +5 -3
  378. data/ext/pg_query/include/utils/wait_event.h +289 -0
  379. data/ext/pg_query/include/utils/xml.h +4 -4
  380. data/ext/pg_query/pg_query.pb-c.c +4302 -2304
  381. data/ext/pg_query/pg_query_deparse.c +1106 -373
  382. data/ext/pg_query/pg_query_fingerprint.c +30 -10
  383. data/ext/pg_query/pg_query_json_plpgsql.c +0 -25
  384. data/ext/pg_query/pg_query_normalize.c +1 -1
  385. data/ext/pg_query/pg_query_outfuncs_json.c +54 -16
  386. data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
  387. data/ext/pg_query/pg_query_parse.c +1 -1
  388. data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
  389. data/ext/pg_query/pg_query_scan.c +2 -1
  390. data/ext/pg_query/pg_query_split.c +3 -2
  391. data/ext/pg_query/src_backend_catalog_namespace.c +20 -9
  392. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  393. data/ext/pg_query/src_backend_commands_define.c +11 -1
  394. data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
  395. data/ext/pg_query/src_backend_nodes_copyfuncs.c +401 -76
  396. data/ext/pg_query/src_backend_nodes_equalfuncs.c +290 -46
  397. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  398. data/ext/pg_query/src_backend_nodes_list.c +74 -11
  399. data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
  400. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
  401. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  402. data/ext/pg_query/src_backend_parser_gram.c +33874 -31261
  403. data/ext/pg_query/src_backend_parser_parser.c +26 -7
  404. data/ext/pg_query/src_backend_parser_scan.c +172 -209
  405. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  406. data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
  407. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  408. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
  409. data/ext/pg_query/src_backend_tcop_postgres.c +62 -23
  410. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  411. data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
  412. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  413. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  414. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +71 -5
  415. data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
  416. data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
  417. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
  418. data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
  419. data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
  420. data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
  421. data/ext/pg_query/src_backend_utils_misc_guc.c +206 -45
  422. data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
  423. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
  424. data/ext/pg_query/src_common_encnames.c +1 -1
  425. data/ext/pg_query/src_common_hashfn.c +3 -3
  426. data/ext/pg_query/src_common_keywords.c +15 -2
  427. data/ext/pg_query/src_common_kwlist_d.h +517 -494
  428. data/ext/pg_query/src_common_kwlookup.c +1 -1
  429. data/ext/pg_query/src_common_pg_prng.c +152 -0
  430. data/ext/pg_query/src_common_psprintf.c +1 -1
  431. data/ext/pg_query/src_common_string.c +7 -1
  432. data/ext/pg_query/src_common_stringinfo.c +1 -1
  433. data/ext/pg_query/src_common_wchar.c +701 -109
  434. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +45 -20
  435. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
  436. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1233 -1259
  437. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  438. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  439. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  440. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
  441. data/ext/pg_query/src_port_pg_bitutils.c +41 -31
  442. data/ext/pg_query/src_port_pgsleep.c +1 -1
  443. data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
  444. data/ext/pg_query/src_port_qsort.c +12 -224
  445. data/ext/pg_query/src_port_snprintf.c +37 -13
  446. data/ext/pg_query/src_port_strerror.c +9 -19
  447. data/ext/pg_query/src_port_strnlen.c +1 -1
  448. data/lib/pg_query/filter_columns.rb +1 -1
  449. data/lib/pg_query/fingerprint.rb +5 -1
  450. data/lib/pg_query/node.rb +2 -2
  451. data/lib/pg_query/param_refs.rb +1 -1
  452. data/lib/pg_query/parse.rb +18 -8
  453. data/lib/pg_query/pg_query_pb.rb +1108 -942
  454. data/lib/pg_query/truncate.rb +1 -1
  455. data/lib/pg_query/version.rb +1 -1
  456. metadata +28 -18
  457. data/ext/pg_query/include/access/xloginsert.h +0 -64
  458. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  459. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  460. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  461. data/ext/pg_query/include/parser/parse_target.h +0 -46
  462. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  463. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
  464. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  465. data/ext/pg_query/src_port_erand48.c +0 -127
  466. data/ext/pg_query/src_port_random.c +0 -31
@@ -67,7 +67,7 @@
67
67
  * Postgres 9.2, this check is made automatically by the Makefile.)
68
68
  *
69
69
  *
70
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
70
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
71
71
  * Portions Copyright (c) 1994, Regents of the University of California
72
72
  *
73
73
  * IDENTIFICATION
@@ -84,9 +84,10 @@
84
84
  #include "parser/gramparse.h"
85
85
  #include "parser/parser.h" /* only needed for GUC variables */
86
86
  #include "parser/scansup.h"
87
+ #include "port/pg_bitutils.h"
87
88
  #include "mb/pg_wchar.h"
88
89
 
89
- #line 44 "scan.c"
90
+ #line 45 "scan.c"
90
91
 
91
92
  #define YY_INT_ALIGNED short int
92
93
 
@@ -660,8 +661,8 @@ static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
660
661
  yyg->yy_hold_char = *yy_cp; \
661
662
  *yy_cp = '\0'; \
662
663
  yyg->yy_c_buf_p = yy_cp;
663
- #define YY_NUM_RULES 66
664
- #define YY_END_OF_BUFFER 67
664
+ #define YY_NUM_RULES 65
665
+ #define YY_END_OF_BUFFER 66
665
666
  struct yy_trans_info
666
667
  {
667
668
  flex_int16_t yy_verify;
@@ -683,7 +684,7 @@ static const struct yy_trans_info yy_transition[17678] =
683
684
  { 47,6665 }, { 48,6667 }, { 49,6667 }, { 50,6667 }, { 51,6667 },
684
685
  { 52,6667 }, { 53,6667 }, { 54,6667 }, { 55,6667 }, { 56,6667 },
685
686
  { 57,6667 }, { 58,6219 }, { 59,6216 }, { 60,6732 }, { 61,6743 },
686
- { 62,6810 }, { 63,6564 }, { 64,6241 }, { 65,6842 }, { 66,7099 },
687
+ { 62,6810 }, { 63,6241 }, { 64,6241 }, { 65,6842 }, { 66,7099 },
687
688
  { 67,6842 }, { 68,6842 }, { 69,7356 }, { 70,6842 }, { 71,6842 },
688
689
  { 72,6842 }, { 73,6842 }, { 74,6842 }, { 75,6842 }, { 76,6842 },
689
690
  { 77,6842 }, { 78,7613 }, { 79,6842 }, { 80,6842 }, { 81,6842 },
@@ -739,7 +740,7 @@ static const struct yy_trans_info yy_transition[17678] =
739
740
  { 44,5958 }, { 45,6317 }, { 46,6336 }, { 47,6407 }, { 48,6409 },
740
741
  { 49,6409 }, { 50,6409 }, { 51,6409 }, { 52,6409 }, { 53,6409 },
741
742
  { 54,6409 }, { 55,6409 }, { 56,6409 }, { 57,6409 }, { 58,5961 },
742
- { 59,5958 }, { 60,6474 }, { 61,6485 }, { 62,6552 }, { 63,6306 },
743
+ { 59,5958 }, { 60,6474 }, { 61,6485 }, { 62,6552 }, { 63,5983 },
743
744
  { 64,5983 }, { 65,6584 }, { 66,6841 }, { 67,6584 }, { 68,6584 },
744
745
  { 69,7098 }, { 70,6584 }, { 71,6584 }, { 72,6584 }, { 73,6584 },
745
746
  { 74,6584 }, { 75,6584 }, { 76,6584 }, { 77,6584 }, { 78,7355 },
@@ -2030,18 +2031,18 @@ static const struct yy_trans_info yy_transition[17678] =
2030
2031
  { 238, 335 }, { 239, 335 }, { 240, 335 }, { 241, 335 }, { 242, 335 },
2031
2032
  { 243, 335 }, { 244, 335 }, { 245, 335 }, { 246, 335 }, { 247, 335 },
2032
2033
  { 248, 335 }, { 249, 335 }, { 250, 335 }, { 251, 335 }, { 252, 335 },
2033
- { 253, 335 }, { 254, 335 }, { 255, 335 }, { 256, 335 }, { 0, 65 },
2034
+ { 253, 335 }, { 254, 335 }, { 255, 335 }, { 256, 335 }, { 0, 64 },
2034
2035
  { 0,11228 }, { 0, 1 }, { 0,11226 }, { 0, 39 }, { 0,11224 },
2035
2036
 
2036
- { 0, 0 }, { 0, 1 }, { 0,11221 }, { 0, 56 }, { 0,11219 },
2037
+ { 0, 0 }, { 0, 1 }, { 0,11221 }, { 0, 55 }, { 0,11219 },
2037
2038
  { 0, 0 }, { 9,5098 }, { 10,5098 }, { 0, 0 }, { 12,5098 },
2038
2039
  { 13,5098 }, { 9,5093 }, { 10,5093 }, { 0, 0 }, { 12,5093 },
2039
- { 13,5093 }, { 0, 14 }, { 0,11206 }, { 0, 55 }, { 0,11204 },
2040
- { 0, 0 }, { 0, 55 }, { 0,11201 }, { 0, 17 }, { 0,11199 },
2040
+ { 13,5093 }, { 0, 14 }, { 0,11206 }, { 0, 54 }, { 0,11204 },
2041
+ { 0, 0 }, { 0, 54 }, { 0,11201 }, { 0, 17 }, { 0,11199 },
2041
2042
  { 0, 0 }, { 0, 7 }, { 0,11196 }, { 0, 0 }, { 32,5098 },
2042
2043
  { 0, 7 }, { 0,11192 }, { 0, 0 }, { 0, 0 }, { 32,5093 },
2043
2044
  { 0, 41 }, { 0,11187 }, { 33,5346 }, { 0, 0 }, { 35,5346 },
2044
- { 0, 0 }, { 37,5346 }, { 38,5346 }, { 0, 56 }, { 0,11179 },
2045
+ { 0, 0 }, { 37,5346 }, { 38,5346 }, { 0, 55 }, { 0,11179 },
2045
2046
  { 0, 0 }, { 42,5346 }, { 43,5346 }, { 0, 0 }, { 45,5346 },
2046
2047
 
2047
2048
  { 0, 0 }, { 47,5346 }, { 0, 17 }, { 0,11170 }, { 0, 20 },
@@ -2056,21 +2057,21 @@ static const struct yy_trans_info yy_transition[17678] =
2056
2057
  { 0, 0 }, { 34, 320 }, { 0, 0 }, { 94,5346 }, { 39, 324 },
2057
2058
 
2058
2059
  { 96,5346 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 60,5306 },
2059
- { 61,5306 }, { 62,5306 }, { 63,5306 }, { 64,5306 }, { 0, 65 },
2060
+ { 61,5306 }, { 62,5306 }, { 63,5306 }, { 64,5306 }, { 0, 64 },
2060
2061
  { 0,11113 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2061
- { 0, 26 }, { 0,11107 }, { 0, 33 }, { 0,11105 }, { 0, 48 },
2062
- { 0,11103 }, { 0, 47 }, { 0,11101 }, { 0, 49 }, { 0,11099 },
2063
- { 0, 0 }, { 0, 0 }, { 0, 0 }, { 124,5346 }, { 0, 0 },
2064
- { 126,5346 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2062
+ { 0, 26 }, { 0,11107 }, { 0, 33 }, { 0,11105 }, { 0, 47 },
2063
+ { 0,11103 }, { 0, 46 }, { 0,11101 }, { 0, 48 }, { 0,11099 },
2064
+ { 0, 9 }, { 0,11097 }, { 0, 0 }, { 124,5346 }, { 0, 0 },
2065
+ { 126,5346 }, { 0, 15 }, { 0,11091 }, { 0, 13 }, { 0,11089 },
2065
2066
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 94,5306 }, { 0, 0 },
2066
- { 96,5306 }, { 0, 0 }, { 0, 64 }, { 0,11080 }, { 0, 9 },
2067
- { 0,11078 }, { 36, 8 }, { 0, 15 }, { 0,11075 }, { 0, 0 },
2067
+ { 96,5306 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2068
+ { 0, 0 }, { 36, 8 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2068
2069
 
2069
2070
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2070
2071
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48,5268 }, { 49,5268 },
2071
2072
  { 50,5268 }, { 51,5268 }, { 52,5268 }, { 53,5268 }, { 54,5268 },
2072
2073
  { 55,5268 }, { 56,5268 }, { 57,5268 }, { 124,5306 }, { 0, 0 },
2073
- { 126,5306 }, { 0, 46 }, { 0,11051 }, { 0, 13 }, { 0,11049 },
2074
+ { 126,5306 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2074
2075
  { 65,5331 }, { 66,5331 }, { 67,5331 }, { 68,5331 }, { 69,5331 },
2075
2076
  { 70,5331 }, { 71,5331 }, { 72,5331 }, { 73,5331 }, { 74,5331 },
2076
2077
  { 75,5331 }, { 76,5331 }, { 77,5331 }, { 78,5331 }, { 79,5331 },
@@ -2078,13 +2079,13 @@ static const struct yy_trans_info yy_transition[17678] =
2078
2079
  { 85,5331 }, { 86,5331 }, { 87,5331 }, { 88,5331 }, { 89,5331 },
2079
2080
 
2080
2081
  { 90,5331 }, { 85,8881 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2081
- { 95,5331 }, { 63, 0 }, { 97,5331 }, { 98,5331 }, { 99,5331 },
2082
+ { 95,5331 }, { 0, 0 }, { 97,5331 }, { 98,5331 }, { 99,5331 },
2082
2083
  { 100,5331 }, { 101,5331 }, { 102,5331 }, { 103,5331 }, { 104,5331 },
2083
2084
  { 105,5331 }, { 106,5331 }, { 107,5331 }, { 108,5331 }, { 109,5331 },
2084
2085
  { 110,5331 }, { 111,5331 }, { 112,5331 }, { 113,5331 }, { 114,5331 },
2085
2086
  { 115,5331 }, { 116,5331 }, { 117,5331 }, { 118,5331 }, { 119,5331 },
2086
2087
  { 120,5331 }, { 121,5331 }, { 122,5331 }, { 117,8904 }, { 0, 0 },
2087
- { 63, -29 }, { 0, 0 }, { 0, 0 }, { 128,5331 }, { 129,5331 },
2088
+ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 128,5331 }, { 129,5331 },
2088
2089
  { 130,5331 }, { 131,5331 }, { 132,5331 }, { 133,5331 }, { 134,5331 },
2089
2090
  { 135,5331 }, { 136,5331 }, { 137,5331 }, { 138,5331 }, { 139,5331 },
2090
2091
 
@@ -2113,13 +2114,13 @@ static const struct yy_trans_info yy_transition[17678] =
2113
2114
  { 240,5331 }, { 241,5331 }, { 242,5331 }, { 243,5331 }, { 244,5331 },
2114
2115
  { 245,5331 }, { 246,5331 }, { 247,5331 }, { 248,5331 }, { 249,5331 },
2115
2116
  { 250,5331 }, { 251,5331 }, { 252,5331 }, { 253,5331 }, { 254,5331 },
2116
- { 255,5331 }, { 0, 55 }, { 0,10856 }, { 0, 45 }, { 0,10854 },
2117
+ { 255,5331 }, { 0, 54 }, { 0,10856 }, { 0, 45 }, { 0,10854 },
2117
2118
  { 0, 12 }, { 0,10852 }, { 0, 0 }, { 0, 0 }, { 0, 8 },
2118
- { 0,10848 }, { 0, 0 }, { 0, 55 }, { 0,10845 }, { 0, 5 },
2119
+ { 0,10848 }, { 0, 0 }, { 0, 54 }, { 0,10845 }, { 0, 5 },
2119
2120
  { 0,10843 }, { 0, 43 }, { 0,10841 }, { 0, 21 }, { 0,10839 },
2120
2121
  { 0, 19 }, { 0,10837 }, { 0, 18 }, { 0,10835 }, { 0, 29 },
2121
- { 0,10833 }, { 0, 35 }, { 0,10831 }, { 0, 60 }, { 0,10829 },
2122
- { 0, 0 }, { 0, 55 }, { 0,10826 }, { 0, 40 }, { 0,10824 },
2122
+ { 0,10833 }, { 0, 35 }, { 0,10831 }, { 0, 59 }, { 0,10829 },
2123
+ { 0, 0 }, { 0, 54 }, { 0,10826 }, { 0, 40 }, { 0,10824 },
2123
2124
 
2124
2125
  { 33,4983 }, { 0, 0 }, { 35,4983 }, { 34, 30 }, { 37,4983 },
2125
2126
  { 38,4983 }, { 0, 16 }, { 0,10816 }, { 39, 38 }, { 42,4983 },
@@ -2135,7 +2136,7 @@ static const struct yy_trans_info yy_transition[17678] =
2135
2136
  { 53,5559 }, { 54,5559 }, { 55,5559 }, { 56,5559 }, { 57,5559 },
2136
2137
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2137
2138
  { 0, 0 }, { 94,4983 }, { 0, 0 }, { 96,4983 }, { 0, 0 },
2138
- { 0, 0 }, { 0, 0 }, { 0, 55 }, { 0,10755 }, { 0, 58 },
2139
+ { 0, 0 }, { 0, 0 }, { 0, 54 }, { 0,10755 }, { 0, 57 },
2139
2140
  { 0,10753 }, { 0, 0 }, { 94,4972 }, { 0, 0 }, { 96,4972 },
2140
2141
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2141
2142
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
@@ -2149,10 +2150,10 @@ static const struct yy_trans_info yy_transition[17678] =
2149
2150
  { 47,4882 }, { 46,5513 }, { 0, 0 }, { 48,5577 }, { 49,5577 },
2150
2151
  { 50,5577 }, { 51,5577 }, { 52,5577 }, { 53,5577 }, { 54,5577 },
2151
2152
  { 55,5577 }, { 56,5577 }, { 57,5577 }, { 60,4882 }, { 61,4882 },
2152
- { 62,4882 }, { 63,4882 }, { 64,4882 }, { 0, 0 }, { 0, 55 },
2153
+ { 62,4882 }, { 63,4882 }, { 64,4882 }, { 0, 0 }, { 0, 54 },
2153
2154
  { 0,10688 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 69,5599 },
2154
2155
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2155
- { 0, 55 }, { 0,10677 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2156
+ { 0, 54 }, { 0,10677 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2156
2157
 
2157
2158
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2158
2159
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
@@ -2167,13 +2168,13 @@ static const struct yy_trans_info yy_transition[17678] =
2167
2168
 
2168
2169
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2169
2170
  { 0, 0 }, { 60,4804 }, { 61,4804 }, { 62,5671 }, { 63,4804 },
2170
- { 64,4804 }, { 0, 0 }, { 0, 55 }, { 0,10610 }, { 0, 0 },
2171
+ { 64,4804 }, { 0, 0 }, { 0, 54 }, { 0,10610 }, { 0, 0 },
2171
2172
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2172
2173
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2173
2174
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 94,4815 },
2174
2175
  { 0, 0 }, { 96,4815 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2175
2176
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2176
- { 94,4804 }, { 0, 0 }, { 96,4804 }, { 0, 0 }, { 0, 64 },
2177
+ { 94,4804 }, { 0, 0 }, { 96,4804 }, { 0, 0 }, { 0, 63 },
2177
2178
  { 0,10578 }, { 33,4737 }, { 0, 0 }, { 35,4737 }, { 0, 0 },
2178
2179
 
2179
2180
  { 37,4737 }, { 38,4737 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
@@ -2188,7 +2189,7 @@ static const struct yy_trans_info yy_transition[17678] =
2188
2189
  { 50,5663 }, { 51,5663 }, { 52,5663 }, { 53,5663 }, { 54,5663 },
2189
2190
 
2190
2191
  { 55,5663 }, { 56,5663 }, { 57,5663 }, { 0, 0 }, { 0, 0 },
2191
- { 0, 0 }, { 0, 0 }, { 94,4737 }, { 63,-502 }, { 96,4737 },
2192
+ { 0, 0 }, { 0, 0 }, { 94,4737 }, { 0, 0 }, { 96,4737 },
2192
2193
  { 65,5663 }, { 66,5663 }, { 67,5663 }, { 68,5663 }, { 69,5663 },
2193
2194
  { 70,5663 }, { 71,5663 }, { 72,5663 }, { 73,5663 }, { 74,5663 },
2194
2195
  { 75,5663 }, { 76,5663 }, { 77,5663 }, { 78,5663 }, { 79,5663 },
@@ -2231,7 +2232,7 @@ static const struct yy_trans_info yy_transition[17678] =
2231
2232
  { 245,5663 }, { 246,5663 }, { 247,5663 }, { 248,5663 }, { 249,5663 },
2232
2233
  { 250,5663 }, { 251,5663 }, { 252,5663 }, { 253,5663 }, { 254,5663 },
2233
2234
 
2234
- { 255,5663 }, { 0, 64 }, { 0,10321 }, { 0, 0 }, { 0, 0 },
2235
+ { 255,5663 }, { 0, 63 }, { 0,10321 }, { 0, 0 }, { 0, 0 },
2235
2236
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2236
2237
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2237
2238
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
@@ -2239,13 +2240,13 @@ static const struct yy_trans_info yy_transition[17678] =
2239
2240
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2240
2241
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2241
2242
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 36,5406 }, { 0, 0 },
2242
- { 0, 0 }, { 39,-757 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2243
+ { 0, 0 }, { 39,-776 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2243
2244
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2244
2245
 
2245
2246
  { 48,5406 }, { 49,5406 }, { 50,5406 }, { 51,5406 }, { 52,5406 },
2246
2247
  { 53,5406 }, { 54,5406 }, { 55,5406 }, { 56,5406 }, { 57,5406 },
2247
2248
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2248
- { 63,-759 }, { 0, 0 }, { 65,5406 }, { 66,5406 }, { 67,5406 },
2249
+ { 0, 0 }, { 0, 0 }, { 65,5406 }, { 66,5406 }, { 67,5406 },
2249
2250
  { 68,5406 }, { 69,5406 }, { 70,5406 }, { 71,5406 }, { 72,5406 },
2250
2251
  { 73,5406 }, { 74,5406 }, { 75,5406 }, { 76,5406 }, { 77,5406 },
2251
2252
  { 78,5406 }, { 79,5406 }, { 80,5406 }, { 81,5406 }, { 82,5406 },
@@ -2287,7 +2288,7 @@ static const struct yy_trans_info yy_transition[17678] =
2287
2288
  { 243,5406 }, { 244,5406 }, { 245,5406 }, { 246,5406 }, { 247,5406 },
2288
2289
 
2289
2290
  { 248,5406 }, { 249,5406 }, { 250,5406 }, { 251,5406 }, { 252,5406 },
2290
- { 253,5406 }, { 254,5406 }, { 255,5406 }, { 0, 64 }, { 0,10064 },
2291
+ { 253,5406 }, { 254,5406 }, { 255,5406 }, { 0, 63 }, { 0,10064 },
2291
2292
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2292
2293
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2293
2294
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
@@ -2295,13 +2296,13 @@ static const struct yy_trans_info yy_transition[17678] =
2295
2296
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2296
2297
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2297
2298
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2298
- { 36,5149 }, { 0, 0 }, { 0, 0 }, { 39,-1011 }, { 0, 0 },
2299
+ { 36,5149 }, { 0, 0 }, { 0, 0 }, { 39,-1027 }, { 0, 0 },
2299
2300
 
2300
2301
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2301
2302
  { 0, 0 }, { 0, 0 }, { 48,5149 }, { 49,5149 }, { 50,5149 },
2302
2303
  { 51,5149 }, { 52,5149 }, { 53,5149 }, { 54,5149 }, { 55,5149 },
2303
2304
  { 56,5149 }, { 57,5149 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2304
- { 0, 0 }, { 0, 0 }, { 63,-987 }, { 0, 0 }, { 65,5149 },
2305
+ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,5149 },
2305
2306
  { 66,5149 }, { 67,5149 }, { 68,5149 }, { 69,5149 }, { 70,5149 },
2306
2307
  { 71,5149 }, { 72,5149 }, { 73,5149 }, { 74,5149 }, { 75,5149 },
2307
2308
  { 76,5149 }, { 77,5149 }, { 78,5149 }, { 79,5149 }, { 80,5149 },
@@ -2344,7 +2345,7 @@ static const struct yy_trans_info yy_transition[17678] =
2344
2345
  { 241,5149 }, { 242,5149 }, { 243,5149 }, { 244,5149 }, { 245,5149 },
2345
2346
  { 246,5149 }, { 247,5149 }, { 248,5149 }, { 249,5149 }, { 250,5149 },
2346
2347
  { 251,5149 }, { 252,5149 }, { 253,5149 }, { 254,5149 }, { 255,5149 },
2347
- { 0, 64 }, { 0,9807 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2348
+ { 0, 63 }, { 0,9807 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2348
2349
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2349
2350
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2350
2351
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
@@ -2353,11 +2354,11 @@ static const struct yy_trans_info yy_transition[17678] =
2353
2354
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2354
2355
 
2355
2356
  { 0, 0 }, { 0, 0 }, { 36,4892 }, { 0, 0 }, { 0, 0 },
2356
- { 39,-1242 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2357
+ { 39,-1282 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2357
2358
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48,4892 },
2358
2359
  { 49,4892 }, { 50,4892 }, { 51,4892 }, { 52,4892 }, { 53,4892 },
2359
2360
  { 54,4892 }, { 55,4892 }, { 56,4892 }, { 57,4892 }, { 0, 0 },
2360
- { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 63,-1273 },
2361
+ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2361
2362
  { 0, 0 }, { 65,4892 }, { 66,4892 }, { 67,4892 }, { 68,4892 },
2362
2363
  { 69,4892 }, { 70,4892 }, { 71,4892 }, { 72,4892 }, { 73,4892 },
2363
2364
  { 74,4892 }, { 75,4892 }, { 76,4892 }, { 77,4892 }, { 78,4892 },
@@ -2400,7 +2401,7 @@ static const struct yy_trans_info yy_transition[17678] =
2400
2401
  { 239,4892 }, { 240,4892 }, { 241,4892 }, { 242,4892 }, { 243,4892 },
2401
2402
  { 244,4892 }, { 245,4892 }, { 246,4892 }, { 247,4892 }, { 248,4892 },
2402
2403
  { 249,4892 }, { 250,4892 }, { 251,4892 }, { 252,4892 }, { 253,4892 },
2403
- { 254,4892 }, { 255,4892 }, { 0, 64 }, { 0,9550 }, { 0, 0 },
2404
+ { 254,4892 }, { 255,4892 }, { 0, 63 }, { 0,9550 }, { 0, 0 },
2404
2405
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2405
2406
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2406
2407
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
@@ -2414,7 +2415,7 @@ static const struct yy_trans_info yy_transition[17678] =
2414
2415
  { 0, 0 }, { 48,4635 }, { 49,4635 }, { 50,4635 }, { 51,4635 },
2415
2416
  { 52,4635 }, { 53,4635 }, { 54,4635 }, { 55,4635 }, { 56,4635 },
2416
2417
  { 57,4635 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2417
- { 0, 0 }, { 63,-1530 }, { 0, 0 }, { 65,4635 }, { 66,4635 },
2418
+ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,4635 }, { 66,4635 },
2418
2419
  { 67,4635 }, { 68,4635 }, { 69,4635 }, { 70,4635 }, { 71,4635 },
2419
2420
  { 72,4635 }, { 73,4635 }, { 74,4635 }, { 75,4635 }, { 76,4635 },
2420
2421
 
@@ -2456,7 +2457,7 @@ static const struct yy_trans_info yy_transition[17678] =
2456
2457
  { 237,4635 }, { 238,4635 }, { 239,4635 }, { 240,4635 }, { 241,4635 },
2457
2458
  { 242,4635 }, { 243,4635 }, { 244,4635 }, { 245,4635 }, { 246,4635 },
2458
2459
  { 247,4635 }, { 248,4635 }, { 249,4635 }, { 250,4635 }, { 251,4635 },
2459
- { 252,4635 }, { 253,4635 }, { 254,4635 }, { 255,4635 }, { 0, 64 },
2460
+ { 252,4635 }, { 253,4635 }, { 254,4635 }, { 255,4635 }, { 0, 63 },
2460
2461
  { 0,9293 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2461
2462
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2462
2463
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
@@ -2470,7 +2471,7 @@ static const struct yy_trans_info yy_transition[17678] =
2470
2471
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48,4378 }, { 49,4378 },
2471
2472
  { 50,4378 }, { 51,4378 }, { 52,4378 }, { 53,4378 }, { 54,4378 },
2472
2473
  { 55,4378 }, { 56,4378 }, { 57,4378 }, { 0, 0 }, { 0, 0 },
2473
- { 0, 0 }, { 0, 0 }, { 0, 0 }, { 63,-1787 }, { 0, 0 },
2474
+ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
2474
2475
  { 65,4378 }, { 66,4378 }, { 67,4378 }, { 68,4378 }, { 69,4378 },
2475
2476
 
2476
2477
  { 70,4378 }, { 71,4378 }, { 72,4378 }, { 73,4378 }, { 74,4378 },
@@ -3208,14 +3209,14 @@ static const struct yy_trans_info yy_transition[17678] =
3208
3209
  { 237,3647 }, { 238,3647 }, { 239,3647 }, { 240,3647 }, { 241,3647 },
3209
3210
  { 242,3647 }, { 243,3647 }, { 244,3647 }, { 245,3647 }, { 246,3647 },
3210
3211
  { 247,3647 }, { 248,3647 }, { 249,3647 }, { 250,3647 }, { 251,3647 },
3211
- { 252,3647 }, { 253,3647 }, { 254,3647 }, { 255,3647 }, { 0, 56 },
3212
+ { 252,3647 }, { 253,3647 }, { 254,3647 }, { 255,3647 }, { 0, 55 },
3212
3213
 
3213
3214
  { 0,5873 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3214
3215
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3215
- { 0, 54 }, { 0,5862 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3216
+ { 0, 53 }, { 0,5862 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3216
3217
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3217
3218
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3218
- { 0, 0 }, { 0, 0 }, { 0, 57 }, { 0,5845 }, { 0, 0 },
3219
+ { 0, 0 }, { 0, 0 }, { 0, 56 }, { 0,5845 }, { 0, 0 },
3219
3220
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 33, 0 }, { 0, 0 },
3220
3221
  { 35, 0 }, { 0, 0 }, { 37, 0 }, { 38, 0 }, { 0, 0 },
3221
3222
  { 0, 0 }, { 0, 0 }, { 42, 0 }, { 43, 0 }, { 33, -11 },
@@ -3343,12 +3344,12 @@ static const struct yy_trans_info yy_transition[17678] =
3343
3344
  { 247,3638 }, { 248,3638 }, { 249,3638 }, { 250,3638 }, { 251,3638 },
3344
3345
 
3345
3346
  { 252,3638 }, { 253,3638 }, { 254,3638 }, { 255,3638 }, { 256,3638 },
3346
- { 0, 59 }, { 0,5267 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3347
+ { 0, 58 }, { 0,5267 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3347
3348
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3348
3349
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3349
3350
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3350
3351
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3351
- { 0, 3 }, { 0,5242 }, { 0, 59 }, { 0,5240 }, { 0, 0 },
3352
+ { 0, 3 }, { 0,5242 }, { 0, 58 }, { 0,5240 }, { 0, 0 },
3352
3353
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3353
3354
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3354
3355
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
@@ -3362,12 +3363,12 @@ static const struct yy_trans_info yy_transition[17678] =
3362
3363
  { 0, 0 }, { 48,3871 }, { 49,3871 }, { 50,3871 }, { 51,3871 },
3363
3364
  { 52,3871 }, { 53,3871 }, { 54,3871 }, { 55,3871 }, { 56,3871 },
3364
3365
  { 57,3871 }, { 60,3871 }, { 61,3871 }, { 62,3871 }, { 63,3871 },
3365
- { 64,3871 }, { 0, 58 }, { 0,5176 }, { 0, 0 }, { 0, 0 },
3366
+ { 64,3871 }, { 0, 57 }, { 0,5176 }, { 0, 0 }, { 0, 0 },
3366
3367
 
3367
3368
  { 0, 0 }, { 0, 0 }, { 69, 86 }, { 0, 0 }, { 0, 0 },
3368
3369
  { 0, 0 }, { 0, 0 }, { 101, 113 }, { 0, 0 }, { 0, 0 },
3369
3370
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3370
- { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 62 }, { 0,5154 },
3371
+ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 61 }, { 0,5154 },
3371
3372
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3372
3373
  { 94,3871 }, { 0, 0 }, { 96,3871 }, { 0, 0 }, { 0, 0 },
3373
3374
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 101, 86 },
@@ -3376,7 +3377,7 @@ static const struct yy_trans_info yy_transition[17678] =
3376
3377
  { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 },
3377
3378
 
3378
3379
  { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 },
3379
- { 124,3871 }, { 0, 0 }, { 126,3871 }, { 0, 51 }, { 0,5114 },
3380
+ { 124,3871 }, { 0, 0 }, { 126,3871 }, { 0, 50 }, { 0,5114 },
3380
3381
  { 0, 0 }, { 0, 0 }, { 43,3807 }, { 0, 0 }, { 45,3807 },
3381
3382
  { 0, 0 }, { 69, 22 }, { 48,3849 }, { 49,3849 }, { 50,3849 },
3382
3383
  { 51,3849 }, { 52,3849 }, { 53,3849 }, { 54,3849 }, { 55,3849 },
@@ -3384,7 +3385,7 @@ static const struct yy_trans_info yy_transition[17678] =
3384
3385
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3385
3386
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3386
3387
  { 0, 0 }, { 0, 0 }, { 33,-759 }, { 0, 0 }, { 35,-759 },
3387
- { 0, 0 }, { 37,-759 }, { 38,-759 }, { 101, 22 }, { 0, 53 },
3388
+ { 0, 0 }, { 37,-759 }, { 38,-759 }, { 101, 22 }, { 0, 52 },
3388
3389
 
3389
3390
  { 0,5073 }, { 42,-759 }, { 43,-759 }, { 0, 0 }, { 45,-759 },
3390
3391
  { 0, 0 }, { 47,-759 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
@@ -3400,9 +3401,9 @@ static const struct yy_trans_info yy_transition[17678] =
3400
3401
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 94,-759 }, { 0, 0 },
3401
3402
  { 96,-759 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3402
3403
  { 60,-800 }, { 61,-800 }, { 62,-800 }, { 63,-800 }, { 64,-800 },
3403
- { 0, 0 }, { 0, 50 }, { 0,5006 }, { 0, 0 }, { 0, 0 },
3404
+ { 0, 0 }, { 0, 49 }, { 0,5006 }, { 0, 0 }, { 0, 0 },
3404
3405
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3405
- { 0, 0 }, { 0, 0 }, { 0, 52 }, { 0,4995 }, { 0, 0 },
3406
+ { 0, 0 }, { 0, 0 }, { 0, 51 }, { 0,4995 }, { 0, 0 },
3406
3407
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 124,-759 }, { 0, 0 },
3407
3408
  { 126,-759 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3408
3409
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 94,-800 },
@@ -3420,7 +3421,7 @@ static const struct yy_trans_info yy_transition[17678] =
3420
3421
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3421
3422
 
3422
3423
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3423
- { 0, 0 }, { 0, 0 }, { 0, 64 }, { 0,4915 }, { 0, 0 },
3424
+ { 0, 0 }, { 0, 0 }, { 0, 63 }, { 0,4915 }, { 0, 0 },
3424
3425
  { 0, 0 }, { 94,-867 }, { 0, 0 }, { 96,-867 }, { 0, 0 },
3425
3426
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3426
3427
  { 0, 0 }, { 0, 0 }, { 94,-878 }, { 0, 0 }, { 96,-878 },
@@ -3434,7 +3435,7 @@ static const struct yy_trans_info yy_transition[17678] =
3434
3435
  { 0, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 },
3435
3436
  { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 },
3436
3437
  { 57, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
3437
- { 0, 0 }, { 63,-6165 }, { 0, 0 }, { 65, 0 }, { 66, 0 },
3438
+ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 0 }, { 66, 0 },
3438
3439
  { 67, 0 }, { 68, 0 }, { 69, 0 }, { 70, 0 }, { 71, 0 },
3439
3440
  { 72, 0 }, { 73, 0 }, { 74, 0 }, { 75, 0 }, { 76, 0 },
3440
3441
  { 77, 0 }, { 78, 0 }, { 79, 0 }, { 80, 0 }, { 81, 0 },
@@ -4200,12 +4201,12 @@ static const struct yy_trans_info yy_transition[17678] =
4200
4201
  { 246,-258 }, { 247,-258 }, { 248,-258 }, { 249,-258 }, { 250,-258 },
4201
4202
  { 251,-258 }, { 252,-258 }, { 253,-258 }, { 254,-258 }, { 255,-258 },
4202
4203
 
4203
- { 256,-258 }, { 0, 3 }, { 0,1371 }, { 0, 59 }, { 0,1369 },
4204
+ { 256,-258 }, { 0, 3 }, { 0,1371 }, { 0, 58 }, { 0,1369 },
4204
4205
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
4205
4206
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
4206
4207
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
4207
4208
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
4208
- { 0, 63 }, { 0,1347 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
4209
+ { 0, 62 }, { 0,1347 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
4209
4210
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
4210
4211
  { 33, 0 }, { 0, 0 }, { 35, 0 }, { 0, 0 }, { 37, 0 },
4211
4212
  { 38, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 42, 0 },
@@ -4214,7 +4215,7 @@ static const struct yy_trans_info yy_transition[17678] =
4214
4215
  { 0, 0 }, { 0, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 },
4215
4216
  { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 },
4216
4217
  { 56, 0 }, { 57, 0 }, { 60, 0 }, { 61, 0 }, { 62, 0 },
4217
- { 63, 0 }, { 64, 0 }, { 0, 61 }, { 0,1305 }, { 0, 0 },
4218
+ { 63, 0 }, { 64, 0 }, { 0, 60 }, { 0,1305 }, { 0, 0 },
4218
4219
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 69,-3785 }, { 48, 42 },
4219
4220
  { 49, 42 }, { 50, 42 }, { 51, 42 }, { 52, 42 }, { 53, 42 },
4220
4221
  { 54, 42 }, { 55, 42 }, { 56, 42 }, { 57, 42 }, { 0, 0 },
@@ -4501,7 +4502,7 @@ static const struct yy_trans_info yy_transition[17678] =
4501
4502
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
4502
4503
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
4503
4504
  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
4504
- { 0, 0 }, { 0, 0 }, { 257, 67 }, { 1, 0 }, };
4505
+ { 0, 0 }, { 0, 0 }, { 257, 66 }, { 1, 0 }, };
4505
4506
 
4506
4507
  static __thread const struct yy_trans_info *yy_start_state_list[25] =
4507
4508
  {
@@ -4543,7 +4544,7 @@ static __thread const struct yy_trans_info *yy_start_state_list[25] =
4543
4544
  #define YY_RESTORE_YY_MORE_OFFSET
4544
4545
  #line 1 "scan.l"
4545
4546
 
4546
- #line 46 "scan.l"
4547
+ #line 47 "scan.l"
4547
4548
 
4548
4549
  /* LCOV_EXCL_START */
4549
4550
 
@@ -4577,7 +4578,7 @@ __thread bool standard_conforming_strings = true;
4577
4578
  * callers need to pass it to scanner_init, if they are using the
4578
4579
  * standard keyword list ScanKeywords.
4579
4580
  */
4580
- #define PG_KEYWORD(kwname, value, category) value,
4581
+ #define PG_KEYWORD(kwname, value, category, collabel) value,
4581
4582
 
4582
4583
  const uint16 ScanKeywordTokens[] = {
4583
4584
  #include "parser/kwlist.h"
@@ -4646,7 +4647,7 @@ static void check_escape_warning(core_yyscan_t yyscanner);
4646
4647
  extern int core_yyget_column(yyscan_t yyscanner);
4647
4648
  extern void core_yyset_column(int column_no, yyscan_t yyscanner);
4648
4649
 
4649
- #line 4600 "scan.c"
4650
+ #line 4601 "scan.c"
4650
4651
  #define YY_NO_INPUT 1
4651
4652
  /*
4652
4653
  * OK, here is a short description of lex/flex rules behavior.
@@ -4662,7 +4663,7 @@ extern void core_yyset_column(int column_no, yyscan_t yyscanner);
4662
4663
  * <xb> bit string literal
4663
4664
  * <xc> extended C-style comments
4664
4665
  * <xd> delimited identifiers (double-quoted identifiers)
4665
- * <xh> hexadecimal numeric string
4666
+ * <xh> hexadecimal byte string
4666
4667
  * <xq> standard quoted strings
4667
4668
  * <xqs> quote stop (detect continued strings)
4668
4669
  * <xe> extended quoted strings (support backslash escape sequences)
@@ -4715,10 +4716,9 @@ extern void core_yyset_column(int column_no, yyscan_t yyscanner);
4715
4716
  * Better to pass the string forward and let the input routines
4716
4717
  * validate the contents.
4717
4718
  */
4718
- /* Hexadecimal number */
4719
+ /* Hexadecimal byte string */
4719
4720
  /* National character */
4720
4721
  /* Quoted string that allows backslash escapes */
4721
- /* Normalized escaped string */
4722
4722
  /* Extended quote
4723
4723
  * xqdouble implements embedded quote, ''''
4724
4724
  */
@@ -4774,9 +4774,11 @@ extern void core_yyset_column(int column_no, yyscan_t yyscanner);
4774
4774
  * If you change either set, adjust the character lists appearing in the
4775
4775
  * rule for "operator"!
4776
4776
  */
4777
- /* we no longer allow unary minus in numbers.
4778
- * instead we pass it separately to parser. there it gets
4779
- * coerced via doNegate() -- Leon aug 20 1999
4777
+ /*
4778
+ * Numbers
4779
+ *
4780
+ * Unary minus is not part of a number here. Instead we pass it separately to
4781
+ * the parser, and there it gets coerced via doNegate().
4780
4782
  *
4781
4783
  * {decimalfail} is used because we would like "1..10" to lex as 1, dot_dot, 10.
4782
4784
  *
@@ -4795,7 +4797,7 @@ extern void core_yyset_column(int column_no, yyscan_t yyscanner);
4795
4797
  * Note that xcstart must appear before operator, as explained above!
4796
4798
  * Also whitespace (comment) must appear before operator.
4797
4799
  */
4798
- #line 4749 "scan.c"
4800
+ #line 4751 "scan.c"
4799
4801
 
4800
4802
  #define INITIAL 0
4801
4803
  #define xb 1
@@ -5088,10 +5090,10 @@ YY_DECL
5088
5090
  }
5089
5091
 
5090
5092
  {
5091
- #line 420 "scan.l"
5093
+ #line 419 "scan.l"
5092
5094
 
5093
5095
 
5094
- #line 5045 "scan.c"
5096
+ #line 5047 "scan.c"
5095
5097
 
5096
5098
  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
5097
5099
  {
@@ -5131,14 +5133,14 @@ do_action: /* This label is used only to access EOF actions. */
5131
5133
  case 1:
5132
5134
  /* rule 1 can match eol */
5133
5135
  YY_RULE_SETUP
5134
- #line 422 "scan.l"
5136
+ #line 421 "scan.l"
5135
5137
  {
5136
5138
  /* ignore */
5137
5139
  }
5138
5140
  YY_BREAK
5139
5141
  case 2:
5140
5142
  YY_RULE_SETUP
5141
- #line 426 "scan.l"
5143
+ #line 425 "scan.l"
5142
5144
  {
5143
5145
  SET_YYLLOC();
5144
5146
  return SQL_COMMENT;
@@ -5146,7 +5148,7 @@ YY_RULE_SETUP
5146
5148
  YY_BREAK
5147
5149
  case 3:
5148
5150
  YY_RULE_SETUP
5149
- #line 431 "scan.l"
5151
+ #line 430 "scan.l"
5150
5152
  {
5151
5153
  /* Set location in case of syntax error in comment */
5152
5154
  SET_YYLLOC();
@@ -5159,7 +5161,7 @@ YY_RULE_SETUP
5159
5161
 
5160
5162
  case 4:
5161
5163
  YY_RULE_SETUP
5162
- #line 441 "scan.l"
5164
+ #line 440 "scan.l"
5163
5165
  {
5164
5166
  (yyextra->xcdepth)++;
5165
5167
  /* Put back any characters past slash-star; see above */
@@ -5168,7 +5170,7 @@ YY_RULE_SETUP
5168
5170
  YY_BREAK
5169
5171
  case 5:
5170
5172
  YY_RULE_SETUP
5171
- #line 447 "scan.l"
5173
+ #line 446 "scan.l"
5172
5174
  {
5173
5175
  if (yyextra->xcdepth <= 0)
5174
5176
  {
@@ -5183,27 +5185,27 @@ YY_RULE_SETUP
5183
5185
  case 6:
5184
5186
  /* rule 6 can match eol */
5185
5187
  YY_RULE_SETUP
5186
- #line 458 "scan.l"
5188
+ #line 457 "scan.l"
5187
5189
  {
5188
5190
  /* ignore */
5189
5191
  }
5190
5192
  YY_BREAK
5191
5193
  case 7:
5192
5194
  YY_RULE_SETUP
5193
- #line 462 "scan.l"
5195
+ #line 461 "scan.l"
5194
5196
  {
5195
5197
  /* ignore */
5196
5198
  }
5197
5199
  YY_BREAK
5198
5200
  case 8:
5199
5201
  YY_RULE_SETUP
5200
- #line 466 "scan.l"
5202
+ #line 465 "scan.l"
5201
5203
  {
5202
5204
  /* ignore */
5203
5205
  }
5204
5206
  YY_BREAK
5205
5207
  case YY_STATE_EOF(xc):
5206
- #line 470 "scan.l"
5208
+ #line 469 "scan.l"
5207
5209
  {
5208
5210
  yyerror("unterminated /* comment");
5209
5211
  }
@@ -5211,7 +5213,7 @@ case YY_STATE_EOF(xc):
5211
5213
  /* <xc> */
5212
5214
  case 9:
5213
5215
  YY_RULE_SETUP
5214
- #line 475 "scan.l"
5216
+ #line 474 "scan.l"
5215
5217
  {
5216
5218
  /* Binary bit type.
5217
5219
  * At some point we should simply pass the string
@@ -5227,22 +5229,22 @@ YY_RULE_SETUP
5227
5229
  YY_BREAK
5228
5230
  case 10:
5229
5231
  /* rule 10 can match eol */
5230
- #line 488 "scan.l"
5232
+ #line 487 "scan.l"
5231
5233
  case 11:
5232
5234
  /* rule 11 can match eol */
5233
5235
  YY_RULE_SETUP
5234
- #line 488 "scan.l"
5236
+ #line 487 "scan.l"
5235
5237
  {
5236
5238
  addlit(yytext, yyleng, yyscanner);
5237
5239
  }
5238
5240
  YY_BREAK
5239
5241
  case YY_STATE_EOF(xb):
5240
- #line 491 "scan.l"
5242
+ #line 490 "scan.l"
5241
5243
  { yyerror("unterminated bit string literal"); }
5242
5244
  YY_BREAK
5243
5245
  case 12:
5244
5246
  YY_RULE_SETUP
5245
- #line 493 "scan.l"
5247
+ #line 492 "scan.l"
5246
5248
  {
5247
5249
  /* Hexadecimal bit type.
5248
5250
  * At some point we should simply pass the string
@@ -5257,12 +5259,12 @@ YY_RULE_SETUP
5257
5259
  }
5258
5260
  YY_BREAK
5259
5261
  case YY_STATE_EOF(xh):
5260
- #line 505 "scan.l"
5262
+ #line 504 "scan.l"
5261
5263
  { yyerror("unterminated hexadecimal string literal"); }
5262
5264
  YY_BREAK
5263
5265
  case 13:
5264
5266
  YY_RULE_SETUP
5265
- #line 507 "scan.l"
5267
+ #line 506 "scan.l"
5266
5268
  {
5267
5269
  /* National character.
5268
5270
  * We will pass this along as a normal character string,
@@ -5292,7 +5294,7 @@ YY_RULE_SETUP
5292
5294
  YY_BREAK
5293
5295
  case 14:
5294
5296
  YY_RULE_SETUP
5295
- #line 534 "scan.l"
5297
+ #line 533 "scan.l"
5296
5298
  {
5297
5299
  yyextra->warn_on_first_escape = true;
5298
5300
  yyextra->saw_non_ascii = false;
@@ -5306,7 +5308,7 @@ YY_RULE_SETUP
5306
5308
  YY_BREAK
5307
5309
  case 15:
5308
5310
  YY_RULE_SETUP
5309
- #line 544 "scan.l"
5311
+ #line 543 "scan.l"
5310
5312
  {
5311
5313
  yyextra->warn_on_first_escape = false;
5312
5314
  yyextra->saw_non_ascii = false;
@@ -5317,7 +5319,7 @@ YY_RULE_SETUP
5317
5319
  YY_BREAK
5318
5320
  case 16:
5319
5321
  YY_RULE_SETUP
5320
- #line 551 "scan.l"
5322
+ #line 550 "scan.l"
5321
5323
  {
5322
5324
  SET_YYLLOC();
5323
5325
  if (!yyextra->standard_conforming_strings)
@@ -5332,7 +5334,7 @@ YY_RULE_SETUP
5332
5334
  YY_BREAK
5333
5335
  case 17:
5334
5336
  YY_RULE_SETUP
5335
- #line 563 "scan.l"
5337
+ #line 562 "scan.l"
5336
5338
  {
5337
5339
  /*
5338
5340
  * When we are scanning a quoted string and see an end
@@ -5349,7 +5351,7 @@ YY_RULE_SETUP
5349
5351
  case 18:
5350
5352
  /* rule 18 can match eol */
5351
5353
  YY_RULE_SETUP
5352
- #line 575 "scan.l"
5354
+ #line 574 "scan.l"
5353
5355
  {
5354
5356
  /*
5355
5357
  * Found a quote continuation, so return to the in-quote
@@ -5361,13 +5363,13 @@ YY_RULE_SETUP
5361
5363
  YY_BREAK
5362
5364
  case 19:
5363
5365
  /* rule 19 can match eol */
5364
- #line 584 "scan.l"
5366
+ #line 583 "scan.l"
5365
5367
  case 20:
5366
5368
  /* rule 20 can match eol */
5367
- #line 585 "scan.l"
5369
+ #line 584 "scan.l"
5368
5370
  YY_RULE_SETUP
5369
5371
  case YY_STATE_EOF(xqs):
5370
- #line 585 "scan.l"
5372
+ #line 584 "scan.l"
5371
5373
  {
5372
5374
  /*
5373
5375
  * Failed to see a quote continuation. Throw back
@@ -5411,7 +5413,7 @@ case YY_STATE_EOF(xqs):
5411
5413
  YY_BREAK
5412
5414
  case 21:
5413
5415
  YY_RULE_SETUP
5414
- #line 626 "scan.l"
5416
+ #line 625 "scan.l"
5415
5417
  {
5416
5418
  addlitchar('\'', yyscanner);
5417
5419
  }
@@ -5419,7 +5421,7 @@ YY_RULE_SETUP
5419
5421
  case 22:
5420
5422
  /* rule 22 can match eol */
5421
5423
  YY_RULE_SETUP
5422
- #line 629 "scan.l"
5424
+ #line 628 "scan.l"
5423
5425
  {
5424
5426
  addlit(yytext, yyleng, yyscanner);
5425
5427
  }
@@ -5427,14 +5429,14 @@ YY_RULE_SETUP
5427
5429
  case 23:
5428
5430
  /* rule 23 can match eol */
5429
5431
  YY_RULE_SETUP
5430
- #line 632 "scan.l"
5432
+ #line 631 "scan.l"
5431
5433
  {
5432
5434
  addlit(yytext, yyleng, yyscanner);
5433
5435
  }
5434
5436
  YY_BREAK
5435
5437
  case 24:
5436
5438
  YY_RULE_SETUP
5437
- #line 635 "scan.l"
5439
+ #line 634 "scan.l"
5438
5440
  {
5439
5441
  pg_wchar c = strtoul(yytext + 2, NULL, 16);
5440
5442
 
@@ -5466,7 +5468,7 @@ YY_RULE_SETUP
5466
5468
  YY_BREAK
5467
5469
  case 25:
5468
5470
  YY_RULE_SETUP
5469
- #line 663 "scan.l"
5471
+ #line 662 "scan.l"
5470
5472
  {
5471
5473
  pg_wchar c = strtoul(yytext + 2, NULL, 16);
5472
5474
 
@@ -5489,13 +5491,13 @@ YY_RULE_SETUP
5489
5491
  }
5490
5492
  YY_BREAK
5491
5493
  case 26:
5492
- #line 684 "scan.l"
5494
+ #line 683 "scan.l"
5493
5495
  case 27:
5494
5496
  /* rule 27 can match eol */
5495
- #line 685 "scan.l"
5497
+ #line 684 "scan.l"
5496
5498
  YY_RULE_SETUP
5497
5499
  case YY_STATE_EOF(xeu):
5498
- #line 685 "scan.l"
5500
+ #line 684 "scan.l"
5499
5501
  {
5500
5502
  /* Set the error cursor to point at missing esc seq */
5501
5503
  SET_YYLLOC();
@@ -5504,7 +5506,7 @@ case YY_STATE_EOF(xeu):
5504
5506
  YY_BREAK
5505
5507
  case 28:
5506
5508
  YY_RULE_SETUP
5507
- #line 690 "scan.l"
5509
+ #line 689 "scan.l"
5508
5510
  {
5509
5511
  /* Set the error cursor to point at malformed esc seq */
5510
5512
  SET_YYLLOC();
@@ -5518,7 +5520,7 @@ YY_RULE_SETUP
5518
5520
  case 29:
5519
5521
  /* rule 29 can match eol */
5520
5522
  YY_RULE_SETUP
5521
- #line 699 "scan.l"
5523
+ #line 698 "scan.l"
5522
5524
  {
5523
5525
  if (yytext[1] == '\'')
5524
5526
  {
@@ -5538,7 +5540,7 @@ YY_RULE_SETUP
5538
5540
  YY_BREAK
5539
5541
  case 30:
5540
5542
  YY_RULE_SETUP
5541
- #line 715 "scan.l"
5543
+ #line 714 "scan.l"
5542
5544
  {
5543
5545
  unsigned char c = strtoul(yytext + 1, NULL, 8);
5544
5546
 
@@ -5550,7 +5552,7 @@ YY_RULE_SETUP
5550
5552
  YY_BREAK
5551
5553
  case 31:
5552
5554
  YY_RULE_SETUP
5553
- #line 723 "scan.l"
5555
+ #line 722 "scan.l"
5554
5556
  {
5555
5557
  unsigned char c = strtoul(yytext + 2, NULL, 16);
5556
5558
 
@@ -5562,7 +5564,7 @@ YY_RULE_SETUP
5562
5564
  YY_BREAK
5563
5565
  case 32:
5564
5566
  YY_RULE_SETUP
5565
- #line 731 "scan.l"
5567
+ #line 730 "scan.l"
5566
5568
  {
5567
5569
  /* This is only needed for \ just before EOF */
5568
5570
  addlitchar(yytext[0], yyscanner);
@@ -5571,12 +5573,12 @@ YY_RULE_SETUP
5571
5573
  case YY_STATE_EOF(xq):
5572
5574
  case YY_STATE_EOF(xe):
5573
5575
  case YY_STATE_EOF(xus):
5574
- #line 735 "scan.l"
5576
+ #line 734 "scan.l"
5575
5577
  { yyerror("unterminated quoted string"); }
5576
5578
  YY_BREAK
5577
5579
  case 33:
5578
5580
  YY_RULE_SETUP
5579
- #line 737 "scan.l"
5581
+ #line 736 "scan.l"
5580
5582
  {
5581
5583
  SET_YYLLOC();
5582
5584
  yyextra->dolqstart = pstrdup(yytext);
@@ -5586,7 +5588,7 @@ YY_RULE_SETUP
5586
5588
  YY_BREAK
5587
5589
  case 34:
5588
5590
  YY_RULE_SETUP
5589
- #line 743 "scan.l"
5591
+ #line 742 "scan.l"
5590
5592
  {
5591
5593
  SET_YYLLOC();
5592
5594
  /* throw back all but the initial "$" */
@@ -5597,7 +5599,7 @@ YY_RULE_SETUP
5597
5599
  YY_BREAK
5598
5600
  case 35:
5599
5601
  YY_RULE_SETUP
5600
- #line 750 "scan.l"
5602
+ #line 749 "scan.l"
5601
5603
  {
5602
5604
  if (strcmp(yytext, yyextra->dolqstart) == 0)
5603
5605
  {
@@ -5623,33 +5625,33 @@ YY_RULE_SETUP
5623
5625
  case 36:
5624
5626
  /* rule 36 can match eol */
5625
5627
  YY_RULE_SETUP
5626
- #line 771 "scan.l"
5628
+ #line 770 "scan.l"
5627
5629
  {
5628
5630
  addlit(yytext, yyleng, yyscanner);
5629
5631
  }
5630
5632
  YY_BREAK
5631
5633
  case 37:
5632
5634
  YY_RULE_SETUP
5633
- #line 774 "scan.l"
5635
+ #line 773 "scan.l"
5634
5636
  {
5635
5637
  addlit(yytext, yyleng, yyscanner);
5636
5638
  }
5637
5639
  YY_BREAK
5638
5640
  case 38:
5639
5641
  YY_RULE_SETUP
5640
- #line 777 "scan.l"
5642
+ #line 776 "scan.l"
5641
5643
  {
5642
5644
  /* This is only needed for $ inside the quoted text */
5643
5645
  addlitchar(yytext[0], yyscanner);
5644
5646
  }
5645
5647
  YY_BREAK
5646
5648
  case YY_STATE_EOF(xdolq):
5647
- #line 781 "scan.l"
5649
+ #line 780 "scan.l"
5648
5650
  { yyerror("unterminated dollar-quoted string"); }
5649
5651
  YY_BREAK
5650
5652
  case 39:
5651
5653
  YY_RULE_SETUP
5652
- #line 783 "scan.l"
5654
+ #line 782 "scan.l"
5653
5655
  {
5654
5656
  SET_YYLLOC();
5655
5657
  BEGIN(xd);
@@ -5658,7 +5660,7 @@ YY_RULE_SETUP
5658
5660
  YY_BREAK
5659
5661
  case 40:
5660
5662
  YY_RULE_SETUP
5661
- #line 788 "scan.l"
5663
+ #line 787 "scan.l"
5662
5664
  {
5663
5665
  SET_YYLLOC();
5664
5666
  BEGIN(xui);
@@ -5667,7 +5669,7 @@ YY_RULE_SETUP
5667
5669
  YY_BREAK
5668
5670
  case 41:
5669
5671
  YY_RULE_SETUP
5670
- #line 793 "scan.l"
5672
+ #line 792 "scan.l"
5671
5673
  {
5672
5674
  char *ident;
5673
5675
 
@@ -5684,7 +5686,7 @@ YY_RULE_SETUP
5684
5686
  YY_BREAK
5685
5687
  case 42:
5686
5688
  YY_RULE_SETUP
5687
- #line 806 "scan.l"
5689
+ #line 805 "scan.l"
5688
5690
  {
5689
5691
  BEGIN(INITIAL);
5690
5692
  if (yyextra->literallen == 0)
@@ -5697,7 +5699,7 @@ YY_RULE_SETUP
5697
5699
  YY_BREAK
5698
5700
  case 43:
5699
5701
  YY_RULE_SETUP
5700
- #line 815 "scan.l"
5702
+ #line 814 "scan.l"
5701
5703
  {
5702
5704
  addlitchar('"', yyscanner);
5703
5705
  }
@@ -5705,19 +5707,19 @@ YY_RULE_SETUP
5705
5707
  case 44:
5706
5708
  /* rule 44 can match eol */
5707
5709
  YY_RULE_SETUP
5708
- #line 818 "scan.l"
5710
+ #line 817 "scan.l"
5709
5711
  {
5710
5712
  addlit(yytext, yyleng, yyscanner);
5711
5713
  }
5712
5714
  YY_BREAK
5713
5715
  case YY_STATE_EOF(xd):
5714
5716
  case YY_STATE_EOF(xui):
5715
- #line 821 "scan.l"
5717
+ #line 820 "scan.l"
5716
5718
  { yyerror("unterminated quoted identifier"); }
5717
5719
  YY_BREAK
5718
5720
  case 45:
5719
5721
  YY_RULE_SETUP
5720
- #line 823 "scan.l"
5722
+ #line 822 "scan.l"
5721
5723
  {
5722
5724
  char *ident;
5723
5725
 
@@ -5733,58 +5735,59 @@ YY_RULE_SETUP
5733
5735
  YY_BREAK
5734
5736
  case 46:
5735
5737
  YY_RULE_SETUP
5736
- #line 836 "scan.l"
5738
+ #line 835 "scan.l"
5737
5739
  {
5738
- /* ignore E */
5739
- return yytext[1];
5740
+ SET_YYLLOC();
5741
+ return TYPECAST;
5740
5742
  }
5741
5743
  YY_BREAK
5742
5744
  case 47:
5743
5745
  YY_RULE_SETUP
5744
- #line 841 "scan.l"
5746
+ #line 840 "scan.l"
5745
5747
  {
5746
5748
  SET_YYLLOC();
5747
- return TYPECAST;
5749
+ return DOT_DOT;
5748
5750
  }
5749
5751
  YY_BREAK
5750
5752
  case 48:
5751
5753
  YY_RULE_SETUP
5752
- #line 846 "scan.l"
5754
+ #line 845 "scan.l"
5753
5755
  {
5754
5756
  SET_YYLLOC();
5755
- return DOT_DOT;
5757
+ return COLON_EQUALS;
5756
5758
  }
5757
5759
  YY_BREAK
5758
5760
  case 49:
5759
5761
  YY_RULE_SETUP
5760
- #line 851 "scan.l"
5762
+ #line 850 "scan.l"
5761
5763
  {
5762
5764
  SET_YYLLOC();
5763
- return COLON_EQUALS;
5765
+ return EQUALS_GREATER;
5764
5766
  }
5765
5767
  YY_BREAK
5766
5768
  case 50:
5767
5769
  YY_RULE_SETUP
5768
- #line 856 "scan.l"
5770
+ #line 855 "scan.l"
5769
5771
  {
5770
5772
  SET_YYLLOC();
5771
- return EQUALS_GREATER;
5773
+ return LESS_EQUALS;
5772
5774
  }
5773
5775
  YY_BREAK
5774
5776
  case 51:
5775
5777
  YY_RULE_SETUP
5776
- #line 861 "scan.l"
5778
+ #line 860 "scan.l"
5777
5779
  {
5778
5780
  SET_YYLLOC();
5779
- return LESS_EQUALS;
5781
+ return GREATER_EQUALS;
5780
5782
  }
5781
5783
  YY_BREAK
5782
5784
  case 52:
5783
5785
  YY_RULE_SETUP
5784
- #line 866 "scan.l"
5786
+ #line 865 "scan.l"
5785
5787
  {
5788
+ /* We accept both "<>" and "!=" as meaning NOT_EQUALS */
5786
5789
  SET_YYLLOC();
5787
- return GREATER_EQUALS;
5790
+ return NOT_EQUALS;
5788
5791
  }
5789
5792
  YY_BREAK
5790
5793
  case 53:
@@ -5799,23 +5802,14 @@ YY_RULE_SETUP
5799
5802
  case 54:
5800
5803
  YY_RULE_SETUP
5801
5804
  #line 877 "scan.l"
5802
- {
5803
- /* We accept both "<>" and "!=" as meaning NOT_EQUALS */
5804
- SET_YYLLOC();
5805
- return NOT_EQUALS;
5806
- }
5807
- YY_BREAK
5808
- case 55:
5809
- YY_RULE_SETUP
5810
- #line 883 "scan.l"
5811
5805
  {
5812
5806
  SET_YYLLOC();
5813
5807
  return yytext[0];
5814
5808
  }
5815
5809
  YY_BREAK
5816
- case 56:
5810
+ case 55:
5817
5811
  YY_RULE_SETUP
5818
- #line 888 "scan.l"
5812
+ #line 882 "scan.l"
5819
5813
  {
5820
5814
  /*
5821
5815
  * Check for embedded slash-star or dash-dash; those
@@ -5875,29 +5869,6 @@ YY_RULE_SETUP
5875
5869
  }
5876
5870
  }
5877
5871
 
5878
- /* We don't accept leading ? in any multi-character operators
5879
- * except for those in use by hstore, JSON and geometric operators.
5880
- *
5881
- * We don't accept contained or trailing ? in any
5882
- * multi-character operators, except for those in use by JSON operators.
5883
- *
5884
- * This is necessary in order to support normalized queries without
5885
- * spacing between ? as a substition character and a simple operator (e.g. "?=?")
5886
- */
5887
- if (yytext[0] == '?' &&
5888
- strcmp(yytext, "?<@") != 0 && strcmp(yytext, "?@>") != 0 &&
5889
- strcmp(yytext, "?~") != 0 && strcmp(yytext, "?@") != 0 &&
5890
- strcmp(yytext, "?|") != 0 && strcmp(yytext, "?&") != 0 &&
5891
- strcmp(yytext, "?#") != 0 && strcmp(yytext, "?-") != 0 &&
5892
- strcmp(yytext, "?-|") != 0 && strcmp(yytext, "?||") != 0)
5893
- nchars = 1;
5894
-
5895
- if (yytext[0] != '?' && strchr(yytext, '?') &&
5896
- strcmp(yytext, "^?") != 0 && strcmp(yytext, "#?") != 0 &&
5897
- strcmp(yytext, "@?") != 0)
5898
- /* Lex up to just before the ? character */
5899
- nchars = strchr(yytext, '?') - yytext;
5900
-
5901
5872
  SET_YYLLOC();
5902
5873
 
5903
5874
  if (nchars < yyleng)
@@ -5911,7 +5882,7 @@ YY_RULE_SETUP
5911
5882
  * that the "self" rule would have.
5912
5883
  */
5913
5884
  if (nchars == 1 &&
5914
- strchr(",()[].;:+-*/%^<>=?", yytext[0]))
5885
+ strchr(",()[].;:+-*/%^<>=", yytext[0]))
5915
5886
  return yytext[0];
5916
5887
  /*
5917
5888
  * Likewise, if what we have left is two chars, and
@@ -5947,35 +5918,35 @@ YY_RULE_SETUP
5947
5918
  return Op;
5948
5919
  }
5949
5920
  YY_BREAK
5950
- case 57:
5921
+ case 56:
5951
5922
  YY_RULE_SETUP
5952
- #line 1019 "scan.l"
5923
+ #line 990 "scan.l"
5953
5924
  {
5954
5925
  SET_YYLLOC();
5955
5926
  yylval->ival = atol(yytext + 1);
5956
5927
  return PARAM;
5957
5928
  }
5958
5929
  YY_BREAK
5959
- case 58:
5930
+ case 57:
5960
5931
  YY_RULE_SETUP
5961
- #line 1025 "scan.l"
5932
+ #line 996 "scan.l"
5962
5933
  {
5963
5934
  SET_YYLLOC();
5964
5935
  return process_integer_literal(yytext, yylval);
5965
5936
  }
5966
5937
  YY_BREAK
5967
- case 59:
5938
+ case 58:
5968
5939
  YY_RULE_SETUP
5969
- #line 1029 "scan.l"
5940
+ #line 1000 "scan.l"
5970
5941
  {
5971
5942
  SET_YYLLOC();
5972
5943
  yylval->str = pstrdup(yytext);
5973
5944
  return FCONST;
5974
5945
  }
5975
5946
  YY_BREAK
5976
- case 60:
5947
+ case 59:
5977
5948
  YY_RULE_SETUP
5978
- #line 1034 "scan.l"
5949
+ #line 1005 "scan.l"
5979
5950
  {
5980
5951
  /* throw back the .., and treat as integer */
5981
5952
  yyless(yyleng - 2);
@@ -5983,18 +5954,18 @@ YY_RULE_SETUP
5983
5954
  return process_integer_literal(yytext, yylval);
5984
5955
  }
5985
5956
  YY_BREAK
5986
- case 61:
5957
+ case 60:
5987
5958
  YY_RULE_SETUP
5988
- #line 1040 "scan.l"
5959
+ #line 1011 "scan.l"
5989
5960
  {
5990
5961
  SET_YYLLOC();
5991
5962
  yylval->str = pstrdup(yytext);
5992
5963
  return FCONST;
5993
5964
  }
5994
5965
  YY_BREAK
5995
- case 62:
5966
+ case 61:
5996
5967
  YY_RULE_SETUP
5997
- #line 1045 "scan.l"
5968
+ #line 1016 "scan.l"
5998
5969
  {
5999
5970
  /*
6000
5971
  * throw back the [Ee], and figure out whether what
@@ -6005,9 +5976,9 @@ YY_RULE_SETUP
6005
5976
  return process_integer_literal(yytext, yylval);
6006
5977
  }
6007
5978
  YY_BREAK
6008
- case 63:
5979
+ case 62:
6009
5980
  YY_RULE_SETUP
6010
- #line 1054 "scan.l"
5981
+ #line 1025 "scan.l"
6011
5982
  {
6012
5983
  /* throw back the [Ee][+-], and proceed as above */
6013
5984
  yyless(yyleng - 2);
@@ -6015,25 +5986,20 @@ YY_RULE_SETUP
6015
5986
  return process_integer_literal(yytext, yylval);
6016
5987
  }
6017
5988
  YY_BREAK
6018
- case 64:
5989
+ case 63:
6019
5990
  YY_RULE_SETUP
6020
- #line 1062 "scan.l"
5991
+ #line 1033 "scan.l"
6021
5992
  {
6022
5993
  int kwnum;
6023
5994
  char *ident;
6024
- char *keyword_text = pstrdup(yytext);
6025
5995
 
6026
5996
  SET_YYLLOC();
6027
5997
 
6028
5998
  /* Is it a keyword? */
6029
- if (yytext[yyleng - 1] == '?')
6030
- keyword_text[yyleng - 1] = '\0';
6031
- kwnum = ScanKeywordLookup(keyword_text,
5999
+ kwnum = ScanKeywordLookup(yytext,
6032
6000
  yyextra->keywordlist);
6033
6001
  if (kwnum >= 0)
6034
6002
  {
6035
- if (keyword_text[yyleng - 1] == '\0')
6036
- yyless(yyleng - 1);
6037
6003
  yylval->keyword = GetScanKeyword(kwnum,
6038
6004
  yyextra->keywordlist);
6039
6005
  return yyextra->keyword_tokens[kwnum];
@@ -6049,27 +6015,27 @@ YY_RULE_SETUP
6049
6015
  return IDENT;
6050
6016
  }
6051
6017
  YY_BREAK
6052
- case 65:
6018
+ case 64:
6053
6019
  YY_RULE_SETUP
6054
- #line 1093 "scan.l"
6020
+ #line 1059 "scan.l"
6055
6021
  {
6056
6022
  SET_YYLLOC();
6057
6023
  return yytext[0];
6058
6024
  }
6059
6025
  YY_BREAK
6060
6026
  case YY_STATE_EOF(INITIAL):
6061
- #line 1098 "scan.l"
6027
+ #line 1064 "scan.l"
6062
6028
  {
6063
6029
  SET_YYLLOC();
6064
6030
  yyterminate();
6065
6031
  }
6066
6032
  YY_BREAK
6067
- case 66:
6033
+ case 65:
6068
6034
  YY_RULE_SETUP
6069
- #line 1103 "scan.l"
6035
+ #line 1069 "scan.l"
6070
6036
  YY_FATAL_ERROR( "flex scanner jammed" );
6071
6037
  YY_BREAK
6072
- #line 6023 "scan.c"
6038
+ #line 5989 "scan.c"
6073
6039
 
6074
6040
  case YY_END_OF_BUFFER:
6075
6041
  {
@@ -6949,7 +6915,7 @@ static int yy_flex_strlen (const char * s , yyscan_t yyscanner)
6949
6915
 
6950
6916
  #define YYTABLES_NAME "yytables"
6951
6917
 
6952
- #line 1103 "scan.l"
6918
+ #line 1069 "scan.l"
6953
6919
 
6954
6920
 
6955
6921
  /* LCOV_EXCL_STOP */
@@ -7159,10 +7125,7 @@ addlit(char *ytext, int yleng, core_yyscan_t yyscanner)
7159
7125
  /* enlarge buffer if needed */
7160
7126
  if ((yyextra->literallen + yleng) >= yyextra->literalalloc)
7161
7127
  {
7162
- do
7163
- {
7164
- yyextra->literalalloc *= 2;
7165
- } while ((yyextra->literallen + yleng) >= yyextra->literalalloc);
7128
+ yyextra->literalalloc = pg_nextpower2_32(yyextra->literallen + yleng + 1);
7166
7129
  yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf,
7167
7130
  yyextra->literalalloc);
7168
7131
  }