pg_query 4.2.2 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (486) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +6 -8
  4. data/Rakefile +3 -3
  5. data/ext/pg_query/extconf.rb +1 -3
  6. data/ext/pg_query/include/access/amapi.h +3 -1
  7. data/ext/pg_query/include/access/attmap.h +5 -3
  8. data/ext/pg_query/include/access/attnum.h +1 -1
  9. data/ext/pg_query/include/access/clog.h +1 -1
  10. data/ext/pg_query/include/access/commit_ts.h +1 -1
  11. data/ext/pg_query/include/access/detoast.h +1 -1
  12. data/ext/pg_query/include/access/genam.h +7 -5
  13. data/ext/pg_query/include/access/gin.h +16 -3
  14. data/ext/pg_query/include/access/htup.h +1 -1
  15. data/ext/pg_query/include/access/htup_details.h +6 -2
  16. data/ext/pg_query/include/access/itup.h +61 -58
  17. data/ext/pg_query/include/access/parallel.h +2 -2
  18. data/ext/pg_query/include/access/printtup.h +1 -1
  19. data/ext/pg_query/include/access/relation.h +1 -1
  20. data/ext/pg_query/include/access/relscan.h +1 -1
  21. data/ext/pg_query/include/access/rmgrlist.h +2 -2
  22. data/ext/pg_query/include/access/sdir.h +12 -3
  23. data/ext/pg_query/include/access/skey.h +1 -1
  24. data/ext/pg_query/include/access/stratnum.h +1 -1
  25. data/ext/pg_query/include/access/sysattr.h +1 -1
  26. data/ext/pg_query/include/access/table.h +1 -1
  27. data/ext/pg_query/include/access/tableam.h +68 -45
  28. data/ext/pg_query/include/access/toast_compression.h +1 -1
  29. data/ext/pg_query/include/access/transam.h +1 -1
  30. data/ext/pg_query/include/access/tsmapi.h +82 -0
  31. data/ext/pg_query/include/access/tupconvert.h +5 -2
  32. data/ext/pg_query/include/access/tupdesc.h +2 -2
  33. data/ext/pg_query/include/access/tupmacs.h +58 -98
  34. data/ext/pg_query/include/access/twophase.h +2 -2
  35. data/ext/pg_query/include/access/xact.h +25 -18
  36. data/ext/pg_query/include/access/xlog.h +15 -16
  37. data/ext/pg_query/include/access/xlog_internal.h +100 -62
  38. data/ext/pg_query/include/access/xlogbackup.h +41 -0
  39. data/ext/pg_query/include/access/xlogdefs.h +6 -25
  40. data/ext/pg_query/include/access/xlogprefetcher.h +1 -1
  41. data/ext/pg_query/include/access/xlogreader.h +7 -6
  42. data/ext/pg_query/include/access/xlogrecord.h +17 -5
  43. data/ext/pg_query/include/access/xlogrecovery.h +4 -3
  44. data/ext/pg_query/include/archive/archive_module.h +59 -0
  45. data/ext/pg_query/include/c.h +144 -156
  46. data/ext/pg_query/include/catalog/catalog.h +4 -3
  47. data/ext/pg_query/include/catalog/catversion.h +6 -2
  48. data/ext/pg_query/include/catalog/dependency.h +5 -4
  49. data/ext/pg_query/include/catalog/genbki.h +7 -6
  50. data/ext/pg_query/include/catalog/index.h +4 -4
  51. data/ext/pg_query/include/catalog/indexing.h +1 -1
  52. data/ext/pg_query/include/catalog/namespace.h +2 -2
  53. data/ext/pg_query/include/catalog/objectaccess.h +10 -8
  54. data/ext/pg_query/include/catalog/objectaddress.h +3 -3
  55. data/ext/pg_query/include/catalog/pg_aggregate.h +1 -1
  56. data/ext/pg_query/include/catalog/pg_aggregate_d.h +1 -1
  57. data/ext/pg_query/include/catalog/pg_am.h +1 -1
  58. data/ext/pg_query/include/catalog/pg_am_d.h +1 -1
  59. data/ext/pg_query/include/catalog/pg_attribute.h +19 -17
  60. data/ext/pg_query/include/catalog/pg_attribute_d.h +19 -19
  61. data/ext/pg_query/include/catalog/pg_authid.h +1 -1
  62. data/ext/pg_query/include/catalog/pg_authid_d.h +3 -1
  63. data/ext/pg_query/include/catalog/pg_class.h +1 -1
  64. data/ext/pg_query/include/catalog/pg_class_d.h +1 -1
  65. data/ext/pg_query/include/catalog/pg_collation.h +3 -1
  66. data/ext/pg_query/include/catalog/pg_collation_d.h +4 -3
  67. data/ext/pg_query/include/catalog/pg_constraint.h +2 -2
  68. data/ext/pg_query/include/catalog/pg_constraint_d.h +1 -1
  69. data/ext/pg_query/include/catalog/pg_control.h +9 -1
  70. data/ext/pg_query/include/catalog/pg_conversion.h +2 -2
  71. data/ext/pg_query/include/catalog/pg_conversion_d.h +1 -1
  72. data/ext/pg_query/include/catalog/pg_database.h +124 -0
  73. data/ext/pg_query/include/catalog/pg_database_d.h +52 -0
  74. data/ext/pg_query/include/catalog/pg_depend.h +1 -1
  75. data/ext/pg_query/include/catalog/pg_depend_d.h +1 -1
  76. data/ext/pg_query/include/catalog/pg_event_trigger.h +1 -1
  77. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +1 -1
  78. data/ext/pg_query/include/catalog/pg_index.h +1 -1
  79. data/ext/pg_query/include/catalog/pg_index_d.h +1 -1
  80. data/ext/pg_query/include/catalog/pg_language.h +1 -1
  81. data/ext/pg_query/include/catalog/pg_language_d.h +1 -1
  82. data/ext/pg_query/include/catalog/pg_namespace.h +1 -1
  83. data/ext/pg_query/include/catalog/pg_namespace_d.h +1 -1
  84. data/ext/pg_query/include/catalog/pg_opclass.h +1 -1
  85. data/ext/pg_query/include/catalog/pg_opclass_d.h +1 -1
  86. data/ext/pg_query/include/catalog/pg_operator.h +1 -1
  87. data/ext/pg_query/include/catalog/pg_operator_d.h +1 -1
  88. data/ext/pg_query/include/catalog/pg_opfamily.h +3 -2
  89. data/ext/pg_query/include/catalog/pg_opfamily_d.h +4 -2
  90. data/ext/pg_query/include/catalog/pg_partitioned_table.h +1 -1
  91. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +1 -1
  92. data/ext/pg_query/include/catalog/pg_proc.h +1 -1
  93. data/ext/pg_query/include/catalog/pg_proc_d.h +1 -1
  94. data/ext/pg_query/include/catalog/pg_publication.h +2 -5
  95. data/ext/pg_query/include/catalog/pg_publication_d.h +1 -1
  96. data/ext/pg_query/include/catalog/pg_replication_origin.h +1 -1
  97. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +1 -1
  98. data/ext/pg_query/include/catalog/pg_statistic.h +1 -1
  99. data/ext/pg_query/include/catalog/pg_statistic_d.h +1 -1
  100. data/ext/pg_query/include/catalog/pg_statistic_ext.h +1 -1
  101. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +1 -1
  102. data/ext/pg_query/include/catalog/pg_transform.h +1 -1
  103. data/ext/pg_query/include/catalog/pg_transform_d.h +1 -1
  104. data/ext/pg_query/include/catalog/pg_trigger.h +1 -1
  105. data/ext/pg_query/include/catalog/pg_trigger_d.h +1 -1
  106. data/ext/pg_query/include/catalog/pg_ts_config.h +1 -1
  107. data/ext/pg_query/include/catalog/pg_ts_config_d.h +1 -1
  108. data/ext/pg_query/include/catalog/pg_ts_dict.h +1 -1
  109. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +1 -1
  110. data/ext/pg_query/include/catalog/pg_ts_parser.h +1 -1
  111. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +1 -1
  112. data/ext/pg_query/include/catalog/pg_ts_template.h +1 -1
  113. data/ext/pg_query/include/catalog/pg_ts_template_d.h +1 -1
  114. data/ext/pg_query/include/catalog/pg_type.h +1 -1
  115. data/ext/pg_query/include/catalog/pg_type_d.h +1 -1
  116. data/ext/pg_query/include/catalog/storage.h +6 -6
  117. data/ext/pg_query/include/commands/async.h +1 -1
  118. data/ext/pg_query/include/commands/dbcommands.h +2 -1
  119. data/ext/pg_query/include/commands/defrem.h +2 -1
  120. data/ext/pg_query/include/commands/event_trigger.h +1 -1
  121. data/ext/pg_query/include/commands/explain.h +3 -1
  122. data/ext/pg_query/include/commands/prepare.h +1 -1
  123. data/ext/pg_query/include/commands/tablespace.h +4 -4
  124. data/ext/pg_query/include/commands/trigger.h +15 -14
  125. data/ext/pg_query/include/commands/user.h +9 -3
  126. data/ext/pg_query/include/commands/vacuum.h +60 -14
  127. data/ext/pg_query/include/common/cryptohash.h +39 -0
  128. data/ext/pg_query/include/common/file_perm.h +1 -1
  129. data/ext/pg_query/include/common/hashfn.h +1 -1
  130. data/ext/pg_query/include/common/int.h +437 -0
  131. data/ext/pg_query/include/common/ip.h +4 -2
  132. data/ext/pg_query/include/common/keywords.h +1 -1
  133. data/ext/pg_query/include/common/kwlookup.h +2 -2
  134. data/ext/pg_query/include/common/pg_prng.h +3 -2
  135. data/ext/pg_query/include/common/relpath.h +20 -13
  136. data/ext/pg_query/include/common/scram-common.h +70 -0
  137. data/ext/pg_query/include/common/sha2.h +32 -0
  138. data/ext/pg_query/include/common/string.h +5 -3
  139. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +10 -10
  140. data/ext/pg_query/include/common/{unicode_combining_table.h → unicode_nonspacing_table.h} +31 -13
  141. data/ext/pg_query/include/copyfuncs.funcs.c +5013 -0
  142. data/ext/pg_query/include/copyfuncs.switch.c +938 -0
  143. data/ext/pg_query/include/datatype/timestamp.h +11 -4
  144. data/ext/pg_query/include/equalfuncs.funcs.c +3097 -0
  145. data/ext/pg_query/include/equalfuncs.switch.c +785 -0
  146. data/ext/pg_query/include/executor/execdesc.h +1 -1
  147. data/ext/pg_query/include/executor/executor.h +34 -17
  148. data/ext/pg_query/include/executor/functions.h +1 -1
  149. data/ext/pg_query/include/executor/instrument.h +1 -1
  150. data/ext/pg_query/include/executor/spi.h +2 -2
  151. data/ext/pg_query/include/executor/tablefunc.h +1 -1
  152. data/ext/pg_query/include/executor/tuptable.h +18 -11
  153. data/ext/pg_query/include/fmgr.h +21 -2
  154. data/ext/pg_query/include/foreign/fdwapi.h +294 -0
  155. data/ext/pg_query/include/funcapi.h +12 -12
  156. data/ext/pg_query/include/gram.h +1127 -0
  157. data/ext/pg_query/include/{parser/gramparse.h → gramparse.h} +4 -4
  158. data/ext/pg_query/include/jit/jit.h +2 -2
  159. data/ext/pg_query/include/kwlist_d.h +534 -510
  160. data/ext/pg_query/include/lib/dshash.h +4 -1
  161. data/ext/pg_query/include/lib/ilist.h +435 -22
  162. data/ext/pg_query/include/lib/pairingheap.h +1 -1
  163. data/ext/pg_query/include/lib/simplehash.h +9 -9
  164. data/ext/pg_query/include/lib/sort_template.h +1 -1
  165. data/ext/pg_query/include/lib/stringinfo.h +3 -3
  166. data/ext/pg_query/include/libpq/auth.h +8 -2
  167. data/ext/pg_query/include/libpq/crypt.h +1 -1
  168. data/ext/pg_query/include/libpq/hba.h +24 -17
  169. data/ext/pg_query/include/libpq/libpq-be.h +36 -25
  170. data/ext/pg_query/include/libpq/libpq.h +1 -1
  171. data/ext/pg_query/include/libpq/pqcomm.h +10 -41
  172. data/ext/pg_query/include/libpq/pqformat.h +2 -2
  173. data/ext/pg_query/include/libpq/pqsignal.h +22 -10
  174. data/ext/pg_query/include/libpq/sasl.h +136 -0
  175. data/ext/pg_query/include/libpq/scram.h +37 -0
  176. data/ext/pg_query/include/mb/pg_wchar.h +35 -18
  177. data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
  178. data/ext/pg_query/include/miscadmin.h +26 -14
  179. data/ext/pg_query/include/nodes/bitmapset.h +11 -7
  180. data/ext/pg_query/include/nodes/execnodes.h +83 -30
  181. data/ext/pg_query/include/nodes/extensible.h +5 -3
  182. data/ext/pg_query/include/nodes/lockoptions.h +1 -1
  183. data/ext/pg_query/include/nodes/makefuncs.h +14 -2
  184. data/ext/pg_query/include/nodes/memnodes.h +7 -4
  185. data/ext/pg_query/include/nodes/miscnodes.h +56 -0
  186. data/ext/pg_query/include/nodes/nodeFuncs.h +89 -29
  187. data/ext/pg_query/include/nodes/nodes.h +95 -510
  188. data/ext/pg_query/include/nodes/nodetags.h +471 -0
  189. data/ext/pg_query/include/nodes/params.h +3 -3
  190. data/ext/pg_query/include/nodes/parsenodes.h +377 -139
  191. data/ext/pg_query/include/nodes/pathnodes.h +1090 -440
  192. data/ext/pg_query/include/nodes/pg_list.h +30 -7
  193. data/ext/pg_query/include/nodes/plannodes.h +367 -124
  194. data/ext/pg_query/include/nodes/primnodes.h +670 -222
  195. data/ext/pg_query/include/nodes/print.h +1 -1
  196. data/ext/pg_query/include/{utils → nodes}/queryjumble.h +5 -7
  197. data/ext/pg_query/include/nodes/replnodes.h +111 -0
  198. data/ext/pg_query/include/nodes/supportnodes.h +346 -0
  199. data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
  200. data/ext/pg_query/include/nodes/value.h +12 -2
  201. data/ext/pg_query/include/optimizer/cost.h +6 -4
  202. data/ext/pg_query/include/optimizer/geqo.h +1 -1
  203. data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
  204. data/ext/pg_query/include/optimizer/optimizer.h +8 -8
  205. data/ext/pg_query/include/optimizer/paths.h +16 -7
  206. data/ext/pg_query/include/optimizer/planmain.h +3 -6
  207. data/ext/pg_query/include/parser/analyze.h +4 -3
  208. data/ext/pg_query/include/parser/kwlist.h +12 -1
  209. data/ext/pg_query/include/parser/parse_agg.h +4 -2
  210. data/ext/pg_query/include/parser/parse_coerce.h +3 -1
  211. data/ext/pg_query/include/parser/parse_expr.h +1 -1
  212. data/ext/pg_query/include/parser/parse_func.h +1 -1
  213. data/ext/pg_query/include/parser/parse_node.h +22 -4
  214. data/ext/pg_query/include/parser/parse_oper.h +3 -3
  215. data/ext/pg_query/include/parser/parse_relation.h +8 -3
  216. data/ext/pg_query/include/parser/parse_type.h +4 -3
  217. data/ext/pg_query/include/parser/parser.h +1 -1
  218. data/ext/pg_query/include/parser/parsetree.h +1 -1
  219. data/ext/pg_query/include/parser/scanner.h +2 -2
  220. data/ext/pg_query/include/parser/scansup.h +1 -1
  221. data/ext/pg_query/include/partitioning/partdefs.h +1 -1
  222. data/ext/pg_query/include/pg_config.h +23 -217
  223. data/ext/pg_query/include/pg_config_manual.h +8 -46
  224. data/ext/pg_query/include/pg_getopt.h +1 -1
  225. data/ext/pg_query/include/pg_query.h +27 -3
  226. data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
  227. data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
  228. data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
  229. data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
  230. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
  231. data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
  232. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
  233. data/ext/pg_query/include/pg_trace.h +1 -1
  234. data/ext/pg_query/include/pgstat.h +172 -93
  235. data/ext/pg_query/include/pgtime.h +3 -3
  236. data/ext/pg_query/include/pl_gram.h +64 -62
  237. data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
  238. data/ext/pg_query/include/pl_reserved_kwlist_d.h +1 -1
  239. data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -1
  240. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +48 -46
  241. data/ext/pg_query/include/plpgsql.h +17 -22
  242. data/ext/pg_query/include/port/atomics/arch-arm.h +3 -3
  243. data/ext/pg_query/include/port/atomics/arch-ppc.h +21 -21
  244. data/ext/pg_query/include/port/atomics/arch-x86.h +2 -2
  245. data/ext/pg_query/include/port/atomics/fallback.h +3 -3
  246. data/ext/pg_query/include/port/atomics/generic-gcc.h +1 -1
  247. data/ext/pg_query/include/port/atomics/generic.h +1 -1
  248. data/ext/pg_query/include/port/atomics.h +2 -7
  249. data/ext/pg_query/include/port/pg_bitutils.h +62 -25
  250. data/ext/pg_query/include/port/pg_bswap.h +1 -1
  251. data/ext/pg_query/include/port/pg_crc32c.h +1 -1
  252. data/ext/pg_query/include/port/simd.h +375 -0
  253. data/ext/pg_query/include/port.h +42 -75
  254. data/ext/pg_query/include/portability/instr_time.h +81 -140
  255. data/ext/pg_query/include/postgres.h +205 -434
  256. data/ext/pg_query/include/postgres_ext.h +0 -1
  257. data/ext/pg_query/include/postmaster/autovacuum.h +1 -4
  258. data/ext/pg_query/include/postmaster/auxprocess.h +1 -1
  259. data/ext/pg_query/include/postmaster/bgworker.h +2 -2
  260. data/ext/pg_query/include/postmaster/bgworker_internals.h +1 -1
  261. data/ext/pg_query/include/postmaster/bgwriter.h +2 -2
  262. data/ext/pg_query/include/postmaster/fork_process.h +1 -1
  263. data/ext/pg_query/include/postmaster/interrupt.h +1 -1
  264. data/ext/pg_query/include/postmaster/pgarch.h +1 -38
  265. data/ext/pg_query/include/postmaster/postmaster.h +5 -2
  266. data/ext/pg_query/include/postmaster/startup.h +3 -1
  267. data/ext/pg_query/include/postmaster/syslogger.h +2 -2
  268. data/ext/pg_query/include/postmaster/walwriter.h +3 -1
  269. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
  270. data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
  271. data/ext/pg_query/include/regex/regex.h +9 -6
  272. data/ext/pg_query/include/replication/logicallauncher.h +6 -1
  273. data/ext/pg_query/include/replication/logicalproto.h +30 -10
  274. data/ext/pg_query/include/replication/logicalworker.h +14 -1
  275. data/ext/pg_query/include/replication/origin.h +4 -4
  276. data/ext/pg_query/include/replication/reorderbuffer.h +113 -45
  277. data/ext/pg_query/include/replication/slot.h +25 -6
  278. data/ext/pg_query/include/replication/syncrep.h +2 -8
  279. data/ext/pg_query/include/replication/walreceiver.h +15 -9
  280. data/ext/pg_query/include/replication/walsender.h +13 -13
  281. data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
  282. data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -4
  283. data/ext/pg_query/include/rewrite/rewriteManip.h +11 -2
  284. data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
  285. data/ext/pg_query/include/src_backend_nodes_copyfuncs.funcs.c +5321 -0
  286. data/ext/pg_query/include/src_backend_nodes_equalfuncs.funcs.c +3354 -0
  287. data/ext/pg_query/include/storage/backendid.h +1 -1
  288. data/ext/pg_query/include/storage/block.h +24 -31
  289. data/ext/pg_query/include/storage/buf.h +1 -1
  290. data/ext/pg_query/include/storage/bufmgr.h +183 -87
  291. data/ext/pg_query/include/storage/bufpage.h +146 -93
  292. data/ext/pg_query/include/storage/condition_variable.h +2 -2
  293. data/ext/pg_query/include/storage/dsm.h +3 -6
  294. data/ext/pg_query/include/storage/dsm_impl.h +4 -1
  295. data/ext/pg_query/include/storage/fd.h +24 -20
  296. data/ext/pg_query/include/storage/fileset.h +1 -1
  297. data/ext/pg_query/include/storage/ipc.h +1 -1
  298. data/ext/pg_query/include/storage/item.h +1 -1
  299. data/ext/pg_query/include/storage/itemid.h +1 -1
  300. data/ext/pg_query/include/storage/itemptr.h +94 -57
  301. data/ext/pg_query/include/storage/large_object.h +1 -1
  302. data/ext/pg_query/include/storage/latch.h +9 -1
  303. data/ext/pg_query/include/storage/lmgr.h +6 -1
  304. data/ext/pg_query/include/storage/lock.h +21 -13
  305. data/ext/pg_query/include/storage/lockdefs.h +3 -3
  306. data/ext/pg_query/include/storage/lwlock.h +16 -2
  307. data/ext/pg_query/include/storage/off.h +1 -1
  308. data/ext/pg_query/include/storage/pg_sema.h +1 -1
  309. data/ext/pg_query/include/storage/pg_shmem.h +1 -1
  310. data/ext/pg_query/include/storage/pmsignal.h +1 -1
  311. data/ext/pg_query/include/storage/predicate.h +2 -2
  312. data/ext/pg_query/include/storage/proc.h +22 -17
  313. data/ext/pg_query/include/storage/procarray.h +3 -2
  314. data/ext/pg_query/include/storage/proclist_types.h +1 -1
  315. data/ext/pg_query/include/storage/procsignal.h +3 -1
  316. data/ext/pg_query/include/storage/relfilelocator.h +99 -0
  317. data/ext/pg_query/include/storage/s_lock.h +66 -309
  318. data/ext/pg_query/include/storage/sharedfileset.h +1 -1
  319. data/ext/pg_query/include/storage/shm_mq.h +1 -1
  320. data/ext/pg_query/include/storage/shm_toc.h +1 -1
  321. data/ext/pg_query/include/storage/shmem.h +1 -23
  322. data/ext/pg_query/include/storage/sinval.h +3 -3
  323. data/ext/pg_query/include/storage/sinvaladt.h +4 -2
  324. data/ext/pg_query/include/storage/smgr.h +12 -10
  325. data/ext/pg_query/include/storage/spin.h +1 -1
  326. data/ext/pg_query/include/storage/standby.h +9 -8
  327. data/ext/pg_query/include/storage/standbydefs.h +1 -1
  328. data/ext/pg_query/include/storage/sync.h +3 -3
  329. data/ext/pg_query/include/tcop/cmdtag.h +7 -2
  330. data/ext/pg_query/include/tcop/cmdtaglist.h +1 -1
  331. data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
  332. data/ext/pg_query/include/tcop/dest.h +1 -3
  333. data/ext/pg_query/include/tcop/fastpath.h +1 -1
  334. data/ext/pg_query/include/tcop/pquery.h +1 -1
  335. data/ext/pg_query/include/tcop/tcopprot.h +1 -4
  336. data/ext/pg_query/include/tcop/utility.h +1 -1
  337. data/ext/pg_query/include/tsearch/ts_cache.h +2 -4
  338. data/ext/pg_query/include/utils/acl.h +26 -81
  339. data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
  340. data/ext/pg_query/include/utils/array.h +19 -1
  341. data/ext/pg_query/include/utils/backend_progress.h +2 -1
  342. data/ext/pg_query/include/utils/backend_status.h +24 -3
  343. data/ext/pg_query/include/utils/builtins.h +14 -5
  344. data/ext/pg_query/include/utils/bytea.h +1 -1
  345. data/ext/pg_query/include/utils/catcache.h +1 -1
  346. data/ext/pg_query/include/utils/date.h +37 -9
  347. data/ext/pg_query/include/utils/datetime.h +41 -21
  348. data/ext/pg_query/include/utils/datum.h +1 -1
  349. data/ext/pg_query/include/utils/dsa.h +5 -1
  350. data/ext/pg_query/include/utils/elog.h +101 -26
  351. data/ext/pg_query/include/utils/expandeddatum.h +14 -3
  352. data/ext/pg_query/include/utils/expandedrecord.h +14 -4
  353. data/ext/pg_query/include/utils/float.h +7 -6
  354. data/ext/pg_query/include/utils/fmgroids.h +54 -1
  355. data/ext/pg_query/include/utils/fmgrprotos.h +45 -3
  356. data/ext/pg_query/include/utils/fmgrtab.h +1 -1
  357. data/ext/pg_query/include/utils/guc.h +55 -82
  358. data/ext/pg_query/include/utils/guc_hooks.h +163 -0
  359. data/ext/pg_query/include/utils/guc_tables.h +49 -3
  360. data/ext/pg_query/include/utils/hsearch.h +1 -1
  361. data/ext/pg_query/include/utils/inval.h +3 -3
  362. data/ext/pg_query/include/utils/logtape.h +77 -0
  363. data/ext/pg_query/include/utils/lsyscache.h +5 -1
  364. data/ext/pg_query/include/utils/memdebug.h +1 -1
  365. data/ext/pg_query/include/utils/memutils.h +5 -49
  366. data/ext/pg_query/include/utils/memutils_internal.h +136 -0
  367. data/ext/pg_query/include/utils/memutils_memorychunk.h +237 -0
  368. data/ext/pg_query/include/utils/numeric.h +20 -5
  369. data/ext/pg_query/include/utils/palloc.h +8 -1
  370. data/ext/pg_query/include/utils/partcache.h +3 -2
  371. data/ext/pg_query/include/utils/pg_locale.h +22 -14
  372. data/ext/pg_query/include/utils/pgstat_internal.h +37 -7
  373. data/ext/pg_query/include/utils/pidfile.h +1 -1
  374. data/ext/pg_query/include/utils/plancache.h +1 -1
  375. data/ext/pg_query/include/utils/portal.h +1 -1
  376. data/ext/pg_query/include/utils/probes.h +6 -6
  377. data/ext/pg_query/include/utils/ps_status.h +23 -1
  378. data/ext/pg_query/include/utils/queryenvironment.h +1 -1
  379. data/ext/pg_query/include/utils/regproc.h +3 -3
  380. data/ext/pg_query/include/utils/rel.h +60 -43
  381. data/ext/pg_query/include/utils/relcache.h +13 -8
  382. data/ext/pg_query/include/utils/reltrigger.h +1 -1
  383. data/ext/pg_query/include/utils/resowner.h +1 -1
  384. data/ext/pg_query/include/utils/ruleutils.h +6 -1
  385. data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
  386. data/ext/pg_query/include/utils/snapmgr.h +4 -2
  387. data/ext/pg_query/include/utils/snapshot.h +1 -1
  388. data/ext/pg_query/include/utils/sortsupport.h +2 -2
  389. data/ext/pg_query/include/utils/syscache.h +4 -1
  390. data/ext/pg_query/include/utils/timeout.h +1 -1
  391. data/ext/pg_query/include/utils/timestamp.h +41 -11
  392. data/ext/pg_query/include/utils/tuplesort.h +189 -35
  393. data/ext/pg_query/include/utils/tuplestore.h +1 -1
  394. data/ext/pg_query/include/utils/typcache.h +1 -1
  395. data/ext/pg_query/include/utils/varlena.h +13 -1
  396. data/ext/pg_query/include/utils/wait_event.h +9 -4
  397. data/ext/pg_query/include/utils/xml.h +15 -5
  398. data/ext/pg_query/include/varatt.h +358 -0
  399. data/ext/pg_query/pg_query.c +1 -1
  400. data/ext/pg_query/pg_query.pb-c.c +19755 -17757
  401. data/ext/pg_query/pg_query_fingerprint.c +8 -3
  402. data/ext/pg_query/pg_query_fingerprint.h +1 -1
  403. data/ext/pg_query/pg_query_internal.h +1 -1
  404. data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
  405. data/ext/pg_query/pg_query_normalize.c +1 -1
  406. data/ext/pg_query/pg_query_outfuncs_protobuf.c +2 -2
  407. data/ext/pg_query/pg_query_parse.c +46 -4
  408. data/ext/pg_query/pg_query_parse_plpgsql.c +1 -1
  409. data/ext/pg_query/pg_query_scan.c +1 -1
  410. data/ext/pg_query/pg_query_split.c +2 -2
  411. data/ext/pg_query/postgres_deparse.c +511 -109
  412. data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
  413. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
  414. data/ext/pg_query/src_backend_commands_define.c +1 -1
  415. data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
  416. data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
  417. data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
  418. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  419. data/ext/pg_query/src_backend_nodes_list.c +14 -2
  420. data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
  421. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
  422. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  423. data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
  424. data/ext/pg_query/src_backend_parser_parser.c +28 -2
  425. data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
  426. data/ext/pg_query/src_backend_parser_scansup.c +1 -1
  427. data/ext/pg_query/src_backend_postmaster_postmaster.c +129 -110
  428. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  429. data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
  430. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
  431. data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
  432. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  433. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  434. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  435. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
  436. data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
  437. data/ext/pg_query/src_backend_utils_error_elog.c +354 -97
  438. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
  439. data/ext/pg_query/src_backend_utils_init_globals.c +5 -2
  440. data/ext/pg_query/src_backend_utils_mb_mbutils.c +13 -4
  441. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +494 -0
  442. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  443. data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
  444. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  445. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
  446. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  447. data/ext/pg_query/src_common_encnames.c +4 -1
  448. data/ext/pg_query/src_common_hashfn.c +1 -1
  449. data/ext/pg_query/src_common_keywords.c +1 -1
  450. data/ext/pg_query/src_common_kwlist_d.h +534 -510
  451. data/ext/pg_query/src_common_kwlookup.c +1 -1
  452. data/ext/pg_query/src_common_psprintf.c +1 -1
  453. data/ext/pg_query/src_common_stringinfo.c +4 -4
  454. data/ext/pg_query/src_common_wchar.c +9 -8
  455. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
  456. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
  457. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
  458. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  459. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  460. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +1 -1
  461. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
  462. data/ext/pg_query/src_port_pg_bitutils.c +1 -1
  463. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  464. data/ext/pg_query/src_port_snprintf.c +3 -7
  465. data/ext/pg_query/src_port_strerror.c +1 -1
  466. data/ext/pg_query/src_port_strnlen.c +1 -1
  467. data/lib/pg_query/pg_query_pb.rb +166 -3191
  468. data/lib/pg_query/treewalker.rb +7 -2
  469. data/lib/pg_query/version.rb +1 -1
  470. metadata +43 -24
  471. data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
  472. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
  473. data/ext/pg_query/include/commands/variable.h +0 -38
  474. data/ext/pg_query/include/getaddrinfo.h +0 -162
  475. data/ext/pg_query/include/parser/gram.h +0 -1101
  476. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  477. data/ext/pg_query/include/utils/dynahash.h +0 -20
  478. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  479. data/ext/pg_query/include/utils/rls.h +0 -50
  480. data/ext/pg_query/include/utils/tzparser.h +0 -39
  481. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
  482. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
  483. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
  484. data/ext/pg_query/src_common_pg_prng.c +0 -152
  485. data/ext/pg_query/src_common_string.c +0 -92
  486. data/ext/pg_query/src_port_pgsleep.c +0 -69
