pg_query 2.2.0 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +59 -31
  4. data/Rakefile +2 -2
  5. data/ext/pg_query/include/access/amapi.h +45 -1
  6. data/ext/pg_query/include/access/attmap.h +1 -1
  7. data/ext/pg_query/include/access/attnum.h +2 -2
  8. data/ext/pg_query/include/access/clog.h +4 -2
  9. data/ext/pg_query/include/access/commit_ts.h +6 -9
  10. data/ext/pg_query/include/access/detoast.h +1 -11
  11. data/ext/pg_query/include/access/genam.h +15 -12
  12. data/ext/pg_query/include/access/gin.h +2 -2
  13. data/ext/pg_query/include/access/htup.h +1 -1
  14. data/ext/pg_query/include/access/htup_details.h +75 -87
  15. data/ext/pg_query/include/access/itup.h +7 -1
  16. data/ext/pg_query/include/access/parallel.h +2 -2
  17. data/ext/pg_query/include/access/printtup.h +1 -1
  18. data/ext/pg_query/include/access/relation.h +1 -1
  19. data/ext/pg_query/include/access/relscan.h +17 -2
  20. data/ext/pg_query/include/access/rmgr.h +30 -3
  21. data/ext/pg_query/include/access/rmgrlist.h +23 -23
  22. data/ext/pg_query/include/access/sdir.h +1 -1
  23. data/ext/pg_query/include/access/skey.h +1 -1
  24. data/ext/pg_query/include/access/stratnum.h +4 -2
  25. data/ext/pg_query/include/access/sysattr.h +1 -1
  26. data/ext/pg_query/include/access/table.h +2 -1
  27. data/ext/pg_query/include/access/tableam.h +272 -20
  28. data/ext/pg_query/include/access/toast_compression.h +73 -0
  29. data/ext/pg_query/include/access/transam.h +123 -13
  30. data/ext/pg_query/include/access/tupconvert.h +1 -1
  31. data/ext/pg_query/include/access/tupdesc.h +1 -1
  32. data/ext/pg_query/include/access/tupmacs.h +3 -3
  33. data/ext/pg_query/include/access/twophase.h +3 -1
  34. data/ext/pg_query/include/access/xact.h +73 -19
  35. data/ext/pg_query/include/access/xlog.h +60 -155
  36. data/ext/pg_query/include/access/xlog_internal.h +40 -13
  37. data/ext/pg_query/include/access/xlogdefs.h +8 -16
  38. data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
  39. data/ext/pg_query/include/access/xlogreader.h +145 -39
  40. data/ext/pg_query/include/access/xlogrecord.h +18 -9
  41. data/ext/pg_query/include/access/xlogrecovery.h +157 -0
  42. data/ext/pg_query/include/c.h +101 -44
  43. data/ext/pg_query/include/catalog/catalog.h +3 -1
  44. data/ext/pg_query/include/catalog/catversion.h +2 -2
  45. data/ext/pg_query/include/catalog/dependency.h +8 -16
  46. data/ext/pg_query/include/catalog/genbki.h +83 -5
  47. data/ext/pg_query/include/catalog/index.h +18 -3
  48. data/ext/pg_query/include/catalog/indexing.h +12 -324
  49. data/ext/pg_query/include/catalog/namespace.h +4 -2
  50. data/ext/pg_query/include/catalog/objectaccess.h +70 -2
  51. data/ext/pg_query/include/catalog/objectaddress.h +11 -6
  52. data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
  53. data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
  54. data/ext/pg_query/include/catalog/pg_am.h +4 -1
  55. data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
  56. data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
  57. data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
  58. data/ext/pg_query/include/catalog/pg_authid.h +7 -2
  59. data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
  60. data/ext/pg_query/include/catalog/pg_class.h +44 -14
  61. data/ext/pg_query/include/catalog/pg_class_d.h +30 -1
  62. data/ext/pg_query/include/catalog/pg_collation.h +33 -8
  63. data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
  64. data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
  65. data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
  66. data/ext/pg_query/include/catalog/pg_control.h +3 -5
  67. data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
  68. data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
  69. data/ext/pg_query/include/catalog/pg_depend.h +11 -7
  70. data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
  71. data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
  72. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
  73. data/ext/pg_query/include/catalog/pg_index.h +17 -7
  74. data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
  75. data/ext/pg_query/include/catalog/pg_language.h +10 -5
  76. data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
  77. data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
  78. data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
  79. data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
  80. data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
  81. data/ext/pg_query/include/catalog/pg_operator.h +18 -15
  82. data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
  83. data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
  84. data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
  85. data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
  86. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
  87. data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
  88. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
  89. data/ext/pg_query/include/catalog/pg_proc.h +20 -11
  90. data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
  91. data/ext/pg_query/include/catalog/pg_publication.h +50 -7
  92. data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
  93. data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
  94. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
  95. data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
  96. data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
  97. data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
  98. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
  99. data/ext/pg_query/include/catalog/pg_transform.h +8 -5
  100. data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
  101. data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
  102. data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
  103. data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
  104. data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
  105. data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
  106. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
  107. data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
  108. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
  109. data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
  110. data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
  111. data/ext/pg_query/include/catalog/pg_type.h +55 -24
  112. data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
  113. data/ext/pg_query/include/catalog/storage.h +5 -3
  114. data/ext/pg_query/include/commands/async.h +3 -4
  115. data/ext/pg_query/include/commands/dbcommands.h +2 -1
  116. data/ext/pg_query/include/commands/defrem.h +11 -24
  117. data/ext/pg_query/include/commands/event_trigger.h +2 -2
  118. data/ext/pg_query/include/commands/explain.h +1 -1
  119. data/ext/pg_query/include/commands/prepare.h +1 -1
  120. data/ext/pg_query/include/commands/tablespace.h +2 -2
  121. data/ext/pg_query/include/commands/trigger.h +18 -16
  122. data/ext/pg_query/include/commands/user.h +2 -2
  123. data/ext/pg_query/include/commands/vacuum.h +88 -41
  124. data/ext/pg_query/include/commands/variable.h +1 -1
  125. data/ext/pg_query/include/common/file_perm.h +4 -4
  126. data/ext/pg_query/include/common/hashfn.h +1 -1
  127. data/ext/pg_query/include/common/ip.h +1 -7
  128. data/ext/pg_query/include/common/keywords.h +2 -6
  129. data/ext/pg_query/include/common/kwlookup.h +1 -1
  130. data/ext/pg_query/include/common/pg_prng.h +60 -0
  131. data/ext/pg_query/include/common/relpath.h +2 -2
  132. data/ext/pg_query/include/common/string.h +24 -1
  133. data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
  134. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
  135. data/ext/pg_query/include/datatype/timestamp.h +40 -1
  136. data/ext/pg_query/include/executor/execdesc.h +1 -1
  137. data/ext/pg_query/include/executor/executor.h +65 -22
  138. data/ext/pg_query/include/executor/functions.h +17 -3
  139. data/ext/pg_query/include/executor/instrument.h +33 -16
  140. data/ext/pg_query/include/executor/spi.h +41 -3
  141. data/ext/pg_query/include/executor/tablefunc.h +1 -1
  142. data/ext/pg_query/include/executor/tuptable.h +1 -1
  143. data/ext/pg_query/include/fmgr.h +13 -7
  144. data/ext/pg_query/include/funcapi.h +16 -4
  145. data/ext/pg_query/include/getaddrinfo.h +1 -1
  146. data/ext/pg_query/include/jit/jit.h +11 -11
  147. data/ext/pg_query/include/kwlist_d.h +517 -494
  148. data/ext/pg_query/include/lib/dshash.h +112 -0
  149. data/ext/pg_query/include/lib/ilist.h +20 -1
  150. data/ext/pg_query/include/lib/pairingheap.h +1 -1
  151. data/ext/pg_query/include/lib/simplehash.h +140 -15
  152. data/ext/pg_query/include/lib/sort_template.h +432 -0
  153. data/ext/pg_query/include/lib/stringinfo.h +1 -1
  154. data/ext/pg_query/include/libpq/auth.h +6 -4
  155. data/ext/pg_query/include/libpq/crypt.h +5 -4
  156. data/ext/pg_query/include/libpq/hba.h +43 -4
  157. data/ext/pg_query/include/libpq/libpq-be.h +23 -6
  158. data/ext/pg_query/include/libpq/libpq.h +30 -20
  159. data/ext/pg_query/include/libpq/pqcomm.h +17 -31
  160. data/ext/pg_query/include/libpq/pqformat.h +1 -1
  161. data/ext/pg_query/include/libpq/pqsignal.h +4 -4
  162. data/ext/pg_query/include/mb/pg_wchar.h +105 -23
  163. data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
  164. data/ext/pg_query/include/miscadmin.h +47 -41
  165. data/ext/pg_query/include/nodes/bitmapset.h +1 -1
  166. data/ext/pg_query/include/nodes/execnodes.h +270 -78
  167. data/ext/pg_query/include/nodes/extensible.h +4 -2
  168. data/ext/pg_query/include/nodes/lockoptions.h +1 -1
  169. data/ext/pg_query/include/nodes/makefuncs.h +7 -6
  170. data/ext/pg_query/include/nodes/memnodes.h +5 -3
  171. data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
  172. data/ext/pg_query/include/nodes/nodes.h +30 -11
  173. data/ext/pg_query/include/nodes/params.h +1 -1
  174. data/ext/pg_query/include/nodes/parsenodes.h +322 -90
  175. data/ext/pg_query/include/nodes/pathnodes.h +243 -66
  176. data/ext/pg_query/include/nodes/pg_list.h +75 -69
  177. data/ext/pg_query/include/nodes/plannodes.h +111 -28
  178. data/ext/pg_query/include/nodes/primnodes.h +99 -47
  179. data/ext/pg_query/include/nodes/print.h +1 -1
  180. data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
  181. data/ext/pg_query/include/nodes/value.h +58 -39
  182. data/ext/pg_query/include/optimizer/cost.h +9 -2
  183. data/ext/pg_query/include/optimizer/geqo.h +9 -7
  184. data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
  185. data/ext/pg_query/include/optimizer/optimizer.h +25 -17
  186. data/ext/pg_query/include/optimizer/paths.h +6 -6
  187. data/ext/pg_query/include/optimizer/planmain.h +15 -14
  188. data/ext/pg_query/include/parser/analyze.h +19 -5
  189. data/ext/pg_query/include/parser/gram.h +947 -913
  190. data/ext/pg_query/include/parser/gramparse.h +1 -1
  191. data/ext/pg_query/include/parser/kwlist.h +463 -453
  192. data/ext/pg_query/include/parser/parse_agg.h +2 -7
  193. data/ext/pg_query/include/parser/parse_coerce.h +3 -1
  194. data/ext/pg_query/include/parser/parse_expr.h +2 -3
  195. data/ext/pg_query/include/parser/parse_func.h +2 -1
  196. data/ext/pg_query/include/parser/parse_node.h +21 -9
  197. data/ext/pg_query/include/parser/parse_oper.h +1 -3
  198. data/ext/pg_query/include/parser/parse_relation.h +5 -4
  199. data/ext/pg_query/include/parser/parse_type.h +1 -1
  200. data/ext/pg_query/include/parser/parser.h +31 -4
  201. data/ext/pg_query/include/parser/parsetree.h +1 -1
  202. data/ext/pg_query/include/parser/scanner.h +1 -1
  203. data/ext/pg_query/include/parser/scansup.h +2 -5
  204. data/ext/pg_query/include/partitioning/partdefs.h +1 -1
  205. data/ext/pg_query/include/pg_config.h +83 -41
  206. data/ext/pg_query/include/pg_config_manual.h +74 -21
  207. data/ext/pg_query/include/pg_getopt.h +6 -6
  208. data/ext/pg_query/include/pg_query.h +5 -4
  209. data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
  210. data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
  211. data/ext/pg_query/include/pg_query_fingerprint_defs.c +939 -113
  212. data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
  213. data/ext/pg_query/include/pg_query_outfuncs_defs.c +151 -26
  214. data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
  215. data/ext/pg_query/include/pg_query_readfuncs_defs.c +173 -30
  216. data/ext/pg_query/include/pg_trace.h +1 -1
  217. data/ext/pg_query/include/pgstat.h +449 -1238
  218. data/ext/pg_query/include/pgtime.h +14 -4
  219. data/ext/pg_query/include/pl_gram.h +126 -128
  220. data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
  221. data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
  222. data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
  223. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
  224. data/ext/pg_query/include/plerrcodes.h +9 -1
  225. data/ext/pg_query/include/plpgsql.h +52 -54
  226. data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
  227. data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
  228. data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
  229. data/ext/pg_query/include/port/atomics/fallback.h +1 -1
  230. data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
  231. data/ext/pg_query/include/port/atomics/generic.h +1 -1
  232. data/ext/pg_query/include/port/atomics.h +1 -1
  233. data/ext/pg_query/include/port/pg_bitutils.h +40 -10
  234. data/ext/pg_query/include/port/pg_bswap.h +1 -1
  235. data/ext/pg_query/include/port/pg_crc32c.h +1 -1
  236. data/ext/pg_query/include/port.h +71 -46
  237. data/ext/pg_query/include/portability/instr_time.h +1 -1
  238. data/ext/pg_query/include/postgres.h +60 -16
  239. data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
  240. data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
  241. data/ext/pg_query/include/postmaster/bgworker.h +2 -1
  242. data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
  243. data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
  244. data/ext/pg_query/include/postmaster/fork_process.h +1 -1
  245. data/ext/pg_query/include/postmaster/interrupt.h +1 -1
  246. data/ext/pg_query/include/postmaster/pgarch.h +42 -8
  247. data/ext/pg_query/include/postmaster/postmaster.h +18 -17
  248. data/ext/pg_query/include/postmaster/startup.h +39 -0
  249. data/ext/pg_query/include/postmaster/syslogger.h +15 -10
  250. data/ext/pg_query/include/postmaster/walwriter.h +3 -3
  251. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1419 -914
  252. data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
  253. data/ext/pg_query/include/regex/regex.h +18 -16
  254. data/ext/pg_query/include/replication/logicallauncher.h +3 -5
  255. data/ext/pg_query/include/replication/logicalproto.h +161 -17
  256. data/ext/pg_query/include/replication/logicalworker.h +1 -1
  257. data/ext/pg_query/include/replication/origin.h +7 -7
  258. data/ext/pg_query/include/replication/reorderbuffer.h +259 -42
  259. data/ext/pg_query/include/replication/slot.h +22 -11
  260. data/ext/pg_query/include/replication/syncrep.h +5 -5
  261. data/ext/pg_query/include/replication/walreceiver.h +145 -13
  262. data/ext/pg_query/include/replication/walsender.h +8 -8
  263. data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
  264. data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
  265. data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
  266. data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
  267. data/ext/pg_query/include/storage/backendid.h +3 -3
  268. data/ext/pg_query/include/storage/block.h +4 -10
  269. data/ext/pg_query/include/storage/buf.h +1 -1
  270. data/ext/pg_query/include/storage/bufmgr.h +19 -14
  271. data/ext/pg_query/include/storage/bufpage.h +6 -8
  272. data/ext/pg_query/include/storage/condition_variable.h +13 -2
  273. data/ext/pg_query/include/storage/dsm.h +4 -1
  274. data/ext/pg_query/include/storage/dsm_impl.h +3 -2
  275. data/ext/pg_query/include/storage/fd.h +33 -3
  276. data/ext/pg_query/include/storage/fileset.h +40 -0
  277. data/ext/pg_query/include/storage/ipc.h +4 -1
  278. data/ext/pg_query/include/storage/item.h +1 -1
  279. data/ext/pg_query/include/storage/itemid.h +1 -1
  280. data/ext/pg_query/include/storage/itemptr.h +3 -1
  281. data/ext/pg_query/include/storage/large_object.h +2 -2
  282. data/ext/pg_query/include/storage/latch.h +9 -13
  283. data/ext/pg_query/include/storage/lmgr.h +2 -1
  284. data/ext/pg_query/include/storage/lock.h +11 -8
  285. data/ext/pg_query/include/storage/lockdefs.h +2 -2
  286. data/ext/pg_query/include/storage/lwlock.h +5 -32
  287. data/ext/pg_query/include/storage/lwlocknames.h +0 -1
  288. data/ext/pg_query/include/storage/off.h +1 -1
  289. data/ext/pg_query/include/storage/pg_sema.h +1 -1
  290. data/ext/pg_query/include/storage/pg_shmem.h +9 -7
  291. data/ext/pg_query/include/storage/pmsignal.h +15 -4
  292. data/ext/pg_query/include/storage/predicate.h +4 -4
  293. data/ext/pg_query/include/storage/proc.h +173 -59
  294. data/ext/pg_query/include/storage/procarray.h +98 -0
  295. data/ext/pg_query/include/storage/proclist_types.h +1 -1
  296. data/ext/pg_query/include/storage/procsignal.h +3 -7
  297. data/ext/pg_query/include/storage/relfilenode.h +1 -1
  298. data/ext/pg_query/include/storage/s_lock.h +60 -21
  299. data/ext/pg_query/include/storage/sharedfileset.h +3 -11
  300. data/ext/pg_query/include/storage/shm_mq.h +5 -4
  301. data/ext/pg_query/include/storage/shm_toc.h +1 -1
  302. data/ext/pg_query/include/storage/shmem.h +1 -1
  303. data/ext/pg_query/include/storage/sinval.h +3 -3
  304. data/ext/pg_query/include/storage/sinvaladt.h +1 -1
  305. data/ext/pg_query/include/storage/smgr.h +10 -8
  306. data/ext/pg_query/include/storage/spin.h +2 -2
  307. data/ext/pg_query/include/storage/standby.h +13 -6
  308. data/ext/pg_query/include/storage/standbydefs.h +2 -2
  309. data/ext/pg_query/include/storage/sync.h +7 -3
  310. data/ext/pg_query/include/tcop/cmdtag.h +1 -1
  311. data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
  312. data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
  313. data/ext/pg_query/include/tcop/dest.h +1 -1
  314. data/ext/pg_query/include/tcop/fastpath.h +1 -2
  315. data/ext/pg_query/include/tcop/pquery.h +1 -1
  316. data/ext/pg_query/include/tcop/tcopprot.h +19 -11
  317. data/ext/pg_query/include/tcop/utility.h +7 -3
  318. data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
  319. data/ext/pg_query/include/utils/acl.h +24 -3
  320. data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
  321. data/ext/pg_query/include/utils/array.h +7 -2
  322. data/ext/pg_query/include/utils/backend_progress.h +44 -0
  323. data/ext/pg_query/include/utils/backend_status.h +321 -0
  324. data/ext/pg_query/include/utils/builtins.h +10 -11
  325. data/ext/pg_query/include/utils/bytea.h +3 -2
  326. data/ext/pg_query/include/utils/catcache.h +1 -1
  327. data/ext/pg_query/include/utils/date.h +1 -1
  328. data/ext/pg_query/include/utils/datetime.h +8 -7
  329. data/ext/pg_query/include/utils/datum.h +9 -1
  330. data/ext/pg_query/include/utils/dsa.h +1 -1
  331. data/ext/pg_query/include/utils/dynahash.h +4 -3
  332. data/ext/pg_query/include/utils/elog.h +52 -21
  333. data/ext/pg_query/include/utils/errcodes.h +2 -0
  334. data/ext/pg_query/include/utils/expandeddatum.h +1 -1
  335. data/ext/pg_query/include/utils/expandedrecord.h +1 -1
  336. data/ext/pg_query/include/utils/float.h +7 -7
  337. data/ext/pg_query/include/utils/fmgroids.h +1300 -696
  338. data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
  339. data/ext/pg_query/include/utils/fmgrtab.h +6 -5
  340. data/ext/pg_query/include/utils/guc.h +69 -43
  341. data/ext/pg_query/include/utils/guc_tables.h +23 -19
  342. data/ext/pg_query/include/utils/hsearch.h +15 -11
  343. data/ext/pg_query/include/utils/inval.h +4 -1
  344. data/ext/pg_query/include/utils/lsyscache.h +11 -1
  345. data/ext/pg_query/include/utils/memdebug.h +1 -1
  346. data/ext/pg_query/include/utils/memutils.h +8 -3
  347. data/ext/pg_query/include/utils/numeric.h +19 -5
  348. data/ext/pg_query/include/utils/palloc.h +25 -3
  349. data/ext/pg_query/include/utils/partcache.h +1 -1
  350. data/ext/pg_query/include/utils/pg_locale.h +17 -9
  351. data/ext/pg_query/include/utils/pg_lsn.h +1 -1
  352. data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
  353. data/ext/pg_query/include/utils/pidfile.h +1 -1
  354. data/ext/pg_query/include/utils/plancache.h +6 -5
  355. data/ext/pg_query/include/utils/portal.h +10 -12
  356. data/ext/pg_query/include/utils/ps_status.h +1 -1
  357. data/ext/pg_query/include/utils/queryenvironment.h +1 -1
  358. data/ext/pg_query/include/utils/queryjumble.h +88 -0
  359. data/ext/pg_query/include/utils/regproc.h +14 -3
  360. data/ext/pg_query/include/utils/rel.h +71 -19
  361. data/ext/pg_query/include/utils/relcache.h +8 -5
  362. data/ext/pg_query/include/utils/reltrigger.h +1 -1
  363. data/ext/pg_query/include/utils/resowner.h +1 -1
  364. data/ext/pg_query/include/utils/rls.h +2 -2
  365. data/ext/pg_query/include/utils/ruleutils.h +4 -1
  366. data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
  367. data/ext/pg_query/include/utils/snapmgr.h +34 -14
  368. data/ext/pg_query/include/utils/snapshot.h +14 -1
  369. data/ext/pg_query/include/utils/sortsupport.h +117 -2
  370. data/ext/pg_query/include/utils/syscache.h +6 -1
  371. data/ext/pg_query/include/utils/timeout.h +11 -4
  372. data/ext/pg_query/include/utils/timestamp.h +6 -5
  373. data/ext/pg_query/include/utils/tuplesort.h +25 -11
  374. data/ext/pg_query/include/utils/tuplestore.h +2 -2
  375. data/ext/pg_query/include/utils/typcache.h +24 -17
  376. data/ext/pg_query/include/utils/tzparser.h +1 -1
  377. data/ext/pg_query/include/utils/varlena.h +5 -3
  378. data/ext/pg_query/include/utils/wait_event.h +289 -0
  379. data/ext/pg_query/include/utils/xml.h +4 -4
  380. data/ext/pg_query/pg_query.pb-c.c +4302 -2304
  381. data/ext/pg_query/pg_query_deparse.c +1106 -373
  382. data/ext/pg_query/pg_query_fingerprint.c +30 -10
  383. data/ext/pg_query/pg_query_json_plpgsql.c +0 -25
  384. data/ext/pg_query/pg_query_normalize.c +1 -1
  385. data/ext/pg_query/pg_query_outfuncs_json.c +54 -16
  386. data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
  387. data/ext/pg_query/pg_query_parse.c +1 -1
  388. data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
  389. data/ext/pg_query/pg_query_scan.c +2 -1
  390. data/ext/pg_query/pg_query_split.c +3 -2
  391. data/ext/pg_query/src_backend_catalog_namespace.c +20 -9
  392. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  393. data/ext/pg_query/src_backend_commands_define.c +11 -1
  394. data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
  395. data/ext/pg_query/src_backend_nodes_copyfuncs.c +401 -76
  396. data/ext/pg_query/src_backend_nodes_equalfuncs.c +290 -46
  397. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  398. data/ext/pg_query/src_backend_nodes_list.c +74 -11
  399. data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
  400. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
  401. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  402. data/ext/pg_query/src_backend_parser_gram.c +33874 -31261
  403. data/ext/pg_query/src_backend_parser_parser.c +26 -7
  404. data/ext/pg_query/src_backend_parser_scan.c +172 -209
  405. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  406. data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
  407. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  408. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
  409. data/ext/pg_query/src_backend_tcop_postgres.c +62 -23
  410. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  411. data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
  412. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  413. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  414. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +71 -5
  415. data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
  416. data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
  417. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
  418. data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
  419. data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
  420. data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
  421. data/ext/pg_query/src_backend_utils_misc_guc.c +206 -45
  422. data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
  423. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
  424. data/ext/pg_query/src_common_encnames.c +1 -1
  425. data/ext/pg_query/src_common_hashfn.c +3 -3
  426. data/ext/pg_query/src_common_keywords.c +15 -2
  427. data/ext/pg_query/src_common_kwlist_d.h +517 -494
  428. data/ext/pg_query/src_common_kwlookup.c +1 -1
  429. data/ext/pg_query/src_common_pg_prng.c +152 -0
  430. data/ext/pg_query/src_common_psprintf.c +1 -1
  431. data/ext/pg_query/src_common_string.c +7 -1
  432. data/ext/pg_query/src_common_stringinfo.c +1 -1
  433. data/ext/pg_query/src_common_wchar.c +701 -109
  434. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +45 -20
  435. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
  436. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1233 -1259
  437. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  438. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  439. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  440. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
  441. data/ext/pg_query/src_port_pg_bitutils.c +41 -31
  442. data/ext/pg_query/src_port_pgsleep.c +1 -1
  443. data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
  444. data/ext/pg_query/src_port_qsort.c +12 -224
  445. data/ext/pg_query/src_port_snprintf.c +37 -13
  446. data/ext/pg_query/src_port_strerror.c +9 -19
  447. data/ext/pg_query/src_port_strnlen.c +1 -1
  448. data/lib/pg_query/filter_columns.rb +1 -1
  449. data/lib/pg_query/fingerprint.rb +5 -1
  450. data/lib/pg_query/node.rb +2 -2
  451. data/lib/pg_query/param_refs.rb +1 -1
  452. data/lib/pg_query/parse.rb +20 -8
  453. data/lib/pg_query/pg_query_pb.rb +1108 -942
  454. data/lib/pg_query/treewalker.rb +6 -0
  455. data/lib/pg_query/truncate.rb +1 -1
  456. data/lib/pg_query/version.rb +1 -1
  457. metadata +27 -17
  458. data/ext/pg_query/include/access/xloginsert.h +0 -64
  459. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  460. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  461. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  462. data/ext/pg_query/include/parser/parse_target.h +0 -46
  463. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  464. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
  465. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  466. data/ext/pg_query/src_port_erand48.c +0 -127
  467. data/ext/pg_query/src_port_random.c +0 -31
@@ -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
  }