@@ -222,36 +222,37 @@
222
222
  K_PG_EXCEPTION_CONTEXT = 354,
223
223
  K_PG_EXCEPTION_DETAIL = 355,
224
224
  K_PG_EXCEPTION_HINT = 356,
225
- K_PRINT_STRICT_PARAMS = 357,
226
- K_PRIOR = 358,
227
- K_QUERY = 359,
228
- K_RAISE = 360,
229
- K_RELATIVE = 361,
230
- K_RETURN = 362,
231
- K_RETURNED_SQLSTATE = 363,
232
- K_REVERSE = 364,
233
- K_ROLLBACK = 365,
234
- K_ROW_COUNT = 366,
235
- K_ROWTYPE = 367,
236
- K_SCHEMA = 368,
237
- K_SCHEMA_NAME = 369,
238
- K_SCROLL = 370,
239
- K_SLICE = 371,
240
- K_SQLSTATE = 372,
241
- K_STACKED = 373,
242
- K_STRICT = 374,
243
- K_TABLE = 375,
244
- K_TABLE_NAME = 376,
245
- K_THEN = 377,
246
- K_TO = 378,
247
- K_TYPE = 379,
248
- K_USE_COLUMN = 380,
249
- K_USE_VARIABLE = 381,
250
- K_USING = 382,
251
- K_VARIABLE_CONFLICT = 383,
252
- K_WARNING = 384,
253
- K_WHEN = 385,
254
- K_WHILE = 386
225
+ K_PG_ROUTINE_OID = 357,
226
+ K_PRINT_STRICT_PARAMS = 358,
227
+ K_PRIOR = 359,
228
+ K_QUERY = 360,
229
+ K_RAISE = 361,
230
+ K_RELATIVE = 362,
231
+ K_RETURN = 363,
232
+ K_RETURNED_SQLSTATE = 364,
233
+ K_REVERSE = 365,
234
+ K_ROLLBACK = 366,
235
+ K_ROW_COUNT = 367,
236
+ K_ROWTYPE = 368,
237
+ K_SCHEMA = 369,
238
+ K_SCHEMA_NAME = 370,
239
+ K_SCROLL = 371,
240
+ K_SLICE = 372,
241
+ K_SQLSTATE = 373,
242
+ K_STACKED = 374,
243
+ K_STRICT = 375,
244
+ K_TABLE = 376,
245
+ K_TABLE_NAME = 377,
246
+ K_THEN = 378,
247
+ K_TO = 379,
248
+ K_TYPE = 380,
249
+ K_USE_COLUMN = 381,
250
+ K_USE_VARIABLE = 382,
251
+ K_USING = 383,
252
+ K_VARIABLE_CONFLICT = 384,
253
+ K_WARNING = 385,
254
+ K_WHEN = 386,
255
+ K_WHILE = 387
255
256
  };
256
257
  #endif
257
258
  /* Tokens. */
@@ -354,36 +355,37 @@
354
355
  #define K_PG_EXCEPTION_CONTEXT 354
355
356
  #define K_PG_EXCEPTION_DETAIL 355
356
357
  #define K_PG_EXCEPTION_HINT 356
357
- #define K_PRINT_STRICT_PARAMS 357
358
- #define K_PRIOR 358
359
- #define K_QUERY 359
360
- #define K_RAISE 360
361
- #define K_RELATIVE 361
362
- #define K_RETURN 362
363
- #define K_RETURNED_SQLSTATE 363
364
- #define K_REVERSE 364
365
- #define K_ROLLBACK 365
366
- #define K_ROW_COUNT 366
367
- #define K_ROWTYPE 367
368
- #define K_SCHEMA 368
369
- #define K_SCHEMA_NAME 369
370
- #define K_SCROLL 370
371
- #define K_SLICE 371
372
- #define K_SQLSTATE 372
373
- #define K_STACKED 373
374
- #define K_STRICT 374
375
- #define K_TABLE 375
376
- #define K_TABLE_NAME 376
377
- #define K_THEN 377
378
- #define K_TO 378
379
- #define K_TYPE 379
380
- #define K_USE_COLUMN 380
381
- #define K_USE_VARIABLE 381
382
- #define K_USING 382
383
- #define K_VARIABLE_CONFLICT 383
384
- #define K_WARNING 384
385
- #define K_WHEN 385
386
- #define K_WHILE 386
358
+ #define K_PG_ROUTINE_OID 357
359
+ #define K_PRINT_STRICT_PARAMS 358
360
+ #define K_PRIOR 359
361
+ #define K_QUERY 360
362
+ #define K_RAISE 361
363
+ #define K_RELATIVE 362
364
+ #define K_RETURN 363
365
+ #define K_RETURNED_SQLSTATE 364
366
+ #define K_REVERSE 365
367
+ #define K_ROLLBACK 366
368
+ #define K_ROW_COUNT 367
369
+ #define K_ROWTYPE 368
370
+ #define K_SCHEMA 369
371
+ #define K_SCHEMA_NAME 370
372
+ #define K_SCROLL 371
373
+ #define K_SLICE 372
374
+ #define K_SQLSTATE 373
375
+ #define K_STACKED 374
376
+ #define K_STRICT 375
377
+ #define K_TABLE 376
378
+ #define K_TABLE_NAME 377
379
+ #define K_THEN 378
380
+ #define K_TO 379
381
+ #define K_TYPE 380
382
+ #define K_USE_COLUMN 381
383
+ #define K_USE_VARIABLE 382
384
+ #define K_USING 383
385
+ #define K_VARIABLE_CONFLICT 384
386
+ #define K_WARNING 385
387
+ #define K_WHEN 386
388
+ #define K_WHILE 387
387
389
 
388
390
 
389
391
 
@@ -395,7 +397,7 @@
395
397
  *
396
398
  * pl_gram.y - Parser for the PL/pgSQL procedural language
397
399
  *
398
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
400
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
399
401
  * Portions Copyright (c) 1994, Regents of the University of California
400
402
  *
401
403
  *
@@ -431,10 +433,7 @@
431
433
  /*
432
434
  * Bison doesn't allocate anything that needs to live across parser calls,
433
435
  * so we can easily have it use palloc instead of malloc. This prevents
434
- * memory leaks if we error out during parsing. Note this only works with
435
- * bison >= 2.0. However, in bison 1.875 the default is to use alloca()
436
- * if possible, so there's not really much problem anyhow, at least if
437
- * you're building with gcc.
436
+ * memory leaks if we error out during parsing.
438
437
  */
439
438
  #define YYMALLOC palloc
440
439
  #define YYFREE pfree
@@ -524,7 +523,7 @@ static void check_raise_parameters(PLpgSQL_stmt_raise *stmt);
524
523
 
525
524
  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
526
525
  typedef union YYSTYPE
527
- #line 120 "pl_gram.y"
526
+ #line 117 "pl_gram.y"
528
527
  {
529
528
  core_YYSTYPE core_yystype;
530
529
  /* these fields must match core_YYSTYPE: */
@@ -576,7 +575,7 @@ typedef union YYSTYPE
576
575
  PLpgSQL_case_when *casewhen;
577
576
  }
578
577
  /* Line 193 of yacc.c. */
579
- #line 531 "pl_gram.c"
578
+ #line 530 "pl_gram.c"
580
579
  YYSTYPE;
581
580
  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
582
581
  # define YYSTYPE_IS_DECLARED 1
@@ -601,7 +600,7 @@ typedef struct YYLTYPE
601
600
 
602
601
 
603
602
  /* Line 216 of yacc.c. */
604
- #line 556 "pl_gram.c"
603
+ #line 555 "pl_gram.c"
605
604
 
606
605
  #ifdef short
607
606
  # undef short
@@ -818,20 +817,20 @@ union yyalloc
818
817
  /* YYFINAL -- State number of the termination state. */
819
818
  #define YYFINAL 3
820
819
  /* YYLAST -- Last index in YYTABLE. */
821
- #define YYLAST 1382
820
+ #define YYLAST 1335
822
821
 
823
822
  /* YYNTOKENS -- Number of terminals. */
824
- #define YYNTOKENS 138
823
+ #define YYNTOKENS 139
825
824
  /* YYNNTS -- Number of nonterminals. */
826
825
  #define YYNNTS 87
827
826
  /* YYNRULES -- Number of rules. */
828
- #define YYNRULES 252
827
+ #define YYNRULES 253
829
828
  /* YYNRULES -- Number of states. */
830
- #define YYNSTATES 333
829
+ #define YYNSTATES 334
831
830
 
832
831
  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
833
832
  #define YYUNDEFTOK 2
834
- #define YYMAXUTOK 386
833
+ #define YYMAXUTOK 387
835
834
 
836
835
  #define YYTRANSLATE(YYX) \
837
836
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -842,10 +841,10 @@ static const yytype_uint8 yytranslate[] =
842
841
  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
843
842
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
844
843
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
845
- 2, 2, 2, 2, 2, 132, 2, 2, 2, 2,
846
- 134, 135, 2, 2, 136, 2, 2, 2, 2, 2,
847
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 133,
848
- 2, 137, 2, 2, 2, 2, 2, 2, 2, 2,
844
+ 2, 2, 2, 2, 2, 133, 2, 2, 2, 2,
845
+ 135, 136, 2, 2, 137, 2, 2, 2, 2, 2,
846
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 134,
847
+ 2, 138, 2, 2, 2, 2, 2, 2, 2, 2,
849
848
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
850
849
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
851
850
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -877,7 +876,7 @@ static const yytype_uint8 yytranslate[] =
877
876
  95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
878
877
  105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
879
878
  115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
880
- 125, 126, 127, 128, 129, 130, 131
879
+ 125, 126, 127, 128, 129, 130, 131, 132
881
880
  };
882
881
 
883
882
  #if YYDEBUG
@@ -910,57 +909,57 @@ static const yytype_uint16 yyprhs[] =
910
909
  544, 546, 548, 550, 552, 554, 556, 558, 560, 562,
911
910
  564, 566, 568, 570, 572, 574, 576, 578, 580, 582,
912
911
  584, 586, 588, 590, 592, 594, 596, 598, 600, 602,
913
- 604, 606, 608
912
+ 604, 606, 608, 610
914
913
  };
915
914
 
916
915
  /* YYRHS -- A `-1'-separated list of the rules' RHS. */
917
916
  static const yytype_int16 yyrhs[] =
918
917
  {
919
- 139, 0, -1, 140, 144, 143, -1, -1, 140, 141,
920
- -1, 132, 94, 57, -1, 132, 102, 142, -1, 132,
921
- 128, 62, -1, 132, 128, 126, -1, 132, 128, 125,
922
- -1, 22, -1, 224, -1, -1, 133, -1, 145, 34,
923
- 166, 210, 60, 221, -1, 219, -1, 219, 146, -1,
924
- 219, 146, 147, -1, 52, -1, 147, 148, -1, 148,
925
- -1, 149, -1, 52, -1, 25, 223, 26, -1, 158,
926
- 159, 160, 161, 162, 163, -1, 158, 28, 68, 157,
927
- 133, -1, -1, 158, 151, 49, 150, 153, 156, 152,
928
- -1, -1, 89, 115, -1, 115, -1, -1, -1, 134,
929
- 154, 135, -1, 155, -1, 154, 136, 155, -1, 158,
930
- 160, -1, 80, -1, 68, -1, 22, -1, 224, -1,
931
- 23, -1, 22, -1, 224, -1, -1, 44, -1, -1,
932
- -1, 40, 22, -1, 40, 224, -1, 40, 23, -1,
933
- -1, 90, 92, -1, 133, -1, 164, -1, 165, -1,
934
- 53, -1, 137, -1, 15, -1, -1, 166, 167, -1,
935
- 144, 133, -1, 170, -1, 177, -1, 180, -1, 185,
936
- -1, 186, -1, 187, -1, 190, -1, 192, -1, 194,
937
- -1, 195, -1, 196, -1, 198, -1, 199, -1, 168,
938
- -1, 169, -1, 171, -1, 200, -1, 201, -1, 202,
939
- -1, 204, -1, 205, -1, 206, -1, 207, -1, 96,
940
- -1, 36, -1, 56, -1, 24, -1, 72, 172, 55,
941
- 173, 133, -1, -1, 48, -1, 118, -1, 173, 136,
942
- 174, -1, 174, -1, 176, 165, 175, -1, -1, 24,
943
- -1, 22, -1, 23, -1, 74, 217, 166, 178, 179,
944
- 60, 74, 133, -1, -1, 178, 59, 217, 166, -1,
945
- -1, 58, 166, -1, 37, 181, 182, 184, 60, 37,
946
- 133, -1, -1, 182, 183, -1, 183, -1, 130, 217,
947
- 166, -1, -1, 58, 166, -1, 220, 83, 197, -1,
948
- 220, 131, 218, 197, -1, 220, 68, 188, 197, -1,
949
- 189, 76, -1, 24, -1, 22, -1, 23, -1, 220,
950
- 69, 189, 191, 76, 31, 218, 197, -1, -1, 116,
951
- 11, -1, 193, 221, 222, -1, 65, -1, 47, -1,
952
- 107, -1, 105, -1, 32, -1, 166, 60, 83, 221,
953
- 133, -1, 75, -1, 78, -1, 84, -1, 22, -1,
954
- 23, -1, 64, -1, 93, 209, -1, 66, 203, 209,
955
- 79, -1, 87, 203, 209, 133, -1, -1, 39, 209,
956
- 133, -1, 92, 133, -1, 43, 208, 133, -1, 110,
957
- 208, 133, -1, 30, 38, -1, 30, 89, 38, -1,
918
+ 140, 0, -1, 141, 145, 144, -1, -1, 141, 142,
919
+ -1, 133, 94, 57, -1, 133, 103, 143, -1, 133,
920
+ 129, 62, -1, 133, 129, 127, -1, 133, 129, 126,
921
+ -1, 22, -1, 225, -1, -1, 134, -1, 146, 34,
922
+ 167, 211, 60, 222, -1, 220, -1, 220, 147, -1,
923
+ 220, 147, 148, -1, 52, -1, 148, 149, -1, 149,
924
+ -1, 150, -1, 52, -1, 25, 224, 26, -1, 159,
925
+ 160, 161, 162, 163, 164, -1, 159, 28, 68, 158,
926
+ 134, -1, -1, 159, 152, 49, 151, 154, 157, 153,
927
+ -1, -1, 89, 116, -1, 116, -1, -1, -1, 135,
928
+ 155, 136, -1, 156, -1, 155, 137, 156, -1, 159,
929
+ 161, -1, 80, -1, 68, -1, 22, -1, 225, -1,
930
+ 23, -1, 22, -1, 225, -1, -1, 44, -1, -1,
931
+ -1, 40, 22, -1, 40, 225, -1, 40, 23, -1,
932
+ -1, 90, 92, -1, 134, -1, 165, -1, 166, -1,
933
+ 53, -1, 138, -1, 15, -1, -1, 167, 168, -1,
934
+ 145, 134, -1, 171, -1, 178, -1, 181, -1, 186,
935
+ -1, 187, -1, 188, -1, 191, -1, 193, -1, 195,
936
+ -1, 196, -1, 197, -1, 199, -1, 200, -1, 169,
937
+ -1, 170, -1, 172, -1, 201, -1, 202, -1, 203,
938
+ -1, 205, -1, 206, -1, 207, -1, 208, -1, 96,
939
+ -1, 36, -1, 56, -1, 24, -1, 72, 173, 55,
940
+ 174, 134, -1, -1, 48, -1, 119, -1, 174, 137,
941
+ 175, -1, 175, -1, 177, 166, 176, -1, -1, 24,
942
+ -1, 22, -1, 23, -1, 74, 218, 167, 179, 180,
943
+ 60, 74, 134, -1, -1, 179, 59, 218, 167, -1,
944
+ -1, 58, 167, -1, 37, 182, 183, 185, 60, 37,
945
+ 134, -1, -1, 183, 184, -1, 184, -1, 131, 218,
946
+ 167, -1, -1, 58, 167, -1, 221, 83, 198, -1,
947
+ 221, 132, 219, 198, -1, 221, 68, 189, 198, -1,
948
+ 190, 76, -1, 24, -1, 22, -1, 23, -1, 221,
949
+ 69, 190, 192, 76, 31, 219, 198, -1, -1, 117,
950
+ 11, -1, 194, 222, 223, -1, 65, -1, 47, -1,
951
+ 108, -1, 106, -1, 32, -1, 167, 60, 83, 222,
952
+ 134, -1, 75, -1, 78, -1, 84, -1, 22, -1,
953
+ 23, -1, 64, -1, 93, 210, -1, 66, 204, 210,
954
+ 79, -1, 87, 204, 210, 134, -1, -1, 39, 210,
955
+ 134, -1, 92, 134, -1, 43, 209, 134, -1, 111,
956
+ 209, 134, -1, 30, 38, -1, 30, 89, 38, -1,
958
957
  -1, 24, -1, 22, -1, 23, -1, -1, -1, 63,
959
- 211, 212, -1, 212, 213, -1, 213, -1, 130, 214,
960
- 122, 166, -1, 214, 95, 215, -1, 215, -1, 223,
961
- -1, -1, -1, -1, -1, 25, 223, 26, -1, -1,
962
- 25, 223, 26, -1, -1, 223, -1, 133, -1, 130,
963
- 216, -1, 22, -1, 224, -1, 24, -1, 27, -1,
958
+ 212, 213, -1, 213, 214, -1, 214, -1, 131, 215,
959
+ 123, 167, -1, 215, 95, 216, -1, 216, -1, 224,
960
+ -1, -1, -1, -1, -1, 25, 224, 26, -1, -1,
961
+ 25, 224, 26, -1, -1, 224, -1, 134, -1, 131,
962
+ 217, -1, 22, -1, 225, -1, 24, -1, 27, -1,
964
963
  28, -1, 30, -1, 31, -1, 32, -1, 33, -1,
965
964
  36, -1, 38, -1, 39, -1, 40, -1, 41, -1,
966
965
  42, -1, 43, -1, 44, -1, 45, -1, 46, -1,
@@ -975,39 +974,40 @@ static const yytype_int16 yyrhs[] =
975
974
  101, -1, 102, -1, 103, -1, 104, -1, 105, -1,
976
975
  106, -1, 107, -1, 108, -1, 109, -1, 110, -1,
977
976
  111, -1, 112, -1, 113, -1, 114, -1, 115, -1,
978
- 116, -1, 117, -1, 118, -1, 120, -1, 121, -1,
979
- 124, -1, 125, -1, 126, -1, 128, -1, 129, -1
977
+ 116, -1, 117, -1, 118, -1, 119, -1, 121, -1,
978
+ 122, -1, 125, -1, 126, -1, 127, -1, 129, -1,
979
+ 130, -1
980
980
  };
981
981
 
982
982
  /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
983
983
  static const yytype_uint16 yyrline[] =
984
984
  {
985
- 0, 362, 362, 368, 369, 372, 376, 385, 389, 393,
986
- 399, 403, 408, 409, 412, 435, 443, 450, 459, 471,
987
- 472, 475, 476, 480, 493, 531, 537, 536, 590, 593,
988
- 597, 604, 610, 613, 644, 648, 654, 662, 663, 665,
989
- 680, 695, 723, 751, 782, 783, 788, 799, 800, 805,
990
- 810, 817, 818, 822, 824, 830, 831, 839, 840, 844,
991
- 845, 855, 857, 859, 861, 863, 865, 867, 869, 871,
992
- 873, 875, 877, 879, 881, 883, 885, 887, 889, 891,
993
- 893, 895, 897, 899, 901, 905, 941, 959, 980, 1019,
994
- 1082, 1085, 1089, 1095, 1099, 1105, 1118, 1162, 1180, 1185,
995
- 1192, 1210, 1213, 1227, 1230, 1236, 1243, 1257, 1261, 1267,
996
- 1279, 1282, 1297, 1315, 1334, 1368, 1627, 1653, 1667, 1674,
997
- 1713, 1716, 1722, 1775, 1779, 1785, 1811, 1956, 1980, 1998,
998
- 2002, 2006, 2010, 2021, 2034, 2098, 2176, 2206, 2219, 2224,
999
- 2238, 2245, 2259, 2274, 2275, 2276, 2280, 2302, 2307, 2315,
1000
- 2317, 2316, 2358, 2362, 2368, 2381, 2390, 2396, 2433, 2437,
1001
- 2441, 2445, 2449, 2457, 2461, 2469, 2472, 2479, 2481, 2488,
1002
- 2492, 2496, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512,
1003
- 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522,
1004
- 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532,
1005
- 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542,
1006
- 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552,
1007
- 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562,
1008
- 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572,
1009
- 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
1010
- 2583, 2584, 2585
985
+ 0, 360, 360, 366, 367, 370, 374, 383, 387, 391,
986
+ 397, 401, 406, 407, 410, 433, 441, 448, 457, 469,
987
+ 470, 473, 474, 478, 491, 529, 535, 534, 561, 564,
988
+ 568, 575, 581, 584, 615, 619, 625, 633, 634, 636,
989
+ 651, 666, 694, 722, 753, 754, 759, 770, 771, 776,
990
+ 781, 788, 789, 793, 795, 801, 802, 810, 811, 815,
991
+ 816, 826, 828, 830, 832, 834, 836, 838, 840, 842,
992
+ 844, 846, 848, 850, 852, 854, 856, 858, 860, 862,
993
+ 864, 866, 868, 870, 872, 876, 912, 930, 951, 990,
994
+ 1054, 1057, 1061, 1067, 1071, 1077, 1090, 1137, 1155, 1160,
995
+ 1167, 1185, 1188, 1202, 1205, 1211, 1218, 1232, 1236, 1242,
996
+ 1254, 1257, 1272, 1290, 1309, 1343, 1602, 1628, 1642, 1649,
997
+ 1688, 1691, 1697, 1750, 1754, 1760, 1786, 1931, 1955, 1973,
998
+ 1977, 1981, 1985, 1996, 2009, 2073, 2151, 2181, 2194, 2199,
999
+ 2213, 2220, 2234, 2249, 2250, 2251, 2255, 2277, 2282, 2290,
1000
+ 2292, 2291, 2333, 2337, 2343, 2356, 2365, 2371, 2408, 2412,
1001
+ 2416, 2420, 2424, 2432, 2436, 2444, 2447, 2454, 2456, 2463,
1002
+ 2467, 2471, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487,
1003
+ 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497,
1004
+ 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507,
1005
+ 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517,
1006
+ 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527,
1007
+ 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537,
1008
+ 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547,
1009
+ 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557,
1010
+ 2558, 2559, 2560, 2561
1011
1011
  };
1012
1012
  #endif
1013
1013
 
@@ -1034,10 +1034,10 @@ static const char *const yytname[] =
1034
1034
  "K_NEXT", "K_NO", "K_NOT", "K_NOTICE", "K_NULL", "K_OPEN", "K_OPTION",
1035
1035
  "K_OR", "K_PERFORM", "K_PG_CONTEXT", "K_PG_DATATYPE_NAME",
1036
1036
  "K_PG_EXCEPTION_CONTEXT", "K_PG_EXCEPTION_DETAIL", "K_PG_EXCEPTION_HINT",
1037
- "K_PRINT_STRICT_PARAMS", "K_PRIOR", "K_QUERY", "K_RAISE", "K_RELATIVE",
1038
- "K_RETURN", "K_RETURNED_SQLSTATE", "K_REVERSE", "K_ROLLBACK",
1039
- "K_ROW_COUNT", "K_ROWTYPE", "K_SCHEMA", "K_SCHEMA_NAME", "K_SCROLL",
1040
- "K_SLICE", "K_SQLSTATE", "K_STACKED", "K_STRICT", "K_TABLE",
1037
+ "K_PG_ROUTINE_OID", "K_PRINT_STRICT_PARAMS", "K_PRIOR", "K_QUERY",
1038
+ "K_RAISE", "K_RELATIVE", "K_RETURN", "K_RETURNED_SQLSTATE", "K_REVERSE",
1039
+ "K_ROLLBACK", "K_ROW_COUNT", "K_ROWTYPE", "K_SCHEMA", "K_SCHEMA_NAME",
1040
+ "K_SCROLL", "K_SLICE", "K_SQLSTATE", "K_STACKED", "K_STRICT", "K_TABLE",
1041
1041
  "K_TABLE_NAME", "K_THEN", "K_TO", "K_TYPE", "K_USE_COLUMN",
1042
1042
  "K_USE_VARIABLE", "K_USING", "K_VARIABLE_CONFLICT", "K_WARNING",
1043
1043
  "K_WHEN", "K_WHILE", "'#'", "';'", "'('", "')'", "','", "'='", "$accept",
@@ -1084,39 +1084,39 @@ static const yytype_uint16 yytoknum[] =
1084
1084
  355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1085
1085
  365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1086
1086
  375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1087
- 385, 386, 35, 59, 40, 41, 44, 61
1087
+ 385, 386, 387, 35, 59, 40, 41, 44, 61
1088
1088
  };
1089
1089
  # endif
1090
1090
 
1091
1091
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1092
1092
  static const yytype_uint8 yyr1[] =
1093
1093
  {
1094
- 0, 138, 139, 140, 140, 141, 141, 141, 141, 141,
1095
- 142, 142, 143, 143, 144, 145, 145, 145, 146, 147,
1096
- 147, 148, 148, 148, 149, 149, 150, 149, 151, 151,
1097
- 151, 152, 153, 153, 154, 154, 155, 156, 156, 157,
1098
- 157, 157, 158, 158, 159, 159, 160, 161, 161, 161,
1099
- 161, 162, 162, 163, 163, 164, 164, 165, 165, 166,
1100
- 166, 167, 167, 167, 167, 167, 167, 167, 167, 167,
1101
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
1102
- 167, 167, 167, 167, 167, 168, 169, 169, 170, 171,
1103
- 172, 172, 172, 173, 173, 174, 175, 176, 176, 176,
1104
- 177, 178, 178, 179, 179, 180, 181, 182, 182, 183,
1105
- 184, 184, 185, 186, 187, 188, 189, 189, 189, 190,
1106
- 191, 191, 192, 193, 193, 194, 195, 196, 197, 198,
1107
- 198, 198, 198, 198, 199, 200, 201, 202, 203, 204,
1108
- 205, 206, 207, 208, 208, 208, 209, 209, 209, 210,
1109
- 211, 210, 212, 212, 213, 214, 214, 215, 216, 217,
1110
- 218, 219, 219, 220, 220, 221, 221, 222, 222, 223,
1111
- 223, 223, 224, 224, 224, 224, 224, 224, 224, 224,
1112
- 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
1113
- 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
1114
- 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
1115
- 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
1116
- 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
1117
- 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
1118
- 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
1119
- 224, 224, 224
1094
+ 0, 139, 140, 141, 141, 142, 142, 142, 142, 142,
1095
+ 143, 143, 144, 144, 145, 146, 146, 146, 147, 148,
1096
+ 148, 149, 149, 149, 150, 150, 151, 150, 152, 152,
1097
+ 152, 153, 154, 154, 155, 155, 156, 157, 157, 158,
1098
+ 158, 158, 159, 159, 160, 160, 161, 162, 162, 162,
1099
+ 162, 163, 163, 164, 164, 165, 165, 166, 166, 167,
1100
+ 167, 168, 168, 168, 168, 168, 168, 168, 168, 168,
1101
+ 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
1102
+ 168, 168, 168, 168, 168, 169, 170, 170, 171, 172,
1103
+ 173, 173, 173, 174, 174, 175, 176, 177, 177, 177,
1104
+ 178, 179, 179, 180, 180, 181, 182, 183, 183, 184,
1105
+ 185, 185, 186, 187, 188, 189, 190, 190, 190, 191,
1106
+ 192, 192, 193, 194, 194, 195, 196, 197, 198, 199,
1107
+ 199, 199, 199, 199, 200, 201, 202, 203, 204, 205,
1108
+ 206, 207, 208, 209, 209, 209, 210, 210, 210, 211,
1109
+ 212, 211, 213, 213, 214, 215, 215, 216, 217, 218,
1110
+ 219, 220, 220, 221, 221, 222, 222, 223, 223, 224,
1111
+ 224, 224, 225, 225, 225, 225, 225, 225, 225, 225,
1112
+ 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1113
+ 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1114
+ 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1115
+ 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1116
+ 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1117
+ 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1118
+ 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1119
+ 225, 225, 225, 225
1120
1120
  };
1121
1121
 
1122
1122
  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -1147,7 +1147,7 @@ static const yytype_uint8 yyr2[] =
1147
1147
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1148
1148
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1149
1149
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1150
- 1, 1, 1
1150
+ 1, 1, 1, 1
1151
1151
  };
1152
1152
 
1153
1153
  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -1164,100 +1164,100 @@ static const yytype_uint8 yydefact[] =
1164
1164
  220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
1165
1165
  230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
1166
1166
  240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
1167
- 250, 251, 252, 0, 170, 0, 0, 0, 13, 2,
1168
- 59, 18, 16, 162, 5, 10, 6, 11, 7, 9,
1169
- 8, 163, 42, 0, 22, 17, 20, 21, 44, 43,
1170
- 132, 133, 88, 0, 127, 86, 106, 0, 145, 124,
1171
- 87, 150, 134, 123, 138, 90, 159, 129, 130, 131,
1172
- 138, 0, 0, 85, 126, 125, 145, 0, 60, 75,
1173
- 76, 62, 77, 63, 64, 65, 66, 67, 68, 69,
1174
- 165, 70, 71, 72, 73, 74, 78, 79, 80, 81,
1175
- 82, 83, 84, 0, 0, 0, 19, 0, 45, 0,
1176
- 30, 0, 46, 0, 0, 147, 148, 146, 0, 0,
1177
- 0, 0, 0, 91, 92, 0, 59, 0, 140, 135,
1178
- 0, 61, 0, 166, 165, 0, 0, 59, 160, 23,
1179
- 0, 29, 26, 47, 164, 159, 110, 108, 139, 143,
1180
- 0, 141, 0, 151, 153, 0, 0, 163, 0, 142,
1181
- 158, 167, 122, 14, 117, 118, 116, 59, 0, 120,
1182
- 163, 112, 59, 39, 41, 0, 40, 32, 0, 51,
1183
- 59, 59, 107, 0, 144, 0, 156, 157, 152, 136,
1184
- 98, 99, 97, 0, 94, 0, 103, 137, 168, 114,
1185
- 115, 0, 0, 0, 113, 25, 0, 0, 48, 50,
1186
- 49, 0, 0, 163, 163, 0, 0, 59, 89, 0,
1187
- 58, 57, 96, 59, 159, 0, 121, 0, 165, 0,
1188
- 34, 46, 38, 37, 31, 52, 56, 53, 24, 54,
1189
- 55, 0, 155, 163, 93, 95, 163, 59, 0, 160,
1190
- 0, 33, 0, 36, 27, 105, 163, 0, 59, 128,
1191
- 35, 100, 119
1167
+ 250, 251, 252, 253, 0, 170, 0, 0, 0, 13,
1168
+ 2, 59, 18, 16, 162, 5, 10, 6, 11, 7,
1169
+ 9, 8, 163, 42, 0, 22, 17, 20, 21, 44,
1170
+ 43, 132, 133, 88, 0, 127, 86, 106, 0, 145,
1171
+ 124, 87, 150, 134, 123, 138, 90, 159, 129, 130,
1172
+ 131, 138, 0, 0, 85, 126, 125, 145, 0, 60,
1173
+ 75, 76, 62, 77, 63, 64, 65, 66, 67, 68,
1174
+ 69, 165, 70, 71, 72, 73, 74, 78, 79, 80,
1175
+ 81, 82, 83, 84, 0, 0, 0, 19, 0, 45,
1176
+ 0, 30, 0, 46, 0, 0, 147, 148, 146, 0,
1177
+ 0, 0, 0, 0, 91, 92, 0, 59, 0, 140,
1178
+ 135, 0, 61, 0, 166, 165, 0, 0, 59, 160,
1179
+ 23, 0, 29, 26, 47, 164, 159, 110, 108, 139,
1180
+ 143, 0, 141, 0, 151, 153, 0, 0, 163, 0,
1181
+ 142, 158, 167, 122, 14, 117, 118, 116, 59, 0,
1182
+ 120, 163, 112, 59, 39, 41, 0, 40, 32, 0,
1183
+ 51, 59, 59, 107, 0, 144, 0, 156, 157, 152,
1184
+ 136, 98, 99, 97, 0, 94, 0, 103, 137, 168,
1185
+ 114, 115, 0, 0, 0, 113, 25, 0, 0, 48,
1186
+ 50, 49, 0, 0, 163, 163, 0, 0, 59, 89,
1187
+ 0, 58, 57, 96, 59, 159, 0, 121, 0, 165,
1188
+ 0, 34, 46, 38, 37, 31, 52, 56, 53, 24,
1189
+ 54, 55, 0, 155, 163, 93, 95, 163, 59, 0,
1190
+ 160, 0, 33, 0, 36, 27, 105, 163, 0, 59,
1191
+ 128, 35, 100, 119
1192
1192
  };
1193
1193
 
1194
1194
  /* YYDEFGOTO[NTERM-NUM]. */
1195
1195
  static const yytype_int16 yydefgoto[] =
1196
1196
  {
1197
- -1, 1, 2, 6, 106, 99, 147, 8, 102, 115,
1198
- 116, 117, 247, 181, 324, 277, 299, 300, 304, 245,
1199
- 118, 182, 213, 249, 282, 308, 309, 292, 240, 148,
1200
- 149, 150, 151, 152, 195, 263, 264, 315, 265, 153,
1201
- 266, 295, 154, 184, 216, 217, 253, 155, 156, 157,
1202
- 237, 238, 158, 272, 159, 160, 161, 162, 163, 241,
1203
- 164, 165, 166, 167, 168, 192, 169, 170, 171, 172,
1204
- 190, 188, 173, 191, 223, 224, 255, 256, 268, 196,
1205
- 242, 9, 174, 202, 232, 203, 94
1197
+ -1, 1, 2, 6, 107, 100, 148, 8, 103, 116,
1198
+ 117, 118, 248, 182, 325, 278, 300, 301, 305, 246,
1199
+ 119, 183, 214, 250, 283, 309, 310, 293, 241, 149,
1200
+ 150, 151, 152, 153, 196, 264, 265, 316, 266, 154,
1201
+ 267, 296, 155, 185, 217, 218, 254, 156, 157, 158,
1202
+ 238, 239, 159, 273, 160, 161, 162, 163, 164, 242,
1203
+ 165, 166, 167, 168, 169, 193, 170, 171, 172, 173,
1204
+ 191, 189, 174, 192, 224, 225, 256, 257, 269, 197,
1205
+ 243, 9, 175, 203, 233, 204, 95
1206
1206
  };
1207
1207
 
1208
1208
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1209
1209
  STATE-NUM. */
1210
- #define YYPACT_NINF -253
1210
+ #define YYPACT_NINF -260
1211
1211
  static const yytype_int16 yypact[] =
1212
1212
  {
1213
- -253, 36, -20, -253, 353, -49, -253, -87, 14, -2,
1214
- -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1215
- -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1216
- -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1217
- -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1218
- -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1219
- -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1220
- -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1221
- -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1222
- -253, -253, -253, 26, -253, -3, 674, -40, -253, -253,
1223
- -253, -253, 245, -253, -253, -253, -253, -253, -253, -253,
1224
- -253, 1041, -253, 353, -253, 245, -253, -253, -7, -253,
1225
- -253, -253, -253, 353, -253, -253, -253, 49, 38, -253,
1226
- -253, -253, -253, -253, -253, -38, -253, -253, -253, -253,
1227
- -253, -59, 49, -253, -253, -253, 38, -34, -253, -253,
1228
- -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1229
- 353, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1230
- -253, -253, -253, 34, -50, 80, -253, 27, -253, -5,
1231
- -253, 58, -253, 85, -17, -253, -253, -253, -19, 1,
1232
- -16, -14, 49, -253, -253, 63, -253, 49, -253, -253,
1233
- -11, -253, -98, -253, 353, 69, 69, -253, -253, -253,
1234
- 461, -253, -253, 83, -8, -253, -41, -253, -253, -253,
1235
- 88, -253, 353, -14, -253, 48, 81, 887, -1, -253,
1236
- -253, -253, -253, -253, -253, -253, -253, -253, 52, 13,
1237
- 1118, -253, -253, -253, -253, 0, -253, 2, 569, 40,
1238
- -253, -253, -253, 71, -253, -64, -253, -253, -253, -253,
1239
- -253, -253, -253, -72, -253, -12, 18, -253, -253, -253,
1240
- -253, 123, 59, 54, -253, -253, 779, -39, -253, -253,
1241
- -253, 46, -13, -9, 1195, 102, 353, -253, -253, 81,
1242
- -253, -253, -253, -253, -253, 82, -253, 109, 353, -76,
1243
- -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
1244
- -253, 8, -253, 124, -253, -253, 1272, -253, 70, -253,
1245
- 10, -253, 779, -253, -253, -253, 964, 12, -253, -253,
1246
- -253, -253, -253
1213
+ -260, 21, -20, -260, 355, -61, -260, -99, 3, 7,
1214
+ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
1215
+ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
1216
+ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
1217
+ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
1218
+ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
1219
+ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
1220
+ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
1221
+ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
1222
+ -260, -260, -260, -260, 22, -260, 23, 679, -38, -260,
1223
+ -260, -260, -260, 246, -260, -260, -260, -260, -260, -260,
1224
+ -260, -260, 1026, -260, 355, -260, 246, -260, -260, -18,
1225
+ -260, -260, -260, -260, 355, -260, -260, -260, 30, 49,
1226
+ -260, -260, -260, -260, -260, -260, -37, -260, -260, -260,
1227
+ -260, -260, -48, 30, -260, -260, -260, 49, -33, -260,
1228
+ -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
1229
+ -260, 355, -260, -260, -260, -260, -260, -260, -260, -260,
1230
+ -260, -260, -260, -260, 36, -23, 78, -260, 37, -260,
1231
+ -10, -260, 58, -260, 85, -17, -260, -260, -260, -22,
1232
+ -19, -16, -15, 30, -260, -260, 62, -260, 30, -260,
1233
+ -260, -11, -260, -95, -260, 355, 68, 68, -260, -260,
1234
+ -260, 464, -260, -260, 79, -2, -260, -50, -260, -260,
1235
+ -260, 86, -260, 355, -15, -260, 48, 71, 894, -6,
1236
+ -260, -260, -260, -260, -260, -260, -260, -260, -260, 53,
1237
+ 13, 1092, -260, -260, -260, -260, -3, -260, -1, 573,
1238
+ 42, -260, -260, -260, 73, -260, -51, -260, -260, -260,
1239
+ -260, -260, -260, -260, -76, -260, -12, 15, -260, -260,
1240
+ -260, -260, 125, 59, 54, -260, -260, 785, -39, -260,
1241
+ -260, -260, 46, -13, -9, 1158, 102, 355, -260, -260,
1242
+ 71, -260, -260, -260, -260, -260, 80, -260, 110, 355,
1243
+ -60, -260, -260, -260, -260, -260, -260, -260, -260, -260,
1244
+ -260, -260, 8, -260, 124, -260, -260, 1224, -260, 69,
1245
+ -260, 10, -260, 785, -260, -260, -260, 960, 11, -260,
1246
+ -260, -260, -260, -260
1247
1247
  };
1248
1248
 
1249
1249
  /* YYPGOTO[NTERM-NUM]. */
1250
1250
  static const yytype_int16 yypgoto[] =
1251
1251
  {
1252
- -253, -253, -253, -253, -253, -253, 148, -253, -253, -253,
1253
- 37, -253, -253, -253, -253, -253, -253, -171, -253, -253,
1254
- -252, -253, -144, -253, -253, -253, -253, -123, -96, -253,
1255
- -253, -253, -253, -253, -253, -253, -127, -253, -253, -253,
1256
- -253, -253, -253, -253, -253, -52, -253, -253, -253, -253,
1257
- -253, -37, -253, -253, -253, -253, -253, -253, -253, -231,
1258
- -253, -253, -253, -253, -253, 25, -253, -253, -253, -253,
1259
- 20, -130, -253, -253, -253, -55, -253, -116, -253, -206,
1260
- -147, -253, -253, -196, -253, -4, -95
1252
+ -260, -260, -260, -260, -260, -260, 148, -260, -260, -260,
1253
+ 35, -260, -260, -260, -260, -260, -260, -171, -260, -260,
1254
+ -259, -260, -145, -260, -260, -260, -260, -124, -97, -260,
1255
+ -260, -260, -260, -260, -260, -260, -128, -260, -260, -260,
1256
+ -260, -260, -260, -260, -260, -53, -260, -260, -260, -260,
1257
+ -260, -42, -260, -260, -260, -260, -260, -260, -260, -221,
1258
+ -260, -260, -260, -260, -260, 25, -260, -260, -260, -260,
1259
+ 26, -131, -260, -260, -260, -56, -260, -118, -260, -210,
1260
+ -150, -260, -260, -196, -260, -4, -96
1261
1261
  };
1262
1262
 
1263
1263
  /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -1267,76 +1267,55 @@ static const yytype_int16 yypgoto[] =
1267
1267
  #define YYTABLE_NINF -163
1268
1268
  static const yytype_int16 yytable[] =
1269
1269
  {
1270
- 93, 107, 290, 290, 111, 4, 269, 119, 233, 250,
1271
- 193, 274, 199, 120, 121, 122, 123, 251, 205, 206,
1272
- 119, 177, 108, 124, 301, -161, -162, 125, 126, 302,
1273
- 127, 286, 230, 207, 128, 231, 3, 178, 129, 219,
1274
- 306, 303, -28, -161, -162, 95, 98, 130, 100, -109,
1275
- 101, -109, 103, 96, 104, 132, 133, 134, 287, 321,
1276
- 322, 288, 225, 135, 289, 136, 137, 228, 189, 138,
1277
- 301, 185, 186, 187, 198, 139, 293, 294, 140, 97,
1278
- 194, 208, 179, 141, 142, 109, 110, 143, 317, 215,
1279
- 220, 234, 235, 236, 204, 210, 144, 332, 145, 201,
1280
- 227, 146, 320, 260, 261, 262, 209, 212, 180, 175,
1281
- 211, 214, 5, 215, 218, 246, 222, 221, 226, 183,
1282
- 307, -109, 229, 248, 291, 291, 254, 259, 270, 271,
1283
- 281, 285, 267, 275, 296, 297, 276, 298, 305, 311,
1284
- 319, 325, 318, 329, 327, 331, 120, 121, 122, 123,
1285
- 7, 330, 176, 280, 283, 284, 124, 323, -161, 310,
1286
- 125, 126, 314, 127, 252, 197, 200, 128, 258, 239,
1287
- 312, 129, 328, 0, 0, 0, -161, 0, 0, 0,
1288
- 130, 119, 0, 0, -154, 0, 0, 0, 132, 133,
1289
- 134, 313, 0, 0, 0, 0, 135, 316, 136, 137,
1290
- 0, 0, 138, 0, 0, 0, 0, 0, 139, 0,
1291
- 0, 140, 0, 0, 0, 0, 141, 142, 257, 0,
1292
- 143, 326, 0, 0, 0, 0, 0, 119, 0, 144,
1293
- 0, 145, 0, 0, 146, 0, 0, 0, 0, 0,
1270
+ 94, 108, 291, 291, 112, 4, 251, 120, 252, 234,
1271
+ 178, 194, 200, 121, 122, 123, 124, 270, 302, 220,
1272
+ 120, 3, 275, 125, 109, -161, 179, 126, 127, 303,
1273
+ 128, -28, -162, 96, 129, 99, 231, 101, 130, 232,
1274
+ 307, 304, 97, -161, 287, 206, 207, 131, 104, -109,
1275
+ -162, -109, 186, 187, 188, 133, 134, 135, 289, 102,
1276
+ 208, 290, 226, 136, 302, 137, 138, 229, 98, 139,
1277
+ 221, 180, 288, 294, 295, 140, 322, 323, 141, 190,
1278
+ 105, 216, 195, 142, 143, 318, 199, 144, 110, 111,
1279
+ 235, 236, 237, 261, 262, 263, 205, 145, 181, 146,
1280
+ 228, 202, 147, 321, 210, 211, 212, 213, 333, 209,
1281
+ 176, 215, 219, 5, 216, 247, 223, 227, 222, 249,
1282
+ 184, 308, -109, 230, 255, 292, 292, 260, 268, 271,
1283
+ 272, 276, 282, 286, 277, 298, 297, 299, 306, 312,
1284
+ 319, 320, 326, 328, 330, 332, 121, 122, 123, 124,
1285
+ 7, 177, 331, 281, 284, 285, 125, 324, -161, 311,
1286
+ 126, 127, 315, 128, 253, 240, 198, 129, 259, 313,
1287
+ 329, 130, 0, 201, 0, 0, -161, 0, 0, 0,
1288
+ 131, 120, 0, 0, -154, 0, 0, 0, 133, 134,
1289
+ 135, 314, 0, 0, 0, 0, 136, 317, 137, 138,
1290
+ 0, 0, 139, 0, 0, 0, 0, 0, 140, 0,
1291
+ 0, 141, 0, 0, 0, 0, 142, 143, 0, 258,
1292
+ 144, 327, 0, 0, 0, 0, 0, 120, 0, 0,
1293
+ 145, 0, 146, 0, 0, 147, 0, 0, 0, 0,
1294
1294
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1295
- 0, 0, 0, 0, -154, 0, 0, 0, 0, 0,
1296
- 0, 0, 0, 0, 0, 0, 0, 112, 0, 0,
1297
- 113, 0, 12, 13, 0, 14, 15, 16, 17, 0,
1298
- 0, 18, 257, 19, 20, 21, 22, 23, 24, 25,
1299
- 26, 27, 28, 29, 30, 31, 32, 114, 33, 34,
1295
+ 0, 0, 0, 0, 0, -154, 0, 0, 0, 0,
1296
+ 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
1297
+ 0, 114, 0, 12, 13, 0, 14, 15, 16, 17,
1298
+ 0, 0, 18, 258, 19, 20, 21, 22, 23, 24,
1299
+ 25, 26, 27, 28, 29, 30, 31, 32, 115, 33,
1300
+ 34, 35, 36, 37, 0, 38, 0, 39, 40, 41,
1301
+ 0, 42, 43, 44, 0, 0, 45, 0, 46, 47,
1302
+ 0, 48, 0, 49, 50, 0, 51, 52, 53, 0,
1303
+ 54, 55, 56, 57, 58, 59, 0, 60, 0, 61,
1304
+ 62, 0, 63, 64, 65, 66, 67, 68, 69, 70,
1305
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1306
+ 81, 82, 83, 84, 85, 86, 0, 87, 88, 0,
1307
+ 0, 89, 90, 91, 0, 92, 93, 10, 0, 11,
1308
+ 0, 0, 12, 13, 0, 14, 15, 16, 17, 0,
1309
+ 0, 18, 0, 19, 20, 21, 22, 23, 24, 25,
1310
+ 26, 27, 28, 29, 30, 31, 32, 0, 33, 34,
1300
1311
  35, 36, 37, 0, 38, 0, 39, 40, 41, 0,
1301
1312
  42, 43, 44, 0, 0, 45, 0, 46, 47, 0,
1302
1313
  48, 0, 49, 50, 0, 51, 52, 53, 0, 54,
1303
1314
  55, 56, 57, 58, 59, 0, 60, 0, 61, 62,
1304
1315
  0, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1305
1316
  72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1306
- 82, 83, 84, 85, 0, 86, 87, 0, 0, 88,
1307
- 89, 90, 0, 91, 92, 10, 0, 11, 0, 0,
1308
- 12, 13, 0, 14, 15, 16, 17, 0, 0, 18,
1309
- 0, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1310
- 28, 29, 30, 31, 32, 0, 33, 34, 35, 36,
1311
- 37, 0, 38, 0, 39, 40, 41, 0, 42, 43,
1312
- 44, 0, 0, 45, 0, 46, 47, 0, 48, 0,
1313
- 49, 50, 0, 51, 52, 53, 0, 54, 55, 56,
1314
- 57, 58, 59, 0, 60, 0, 61, 62, 0, 63,
1315
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1316
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1317
- 84, 85, 0, 86, 87, 0, 0, 88, 89, 90,
1318
- 0, 91, 92, 243, 244, 0, 0, 0, 12, 13,
1319
- 0, 14, 15, 16, 17, 0, 0, 18, 0, 19,
1320
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1321
- 30, 31, 32, 0, 33, 34, 35, 36, 37, 0,
1322
- 38, 0, 39, 40, 41, 0, 42, 43, 44, 0,
1323
- 0, 45, 0, 46, 47, 0, 48, 0, 49, 50,
1324
- 0, 51, 52, 53, 0, 54, 55, 56, 57, 58,
1325
- 59, 0, 60, 0, 61, 62, 0, 63, 64, 65,
1326
- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1327
- 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1328
- 0, 86, 87, 0, 0, 88, 89, 90, 0, 91,
1329
- 92, 278, 279, 0, 0, 0, 12, 13, 0, 14,
1330
- 15, 16, 17, 0, 0, 18, 0, 19, 20, 21,
1331
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1332
- 32, 0, 33, 34, 35, 36, 37, 0, 38, 0,
1333
- 39, 40, 41, 0, 42, 43, 44, 0, 0, 45,
1334
- 0, 46, 47, 0, 48, 0, 49, 50, 0, 51,
1335
- 52, 53, 0, 54, 55, 56, 57, 58, 59, 0,
1336
- 60, 0, 61, 62, 0, 63, 64, 65, 66, 67,
1337
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1338
- 78, 79, 80, 81, 82, 83, 84, 85, 0, 86,
1339
- 87, 0, 0, 88, 89, 90, 105, 91, 92, 0,
1317
+ 82, 83, 84, 85, 86, 0, 87, 88, 0, 0,
1318
+ 89, 90, 91, 0, 92, 93, 244, 245, 0, 0,
1340
1319
  0, 12, 13, 0, 14, 15, 16, 17, 0, 0,
1341
1320
  18, 0, 19, 20, 21, 22, 23, 24, 25, 26,
1342
1321
  27, 28, 29, 30, 31, 32, 0, 33, 34, 35,
@@ -1346,8 +1325,19 @@ static const yytype_int16 yytable[] =
1346
1325
  56, 57, 58, 59, 0, 60, 0, 61, 62, 0,
1347
1326
  63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1348
1327
  73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1349
- 83, 84, 85, 0, 86, 87, 0, 0, 88, 89,
1350
- 90, 112, 91, 92, 0, 0, 12, 13, 0, 14,
1328
+ 83, 84, 85, 86, 0, 87, 88, 0, 0, 89,
1329
+ 90, 91, 0, 92, 93, 279, 280, 0, 0, 0,
1330
+ 12, 13, 0, 14, 15, 16, 17, 0, 0, 18,
1331
+ 0, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1332
+ 28, 29, 30, 31, 32, 0, 33, 34, 35, 36,
1333
+ 37, 0, 38, 0, 39, 40, 41, 0, 42, 43,
1334
+ 44, 0, 0, 45, 0, 46, 47, 0, 48, 0,
1335
+ 49, 50, 0, 51, 52, 53, 0, 54, 55, 56,
1336
+ 57, 58, 59, 0, 60, 0, 61, 62, 0, 63,
1337
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1338
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1339
+ 84, 85, 86, 0, 87, 88, 0, 0, 89, 90,
1340
+ 91, 106, 92, 93, 0, 0, 12, 13, 0, 14,
1351
1341
  15, 16, 17, 0, 0, 18, 0, 19, 20, 21,
1352
1342
  22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1353
1343
  32, 0, 33, 34, 35, 36, 37, 0, 38, 0,
@@ -1356,130 +1346,114 @@ static const yytype_int16 yytable[] =
1356
1346
  52, 53, 0, 54, 55, 56, 57, 58, 59, 0,
1357
1347
  60, 0, 61, 62, 0, 63, 64, 65, 66, 67,
1358
1348
  68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1359
- 78, 79, 80, 81, 82, 83, 84, 85, 0, 86,
1360
- 87, 0, 0, 88, 89, 90, 0, 91, 92, 120,
1361
- 121, 122, 123, 0, 0, 0, 0, 0, 0, 124,
1362
- 0, -161, 0, 125, 126, 0, 127, 0, 0, 0,
1363
- 128, 0, 0, 0, 129, 0, 0, 0, 0, -161,
1364
- 0, 0, 0, 130, 0, -101, -101, -101, 0, 0,
1365
- 0, 132, 133, 134, 0, 0, 0, 0, 0, 135,
1366
- 0, 136, 137, 0, 0, 138, 0, 0, 0, 0,
1367
- 0, 139, 0, 0, 140, 0, 0, 0, 0, 141,
1368
- 142, 0, 0, 143, 0, 0, 120, 121, 122, 123,
1369
- 0, 0, 144, 0, 145, 0, 124, 146, -161, 0,
1370
- 125, 126, 0, 127, 0, 0, 0, 128, 0, 0,
1371
- 0, 129, 0, 0, 0, 0, -161, 0, 0, 0,
1372
- 130, 0, -102, -102, -102, 0, 0, 0, 132, 133,
1373
- 134, 0, 0, 0, 0, 0, 135, 0, 136, 137,
1374
- 0, 0, 138, 0, 0, 0, 0, 0, 139, 0,
1375
- 0, 140, 0, 0, 0, 0, 141, 142, 0, 0,
1376
- 143, 0, 0, 120, 121, 122, 123, 0, 0, 144,
1377
- 0, 145, 0, 124, 146, -161, 0, 125, 126, 0,
1378
- 127, 0, 0, 0, 128, 0, 0, 0, 129, 0,
1379
- 0, 0, 0, -161, 0, 0, 0, 130, 0, 0,
1380
- 0, -149, 0, 0, 131, 132, 133, 134, 0, 0,
1381
- 0, 0, 0, 135, 0, 136, 137, 0, 0, 138,
1382
- 0, 0, 0, 0, 0, 139, 0, 0, 140, 0,
1383
- 0, 0, 0, 141, 142, 0, 0, 143, 0, 0,
1384
- 120, 121, 122, 123, 0, 0, 144, 0, 145, 0,
1385
- 124, 146, -161, 0, 125, 126, 0, 127, 0, 0,
1386
- 0, 128, 0, 0, 0, 129, 0, 0, 0, 0,
1387
- -161, 0, 0, 0, 130, 0, 0, 0, 273, 0,
1388
- 0, 0, 132, 133, 134, 0, 0, 0, 0, 0,
1389
- 135, 0, 136, 137, 0, 0, 138, 0, 0, 0,
1390
- 0, 0, 139, 0, 0, 140, 0, 0, 0, 0,
1391
- 141, 142, 0, 0, 143, 0, 0, 120, 121, 122,
1392
- 123, 0, 0, 144, 0, 145, 0, 124, 146, -161,
1393
- 0, 125, 126, 0, 127, 0, 0, 0, 128, 0,
1394
- 0, 0, 129, 0, 0, 0, 0, -161, 0, 0,
1395
- 0, 130, 0, 0, 0, -111, 0, 0, 0, 132,
1396
- 133, 134, 0, 0, 0, 0, 0, 135, 0, 136,
1397
- 137, 0, 0, 138, 0, 0, 0, 0, 0, 139,
1398
- 0, 0, 140, 0, 0, 0, 0, 141, 142, 0,
1399
- 0, 143, 0, 0, 120, 121, 122, 123, 0, 0,
1400
- 144, 0, 145, 0, 124, 146, -161, 0, 125, 126,
1401
- 0, 127, 0, 0, 0, 128, 0, 0, 0, 129,
1402
- 0, 0, 0, 0, -161, 0, 0, 0, 130, 0,
1403
- 0, 0, -104, 0, 0, 0, 132, 133, 134, 0,
1404
- 0, 0, 0, 0, 135, 0, 136, 137, 0, 0,
1405
- 138, 0, 0, 0, 0, 0, 139, 0, 0, 140,
1406
- 0, 0, 0, 0, 141, 142, 0, 0, 143, 0,
1407
- 0, 0, 0, 0, 0, 0, 0, 144, 0, 145,
1408
- 0, 0, 146
1349
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 0,
1350
+ 87, 88, 0, 0, 89, 90, 91, 113, 92, 93,
1351
+ 0, 0, 12, 13, 0, 14, 15, 16, 17, 0,
1352
+ 0, 18, 0, 19, 20, 21, 22, 23, 24, 25,
1353
+ 26, 27, 28, 29, 30, 31, 32, 0, 33, 34,
1354
+ 35, 36, 37, 0, 38, 0, 39, 40, 41, 0,
1355
+ 42, 43, 44, 0, 0, 45, 0, 46, 47, 0,
1356
+ 48, 0, 49, 50, 0, 51, 52, 53, 0, 54,
1357
+ 55, 56, 57, 58, 59, 0, 60, 0, 61, 62,
1358
+ 0, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1359
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1360
+ 82, 83, 84, 85, 86, 0, 87, 88, 0, 0,
1361
+ 89, 90, 91, 0, 92, 93, 121, 122, 123, 124,
1362
+ 0, 0, 0, 0, 0, 0, 125, 0, -161, 0,
1363
+ 126, 127, 0, 128, 0, 0, 0, 129, 0, 0,
1364
+ 0, 130, 0, 0, 0, 0, -161, 0, 0, 0,
1365
+ 131, 0, -101, -101, -101, 0, 0, 0, 133, 134,
1366
+ 135, 0, 0, 0, 0, 0, 136, 0, 137, 138,
1367
+ 0, 0, 139, 0, 0, 0, 0, 0, 140, 0,
1368
+ 0, 141, 121, 122, 123, 124, 142, 143, 0, 0,
1369
+ 144, 0, 125, 0, -161, 0, 126, 127, 0, 128,
1370
+ 145, 0, 146, 129, 0, 147, 0, 130, 0, 0,
1371
+ 0, 0, -161, 0, 0, 0, 131, 0, -102, -102,
1372
+ -102, 0, 0, 0, 133, 134, 135, 0, 0, 0,
1373
+ 0, 0, 136, 0, 137, 138, 0, 0, 139, 0,
1374
+ 0, 0, 0, 0, 140, 0, 0, 141, 121, 122,
1375
+ 123, 124, 142, 143, 0, 0, 144, 0, 125, 0,
1376
+ -161, 0, 126, 127, 0, 128, 145, 0, 146, 129,
1377
+ 0, 147, 0, 130, 0, 0, 0, 0, -161, 0,
1378
+ 0, 0, 131, 0, 0, 0, -149, 0, 0, 132,
1379
+ 133, 134, 135, 0, 0, 0, 0, 0, 136, 0,
1380
+ 137, 138, 0, 0, 139, 0, 0, 0, 0, 0,
1381
+ 140, 0, 0, 141, 121, 122, 123, 124, 142, 143,
1382
+ 0, 0, 144, 0, 125, 0, -161, 0, 126, 127,
1383
+ 0, 128, 145, 0, 146, 129, 0, 147, 0, 130,
1384
+ 0, 0, 0, 0, -161, 0, 0, 0, 131, 0,
1385
+ 0, 0, 274, 0, 0, 0, 133, 134, 135, 0,
1386
+ 0, 0, 0, 0, 136, 0, 137, 138, 0, 0,
1387
+ 139, 0, 0, 0, 0, 0, 140, 0, 0, 141,
1388
+ 121, 122, 123, 124, 142, 143, 0, 0, 144, 0,
1389
+ 125, 0, -161, 0, 126, 127, 0, 128, 145, 0,
1390
+ 146, 129, 0, 147, 0, 130, 0, 0, 0, 0,
1391
+ -161, 0, 0, 0, 131, 0, 0, 0, -111, 0,
1392
+ 0, 0, 133, 134, 135, 0, 0, 0, 0, 0,
1393
+ 136, 0, 137, 138, 0, 0, 139, 0, 0, 0,
1394
+ 0, 0, 140, 0, 0, 141, 121, 122, 123, 124,
1395
+ 142, 143, 0, 0, 144, 0, 125, 0, -161, 0,
1396
+ 126, 127, 0, 128, 145, 0, 146, 129, 0, 147,
1397
+ 0, 130, 0, 0, 0, 0, -161, 0, 0, 0,
1398
+ 131, 0, 0, 0, -104, 0, 0, 0, 133, 134,
1399
+ 135, 0, 0, 0, 0, 0, 136, 0, 137, 138,
1400
+ 0, 0, 139, 0, 0, 0, 0, 0, 140, 0,
1401
+ 0, 141, 0, 0, 0, 0, 142, 143, 0, 0,
1402
+ 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1403
+ 145, 0, 146, 0, 0, 147
1409
1404
  };
1410
1405
 
1411
1406
  static const yytype_int16 yycheck[] =
1412
1407
  {
1413
- 4, 96, 15, 15, 100, 25, 237, 102, 204, 215,
1414
- 48, 242, 142, 22, 23, 24, 25, 58, 68, 69,
1415
- 115, 28, 62, 32, 276, 34, 34, 36, 37, 68,
1416
- 39, 95, 130, 83, 43, 133, 0, 44, 47, 38,
1417
- 53, 80, 49, 52, 52, 94, 133, 56, 34, 58,
1418
- 52, 60, 26, 102, 57, 64, 65, 66, 122, 135,
1419
- 136, 133, 192, 72, 136, 74, 75, 197, 30, 78,
1420
- 322, 22, 23, 24, 133, 84, 58, 59, 87, 128,
1421
- 118, 131, 89, 92, 93, 125, 126, 96, 294, 130,
1422
- 89, 22, 23, 24, 60, 68, 105, 328, 107, 133,
1423
- 196, 110, 298, 22, 23, 24, 26, 49, 115, 113,
1424
- 115, 26, 132, 130, 133, 210, 130, 133, 55, 123,
1425
- 133, 130, 133, 40, 137, 137, 38, 79, 76, 116,
1426
- 90, 60, 133, 133, 11, 76, 134, 83, 92, 37,
1427
- 31, 133, 60, 133, 74, 133, 22, 23, 24, 25,
1428
- 2, 322, 115, 248, 250, 251, 32, 301, 34, 282,
1429
- 36, 37, 289, 39, 216, 140, 146, 43, 223, 206,
1430
- 286, 47, 319, -1, -1, -1, 52, -1, -1, -1,
1431
- 56, 276, -1, -1, 60, -1, -1, -1, 64, 65,
1432
- 66, 287, -1, -1, -1, -1, 72, 293, 74, 75,
1408
+ 4, 97, 15, 15, 101, 25, 216, 103, 58, 205,
1409
+ 28, 48, 143, 22, 23, 24, 25, 238, 277, 38,
1410
+ 116, 0, 243, 32, 62, 34, 44, 36, 37, 68,
1411
+ 39, 49, 34, 94, 43, 134, 131, 34, 47, 134,
1412
+ 53, 80, 103, 52, 95, 68, 69, 56, 26, 58,
1413
+ 52, 60, 22, 23, 24, 64, 65, 66, 134, 52,
1414
+ 83, 137, 193, 72, 323, 74, 75, 198, 129, 78,
1415
+ 89, 89, 123, 58, 59, 84, 136, 137, 87, 30,
1416
+ 57, 131, 119, 92, 93, 295, 134, 96, 126, 127,
1417
+ 22, 23, 24, 22, 23, 24, 60, 106, 116, 108,
1418
+ 197, 134, 111, 299, 26, 68, 116, 49, 329, 132,
1419
+ 114, 26, 134, 133, 131, 211, 131, 55, 134, 40,
1420
+ 124, 134, 131, 134, 38, 138, 138, 79, 134, 76,
1421
+ 117, 134, 90, 60, 135, 76, 11, 83, 92, 37,
1422
+ 60, 31, 134, 74, 134, 134, 22, 23, 24, 25,
1423
+ 2, 116, 323, 249, 251, 252, 32, 302, 34, 283,
1424
+ 36, 37, 290, 39, 217, 207, 141, 43, 224, 287,
1425
+ 320, 47, -1, 147, -1, -1, 52, -1, -1, -1,
1426
+ 56, 277, -1, -1, 60, -1, -1, -1, 64, 65,
1427
+ 66, 288, -1, -1, -1, -1, 72, 294, 74, 75,
1433
1428
  -1, -1, 78, -1, -1, -1, -1, -1, 84, -1,
1434
- -1, 87, -1, -1, -1, -1, 92, 93, 222, -1,
1435
- 96, 317, -1, -1, -1, -1, -1, 322, -1, 105,
1436
- -1, 107, -1, -1, 110, -1, -1, -1, -1, -1,
1429
+ -1, 87, -1, -1, -1, -1, 92, 93, -1, 223,
1430
+ 96, 318, -1, -1, -1, -1, -1, 323, -1, -1,
1431
+ 106, -1, 108, -1, -1, 111, -1, -1, -1, -1,
1437
1432
  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1438
- -1, -1, -1, -1, 130, -1, -1, -1, -1, -1,
1439
- -1, -1, -1, -1, -1, -1, -1, 22, -1, -1,
1440
- 25, -1, 27, 28, -1, 30, 31, 32, 33, -1,
1441
- -1, 36, 286, 38, 39, 40, 41, 42, 43, 44,
1442
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1433
+ -1, -1, -1, -1, -1, 131, -1, -1, -1, -1,
1434
+ -1, -1, -1, -1, -1, -1, -1, -1, 22, -1,
1435
+ -1, 25, -1, 27, 28, -1, 30, 31, 32, 33,
1436
+ -1, -1, 36, 287, 38, 39, 40, 41, 42, 43,
1437
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1438
+ 54, 55, 56, 57, -1, 59, -1, 61, 62, 63,
1439
+ -1, 65, 66, 67, -1, -1, 70, -1, 72, 73,
1440
+ -1, 75, -1, 77, 78, -1, 80, 81, 82, -1,
1441
+ 84, 85, 86, 87, 88, 89, -1, 91, -1, 93,
1442
+ 94, -1, 96, 97, 98, 99, 100, 101, 102, 103,
1443
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1444
+ 114, 115, 116, 117, 118, 119, -1, 121, 122, -1,
1445
+ -1, 125, 126, 127, -1, 129, 130, 22, -1, 24,
1446
+ -1, -1, 27, 28, -1, 30, 31, 32, 33, -1,
1447
+ -1, 36, -1, 38, 39, 40, 41, 42, 43, 44,
1448
+ 45, 46, 47, 48, 49, 50, 51, -1, 53, 54,
1443
1449
  55, 56, 57, -1, 59, -1, 61, 62, 63, -1,
1444
1450
  65, 66, 67, -1, -1, 70, -1, 72, 73, -1,
1445
1451
  75, -1, 77, 78, -1, 80, 81, 82, -1, 84,
1446
1452
  85, 86, 87, 88, 89, -1, 91, -1, 93, 94,
1447
1453
  -1, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1448
1454
  105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1449
- 115, 116, 117, 118, -1, 120, 121, -1, -1, 124,
1450
- 125, 126, -1, 128, 129, 22, -1, 24, -1, -1,
1451
- 27, 28, -1, 30, 31, 32, 33, -1, -1, 36,
1452
- -1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1453
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
1454
- 57, -1, 59, -1, 61, 62, 63, -1, 65, 66,
1455
- 67, -1, -1, 70, -1, 72, 73, -1, 75, -1,
1456
- 77, 78, -1, 80, 81, 82, -1, 84, 85, 86,
1457
- 87, 88, 89, -1, 91, -1, 93, 94, -1, 96,
1458
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1459
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1460
- 117, 118, -1, 120, 121, -1, -1, 124, 125, 126,
1461
- -1, 128, 129, 22, 23, -1, -1, -1, 27, 28,
1462
- -1, 30, 31, 32, 33, -1, -1, 36, -1, 38,
1463
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1464
- 49, 50, 51, -1, 53, 54, 55, 56, 57, -1,
1465
- 59, -1, 61, 62, 63, -1, 65, 66, 67, -1,
1466
- -1, 70, -1, 72, 73, -1, 75, -1, 77, 78,
1467
- -1, 80, 81, 82, -1, 84, 85, 86, 87, 88,
1468
- 89, -1, 91, -1, 93, 94, -1, 96, 97, 98,
1469
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1470
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1471
- -1, 120, 121, -1, -1, 124, 125, 126, -1, 128,
1472
- 129, 22, 23, -1, -1, -1, 27, 28, -1, 30,
1473
- 31, 32, 33, -1, -1, 36, -1, 38, 39, 40,
1474
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1475
- 51, -1, 53, 54, 55, 56, 57, -1, 59, -1,
1476
- 61, 62, 63, -1, 65, 66, 67, -1, -1, 70,
1477
- -1, 72, 73, -1, 75, -1, 77, 78, -1, 80,
1478
- 81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
1479
- 91, -1, 93, 94, -1, 96, 97, 98, 99, 100,
1480
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1481
- 111, 112, 113, 114, 115, 116, 117, 118, -1, 120,
1482
- 121, -1, -1, 124, 125, 126, 22, 128, 129, -1,
1455
+ 115, 116, 117, 118, 119, -1, 121, 122, -1, -1,
1456
+ 125, 126, 127, -1, 129, 130, 22, 23, -1, -1,
1483
1457
  -1, 27, 28, -1, 30, 31, 32, 33, -1, -1,
1484
1458
  36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
1485
1459
  46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
@@ -1489,8 +1463,19 @@ static const yytype_int16 yycheck[] =
1489
1463
  86, 87, 88, 89, -1, 91, -1, 93, 94, -1,
1490
1464
  96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1491
1465
  106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1492
- 116, 117, 118, -1, 120, 121, -1, -1, 124, 125,
1493
- 126, 22, 128, 129, -1, -1, 27, 28, -1, 30,
1466
+ 116, 117, 118, 119, -1, 121, 122, -1, -1, 125,
1467
+ 126, 127, -1, 129, 130, 22, 23, -1, -1, -1,
1468
+ 27, 28, -1, 30, 31, 32, 33, -1, -1, 36,
1469
+ -1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1470
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
1471
+ 57, -1, 59, -1, 61, 62, 63, -1, 65, 66,
1472
+ 67, -1, -1, 70, -1, 72, 73, -1, 75, -1,
1473
+ 77, 78, -1, 80, 81, 82, -1, 84, 85, 86,
1474
+ 87, 88, 89, -1, 91, -1, 93, 94, -1, 96,
1475
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1476
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1477
+ 117, 118, 119, -1, 121, 122, -1, -1, 125, 126,
1478
+ 127, 22, 129, 130, -1, -1, 27, 28, -1, 30,
1494
1479
  31, 32, 33, -1, -1, 36, -1, 38, 39, 40,
1495
1480
  41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1496
1481
  51, -1, 53, 54, 55, 56, 57, -1, 59, -1,
@@ -1499,63 +1484,68 @@ static const yytype_int16 yycheck[] =
1499
1484
  81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
1500
1485
  91, -1, 93, 94, -1, 96, 97, 98, 99, 100,
1501
1486
  101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1502
- 111, 112, 113, 114, 115, 116, 117, 118, -1, 120,
1503
- 121, -1, -1, 124, 125, 126, -1, 128, 129, 22,
1504
- 23, 24, 25, -1, -1, -1, -1, -1, -1, 32,
1505
- -1, 34, -1, 36, 37, -1, 39, -1, -1, -1,
1506
- 43, -1, -1, -1, 47, -1, -1, -1, -1, 52,
1507
- -1, -1, -1, 56, -1, 58, 59, 60, -1, -1,
1508
- -1, 64, 65, 66, -1, -1, -1, -1, -1, 72,
1509
- -1, 74, 75, -1, -1, 78, -1, -1, -1, -1,
1510
- -1, 84, -1, -1, 87, -1, -1, -1, -1, 92,
1511
- 93, -1, -1, 96, -1, -1, 22, 23, 24, 25,
1512
- -1, -1, 105, -1, 107, -1, 32, 110, 34, -1,
1487
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
1488
+ 121, 122, -1, -1, 125, 126, 127, 22, 129, 130,
1489
+ -1, -1, 27, 28, -1, 30, 31, 32, 33, -1,
1490
+ -1, 36, -1, 38, 39, 40, 41, 42, 43, 44,
1491
+ 45, 46, 47, 48, 49, 50, 51, -1, 53, 54,
1492
+ 55, 56, 57, -1, 59, -1, 61, 62, 63, -1,
1493
+ 65, 66, 67, -1, -1, 70, -1, 72, 73, -1,
1494
+ 75, -1, 77, 78, -1, 80, 81, 82, -1, 84,
1495
+ 85, 86, 87, 88, 89, -1, 91, -1, 93, 94,
1496
+ -1, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1497
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1498
+ 115, 116, 117, 118, 119, -1, 121, 122, -1, -1,
1499
+ 125, 126, 127, -1, 129, 130, 22, 23, 24, 25,
1500
+ -1, -1, -1, -1, -1, -1, 32, -1, 34, -1,
1513
1501
  36, 37, -1, 39, -1, -1, -1, 43, -1, -1,
1514
1502
  -1, 47, -1, -1, -1, -1, 52, -1, -1, -1,
1515
1503
  56, -1, 58, 59, 60, -1, -1, -1, 64, 65,
1516
1504
  66, -1, -1, -1, -1, -1, 72, -1, 74, 75,
1517
1505
  -1, -1, 78, -1, -1, -1, -1, -1, 84, -1,
1518
- -1, 87, -1, -1, -1, -1, 92, 93, -1, -1,
1519
- 96, -1, -1, 22, 23, 24, 25, -1, -1, 105,
1520
- -1, 107, -1, 32, 110, 34, -1, 36, 37, -1,
1521
- 39, -1, -1, -1, 43, -1, -1, -1, 47, -1,
1522
- -1, -1, -1, 52, -1, -1, -1, 56, -1, -1,
1523
- -1, 60, -1, -1, 63, 64, 65, 66, -1, -1,
1524
- -1, -1, -1, 72, -1, 74, 75, -1, -1, 78,
1525
- -1, -1, -1, -1, -1, 84, -1, -1, 87, -1,
1526
- -1, -1, -1, 92, 93, -1, -1, 96, -1, -1,
1527
- 22, 23, 24, 25, -1, -1, 105, -1, 107, -1,
1528
- 32, 110, 34, -1, 36, 37, -1, 39, -1, -1,
1529
- -1, 43, -1, -1, -1, 47, -1, -1, -1, -1,
1530
- 52, -1, -1, -1, 56, -1, -1, -1, 60, -1,
1531
- -1, -1, 64, 65, 66, -1, -1, -1, -1, -1,
1532
- 72, -1, 74, 75, -1, -1, 78, -1, -1, -1,
1533
- -1, -1, 84, -1, -1, 87, -1, -1, -1, -1,
1534
- 92, 93, -1, -1, 96, -1, -1, 22, 23, 24,
1535
- 25, -1, -1, 105, -1, 107, -1, 32, 110, 34,
1536
- -1, 36, 37, -1, 39, -1, -1, -1, 43, -1,
1537
- -1, -1, 47, -1, -1, -1, -1, 52, -1, -1,
1538
- -1, 56, -1, -1, -1, 60, -1, -1, -1, 64,
1539
- 65, 66, -1, -1, -1, -1, -1, 72, -1, 74,
1540
- 75, -1, -1, 78, -1, -1, -1, -1, -1, 84,
1541
- -1, -1, 87, -1, -1, -1, -1, 92, 93, -1,
1542
- -1, 96, -1, -1, 22, 23, 24, 25, -1, -1,
1543
- 105, -1, 107, -1, 32, 110, 34, -1, 36, 37,
1544
- -1, 39, -1, -1, -1, 43, -1, -1, -1, 47,
1506
+ -1, 87, 22, 23, 24, 25, 92, 93, -1, -1,
1507
+ 96, -1, 32, -1, 34, -1, 36, 37, -1, 39,
1508
+ 106, -1, 108, 43, -1, 111, -1, 47, -1, -1,
1509
+ -1, -1, 52, -1, -1, -1, 56, -1, 58, 59,
1510
+ 60, -1, -1, -1, 64, 65, 66, -1, -1, -1,
1511
+ -1, -1, 72, -1, 74, 75, -1, -1, 78, -1,
1512
+ -1, -1, -1, -1, 84, -1, -1, 87, 22, 23,
1513
+ 24, 25, 92, 93, -1, -1, 96, -1, 32, -1,
1514
+ 34, -1, 36, 37, -1, 39, 106, -1, 108, 43,
1515
+ -1, 111, -1, 47, -1, -1, -1, -1, 52, -1,
1516
+ -1, -1, 56, -1, -1, -1, 60, -1, -1, 63,
1517
+ 64, 65, 66, -1, -1, -1, -1, -1, 72, -1,
1518
+ 74, 75, -1, -1, 78, -1, -1, -1, -1, -1,
1519
+ 84, -1, -1, 87, 22, 23, 24, 25, 92, 93,
1520
+ -1, -1, 96, -1, 32, -1, 34, -1, 36, 37,
1521
+ -1, 39, 106, -1, 108, 43, -1, 111, -1, 47,
1545
1522
  -1, -1, -1, -1, 52, -1, -1, -1, 56, -1,
1546
1523
  -1, -1, 60, -1, -1, -1, 64, 65, 66, -1,
1547
1524
  -1, -1, -1, -1, 72, -1, 74, 75, -1, -1,
1548
1525
  78, -1, -1, -1, -1, -1, 84, -1, -1, 87,
1549
- -1, -1, -1, -1, 92, 93, -1, -1, 96, -1,
1550
- -1, -1, -1, -1, -1, -1, -1, 105, -1, 107,
1551
- -1, -1, 110
1526
+ 22, 23, 24, 25, 92, 93, -1, -1, 96, -1,
1527
+ 32, -1, 34, -1, 36, 37, -1, 39, 106, -1,
1528
+ 108, 43, -1, 111, -1, 47, -1, -1, -1, -1,
1529
+ 52, -1, -1, -1, 56, -1, -1, -1, 60, -1,
1530
+ -1, -1, 64, 65, 66, -1, -1, -1, -1, -1,
1531
+ 72, -1, 74, 75, -1, -1, 78, -1, -1, -1,
1532
+ -1, -1, 84, -1, -1, 87, 22, 23, 24, 25,
1533
+ 92, 93, -1, -1, 96, -1, 32, -1, 34, -1,
1534
+ 36, 37, -1, 39, 106, -1, 108, 43, -1, 111,
1535
+ -1, 47, -1, -1, -1, -1, 52, -1, -1, -1,
1536
+ 56, -1, -1, -1, 60, -1, -1, -1, 64, 65,
1537
+ 66, -1, -1, -1, -1, -1, 72, -1, 74, 75,
1538
+ -1, -1, 78, -1, -1, -1, -1, -1, 84, -1,
1539
+ -1, 87, -1, -1, -1, -1, 92, 93, -1, -1,
1540
+ 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1541
+ 106, -1, 108, -1, -1, 111
1552
1542
  };
1553
1543
 
1554
1544
  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1555
1545
  symbol of state STATE-NUM. */
1556
1546
  static const yytype_uint8 yystos[] =
1557
1547
  {
1558
- 0, 139, 140, 0, 25, 132, 141, 144, 145, 219,
1548
+ 0, 140, 141, 0, 25, 133, 142, 145, 146, 220,
1559
1549
  22, 24, 27, 28, 30, 31, 32, 33, 36, 38,
1560
1550
  39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1561
1551
  49, 50, 51, 53, 54, 55, 56, 57, 59, 61,
@@ -1563,32 +1553,32 @@ static const yytype_uint8 yystos[] =
1563
1553
  78, 80, 81, 82, 84, 85, 86, 87, 88, 89,
1564
1554
  91, 93, 94, 96, 97, 98, 99, 100, 101, 102,
1565
1555
  103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1566
- 113, 114, 115, 116, 117, 118, 120, 121, 124, 125,
1567
- 126, 128, 129, 223, 224, 94, 102, 128, 133, 143,
1568
- 34, 52, 146, 26, 57, 22, 142, 224, 62, 125,
1569
- 126, 166, 22, 25, 52, 147, 148, 149, 158, 224,
1570
- 22, 23, 24, 25, 32, 36, 37, 39, 43, 47,
1571
- 56, 63, 64, 65, 66, 72, 74, 75, 78, 84,
1572
- 87, 92, 93, 96, 105, 107, 110, 144, 167, 168,
1573
- 169, 170, 171, 177, 180, 185, 186, 187, 190, 192,
1574
- 193, 194, 195, 196, 198, 199, 200, 201, 202, 204,
1575
- 205, 206, 207, 210, 220, 223, 148, 28, 44, 89,
1576
- 115, 151, 159, 223, 181, 22, 23, 24, 209, 30,
1577
- 208, 211, 203, 48, 118, 172, 217, 203, 133, 209,
1578
- 208, 133, 221, 223, 60, 68, 69, 83, 131, 26,
1579
- 68, 115, 49, 160, 26, 130, 182, 183, 133, 38,
1580
- 89, 133, 130, 212, 213, 209, 55, 166, 209, 133,
1581
- 130, 133, 222, 221, 22, 23, 24, 188, 189, 189,
1582
- 166, 197, 218, 22, 23, 157, 224, 150, 40, 161,
1583
- 217, 58, 183, 184, 38, 214, 215, 223, 213, 79,
1584
- 22, 23, 24, 173, 174, 176, 178, 133, 216, 197,
1585
- 76, 116, 191, 60, 197, 133, 134, 153, 22, 23,
1586
- 224, 90, 162, 166, 166, 60, 95, 122, 133, 136,
1587
- 15, 137, 165, 58, 59, 179, 11, 76, 83, 154,
1588
- 155, 158, 68, 80, 156, 92, 53, 133, 163, 164,
1589
- 165, 37, 215, 166, 174, 175, 166, 217, 60, 31,
1590
- 221, 135, 136, 160, 152, 133, 166, 74, 218, 133,
1591
- 155, 133, 197
1556
+ 113, 114, 115, 116, 117, 118, 119, 121, 122, 125,
1557
+ 126, 127, 129, 130, 224, 225, 94, 103, 129, 134,
1558
+ 144, 34, 52, 147, 26, 57, 22, 143, 225, 62,
1559
+ 126, 127, 167, 22, 25, 52, 148, 149, 150, 159,
1560
+ 225, 22, 23, 24, 25, 32, 36, 37, 39, 43,
1561
+ 47, 56, 63, 64, 65, 66, 72, 74, 75, 78,
1562
+ 84, 87, 92, 93, 96, 106, 108, 111, 145, 168,
1563
+ 169, 170, 171, 172, 178, 181, 186, 187, 188, 191,
1564
+ 193, 194, 195, 196, 197, 199, 200, 201, 202, 203,
1565
+ 205, 206, 207, 208, 211, 221, 224, 149, 28, 44,
1566
+ 89, 116, 152, 160, 224, 182, 22, 23, 24, 210,
1567
+ 30, 209, 212, 204, 48, 119, 173, 218, 204, 134,
1568
+ 210, 209, 134, 222, 224, 60, 68, 69, 83, 132,
1569
+ 26, 68, 116, 49, 161, 26, 131, 183, 184, 134,
1570
+ 38, 89, 134, 131, 213, 214, 210, 55, 167, 210,
1571
+ 134, 131, 134, 223, 222, 22, 23, 24, 189, 190,
1572
+ 190, 167, 198, 219, 22, 23, 158, 225, 151, 40,
1573
+ 162, 218, 58, 184, 185, 38, 215, 216, 224, 214,
1574
+ 79, 22, 23, 24, 174, 175, 177, 179, 134, 217,
1575
+ 198, 76, 117, 192, 60, 198, 134, 135, 154, 22,
1576
+ 23, 225, 90, 163, 167, 167, 60, 95, 123, 134,
1577
+ 137, 15, 138, 166, 58, 59, 180, 11, 76, 83,
1578
+ 155, 156, 159, 68, 80, 157, 92, 53, 134, 164,
1579
+ 165, 166, 37, 216, 167, 175, 176, 167, 218, 60,
1580
+ 31, 222, 136, 137, 161, 153, 134, 167, 74, 219,
1581
+ 134, 156, 134, 198
1592
1582
  };
1593
1583
 
1594
1584
  #define yyerrok (yyerrstatus = 0)
@@ -2429,21 +2419,21 @@ yyreduce:
2429
2419
  switch (yyn)
2430
2420
  {
2431
2421
  case 2:
2432
- #line 363 "pl_gram.y"
2422
+ #line 361 "pl_gram.y"
2433
2423
  {
2434
2424
  plpgsql_parse_result = (PLpgSQL_stmt_block *) (yyvsp[(2) - (3)].stmt);
2435
2425
  ;}
2436
2426
  break;
2437
2427
 
2438
2428
  case 5:
2439
- #line 373 "pl_gram.y"
2429
+ #line 371 "pl_gram.y"
2440
2430
  {
2441
2431
  plpgsql_DumpExecTree = true;
2442
2432
  ;}
2443
2433
  break;
2444
2434
 
2445
2435
  case 6:
2446
- #line 377 "pl_gram.y"
2436
+ #line 375 "pl_gram.y"
2447
2437
  {
2448
2438
  if (strcmp((yyvsp[(3) - (3)].str), "on") == 0)
2449
2439
  plpgsql_curr_compile->print_strict_params = true;
@@ -2455,42 +2445,42 @@ yyreduce:
2455
2445
  break;
2456
2446
 
2457
2447
  case 7:
2458
- #line 386 "pl_gram.y"
2448
+ #line 384 "pl_gram.y"
2459
2449
  {
2460
2450
  plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_ERROR;
2461
2451
  ;}
2462
2452
  break;
2463
2453
 
2464
2454
  case 8:
2465
- #line 390 "pl_gram.y"
2455
+ #line 388 "pl_gram.y"
2466
2456
  {
2467
2457
  plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_VARIABLE;
2468
2458
  ;}
2469
2459
  break;
2470
2460
 
2471
2461
  case 9:
2472
- #line 394 "pl_gram.y"
2462
+ #line 392 "pl_gram.y"
2473
2463
  {
2474
2464
  plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_COLUMN;
2475
2465
  ;}
2476
2466
  break;
2477
2467
 
2478
2468
  case 10:
2479
- #line 400 "pl_gram.y"
2469
+ #line 398 "pl_gram.y"
2480
2470
  {
2481
2471
  (yyval.str) = (yyvsp[(1) - (1)].word).ident;
2482
2472
  ;}
2483
2473
  break;
2484
2474
 
2485
2475
  case 11:
2486
- #line 404 "pl_gram.y"
2476
+ #line 402 "pl_gram.y"
2487
2477
  {
2488
2478
  (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword));
2489
2479
  ;}
2490
2480
  break;
2491
2481
 
2492
2482
  case 14:
2493
- #line 413 "pl_gram.y"
2483
+ #line 411 "pl_gram.y"
2494
2484
  {
2495
2485
  PLpgSQL_stmt_block *new;
2496
2486
 
@@ -2513,7 +2503,7 @@ yyreduce:
2513
2503
  break;
2514
2504
 
2515
2505
  case 15:
2516
- #line 436 "pl_gram.y"
2506
+ #line 434 "pl_gram.y"
2517
2507
  {
2518
2508
  /* done with decls, so resume identifier lookup */
2519
2509
  plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL;
@@ -2524,7 +2514,7 @@ yyreduce:
2524
2514
  break;
2525
2515
 
2526
2516
  case 16:
2527
- #line 444 "pl_gram.y"
2517
+ #line 442 "pl_gram.y"
2528
2518
  {
2529
2519
  plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL;
2530
2520
  (yyval.declhdr).label = (yyvsp[(1) - (2)].str);
@@ -2534,7 +2524,7 @@ yyreduce:
2534
2524
  break;
2535
2525
 
2536
2526
  case 17:
2537
- #line 451 "pl_gram.y"
2527
+ #line 449 "pl_gram.y"
2538
2528
  {
2539
2529
  plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL;
2540
2530
  (yyval.declhdr).label = (yyvsp[(1) - (3)].str);
@@ -2544,7 +2534,7 @@ yyreduce:
2544
2534
  break;
2545
2535
 
2546
2536
  case 18:
2547
- #line 460 "pl_gram.y"
2537
+ #line 458 "pl_gram.y"
2548
2538
  {
2549
2539
  /* Forget any variables created before block */
2550
2540
  plpgsql_add_initdatums(NULL);
@@ -2557,14 +2547,14 @@ yyreduce:
2557
2547
  break;
2558
2548
 
2559
2549
  case 22:
2560
- #line 477 "pl_gram.y"
2550
+ #line 475 "pl_gram.y"
2561
2551
  {
2562
2552
  /* We allow useless extra DECLAREs */
2563
2553
  ;}
2564
2554
  break;
2565
2555
 
2566
2556
  case 23:
2567
- #line 481 "pl_gram.y"
2557
+ #line 479 "pl_gram.y"
2568
2558
  {
2569
2559
  /*
2570
2560
  * Throw a helpful error if user tries to put block
@@ -2578,7 +2568,7 @@ yyreduce:
2578
2568
  break;
2579
2569
 
2580
2570
  case 24:
2581
- #line 494 "pl_gram.y"
2571
+ #line 492 "pl_gram.y"
2582
2572
  {
2583
2573
  PLpgSQL_variable *var;
2584
2574
 
@@ -2619,7 +2609,7 @@ yyreduce:
2619
2609
  break;
2620
2610
 
2621
2611
  case 25:
2622
- #line 532 "pl_gram.y"
2612
+ #line 530 "pl_gram.y"
2623
2613
  {
2624
2614
  plpgsql_ns_additem((yyvsp[(4) - (5)].nsitem)->itemtype,
2625
2615
  (yyvsp[(4) - (5)].nsitem)->itemno, (yyvsp[(1) - (5)].varname).name);
@@ -2627,18 +2617,14 @@ yyreduce:
2627
2617
  break;
2628
2618
 
2629
2619
  case 26:
2630
- #line 537 "pl_gram.y"
2620
+ #line 535 "pl_gram.y"
2631
2621
  { plpgsql_ns_push((yyvsp[(1) - (3)].varname).name, PLPGSQL_LABEL_OTHER); ;}
2632
2622
  break;
2633
2623
 
2634
2624
  case 27:
2635
- #line 539 "pl_gram.y"
2625
+ #line 537 "pl_gram.y"
2636
2626
  {
2637
2627
  PLpgSQL_var *new;
2638
- PLpgSQL_expr *curname_def;
2639
- char buf[NAMEDATALEN * 2 + 64];
2640
- char *cp1;
2641
- char *cp2;
2642
2628
 
2643
2629
  /* pop local namespace for cursor args */
2644
2630
  plpgsql_ns_pop();
@@ -2651,29 +2637,6 @@ yyreduce:
2651
2637
  NULL),
2652
2638
  true);
2653
2639
 
2654
- curname_def = palloc0(sizeof(PLpgSQL_expr));
2655
-
2656
- /* Note: refname has been truncated to NAMEDATALEN */
2657
- cp1 = new->refname;
2658
- cp2 = buf;
2659
- /*
2660
- * Don't trust standard_conforming_strings here;
2661
- * it might change before we use the string.
2662
- */
2663
- if (strchr(cp1, '\\') != NULL)
2664
- *cp2++ = ESCAPE_STRING_SYNTAX;
2665
- *cp2++ = '\'';
2666
- while (*cp1)
2667
- {
2668
- if (SQL_STR_DOUBLE(*cp1, true))
2669
- *cp2++ = *cp1;
2670
- *cp2++ = *cp1++;
2671
- }
2672
- strcpy(cp2, "'::pg_catalog.refcursor");
2673
- curname_def->query = pstrdup(buf);
2674
- curname_def->parseMode = RAW_PARSE_PLPGSQL_EXPR;
2675
- new->default_val = curname_def;
2676
-
2677
2640
  new->cursor_explicit_expr = (yyvsp[(7) - (7)].expr);
2678
2641
  if ((yyvsp[(5) - (7)].datum) == NULL)
2679
2642
  new->cursor_explicit_argrow = -1;
@@ -2684,42 +2647,42 @@ yyreduce:
2684
2647
  break;
2685
2648
 
2686
2649
  case 28:
2687
- #line 590 "pl_gram.y"
2650
+ #line 561 "pl_gram.y"
2688
2651
  {
2689
2652
  (yyval.ival) = 0;
2690
2653
  ;}
2691
2654
  break;
2692
2655
 
2693
2656
  case 29:
2694
- #line 594 "pl_gram.y"
2657
+ #line 565 "pl_gram.y"
2695
2658
  {
2696
2659
  (yyval.ival) = CURSOR_OPT_NO_SCROLL;
2697
2660
  ;}
2698
2661
  break;
2699
2662
 
2700
2663
  case 30:
2701
- #line 598 "pl_gram.y"
2664
+ #line 569 "pl_gram.y"
2702
2665
  {
2703
2666
  (yyval.ival) = CURSOR_OPT_SCROLL;
2704
2667
  ;}
2705
2668
  break;
2706
2669
 
2707
2670
  case 31:
2708
- #line 604 "pl_gram.y"
2671
+ #line 575 "pl_gram.y"
2709
2672
  {
2710
2673
  (yyval.expr) = read_sql_stmt();
2711
2674
  ;}
2712
2675
  break;
2713
2676
 
2714
2677
  case 32:
2715
- #line 610 "pl_gram.y"
2678
+ #line 581 "pl_gram.y"
2716
2679
  {
2717
2680
  (yyval.datum) = NULL;
2718
2681
  ;}
2719
2682
  break;
2720
2683
 
2721
2684
  case 33:
2722
- #line 614 "pl_gram.y"
2685
+ #line 585 "pl_gram.y"
2723
2686
  {
2724
2687
  PLpgSQL_row *new;
2725
2688
  int i;
@@ -2751,21 +2714,21 @@ yyreduce:
2751
2714
  break;
2752
2715
 
2753
2716
  case 34:
2754
- #line 645 "pl_gram.y"
2717
+ #line 616 "pl_gram.y"
2755
2718
  {
2756
2719
  (yyval.list) = list_make1((yyvsp[(1) - (1)].datum));
2757
2720
  ;}
2758
2721
  break;
2759
2722
 
2760
2723
  case 35:
2761
- #line 649 "pl_gram.y"
2724
+ #line 620 "pl_gram.y"
2762
2725
  {
2763
2726
  (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].datum));
2764
2727
  ;}
2765
2728
  break;
2766
2729
 
2767
2730
  case 36:
2768
- #line 655 "pl_gram.y"
2731
+ #line 626 "pl_gram.y"
2769
2732
  {
2770
2733
  (yyval.datum) = (PLpgSQL_datum *)
2771
2734
  plpgsql_build_variable((yyvsp[(1) - (2)].varname).name, (yyvsp[(1) - (2)].varname).lineno,
@@ -2774,7 +2737,7 @@ yyreduce:
2774
2737
  break;
2775
2738
 
2776
2739
  case 39:
2777
- #line 666 "pl_gram.y"
2740
+ #line 637 "pl_gram.y"
2778
2741
  {
2779
2742
  PLpgSQL_nsitem *nsi;
2780
2743
 
@@ -2792,7 +2755,7 @@ yyreduce:
2792
2755
  break;
2793
2756
 
2794
2757
  case 40:
2795
- #line 681 "pl_gram.y"
2758
+ #line 652 "pl_gram.y"
2796
2759
  {
2797
2760
  PLpgSQL_nsitem *nsi;
2798
2761
 
@@ -2810,7 +2773,7 @@ yyreduce:
2810
2773
  break;
2811
2774
 
2812
2775
  case 41:
2813
- #line 696 "pl_gram.y"
2776
+ #line 667 "pl_gram.y"
2814
2777
  {
2815
2778
  PLpgSQL_nsitem *nsi;
2816
2779
 
@@ -2839,7 +2802,7 @@ yyreduce:
2839
2802
  break;
2840
2803
 
2841
2804
  case 42:
2842
- #line 724 "pl_gram.y"
2805
+ #line 695 "pl_gram.y"
2843
2806
  {
2844
2807
  (yyval.varname).name = (yyvsp[(1) - (1)].word).ident;
2845
2808
  (yyval.varname).lineno = plpgsql_location_to_lineno((yylsp[(1) - (1)]));
@@ -2870,7 +2833,7 @@ yyreduce:
2870
2833
  break;
2871
2834
 
2872
2835
  case 43:
2873
- #line 752 "pl_gram.y"
2836
+ #line 723 "pl_gram.y"
2874
2837
  {
2875
2838
  (yyval.varname).name = pstrdup((yyvsp[(1) - (1)].keyword));
2876
2839
  (yyval.varname).lineno = plpgsql_location_to_lineno((yylsp[(1) - (1)]));
@@ -2901,17 +2864,17 @@ yyreduce:
2901
2864
  break;
2902
2865
 
2903
2866
  case 44:
2904
- #line 782 "pl_gram.y"
2867
+ #line 753 "pl_gram.y"
2905
2868
  { (yyval.boolean) = false; ;}
2906
2869
  break;
2907
2870
 
2908
2871
  case 45:
2909
- #line 784 "pl_gram.y"
2872
+ #line 755 "pl_gram.y"
2910
2873
  { (yyval.boolean) = true; ;}
2911
2874
  break;
2912
2875
 
2913
2876
  case 46:
2914
- #line 788 "pl_gram.y"
2877
+ #line 759 "pl_gram.y"
2915
2878
  {
2916
2879
  /*
2917
2880
  * If there's a lookahead token, read_datatype
@@ -2923,12 +2886,12 @@ yyreduce:
2923
2886
  break;
2924
2887
 
2925
2888
  case 47:
2926
- #line 799 "pl_gram.y"
2889
+ #line 770 "pl_gram.y"
2927
2890
  { (yyval.oid) = InvalidOid; ;}
2928
2891
  break;
2929
2892
 
2930
2893
  case 48:
2931
- #line 801 "pl_gram.y"
2894
+ #line 772 "pl_gram.y"
2932
2895
  {
2933
2896
  (yyval.oid) = get_collation_oid(list_make1(makeString((yyvsp[(2) - (2)].word).ident)),
2934
2897
  false);
@@ -2936,7 +2899,7 @@ yyreduce:
2936
2899
  break;
2937
2900
 
2938
2901
  case 49:
2939
- #line 806 "pl_gram.y"
2902
+ #line 777 "pl_gram.y"
2940
2903
  {
2941
2904
  (yyval.oid) = get_collation_oid(list_make1(makeString(pstrdup((yyvsp[(2) - (2)].keyword)))),
2942
2905
  false);
@@ -2944,41 +2907,41 @@ yyreduce:
2944
2907
  break;
2945
2908
 
2946
2909
  case 50:
2947
- #line 811 "pl_gram.y"
2910
+ #line 782 "pl_gram.y"
2948
2911
  {
2949
2912
  (yyval.oid) = get_collation_oid((yyvsp[(2) - (2)].cword).idents, false);
2950
2913
  ;}
2951
2914
  break;
2952
2915
 
2953
2916
  case 51:
2954
- #line 817 "pl_gram.y"
2917
+ #line 788 "pl_gram.y"
2955
2918
  { (yyval.boolean) = false; ;}
2956
2919
  break;
2957
2920
 
2958
2921
  case 52:
2959
- #line 819 "pl_gram.y"
2922
+ #line 790 "pl_gram.y"
2960
2923
  { (yyval.boolean) = true; ;}
2961
2924
  break;
2962
2925
 
2963
2926
  case 53:
2964
- #line 823 "pl_gram.y"
2927
+ #line 794 "pl_gram.y"
2965
2928
  { (yyval.expr) = NULL; ;}
2966
2929
  break;
2967
2930
 
2968
2931
  case 54:
2969
- #line 825 "pl_gram.y"
2932
+ #line 796 "pl_gram.y"
2970
2933
  {
2971
2934
  (yyval.expr) = read_sql_expression(';', ";");
2972
2935
  ;}
2973
2936
  break;
2974
2937
 
2975
2938
  case 59:
2976
- #line 844 "pl_gram.y"
2939
+ #line 815 "pl_gram.y"
2977
2940
  { (yyval.list) = NIL; ;}
2978
2941
  break;
2979
2942
 
2980
2943
  case 60:
2981
- #line 846 "pl_gram.y"
2944
+ #line 817 "pl_gram.y"
2982
2945
  {
2983
2946
  /* don't bother linking null statements into list */
2984
2947
  if ((yyvsp[(2) - (2)].stmt) == NULL)
@@ -2989,127 +2952,127 @@ yyreduce:
2989
2952
  break;
2990
2953
 
2991
2954
  case 61:
2992
- #line 856 "pl_gram.y"
2955
+ #line 827 "pl_gram.y"
2993
2956
  { (yyval.stmt) = (yyvsp[(1) - (2)].stmt); ;}
2994
2957
  break;
2995
2958
 
2996
2959
  case 62:
2997
- #line 858 "pl_gram.y"
2960
+ #line 829 "pl_gram.y"
2998
2961
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
2999
2962
  break;
3000
2963
 
3001
2964
  case 63:
3002
- #line 860 "pl_gram.y"
2965
+ #line 831 "pl_gram.y"
3003
2966
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3004
2967
  break;
3005
2968
 
3006
2969
  case 64:
3007
- #line 862 "pl_gram.y"
2970
+ #line 833 "pl_gram.y"
3008
2971
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3009
2972
  break;
3010
2973
 
3011
2974
  case 65:
3012
- #line 864 "pl_gram.y"
2975
+ #line 835 "pl_gram.y"
3013
2976
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3014
2977
  break;
3015
2978
 
3016
2979
  case 66:
3017
- #line 866 "pl_gram.y"
2980
+ #line 837 "pl_gram.y"
3018
2981
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3019
2982
  break;
3020
2983
 
3021
2984
  case 67:
3022
- #line 868 "pl_gram.y"
2985
+ #line 839 "pl_gram.y"
3023
2986
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3024
2987
  break;
3025
2988
 
3026
2989
  case 68:
3027
- #line 870 "pl_gram.y"
2990
+ #line 841 "pl_gram.y"
3028
2991
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3029
2992
  break;
3030
2993
 
3031
2994
  case 69:
3032
- #line 872 "pl_gram.y"
2995
+ #line 843 "pl_gram.y"
3033
2996
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3034
2997
  break;
3035
2998
 
3036
2999
  case 70:
3037
- #line 874 "pl_gram.y"
3000
+ #line 845 "pl_gram.y"
3038
3001
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3039
3002
  break;
3040
3003
 
3041
3004
  case 71:
3042
- #line 876 "pl_gram.y"
3005
+ #line 847 "pl_gram.y"
3043
3006
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3044
3007
  break;
3045
3008
 
3046
3009
  case 72:
3047
- #line 878 "pl_gram.y"
3010
+ #line 849 "pl_gram.y"
3048
3011
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3049
3012
  break;
3050
3013
 
3051
3014
  case 73:
3052
- #line 880 "pl_gram.y"
3015
+ #line 851 "pl_gram.y"
3053
3016
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3054
3017
  break;
3055
3018
 
3056
3019
  case 74:
3057
- #line 882 "pl_gram.y"
3020
+ #line 853 "pl_gram.y"
3058
3021
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3059
3022
  break;
3060
3023
 
3061
3024
  case 75:
3062
- #line 884 "pl_gram.y"
3025
+ #line 855 "pl_gram.y"
3063
3026
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3064
3027
  break;
3065
3028
 
3066
3029
  case 76:
3067
- #line 886 "pl_gram.y"
3030
+ #line 857 "pl_gram.y"
3068
3031
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3069
3032
  break;
3070
3033
 
3071
3034
  case 77:
3072
- #line 888 "pl_gram.y"
3035
+ #line 859 "pl_gram.y"
3073
3036
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3074
3037
  break;
3075
3038
 
3076
3039
  case 78:
3077
- #line 890 "pl_gram.y"
3040
+ #line 861 "pl_gram.y"
3078
3041
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3079
3042
  break;
3080
3043
 
3081
3044
  case 79:
3082
- #line 892 "pl_gram.y"
3045
+ #line 863 "pl_gram.y"
3083
3046
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3084
3047
  break;
3085
3048
 
3086
3049
  case 80:
3087
- #line 894 "pl_gram.y"
3050
+ #line 865 "pl_gram.y"
3088
3051
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3089
3052
  break;
3090
3053
 
3091
3054
  case 81:
3092
- #line 896 "pl_gram.y"
3055
+ #line 867 "pl_gram.y"
3093
3056
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3094
3057
  break;
3095
3058
 
3096
3059
  case 82:
3097
- #line 898 "pl_gram.y"
3060
+ #line 869 "pl_gram.y"
3098
3061
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3099
3062
  break;
3100
3063
 
3101
3064
  case 83:
3102
- #line 900 "pl_gram.y"
3065
+ #line 871 "pl_gram.y"
3103
3066
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3104
3067
  break;
3105
3068
 
3106
3069
  case 84:
3107
- #line 902 "pl_gram.y"
3070
+ #line 873 "pl_gram.y"
3108
3071
  { (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
3109
3072
  break;
3110
3073
 
3111
3074
  case 85:
3112
- #line 906 "pl_gram.y"
3075
+ #line 877 "pl_gram.y"
3113
3076
  {
3114
3077
  PLpgSQL_stmt_perform *new;
3115
3078
  int startloc;
@@ -3146,7 +3109,7 @@ yyreduce:
3146
3109
  break;
3147
3110
 
3148
3111
  case 86:
3149
- #line 942 "pl_gram.y"
3112
+ #line 913 "pl_gram.y"
3150
3113
  {
3151
3114
  PLpgSQL_stmt_call *new;
3152
3115
 
@@ -3167,7 +3130,7 @@ yyreduce:
3167
3130
  break;
3168
3131
 
3169
3132
  case 87:
3170
- #line 960 "pl_gram.y"
3133
+ #line 931 "pl_gram.y"
3171
3134
  {
3172
3135
  /* use the same structures as for CALL, for simplicity */
3173
3136
  PLpgSQL_stmt_call *new;
@@ -3189,7 +3152,7 @@ yyreduce:
3189
3152
  break;
3190
3153
 
3191
3154
  case 88:
3192
- #line 981 "pl_gram.y"
3155
+ #line 952 "pl_gram.y"
3193
3156
  {
3194
3157
  PLpgSQL_stmt_assign *new;
3195
3158
  RawParseMode pmode;
@@ -3229,7 +3192,7 @@ yyreduce:
3229
3192
  break;
3230
3193
 
3231
3194
  case 89:
3232
- #line 1020 "pl_gram.y"
3195
+ #line 991 "pl_gram.y"
3233
3196
  {
3234
3197
  PLpgSQL_stmt_getdiag *new;
3235
3198
  ListCell *lc;
@@ -3252,6 +3215,7 @@ yyreduce:
3252
3215
  {
3253
3216
  /* these fields are disallowed in stacked case */
3254
3217
  case PLPGSQL_GETDIAG_ROW_COUNT:
3218
+ case PLPGSQL_GETDIAG_ROUTINE_OID:
3255
3219
  if (new->is_stacked)
3256
3220
  ereport(ERROR,
3257
3221
  (errcode(ERRCODE_SYNTAX_ERROR),
@@ -3292,42 +3256,42 @@ yyreduce:
3292
3256
  break;
3293
3257
 
3294
3258
  case 90:
3295
- #line 1082 "pl_gram.y"
3259
+ #line 1054 "pl_gram.y"
3296
3260
  {
3297
3261
  (yyval.boolean) = false;
3298
3262
  ;}
3299
3263
  break;
3300
3264
 
3301
3265
  case 91:
3302
- #line 1086 "pl_gram.y"
3266
+ #line 1058 "pl_gram.y"
3303
3267
  {
3304
3268
  (yyval.boolean) = false;
3305
3269
  ;}
3306
3270
  break;
3307
3271
 
3308
3272
  case 92:
3309
- #line 1090 "pl_gram.y"
3273
+ #line 1062 "pl_gram.y"
3310
3274
  {
3311
3275
  (yyval.boolean) = true;
3312
3276
  ;}
3313
3277
  break;
3314
3278
 
3315
3279
  case 93:
3316
- #line 1096 "pl_gram.y"
3280
+ #line 1068 "pl_gram.y"
3317
3281
  {
3318
3282
  (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].diagitem));
3319
3283
  ;}
3320
3284
  break;
3321
3285
 
3322
3286
  case 94:
3323
- #line 1100 "pl_gram.y"
3287
+ #line 1072 "pl_gram.y"
3324
3288
  {
3325
3289
  (yyval.list) = list_make1((yyvsp[(1) - (1)].diagitem));
3326
3290
  ;}
3327
3291
  break;
3328
3292
 
3329
3293
  case 95:
3330
- #line 1106 "pl_gram.y"
3294
+ #line 1078 "pl_gram.y"
3331
3295
  {
3332
3296
  PLpgSQL_diag_item *new;
3333
3297
 
@@ -3340,13 +3304,16 @@ yyreduce:
3340
3304
  break;
3341
3305
 
3342
3306
  case 96:
3343
- #line 1118 "pl_gram.y"
3307
+ #line 1090 "pl_gram.y"
3344
3308
  {
3345
3309
  int tok = yylex();
3346
3310
 
3347
3311
  if (tok_is_keyword(tok, &yylval,
3348
3312
  K_ROW_COUNT, "row_count"))
3349
3313
  (yyval.ival) = PLPGSQL_GETDIAG_ROW_COUNT;
3314
+ else if (tok_is_keyword(tok, &yylval,
3315
+ K_PG_ROUTINE_OID, "pg_routine_oid"))
3316
+ (yyval.ival) = PLPGSQL_GETDIAG_ROUTINE_OID;
3350
3317
  else if (tok_is_keyword(tok, &yylval,
3351
3318
  K_PG_CONTEXT, "pg_context"))
3352
3319
  (yyval.ival) = PLPGSQL_GETDIAG_CONTEXT;
@@ -3386,7 +3353,7 @@ yyreduce:
3386
3353
  break;
3387
3354
 
3388
3355
  case 97:
3389
- #line 1163 "pl_gram.y"
3356
+ #line 1138 "pl_gram.y"
3390
3357
  {
3391
3358
  /*
3392
3359
  * In principle we should support a getdiag_target
@@ -3407,7 +3374,7 @@ yyreduce:
3407
3374
  break;
3408
3375
 
3409
3376
  case 98:
3410
- #line 1181 "pl_gram.y"
3377
+ #line 1156 "pl_gram.y"
3411
3378
  {
3412
3379
  /* just to give a better message than "syntax error" */
3413
3380
  word_is_not_variable(&((yyvsp[(1) - (1)].word)), (yylsp[(1) - (1)]));
@@ -3415,7 +3382,7 @@ yyreduce:
3415
3382
  break;
3416
3383
 
3417
3384
  case 99:
3418
- #line 1186 "pl_gram.y"
3385
+ #line 1161 "pl_gram.y"
3419
3386
  {
3420
3387
  /* just to give a better message than "syntax error" */
3421
3388
  cword_is_not_variable(&((yyvsp[(1) - (1)].cword)), (yylsp[(1) - (1)]));
@@ -3423,7 +3390,7 @@ yyreduce:
3423
3390
  break;
3424
3391
 
3425
3392
  case 100:
3426
- #line 1193 "pl_gram.y"
3393
+ #line 1168 "pl_gram.y"
3427
3394
  {
3428
3395
  PLpgSQL_stmt_if *new;
3429
3396
 
@@ -3441,14 +3408,14 @@ yyreduce:
3441
3408
  break;
3442
3409
 
3443
3410
  case 101:
3444
- #line 1210 "pl_gram.y"
3411
+ #line 1185 "pl_gram.y"
3445
3412
  {
3446
3413
  (yyval.list) = NIL;
3447
3414
  ;}
3448
3415
  break;
3449
3416
 
3450
3417
  case 102:
3451
- #line 1214 "pl_gram.y"
3418
+ #line 1189 "pl_gram.y"
3452
3419
  {
3453
3420
  PLpgSQL_if_elsif *new;
3454
3421
 
@@ -3462,28 +3429,28 @@ yyreduce:
3462
3429
  break;
3463
3430
 
3464
3431
  case 103:
3465
- #line 1227 "pl_gram.y"
3432
+ #line 1202 "pl_gram.y"
3466
3433
  {
3467
3434
  (yyval.list) = NIL;
3468
3435
  ;}
3469
3436
  break;
3470
3437
 
3471
3438
  case 104:
3472
- #line 1231 "pl_gram.y"
3439
+ #line 1206 "pl_gram.y"
3473
3440
  {
3474
3441
  (yyval.list) = (yyvsp[(2) - (2)].list);
3475
3442
  ;}
3476
3443
  break;
3477
3444
 
3478
3445
  case 105:
3479
- #line 1237 "pl_gram.y"
3446
+ #line 1212 "pl_gram.y"
3480
3447
  {
3481
3448
  (yyval.stmt) = make_case((yylsp[(1) - (7)]), (yyvsp[(2) - (7)].expr), (yyvsp[(3) - (7)].list), (yyvsp[(4) - (7)].list));
3482
3449
  ;}
3483
3450
  break;
3484
3451
 
3485
3452
  case 106:
3486
- #line 1243 "pl_gram.y"
3453
+ #line 1218 "pl_gram.y"
3487
3454
  {
3488
3455
  PLpgSQL_expr *expr = NULL;
3489
3456
  int tok = yylex();
@@ -3499,21 +3466,21 @@ yyreduce:
3499
3466
  break;
3500
3467
 
3501
3468
  case 107:
3502
- #line 1258 "pl_gram.y"
3469
+ #line 1233 "pl_gram.y"
3503
3470
  {
3504
3471
  (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].casewhen));
3505
3472
  ;}
3506
3473
  break;
3507
3474
 
3508
3475
  case 108:
3509
- #line 1262 "pl_gram.y"
3476
+ #line 1237 "pl_gram.y"
3510
3477
  {
3511
3478
  (yyval.list) = list_make1((yyvsp[(1) - (1)].casewhen));
3512
3479
  ;}
3513
3480
  break;
3514
3481
 
3515
3482
  case 109:
3516
- #line 1268 "pl_gram.y"
3483
+ #line 1243 "pl_gram.y"
3517
3484
  {
3518
3485
  PLpgSQL_case_when *new = palloc(sizeof(PLpgSQL_case_when));
3519
3486
 
@@ -3525,14 +3492,14 @@ yyreduce:
3525
3492
  break;
3526
3493
 
3527
3494
  case 110:
3528
- #line 1279 "pl_gram.y"
3495
+ #line 1254 "pl_gram.y"
3529
3496
  {
3530
3497
  (yyval.list) = NIL;
3531
3498
  ;}
3532
3499
  break;
3533
3500
 
3534
3501
  case 111:
3535
- #line 1283 "pl_gram.y"
3502
+ #line 1258 "pl_gram.y"
3536
3503
  {
3537
3504
  /*
3538
3505
  * proc_sect could return an empty list, but we
@@ -3548,7 +3515,7 @@ yyreduce:
3548
3515
  break;
3549
3516
 
3550
3517
  case 112:
3551
- #line 1298 "pl_gram.y"
3518
+ #line 1273 "pl_gram.y"
3552
3519
  {
3553
3520
  PLpgSQL_stmt_loop *new;
3554
3521
 
@@ -3567,7 +3534,7 @@ yyreduce:
3567
3534
  break;
3568
3535
 
3569
3536
  case 113:
3570
- #line 1316 "pl_gram.y"
3537
+ #line 1291 "pl_gram.y"
3571
3538
  {
3572
3539
  PLpgSQL_stmt_while *new;
3573
3540
 
@@ -3587,7 +3554,7 @@ yyreduce:
3587
3554
  break;
3588
3555
 
3589
3556
  case 114:
3590
- #line 1335 "pl_gram.y"
3557
+ #line 1310 "pl_gram.y"
3591
3558
  {
3592
3559
  /* This runs after we've scanned the loop body */
3593
3560
  if ((yyvsp[(3) - (4)].stmt)->cmd_type == PLPGSQL_STMT_FORI)
@@ -3622,7 +3589,7 @@ yyreduce:
3622
3589
  break;
3623
3590
 
3624
3591
  case 115:
3625
- #line 1369 "pl_gram.y"
3592
+ #line 1344 "pl_gram.y"
3626
3593
  {
3627
3594
  int tok = yylex();
3628
3595
  int tokloc = yylloc;
@@ -3864,7 +3831,7 @@ yyreduce:
3864
3831
  break;
3865
3832
 
3866
3833
  case 116:
3867
- #line 1628 "pl_gram.y"
3834
+ #line 1603 "pl_gram.y"
3868
3835
  {
3869
3836
  (yyval.forvariable).name = NameOfDatum(&((yyvsp[(1) - (1)].wdatum)));
3870
3837
  (yyval.forvariable).lineno = plpgsql_location_to_lineno((yylsp[(1) - (1)]));
@@ -3893,7 +3860,7 @@ yyreduce:
3893
3860
  break;
3894
3861
 
3895
3862
  case 117:
3896
- #line 1654 "pl_gram.y"
3863
+ #line 1629 "pl_gram.y"
3897
3864
  {
3898
3865
  int tok;
3899
3866
 
@@ -3910,7 +3877,7 @@ yyreduce:
3910
3877
  break;
3911
3878
 
3912
3879
  case 118:
3913
- #line 1668 "pl_gram.y"
3880
+ #line 1643 "pl_gram.y"
3914
3881
  {
3915
3882
  /* just to give a better message than "syntax error" */
3916
3883
  cword_is_not_variable(&((yyvsp[(1) - (1)].cword)), (yylsp[(1) - (1)]));
@@ -3918,7 +3885,7 @@ yyreduce:
3918
3885
  break;
3919
3886
 
3920
3887
  case 119:
3921
- #line 1675 "pl_gram.y"
3888
+ #line 1650 "pl_gram.y"
3922
3889
  {
3923
3890
  PLpgSQL_stmt_foreach_a *new;
3924
3891
 
@@ -3957,21 +3924,21 @@ yyreduce:
3957
3924
  break;
3958
3925
 
3959
3926
  case 120:
3960
- #line 1713 "pl_gram.y"
3927
+ #line 1688 "pl_gram.y"
3961
3928
  {
3962
3929
  (yyval.ival) = 0;
3963
3930
  ;}
3964
3931
  break;
3965
3932
 
3966
3933
  case 121:
3967
- #line 1717 "pl_gram.y"
3934
+ #line 1692 "pl_gram.y"
3968
3935
  {
3969
3936
  (yyval.ival) = (yyvsp[(2) - (2)].ival);
3970
3937
  ;}
3971
3938
  break;
3972
3939
 
3973
3940
  case 122:
3974
- #line 1723 "pl_gram.y"
3941
+ #line 1698 "pl_gram.y"
3975
3942
  {
3976
3943
  PLpgSQL_stmt_exit *new;
3977
3944
 
@@ -4025,21 +3992,21 @@ yyreduce:
4025
3992
  break;
4026
3993
 
4027
3994
  case 123:
4028
- #line 1776 "pl_gram.y"
3995
+ #line 1751 "pl_gram.y"
4029
3996
  {
4030
3997
  (yyval.boolean) = true;
4031
3998
  ;}
4032
3999
  break;
4033
4000
 
4034
4001
  case 124:
4035
- #line 1780 "pl_gram.y"
4002
+ #line 1755 "pl_gram.y"
4036
4003
  {
4037
4004
  (yyval.boolean) = false;
4038
4005
  ;}
4039
4006
  break;
4040
4007
 
4041
4008
  case 125:
4042
- #line 1786 "pl_gram.y"
4009
+ #line 1761 "pl_gram.y"
4043
4010
  {
4044
4011
  int tok;
4045
4012
 
@@ -4066,7 +4033,7 @@ yyreduce:
4066
4033
  break;
4067
4034
 
4068
4035
  case 126:
4069
- #line 1812 "pl_gram.y"
4036
+ #line 1787 "pl_gram.y"
4070
4037
  {
4071
4038
  PLpgSQL_stmt_raise *new;
4072
4039
  int tok;
@@ -4212,7 +4179,7 @@ yyreduce:
4212
4179
  break;
4213
4180
 
4214
4181
  case 127:
4215
- #line 1957 "pl_gram.y"
4182
+ #line 1932 "pl_gram.y"
4216
4183
  {
4217
4184
  PLpgSQL_stmt_assert *new;
4218
4185
  int tok;
@@ -4237,7 +4204,7 @@ yyreduce:
4237
4204
  break;
4238
4205
 
4239
4206
  case 128:
4240
- #line 1981 "pl_gram.y"
4207
+ #line 1956 "pl_gram.y"
4241
4208
  {
4242
4209
  (yyval.loop_body).stmts = (yyvsp[(1) - (5)].list);
4243
4210
  (yyval.loop_body).end_label = (yyvsp[(4) - (5)].str);
@@ -4246,28 +4213,28 @@ yyreduce:
4246
4213
  break;
4247
4214
 
4248
4215
  case 129:
4249
- #line 1999 "pl_gram.y"
4216
+ #line 1974 "pl_gram.y"
4250
4217
  {
4251
4218
  (yyval.stmt) = make_execsql_stmt(K_IMPORT, (yylsp[(1) - (1)]));
4252
4219
  ;}
4253
4220
  break;
4254
4221
 
4255
4222
  case 130:
4256
- #line 2003 "pl_gram.y"
4223
+ #line 1978 "pl_gram.y"
4257
4224
  {
4258
4225
  (yyval.stmt) = make_execsql_stmt(K_INSERT, (yylsp[(1) - (1)]));
4259
4226
  ;}
4260
4227
  break;
4261
4228
 
4262
4229
  case 131:
4263
- #line 2007 "pl_gram.y"
4230
+ #line 1982 "pl_gram.y"
4264
4231
  {
4265
4232
  (yyval.stmt) = make_execsql_stmt(K_MERGE, (yylsp[(1) - (1)]));
4266
4233
  ;}
4267
4234
  break;
4268
4235
 
4269
4236
  case 132:
4270
- #line 2011 "pl_gram.y"
4237
+ #line 1986 "pl_gram.y"
4271
4238
  {
4272
4239
  int tok;
4273
4240
 
@@ -4281,7 +4248,7 @@ yyreduce:
4281
4248
  break;
4282
4249
 
4283
4250
  case 133:
4284
- #line 2022 "pl_gram.y"
4251
+ #line 1997 "pl_gram.y"
4285
4252
  {
4286
4253
  int tok;
4287
4254
 
@@ -4295,7 +4262,7 @@ yyreduce:
4295
4262
  break;
4296
4263
 
4297
4264
  case 134:
4298
- #line 2035 "pl_gram.y"
4265
+ #line 2010 "pl_gram.y"
4299
4266
  {
4300
4267
  PLpgSQL_stmt_dynexecute *new;
4301
4268
  PLpgSQL_expr *expr;
@@ -4359,7 +4326,7 @@ yyreduce:
4359
4326
  break;
4360
4327
 
4361
4328
  case 135:
4362
- #line 2099 "pl_gram.y"
4329
+ #line 2074 "pl_gram.y"
4363
4330
  {
4364
4331
  PLpgSQL_stmt_open *new;
4365
4332
  int tok;
@@ -4438,7 +4405,7 @@ yyreduce:
4438
4405
  break;
4439
4406
 
4440
4407
  case 136:
4441
- #line 2177 "pl_gram.y"
4408
+ #line 2152 "pl_gram.y"
4442
4409
  {
4443
4410
  PLpgSQL_stmt_fetch *fetch = (yyvsp[(2) - (4)].fetch);
4444
4411
  PLpgSQL_variable *target;
@@ -4469,7 +4436,7 @@ yyreduce:
4469
4436
  break;
4470
4437
 
4471
4438
  case 137:
4472
- #line 2207 "pl_gram.y"
4439
+ #line 2182 "pl_gram.y"
4473
4440
  {
4474
4441
  PLpgSQL_stmt_fetch *fetch = (yyvsp[(2) - (4)].fetch);
4475
4442
 
@@ -4482,14 +4449,14 @@ yyreduce:
4482
4449
  break;
4483
4450
 
4484
4451
  case 138:
4485
- #line 2219 "pl_gram.y"
4452
+ #line 2194 "pl_gram.y"
4486
4453
  {
4487
4454
  (yyval.fetch) = read_fetch_direction();
4488
4455
  ;}
4489
4456
  break;
4490
4457
 
4491
4458
  case 139:
4492
- #line 2225 "pl_gram.y"
4459
+ #line 2200 "pl_gram.y"
4493
4460
  {
4494
4461
  PLpgSQL_stmt_close *new;
4495
4462
 
@@ -4504,7 +4471,7 @@ yyreduce:
4504
4471
  break;
4505
4472
 
4506
4473
  case 140:
4507
- #line 2239 "pl_gram.y"
4474
+ #line 2214 "pl_gram.y"
4508
4475
  {
4509
4476
  /* We do not bother building a node for NULL */
4510
4477
  (yyval.stmt) = NULL;
@@ -4512,7 +4479,7 @@ yyreduce:
4512
4479
  break;
4513
4480
 
4514
4481
  case 141:
4515
- #line 2246 "pl_gram.y"
4482
+ #line 2221 "pl_gram.y"
4516
4483
  {
4517
4484
  PLpgSQL_stmt_commit *new;
4518
4485
 
@@ -4527,7 +4494,7 @@ yyreduce:
4527
4494
  break;
4528
4495
 
4529
4496
  case 142:
4530
- #line 2260 "pl_gram.y"
4497
+ #line 2235 "pl_gram.y"
4531
4498
  {
4532
4499
  PLpgSQL_stmt_rollback *new;
4533
4500
 
@@ -4542,22 +4509,22 @@ yyreduce:
4542
4509
  break;
4543
4510
 
4544
4511
  case 143:
4545
- #line 2274 "pl_gram.y"
4512
+ #line 2249 "pl_gram.y"
4546
4513
  { (yyval.ival) = true; ;}
4547
4514
  break;
4548
4515
 
4549
4516
  case 144:
4550
- #line 2275 "pl_gram.y"
4517
+ #line 2250 "pl_gram.y"
4551
4518
  { (yyval.ival) = false; ;}
4552
4519
  break;
4553
4520
 
4554
4521
  case 145:
4555
- #line 2276 "pl_gram.y"
4522
+ #line 2251 "pl_gram.y"
4556
4523
  { (yyval.ival) = false; ;}
4557
4524
  break;
4558
4525
 
4559
4526
  case 146:
4560
- #line 2281 "pl_gram.y"
4527
+ #line 2256 "pl_gram.y"
4561
4528
  {
4562
4529
  /*
4563
4530
  * In principle we should support a cursor_variable
@@ -4582,7 +4549,7 @@ yyreduce:
4582
4549
  break;
4583
4550
 
4584
4551
  case 147:
4585
- #line 2303 "pl_gram.y"
4552
+ #line 2278 "pl_gram.y"
4586
4553
  {
4587
4554
  /* just to give a better message than "syntax error" */
4588
4555
  word_is_not_variable(&((yyvsp[(1) - (1)].word)), (yylsp[(1) - (1)]));
@@ -4590,7 +4557,7 @@ yyreduce:
4590
4557
  break;
4591
4558
 
4592
4559
  case 148:
4593
- #line 2308 "pl_gram.y"
4560
+ #line 2283 "pl_gram.y"
4594
4561
  {
4595
4562
  /* just to give a better message than "syntax error" */
4596
4563
  cword_is_not_variable(&((yyvsp[(1) - (1)].cword)), (yylsp[(1) - (1)]));
@@ -4598,12 +4565,12 @@ yyreduce:
4598
4565
  break;
4599
4566
 
4600
4567
  case 149:
4601
- #line 2315 "pl_gram.y"
4568
+ #line 2290 "pl_gram.y"
4602
4569
  { (yyval.exception_block) = NULL; ;}
4603
4570
  break;
4604
4571
 
4605
4572
  case 150:
4606
- #line 2317 "pl_gram.y"
4573
+ #line 2292 "pl_gram.y"
4607
4574
  {
4608
4575
  /*
4609
4576
  * We use a mid-rule action to add these
@@ -4639,7 +4606,7 @@ yyreduce:
4639
4606
  break;
4640
4607
 
4641
4608
  case 151:
4642
- #line 2350 "pl_gram.y"
4609
+ #line 2325 "pl_gram.y"
4643
4610
  {
4644
4611
  PLpgSQL_exception_block *new = (yyvsp[(2) - (3)].exception_block);
4645
4612
  new->exc_list = (yyvsp[(3) - (3)].list);
@@ -4649,21 +4616,21 @@ yyreduce:
4649
4616
  break;
4650
4617
 
4651
4618
  case 152:
4652
- #line 2359 "pl_gram.y"
4619
+ #line 2334 "pl_gram.y"
4653
4620
  {
4654
4621
  (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].exception));
4655
4622
  ;}
4656
4623
  break;
4657
4624
 
4658
4625
  case 153:
4659
- #line 2363 "pl_gram.y"
4626
+ #line 2338 "pl_gram.y"
4660
4627
  {
4661
4628
  (yyval.list) = list_make1((yyvsp[(1) - (1)].exception));
4662
4629
  ;}
4663
4630
  break;
4664
4631
 
4665
4632
  case 154:
4666
- #line 2369 "pl_gram.y"
4633
+ #line 2344 "pl_gram.y"
4667
4634
  {
4668
4635
  PLpgSQL_exception *new;
4669
4636
 
@@ -4677,7 +4644,7 @@ yyreduce:
4677
4644
  break;
4678
4645
 
4679
4646
  case 155:
4680
- #line 2382 "pl_gram.y"
4647
+ #line 2357 "pl_gram.y"
4681
4648
  {
4682
4649
  PLpgSQL_condition *old;
4683
4650
 
@@ -4689,14 +4656,14 @@ yyreduce:
4689
4656
  break;
4690
4657
 
4691
4658
  case 156:
4692
- #line 2391 "pl_gram.y"
4659
+ #line 2366 "pl_gram.y"
4693
4660
  {
4694
4661
  (yyval.condition) = (yyvsp[(1) - (1)].condition);
4695
4662
  ;}
4696
4663
  break;
4697
4664
 
4698
4665
  case 157:
4699
- #line 2397 "pl_gram.y"
4666
+ #line 2372 "pl_gram.y"
4700
4667
  {
4701
4668
  if (strcmp((yyvsp[(1) - (1)].str), "sqlstate") != 0)
4702
4669
  {
@@ -4733,22 +4700,22 @@ yyreduce:
4733
4700
  break;
4734
4701
 
4735
4702
  case 158:
4736
- #line 2433 "pl_gram.y"
4703
+ #line 2408 "pl_gram.y"
4737
4704
  { (yyval.expr) = read_sql_expression(';', ";"); ;}
4738
4705
  break;
4739
4706
 
4740
4707
  case 159:
4741
- #line 2437 "pl_gram.y"
4708
+ #line 2412 "pl_gram.y"
4742
4709
  { (yyval.expr) = read_sql_expression(K_THEN, "THEN"); ;}
4743
4710
  break;
4744
4711
 
4745
4712
  case 160:
4746
- #line 2441 "pl_gram.y"
4713
+ #line 2416 "pl_gram.y"
4747
4714
  { (yyval.expr) = read_sql_expression(K_LOOP, "LOOP"); ;}
4748
4715
  break;
4749
4716
 
4750
4717
  case 161:
4751
- #line 2445 "pl_gram.y"
4718
+ #line 2420 "pl_gram.y"
4752
4719
  {
4753
4720
  plpgsql_ns_push(NULL, PLPGSQL_LABEL_BLOCK);
4754
4721
  (yyval.str) = NULL;
@@ -4756,7 +4723,7 @@ yyreduce:
4756
4723
  break;
4757
4724
 
4758
4725
  case 162:
4759
- #line 2450 "pl_gram.y"
4726
+ #line 2425 "pl_gram.y"
4760
4727
  {
4761
4728
  plpgsql_ns_push((yyvsp[(2) - (3)].str), PLPGSQL_LABEL_BLOCK);
4762
4729
  (yyval.str) = (yyvsp[(2) - (3)].str);
@@ -4764,7 +4731,7 @@ yyreduce:
4764
4731
  break;
4765
4732
 
4766
4733
  case 163:
4767
- #line 2457 "pl_gram.y"
4734
+ #line 2432 "pl_gram.y"
4768
4735
  {
4769
4736
  plpgsql_ns_push(NULL, PLPGSQL_LABEL_LOOP);
4770
4737
  (yyval.str) = NULL;
@@ -4772,7 +4739,7 @@ yyreduce:
4772
4739
  break;
4773
4740
 
4774
4741
  case 164:
4775
- #line 2462 "pl_gram.y"
4742
+ #line 2437 "pl_gram.y"
4776
4743
  {
4777
4744
  plpgsql_ns_push((yyvsp[(2) - (3)].str), PLPGSQL_LABEL_LOOP);
4778
4745
  (yyval.str) = (yyvsp[(2) - (3)].str);
@@ -4780,14 +4747,14 @@ yyreduce:
4780
4747
  break;
4781
4748
 
4782
4749
  case 165:
4783
- #line 2469 "pl_gram.y"
4750
+ #line 2444 "pl_gram.y"
4784
4751
  {
4785
4752
  (yyval.str) = NULL;
4786
4753
  ;}
4787
4754
  break;
4788
4755
 
4789
4756
  case 166:
4790
- #line 2473 "pl_gram.y"
4757
+ #line 2448 "pl_gram.y"
4791
4758
  {
4792
4759
  /* label validity will be checked by outer production */
4793
4760
  (yyval.str) = (yyvsp[(1) - (1)].str);
@@ -4795,31 +4762,31 @@ yyreduce:
4795
4762
  break;
4796
4763
 
4797
4764
  case 167:
4798
- #line 2480 "pl_gram.y"
4765
+ #line 2455 "pl_gram.y"
4799
4766
  { (yyval.expr) = NULL; ;}
4800
4767
  break;
4801
4768
 
4802
4769
  case 168:
4803
- #line 2482 "pl_gram.y"
4770
+ #line 2457 "pl_gram.y"
4804
4771
  { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;}
4805
4772
  break;
4806
4773
 
4807
4774
  case 169:
4808
- #line 2489 "pl_gram.y"
4775
+ #line 2464 "pl_gram.y"
4809
4776
  {
4810
4777
  (yyval.str) = (yyvsp[(1) - (1)].word).ident;
4811
4778
  ;}
4812
4779
  break;
4813
4780
 
4814
4781
  case 170:
4815
- #line 2493 "pl_gram.y"
4782
+ #line 2468 "pl_gram.y"
4816
4783
  {
4817
4784
  (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword));
4818
4785
  ;}
4819
4786
  break;
4820
4787
 
4821
4788
  case 171:
4822
- #line 2497 "pl_gram.y"
4789
+ #line 2472 "pl_gram.y"
4823
4790
  {
4824
4791
  if ((yyvsp[(1) - (1)].wdatum).ident == NULL) /* composite name not OK */
4825
4792
  yyerror("syntax error");
@@ -4829,7 +4796,7 @@ yyreduce:
4829
4796
 
4830
4797
 
4831
4798
  /* Line 1267 of yacc.c. */
4832
- #line 4780 "pl_gram.c"
4799
+ #line 4747 "pl_gram.c"
4833
4800
  default: break;
4834
4801
  }
4835
4802
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5049,7 +5016,7 @@ yyreturn:
5049
5016
  }
5050
5017
 
5051
5018
 
5052
- #line 2588 "pl_gram.y"
5019
+ #line 2564 "pl_gram.y"
5053
5020
 
5054
5021
 
5055
5022
  /*