pg_query 6.1.0 → 6.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -1
  3. data/README.md +1 -1
  4. data/Rakefile +3 -2
  5. data/ext/pg_query/extconf.rb +2 -2
  6. data/ext/pg_query/include/pg_query.h +32 -2
  7. data/ext/pg_query/include/postgres/access/amapi.h +1 -1
  8. data/ext/pg_query/include/postgres/access/slru.h +1 -1
  9. data/ext/pg_query/include/postgres/access/tableam.h +11 -4
  10. data/ext/pg_query/include/postgres/access/xlog.h +1 -0
  11. data/ext/pg_query/include/postgres/access/xlogdefs.h +2 -1
  12. data/ext/pg_query/include/postgres/commands/defrem.h +1 -1
  13. data/ext/pg_query/include/postgres/commands/trigger.h +18 -0
  14. data/ext/pg_query/include/postgres/executor/executor.h +4 -0
  15. data/ext/pg_query/include/postgres/mb/pg_wchar.h +2 -0
  16. data/ext/pg_query/include/postgres/miscadmin.h +2 -1
  17. data/ext/pg_query/include/postgres/nodes/execnodes.h +6 -8
  18. data/ext/pg_query/include/postgres/nodes/pathnodes.h +1 -2
  19. data/ext/pg_query/include/postgres/pg_config.h +10 -9
  20. data/ext/pg_query/include/postgres/pg_config_manual.h +2 -0
  21. data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +10 -2
  22. data/ext/pg_query/include/postgres/port/pg_iovec.h +9 -3
  23. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +29 -9
  24. data/ext/pg_query/include/postgres/replication/slot.h +2 -0
  25. data/ext/pg_query/include/postgres/utils/elog.h +1 -0
  26. data/ext/pg_query/include/postgres/utils/guc.h +1 -1
  27. data/ext/pg_query/include/postgres/utils/guc_hooks.h +0 -2
  28. data/ext/pg_query/include/postgres/utils/pg_locale.h +5 -0
  29. data/ext/pg_query/include/postgres_deparse.h +34 -0
  30. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +673 -516
  31. data/ext/pg_query/pg_query.pb-c.c +488 -0
  32. data/ext/pg_query/pg_query_deparse.c +148 -15
  33. data/ext/pg_query/pg_query_internal.h +9 -8
  34. data/ext/pg_query/pg_query_is_utility_stmt.c +70 -0
  35. data/ext/pg_query/pg_query_normalize.c +3 -0
  36. data/ext/pg_query/pg_query_raw_tree_walker_supports.c +117 -0
  37. data/ext/pg_query/pg_query_ruby.c +150 -0
  38. data/ext/pg_query/pg_query_summary.c +941 -0
  39. data/ext/pg_query/pg_query_summary.h +109 -0
  40. data/ext/pg_query/pg_query_summary_statement_type.c +797 -0
  41. data/ext/pg_query/pg_query_summary_truncate.c +530 -0
  42. data/ext/pg_query/postgres_deparse.c +4481 -3870
  43. data/ext/pg_query/src_backend_catalog_namespace.c +29 -0
  44. data/ext/pg_query/src_backend_nodes_bitmapset.c +84 -1
  45. data/ext/pg_query/src_backend_nodes_list.c +60 -1
  46. data/ext/pg_query/src_backend_parser_gram.c +739 -732
  47. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
  48. data/ext/pg_query/src_backend_utils_error_elog.c +11 -0
  49. data/ext/pg_query/src_backend_utils_mb_mbutils.c +43 -4
  50. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +22 -7
  51. data/ext/pg_query/src_backend_utils_mmgr_aset.c +3 -3
  52. data/ext/pg_query/src_backend_utils_mmgr_bump.c +1 -1
  53. data/ext/pg_query/src_common_stringinfo.c +20 -0
  54. data/ext/pg_query/src_common_wchar.c +46 -6
  55. data/lib/pg_query/deparse.rb +29 -8
  56. data/lib/pg_query/parse.rb +19 -0
  57. data/lib/pg_query/pg_query_pb.rb +7 -2
  58. data/lib/pg_query/split.rb +20 -0
  59. data/lib/pg_query/treewalker.rb +9 -7
  60. data/lib/pg_query/version.rb +1 -1
  61. data/lib/pg_query.rb +1 -0
  62. metadata +10 -3
  63. data/ext/pg_query/postgres_deparse.h +0 -9
@@ -3549,160 +3549,160 @@ static const yytype_uint16 yyrline[] =
3549
3549
  13827, 13834, 13845, 13846, 13859, 13863, 13871, 13885, 13899, 13900,
3550
3550
  13915, 13926, 13939, 13944, 13945, 13948, 13949, 13952, 13953, 13958,
3551
3551
  13959, 13964, 13965, 13974, 13979, 13980, 13984, 13988, 13994, 14019,
3552
- 14030, 14044, 14045, 14049, 14063, 14120, 14134, 14136, 14141, 14143,
3553
- 14145, 14147, 14149, 14154, 14156, 14161, 14169, 14180, 14208, 14209,
3554
- 14213, 14215, 14220, 14229, 14249, 14269, 14287, 14299, 14314, 14315,
3555
- 14319, 14322, 14335, 14340, 14347, 14352, 14358, 14363, 14372, 14374,
3556
- 14377, 14381, 14382, 14383, 14384, 14385, 14386, 14391, 14397, 14412,
3557
- 14413, 14414, 14415, 14416, 14427, 14433, 14441, 14442, 14448, 14453,
3558
- 14458, 14463, 14468, 14473, 14478, 14483, 14489, 14495, 14501, 14508,
3559
- 14530, 14539, 14543, 14551, 14555, 14563, 14575, 14596, 14600, 14606,
3560
- 14610, 14623, 14631, 14641, 14643, 14645, 14647, 14649, 14651, 14656,
3561
- 14657, 14664, 14673, 14681, 14690, 14701, 14709, 14710, 14711, 14715,
3562
- 14717, 14719, 14721, 14723, 14725, 14727, 14732, 14737, 14743, 14751,
3563
- 14756, 14763, 14770, 14774, 14778, 14786, 14821, 14822, 14824, 14833,
3564
- 14840, 14856, 14858, 14860, 14862, 14864, 14866, 14868, 14870, 14872,
3565
- 14874, 14876, 14878, 14880, 14882, 14885, 14887, 14890, 14892, 14894,
3566
- 14896, 14899, 14904, 14913, 14918, 14927, 14932, 14941, 14946, 14956,
3567
- 14965, 14974, 14983, 15002, 15011, 15020, 15029, 15038, 15055, 15064,
3568
- 15073, 15082, 15091, 15100, 15109, 15113, 15117, 15125, 15133, 15141,
3569
- 15149, 15170, 15193, 15205, 15212, 15228, 15233, 15239, 15246, 15253,
3570
- 15261, 15269, 15286, 15305, 15331, 15333, 15335, 15337, 15339, 15341,
3571
- 15343, 15345, 15347, 15349, 15351, 15353, 15355, 15357, 15359, 15361,
3572
- 15363, 15365, 15367, 15371, 15375, 15380, 15396, 15397, 15398, 15415,
3573
- 15428, 15430, 15432, 15444, 15469, 15481, 15493, 15501, 15512, 15523,
3574
- 15533, 15539, 15548, 15558, 15568, 15581, 15591, 15622, 15658, 15668,
3575
- 15679, 15680, 15681, 15688, 15695, 15699, 15703, 15707, 15711, 15715,
3576
- 15719, 15723, 15727, 15731, 15735, 15739, 15743, 15750, 15754, 15758,
3577
- 15762, 15764, 15771, 15778, 15785, 15792, 15803, 15817, 15827, 15838,
3578
- 15854, 15864, 15871, 15878, 15885, 15889, 15897, 15906, 15915, 15919,
3579
- 15923, 15927, 15931, 15935, 15944, 15948, 15958, 15962, 15966, 15971,
3580
- 15982, 15988, 16002, 16013, 16027, 16043, 16055, 16065, 16074, 16083,
3581
- 16091, 16113, 16129, 16153, 16155, 16159, 16161, 16163, 16166, 16169,
3582
- 16172, 16173, 16176, 16184, 16194, 16195, 16198, 16199, 16200, 16203,
3583
- 16204, 16205, 16210, 16214, 16218, 16222, 16229, 16230, 16238, 16239,
3584
- 16243, 16244, 16252, 16253, 16257, 16258, 16263, 16272, 16274, 16289,
3585
- 16292, 16320, 16321, 16324, 16325, 16333, 16341, 16349, 16358, 16368,
3586
- 16386, 16432, 16441, 16450, 16459, 16468, 16480, 16481, 16482, 16483,
3587
- 16484, 16498, 16499, 16500, 16503, 16504, 16507, 16510, 16511, 16512,
3588
- 16515, 16516, 16519, 16520, 16521, 16522, 16523, 16524, 16525, 16526,
3589
- 16527, 16528, 16529, 16530, 16533, 16535, 16540, 16542, 16547, 16549,
3590
- 16551, 16553, 16555, 16557, 16569, 16573, 16580, 16584, 16590, 16594,
3591
- 16604, 16616, 16617, 16620, 16621, 16624, 16628, 16632, 16638, 16639,
3592
- 16644, 16648, 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16665,
3593
- 16669, 16670, 16671, 16672, 16677, 16682, 16691, 16712, 16716, 16721,
3594
- 16732, 16749, 16755, 16756, 16757, 16760, 16768, 16778, 16793, 16794,
3595
- 16798, 16810, 16811, 16814, 16815, 16818, 16822, 16829, 16833, 16837,
3596
- 16846, 16858, 16859, 16863, 16864, 16868, 16869, 16872, 16873, 16878,
3597
- 16879, 16883, 16884, 16888, 16900, 16901, 16902, 16903, 16904, 16905,
3598
- 16906, 16907, 16908, 16912, 16914, 16919, 16920, 16921, 16922, 16923,
3599
- 16924, 16925, 16927, 16931, 16933, 16935, 16938, 16942, 16945, 16949,
3600
- 16958, 16975, 16982, 16987, 16993, 16994, 16995, 16996, 16997, 17001,
3601
- 17010, 17024, 17025, 17026, 17027, 17028, 17037, 17038, 17039, 17040,
3602
- 17041, 17045, 17047, 17057, 17060, 17066, 17067, 17068, 17072, 17073,
3603
- 17074, 17078, 17079, 17083, 17101, 17121, 17122, 17131, 17132, 17136,
3604
- 17137, 17140, 17148, 17156, 17164, 17187, 17188, 17199, 17203, 17209,
3605
- 17211, 17216, 17218, 17220, 17230, 17232, 17243, 17247, 17251, 17255,
3606
- 17259, 17268, 17276, 17308, 17315, 17347, 17351, 17358, 17366, 17370,
3607
- 17376, 17383, 17387, 17391, 17397, 17398, 17400, 17401, 17402, 17406,
3608
- 17447, 17475, 17479, 17483, 17489, 17491, 17505, 17541, 17554, 17555,
3609
- 17558, 17559, 17576, 17577, 17578, 17583, 17584, 17585, 17590, 17591,
3610
- 17592, 17593, 17599, 17600, 17601, 17602, 17603, 17609, 17610, 17630,
3611
- 17631, 17632, 17633, 17634, 17635, 17636, 17637, 17638, 17639, 17640,
3612
- 17641, 17642, 17643, 17644, 17645, 17646, 17647, 17648, 17649, 17650,
3613
- 17651, 17652, 17653, 17654, 17655, 17656, 17657, 17658, 17659, 17660,
3614
- 17661, 17662, 17663, 17664, 17665, 17666, 17667, 17668, 17669, 17670,
3615
- 17671, 17672, 17673, 17674, 17675, 17676, 17677, 17678, 17679, 17680,
3616
- 17681, 17682, 17683, 17684, 17685, 17686, 17687, 17688, 17689, 17690,
3617
- 17691, 17692, 17693, 17694, 17695, 17696, 17697, 17698, 17699, 17700,
3618
- 17701, 17702, 17703, 17704, 17705, 17706, 17707, 17708, 17709, 17710,
3619
- 17711, 17712, 17713, 17714, 17715, 17716, 17717, 17718, 17719, 17720,
3620
- 17721, 17722, 17723, 17724, 17725, 17726, 17727, 17728, 17729, 17730,
3621
- 17731, 17732, 17733, 17734, 17735, 17736, 17737, 17738, 17739, 17740,
3622
- 17741, 17742, 17743, 17744, 17745, 17746, 17747, 17748, 17749, 17750,
3623
- 17751, 17752, 17753, 17754, 17755, 17756, 17757, 17758, 17759, 17760,
3624
- 17761, 17762, 17763, 17764, 17765, 17766, 17767, 17768, 17769, 17770,
3625
- 17771, 17772, 17773, 17774, 17775, 17776, 17777, 17778, 17779, 17780,
3626
- 17781, 17782, 17783, 17784, 17785, 17786, 17787, 17788, 17789, 17790,
3627
- 17791, 17792, 17793, 17794, 17795, 17796, 17797, 17798, 17799, 17800,
3628
- 17801, 17802, 17803, 17804, 17805, 17806, 17807, 17808, 17809, 17810,
3629
- 17811, 17812, 17813, 17814, 17815, 17816, 17817, 17818, 17819, 17820,
3630
- 17821, 17822, 17823, 17824, 17825, 17826, 17827, 17828, 17829, 17830,
3631
- 17831, 17832, 17833, 17834, 17835, 17836, 17837, 17838, 17839, 17840,
3632
- 17841, 17842, 17843, 17844, 17845, 17846, 17847, 17848, 17849, 17850,
3633
- 17851, 17852, 17853, 17854, 17855, 17856, 17857, 17858, 17859, 17860,
3634
- 17861, 17862, 17863, 17864, 17865, 17866, 17867, 17868, 17869, 17870,
3635
- 17871, 17872, 17873, 17874, 17875, 17876, 17877, 17878, 17879, 17880,
3636
- 17881, 17882, 17883, 17884, 17885, 17886, 17887, 17888, 17889, 17890,
3637
- 17891, 17892, 17893, 17894, 17895, 17896, 17897, 17898, 17899, 17900,
3638
- 17901, 17902, 17903, 17904, 17905, 17906, 17907, 17908, 17909, 17910,
3639
- 17911, 17912, 17913, 17914, 17915, 17916, 17917, 17918, 17919, 17920,
3640
- 17921, 17922, 17923, 17924, 17925, 17926, 17927, 17928, 17929, 17930,
3641
- 17931, 17932, 17933, 17934, 17935, 17936, 17937, 17938, 17939, 17940,
3642
- 17941, 17942, 17943, 17944, 17945, 17946, 17947, 17948, 17949, 17950,
3643
- 17951, 17952, 17953, 17954, 17955, 17956, 17970, 17971, 17972, 17973,
3644
- 17974, 17975, 17976, 17977, 17978, 17979, 17980, 17981, 17982, 17983,
3645
- 17984, 17985, 17986, 17987, 17988, 17989, 17990, 17991, 17992, 17993,
3646
- 17994, 17995, 17996, 17997, 17998, 17999, 18000, 18001, 18002, 18003,
3647
- 18004, 18005, 18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013,
3648
- 18014, 18015, 18016, 18017, 18018, 18019, 18020, 18021, 18022, 18023,
3649
- 18024, 18025, 18026, 18027, 18028, 18029, 18030, 18031, 18032, 18046,
3650
- 18047, 18048, 18049, 18050, 18051, 18052, 18053, 18054, 18055, 18056,
3651
- 18057, 18058, 18059, 18060, 18061, 18062, 18063, 18064, 18065, 18066,
3652
- 18067, 18068, 18078, 18079, 18080, 18081, 18082, 18083, 18084, 18085,
3653
- 18086, 18087, 18088, 18089, 18090, 18091, 18092, 18093, 18094, 18095,
3654
- 18096, 18097, 18098, 18099, 18100, 18101, 18102, 18103, 18104, 18105,
3655
- 18106, 18107, 18108, 18109, 18110, 18111, 18112, 18113, 18114, 18115,
3656
- 18116, 18117, 18118, 18119, 18120, 18121, 18122, 18123, 18124, 18125,
3657
- 18126, 18127, 18128, 18129, 18130, 18131, 18132, 18133, 18134, 18135,
3658
- 18136, 18137, 18138, 18139, 18140, 18141, 18142, 18143, 18144, 18145,
3659
- 18146, 18147, 18148, 18149, 18150, 18151, 18152, 18153, 18154, 18155,
3660
- 18168, 18169, 18170, 18171, 18172, 18173, 18174, 18175, 18176, 18177,
3661
- 18178, 18179, 18180, 18181, 18182, 18183, 18184, 18185, 18186, 18187,
3662
- 18188, 18189, 18190, 18191, 18192, 18193, 18194, 18195, 18196, 18197,
3663
- 18198, 18199, 18200, 18201, 18202, 18203, 18204, 18205, 18206, 18207,
3664
- 18208, 18209, 18210, 18211, 18212, 18213, 18214, 18215, 18216, 18217,
3665
- 18218, 18219, 18220, 18221, 18222, 18223, 18224, 18225, 18226, 18227,
3666
- 18228, 18229, 18230, 18231, 18232, 18233, 18234, 18235, 18236, 18237,
3667
- 18238, 18239, 18240, 18241, 18242, 18243, 18244, 18245, 18246, 18247,
3668
- 18248, 18249, 18250, 18251, 18252, 18253, 18254, 18255, 18256, 18257,
3669
- 18258, 18259, 18260, 18261, 18262, 18263, 18264, 18265, 18266, 18267,
3670
- 18268, 18269, 18270, 18271, 18272, 18273, 18274, 18275, 18276, 18277,
3671
- 18278, 18279, 18280, 18281, 18282, 18283, 18284, 18285, 18286, 18287,
3672
- 18288, 18289, 18290, 18291, 18292, 18293, 18294, 18295, 18296, 18297,
3673
- 18298, 18299, 18300, 18301, 18302, 18303, 18304, 18305, 18306, 18307,
3674
- 18308, 18309, 18310, 18311, 18312, 18313, 18314, 18315, 18316, 18317,
3675
- 18318, 18319, 18320, 18321, 18322, 18323, 18324, 18325, 18326, 18327,
3676
- 18328, 18329, 18330, 18331, 18332, 18333, 18334, 18335, 18336, 18337,
3677
- 18338, 18339, 18340, 18341, 18342, 18343, 18344, 18345, 18346, 18347,
3678
- 18348, 18349, 18350, 18351, 18352, 18353, 18354, 18355, 18356, 18357,
3679
- 18358, 18359, 18360, 18361, 18362, 18363, 18364, 18365, 18366, 18367,
3680
- 18368, 18369, 18370, 18371, 18372, 18373, 18374, 18375, 18376, 18377,
3681
- 18378, 18379, 18380, 18381, 18382, 18383, 18384, 18385, 18386, 18387,
3682
- 18388, 18389, 18390, 18391, 18392, 18393, 18394, 18395, 18396, 18397,
3683
- 18398, 18399, 18400, 18401, 18402, 18403, 18404, 18405, 18406, 18407,
3684
- 18408, 18409, 18410, 18411, 18412, 18413, 18414, 18415, 18416, 18417,
3685
- 18418, 18419, 18420, 18421, 18422, 18423, 18424, 18425, 18426, 18427,
3686
- 18428, 18429, 18430, 18431, 18432, 18433, 18434, 18435, 18436, 18437,
3687
- 18438, 18439, 18440, 18441, 18442, 18443, 18444, 18445, 18446, 18447,
3688
- 18448, 18449, 18450, 18451, 18452, 18453, 18454, 18455, 18456, 18457,
3689
- 18458, 18459, 18460, 18461, 18462, 18463, 18464, 18465, 18466, 18467,
3690
- 18468, 18469, 18470, 18471, 18472, 18473, 18474, 18475, 18476, 18477,
3691
- 18478, 18479, 18480, 18481, 18482, 18483, 18484, 18485, 18486, 18487,
3692
- 18488, 18489, 18490, 18491, 18492, 18493, 18494, 18495, 18496, 18497,
3693
- 18498, 18499, 18500, 18501, 18502, 18503, 18504, 18505, 18506, 18507,
3694
- 18508, 18509, 18510, 18511, 18512, 18513, 18514, 18515, 18516, 18517,
3695
- 18518, 18519, 18520, 18521, 18522, 18523, 18524, 18525, 18526, 18527,
3696
- 18528, 18529, 18530, 18531, 18532, 18533, 18534, 18535, 18536, 18537,
3697
- 18538, 18539, 18540, 18541, 18542, 18543, 18544, 18545, 18546, 18547,
3698
- 18548, 18549, 18550, 18551, 18552, 18553, 18554, 18555, 18556, 18557,
3699
- 18558, 18559, 18560, 18561, 18562, 18563, 18564, 18565, 18566, 18567,
3700
- 18568, 18569, 18570, 18571, 18572, 18573, 18574, 18575, 18576, 18577,
3701
- 18578, 18579, 18580, 18581, 18582, 18583, 18584, 18585, 18586, 18587,
3702
- 18588, 18589, 18590, 18591, 18592, 18593, 18594, 18595, 18596, 18597,
3703
- 18598, 18599, 18600, 18601, 18602, 18603, 18604, 18605, 18606, 18607,
3704
- 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617,
3705
- 18618, 18619
3552
+ 14030, 14044, 14045, 14049, 14063, 14120, 14134, 14136, 14141, 14150,
3553
+ 14152, 14154, 14156, 14161, 14163, 14168, 14176, 14187, 14215, 14216,
3554
+ 14220, 14222, 14227, 14236, 14256, 14276, 14294, 14306, 14321, 14322,
3555
+ 14326, 14329, 14342, 14347, 14354, 14359, 14365, 14370, 14379, 14381,
3556
+ 14384, 14388, 14389, 14390, 14391, 14392, 14393, 14398, 14404, 14419,
3557
+ 14420, 14421, 14422, 14423, 14434, 14440, 14448, 14449, 14455, 14460,
3558
+ 14465, 14470, 14475, 14480, 14485, 14490, 14496, 14502, 14508, 14515,
3559
+ 14537, 14546, 14550, 14558, 14562, 14570, 14582, 14603, 14607, 14613,
3560
+ 14617, 14630, 14638, 14648, 14650, 14652, 14654, 14656, 14658, 14663,
3561
+ 14664, 14671, 14680, 14688, 14697, 14708, 14716, 14717, 14718, 14722,
3562
+ 14724, 14726, 14728, 14730, 14732, 14734, 14739, 14744, 14750, 14758,
3563
+ 14763, 14770, 14777, 14781, 14785, 14793, 14828, 14829, 14831, 14840,
3564
+ 14847, 14863, 14865, 14867, 14869, 14871, 14873, 14875, 14877, 14879,
3565
+ 14881, 14883, 14885, 14887, 14889, 14892, 14894, 14897, 14899, 14901,
3566
+ 14903, 14906, 14911, 14920, 14925, 14934, 14939, 14948, 14953, 14963,
3567
+ 14972, 14981, 14990, 15009, 15018, 15027, 15036, 15045, 15062, 15071,
3568
+ 15080, 15089, 15098, 15107, 15116, 15120, 15124, 15132, 15140, 15148,
3569
+ 15156, 15177, 15200, 15212, 15219, 15235, 15240, 15246, 15253, 15260,
3570
+ 15268, 15276, 15293, 15312, 15338, 15340, 15342, 15344, 15346, 15348,
3571
+ 15350, 15352, 15354, 15356, 15358, 15360, 15362, 15364, 15366, 15368,
3572
+ 15370, 15372, 15374, 15378, 15382, 15387, 15403, 15404, 15405, 15422,
3573
+ 15435, 15437, 15439, 15451, 15476, 15488, 15500, 15508, 15519, 15530,
3574
+ 15540, 15546, 15555, 15565, 15575, 15588, 15598, 15629, 15665, 15675,
3575
+ 15686, 15687, 15688, 15695, 15702, 15706, 15710, 15714, 15718, 15722,
3576
+ 15726, 15730, 15734, 15738, 15742, 15746, 15750, 15757, 15761, 15765,
3577
+ 15769, 15771, 15778, 15785, 15792, 15799, 15810, 15824, 15834, 15845,
3578
+ 15861, 15871, 15878, 15885, 15892, 15896, 15904, 15913, 15922, 15926,
3579
+ 15930, 15934, 15938, 15942, 15951, 15955, 15965, 15969, 15973, 15978,
3580
+ 15989, 15995, 16009, 16020, 16034, 16050, 16062, 16072, 16081, 16090,
3581
+ 16098, 16120, 16136, 16160, 16162, 16166, 16168, 16170, 16173, 16176,
3582
+ 16179, 16180, 16183, 16191, 16201, 16202, 16205, 16206, 16207, 16210,
3583
+ 16211, 16212, 16217, 16221, 16225, 16229, 16236, 16237, 16245, 16246,
3584
+ 16250, 16251, 16259, 16260, 16264, 16265, 16270, 16279, 16281, 16296,
3585
+ 16299, 16327, 16328, 16331, 16332, 16340, 16348, 16356, 16365, 16375,
3586
+ 16393, 16439, 16448, 16457, 16466, 16475, 16487, 16488, 16489, 16490,
3587
+ 16491, 16505, 16506, 16507, 16510, 16511, 16514, 16517, 16518, 16519,
3588
+ 16522, 16523, 16526, 16527, 16528, 16529, 16530, 16531, 16532, 16533,
3589
+ 16534, 16535, 16536, 16537, 16540, 16542, 16547, 16549, 16554, 16556,
3590
+ 16558, 16560, 16562, 16564, 16576, 16580, 16587, 16591, 16597, 16601,
3591
+ 16611, 16623, 16624, 16627, 16628, 16631, 16635, 16639, 16645, 16646,
3592
+ 16651, 16655, 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16672,
3593
+ 16676, 16677, 16678, 16679, 16684, 16689, 16698, 16719, 16723, 16728,
3594
+ 16739, 16756, 16762, 16763, 16764, 16767, 16775, 16785, 16800, 16801,
3595
+ 16805, 16817, 16818, 16821, 16822, 16825, 16829, 16836, 16840, 16844,
3596
+ 16853, 16865, 16866, 16870, 16871, 16875, 16876, 16879, 16880, 16885,
3597
+ 16886, 16890, 16891, 16895, 16907, 16908, 16909, 16910, 16911, 16912,
3598
+ 16913, 16914, 16915, 16919, 16921, 16926, 16927, 16928, 16929, 16930,
3599
+ 16931, 16932, 16934, 16938, 16940, 16942, 16945, 16949, 16952, 16956,
3600
+ 16965, 16982, 16989, 16994, 17000, 17001, 17002, 17003, 17004, 17008,
3601
+ 17017, 17031, 17032, 17033, 17034, 17035, 17044, 17045, 17046, 17047,
3602
+ 17048, 17052, 17054, 17064, 17067, 17073, 17074, 17075, 17079, 17080,
3603
+ 17081, 17085, 17086, 17090, 17108, 17128, 17129, 17138, 17139, 17143,
3604
+ 17144, 17147, 17155, 17163, 17171, 17194, 17195, 17206, 17210, 17216,
3605
+ 17218, 17223, 17225, 17227, 17237, 17239, 17250, 17254, 17258, 17262,
3606
+ 17266, 17275, 17283, 17315, 17322, 17354, 17358, 17365, 17373, 17377,
3607
+ 17383, 17390, 17394, 17398, 17404, 17405, 17407, 17408, 17409, 17413,
3608
+ 17454, 17482, 17486, 17490, 17496, 17498, 17512, 17548, 17561, 17562,
3609
+ 17565, 17566, 17583, 17584, 17585, 17590, 17591, 17592, 17597, 17598,
3610
+ 17599, 17600, 17606, 17607, 17608, 17609, 17610, 17616, 17617, 17637,
3611
+ 17638, 17639, 17640, 17641, 17642, 17643, 17644, 17645, 17646, 17647,
3612
+ 17648, 17649, 17650, 17651, 17652, 17653, 17654, 17655, 17656, 17657,
3613
+ 17658, 17659, 17660, 17661, 17662, 17663, 17664, 17665, 17666, 17667,
3614
+ 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17677,
3615
+ 17678, 17679, 17680, 17681, 17682, 17683, 17684, 17685, 17686, 17687,
3616
+ 17688, 17689, 17690, 17691, 17692, 17693, 17694, 17695, 17696, 17697,
3617
+ 17698, 17699, 17700, 17701, 17702, 17703, 17704, 17705, 17706, 17707,
3618
+ 17708, 17709, 17710, 17711, 17712, 17713, 17714, 17715, 17716, 17717,
3619
+ 17718, 17719, 17720, 17721, 17722, 17723, 17724, 17725, 17726, 17727,
3620
+ 17728, 17729, 17730, 17731, 17732, 17733, 17734, 17735, 17736, 17737,
3621
+ 17738, 17739, 17740, 17741, 17742, 17743, 17744, 17745, 17746, 17747,
3622
+ 17748, 17749, 17750, 17751, 17752, 17753, 17754, 17755, 17756, 17757,
3623
+ 17758, 17759, 17760, 17761, 17762, 17763, 17764, 17765, 17766, 17767,
3624
+ 17768, 17769, 17770, 17771, 17772, 17773, 17774, 17775, 17776, 17777,
3625
+ 17778, 17779, 17780, 17781, 17782, 17783, 17784, 17785, 17786, 17787,
3626
+ 17788, 17789, 17790, 17791, 17792, 17793, 17794, 17795, 17796, 17797,
3627
+ 17798, 17799, 17800, 17801, 17802, 17803, 17804, 17805, 17806, 17807,
3628
+ 17808, 17809, 17810, 17811, 17812, 17813, 17814, 17815, 17816, 17817,
3629
+ 17818, 17819, 17820, 17821, 17822, 17823, 17824, 17825, 17826, 17827,
3630
+ 17828, 17829, 17830, 17831, 17832, 17833, 17834, 17835, 17836, 17837,
3631
+ 17838, 17839, 17840, 17841, 17842, 17843, 17844, 17845, 17846, 17847,
3632
+ 17848, 17849, 17850, 17851, 17852, 17853, 17854, 17855, 17856, 17857,
3633
+ 17858, 17859, 17860, 17861, 17862, 17863, 17864, 17865, 17866, 17867,
3634
+ 17868, 17869, 17870, 17871, 17872, 17873, 17874, 17875, 17876, 17877,
3635
+ 17878, 17879, 17880, 17881, 17882, 17883, 17884, 17885, 17886, 17887,
3636
+ 17888, 17889, 17890, 17891, 17892, 17893, 17894, 17895, 17896, 17897,
3637
+ 17898, 17899, 17900, 17901, 17902, 17903, 17904, 17905, 17906, 17907,
3638
+ 17908, 17909, 17910, 17911, 17912, 17913, 17914, 17915, 17916, 17917,
3639
+ 17918, 17919, 17920, 17921, 17922, 17923, 17924, 17925, 17926, 17927,
3640
+ 17928, 17929, 17930, 17931, 17932, 17933, 17934, 17935, 17936, 17937,
3641
+ 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17945, 17946, 17947,
3642
+ 17948, 17949, 17950, 17951, 17952, 17953, 17954, 17955, 17956, 17957,
3643
+ 17958, 17959, 17960, 17961, 17962, 17963, 17977, 17978, 17979, 17980,
3644
+ 17981, 17982, 17983, 17984, 17985, 17986, 17987, 17988, 17989, 17990,
3645
+ 17991, 17992, 17993, 17994, 17995, 17996, 17997, 17998, 17999, 18000,
3646
+ 18001, 18002, 18003, 18004, 18005, 18006, 18007, 18008, 18009, 18010,
3647
+ 18011, 18012, 18013, 18014, 18015, 18016, 18017, 18018, 18019, 18020,
3648
+ 18021, 18022, 18023, 18024, 18025, 18026, 18027, 18028, 18029, 18030,
3649
+ 18031, 18032, 18033, 18034, 18035, 18036, 18037, 18038, 18039, 18053,
3650
+ 18054, 18055, 18056, 18057, 18058, 18059, 18060, 18061, 18062, 18063,
3651
+ 18064, 18065, 18066, 18067, 18068, 18069, 18070, 18071, 18072, 18073,
3652
+ 18074, 18075, 18085, 18086, 18087, 18088, 18089, 18090, 18091, 18092,
3653
+ 18093, 18094, 18095, 18096, 18097, 18098, 18099, 18100, 18101, 18102,
3654
+ 18103, 18104, 18105, 18106, 18107, 18108, 18109, 18110, 18111, 18112,
3655
+ 18113, 18114, 18115, 18116, 18117, 18118, 18119, 18120, 18121, 18122,
3656
+ 18123, 18124, 18125, 18126, 18127, 18128, 18129, 18130, 18131, 18132,
3657
+ 18133, 18134, 18135, 18136, 18137, 18138, 18139, 18140, 18141, 18142,
3658
+ 18143, 18144, 18145, 18146, 18147, 18148, 18149, 18150, 18151, 18152,
3659
+ 18153, 18154, 18155, 18156, 18157, 18158, 18159, 18160, 18161, 18162,
3660
+ 18175, 18176, 18177, 18178, 18179, 18180, 18181, 18182, 18183, 18184,
3661
+ 18185, 18186, 18187, 18188, 18189, 18190, 18191, 18192, 18193, 18194,
3662
+ 18195, 18196, 18197, 18198, 18199, 18200, 18201, 18202, 18203, 18204,
3663
+ 18205, 18206, 18207, 18208, 18209, 18210, 18211, 18212, 18213, 18214,
3664
+ 18215, 18216, 18217, 18218, 18219, 18220, 18221, 18222, 18223, 18224,
3665
+ 18225, 18226, 18227, 18228, 18229, 18230, 18231, 18232, 18233, 18234,
3666
+ 18235, 18236, 18237, 18238, 18239, 18240, 18241, 18242, 18243, 18244,
3667
+ 18245, 18246, 18247, 18248, 18249, 18250, 18251, 18252, 18253, 18254,
3668
+ 18255, 18256, 18257, 18258, 18259, 18260, 18261, 18262, 18263, 18264,
3669
+ 18265, 18266, 18267, 18268, 18269, 18270, 18271, 18272, 18273, 18274,
3670
+ 18275, 18276, 18277, 18278, 18279, 18280, 18281, 18282, 18283, 18284,
3671
+ 18285, 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18293, 18294,
3672
+ 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304,
3673
+ 18305, 18306, 18307, 18308, 18309, 18310, 18311, 18312, 18313, 18314,
3674
+ 18315, 18316, 18317, 18318, 18319, 18320, 18321, 18322, 18323, 18324,
3675
+ 18325, 18326, 18327, 18328, 18329, 18330, 18331, 18332, 18333, 18334,
3676
+ 18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343, 18344,
3677
+ 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352, 18353, 18354,
3678
+ 18355, 18356, 18357, 18358, 18359, 18360, 18361, 18362, 18363, 18364,
3679
+ 18365, 18366, 18367, 18368, 18369, 18370, 18371, 18372, 18373, 18374,
3680
+ 18375, 18376, 18377, 18378, 18379, 18380, 18381, 18382, 18383, 18384,
3681
+ 18385, 18386, 18387, 18388, 18389, 18390, 18391, 18392, 18393, 18394,
3682
+ 18395, 18396, 18397, 18398, 18399, 18400, 18401, 18402, 18403, 18404,
3683
+ 18405, 18406, 18407, 18408, 18409, 18410, 18411, 18412, 18413, 18414,
3684
+ 18415, 18416, 18417, 18418, 18419, 18420, 18421, 18422, 18423, 18424,
3685
+ 18425, 18426, 18427, 18428, 18429, 18430, 18431, 18432, 18433, 18434,
3686
+ 18435, 18436, 18437, 18438, 18439, 18440, 18441, 18442, 18443, 18444,
3687
+ 18445, 18446, 18447, 18448, 18449, 18450, 18451, 18452, 18453, 18454,
3688
+ 18455, 18456, 18457, 18458, 18459, 18460, 18461, 18462, 18463, 18464,
3689
+ 18465, 18466, 18467, 18468, 18469, 18470, 18471, 18472, 18473, 18474,
3690
+ 18475, 18476, 18477, 18478, 18479, 18480, 18481, 18482, 18483, 18484,
3691
+ 18485, 18486, 18487, 18488, 18489, 18490, 18491, 18492, 18493, 18494,
3692
+ 18495, 18496, 18497, 18498, 18499, 18500, 18501, 18502, 18503, 18504,
3693
+ 18505, 18506, 18507, 18508, 18509, 18510, 18511, 18512, 18513, 18514,
3694
+ 18515, 18516, 18517, 18518, 18519, 18520, 18521, 18522, 18523, 18524,
3695
+ 18525, 18526, 18527, 18528, 18529, 18530, 18531, 18532, 18533, 18534,
3696
+ 18535, 18536, 18537, 18538, 18539, 18540, 18541, 18542, 18543, 18544,
3697
+ 18545, 18546, 18547, 18548, 18549, 18550, 18551, 18552, 18553, 18554,
3698
+ 18555, 18556, 18557, 18558, 18559, 18560, 18561, 18562, 18563, 18564,
3699
+ 18565, 18566, 18567, 18568, 18569, 18570, 18571, 18572, 18573, 18574,
3700
+ 18575, 18576, 18577, 18578, 18579, 18580, 18581, 18582, 18583, 18584,
3701
+ 18585, 18586, 18587, 18588, 18589, 18590, 18591, 18592, 18593, 18594,
3702
+ 18595, 18596, 18597, 18598, 18599, 18600, 18601, 18602, 18603, 18604,
3703
+ 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614,
3704
+ 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18623, 18624,
3705
+ 18625, 18626
3706
3706
  };
3707
3707
  #endif
3708
3708
 
@@ -47930,7 +47930,7 @@ yyreduce:
47930
47930
  parser_errposition(defel->location)));
47931
47931
  fc->colexpr = defel->arg;
47932
47932
  }
47933
- else if (strcmp(defel->defname, "is_not_null") == 0)
47933
+ else if (strcmp(defel->defname, "__pg__is_not_null") == 0)
47934
47934
  {
47935
47935
  if (nullability_seen)
47936
47936
  ereport(ERROR,
@@ -47979,41 +47979,48 @@ yyreduce:
47979
47979
 
47980
47980
  case 1898:
47981
47981
  #line 14142 "gram.y"
47982
- { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
47982
+ {
47983
+ if (strcmp((yyvsp[(1) - (2)].str), "__pg__is_not_null") == 0)
47984
+ ereport(ERROR,
47985
+ (errcode(ERRCODE_SYNTAX_ERROR),
47986
+ errmsg("option name \"%s\" cannot be used in XMLTABLE", (yyvsp[(1) - (2)].str)),
47987
+ parser_errposition((yylsp[(1) - (2)]))));
47988
+ (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]));
47989
+ ;}
47983
47990
  break;
47984
47991
 
47985
47992
  case 1899:
47986
- #line 14144 "gram.y"
47993
+ #line 14151 "gram.y"
47987
47994
  { (yyval.defelt) = makeDefElem("default", (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
47988
47995
  break;
47989
47996
 
47990
47997
  case 1900:
47991
- #line 14146 "gram.y"
47992
- { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeBoolean(true), (yylsp[(1) - (2)])); ;}
47998
+ #line 14153 "gram.y"
47999
+ { (yyval.defelt) = makeDefElem("__pg__is_not_null", (Node *) makeBoolean(true), (yylsp[(1) - (2)])); ;}
47993
48000
  break;
47994
48001
 
47995
48002
  case 1901:
47996
- #line 14148 "gram.y"
47997
- { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); ;}
48003
+ #line 14155 "gram.y"
48004
+ { (yyval.defelt) = makeDefElem("__pg__is_not_null", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); ;}
47998
48005
  break;
47999
48006
 
48000
48007
  case 1902:
48001
- #line 14150 "gram.y"
48008
+ #line 14157 "gram.y"
48002
48009
  { (yyval.defelt) = makeDefElem("path", (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
48003
48010
  break;
48004
48011
 
48005
48012
  case 1903:
48006
- #line 14155 "gram.y"
48013
+ #line 14162 "gram.y"
48007
48014
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
48008
48015
  break;
48009
48016
 
48010
48017
  case 1904:
48011
- #line 14157 "gram.y"
48018
+ #line 14164 "gram.y"
48012
48019
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
48013
48020
  break;
48014
48021
 
48015
48022
  case 1905:
48016
- #line 14162 "gram.y"
48023
+ #line 14169 "gram.y"
48017
48024
  {
48018
48025
  (yyval.target) = makeNode(ResTarget);
48019
48026
  (yyval.target)->name = (yyvsp[(3) - (3)].str);
@@ -48024,7 +48031,7 @@ yyreduce:
48024
48031
  break;
48025
48032
 
48026
48033
  case 1906:
48027
- #line 14170 "gram.y"
48034
+ #line 14177 "gram.y"
48028
48035
  {
48029
48036
  (yyval.target) = makeNode(ResTarget);
48030
48037
  (yyval.target)->name = NULL;
@@ -48035,7 +48042,7 @@ yyreduce:
48035
48042
  break;
48036
48043
 
48037
48044
  case 1907:
48038
- #line 14186 "gram.y"
48045
+ #line 14193 "gram.y"
48039
48046
  {
48040
48047
  JsonTable *n = makeNode(JsonTable);
48041
48048
  char *pathstring;
@@ -48058,27 +48065,27 @@ yyreduce:
48058
48065
  break;
48059
48066
 
48060
48067
  case 1908:
48061
- #line 14208 "gram.y"
48068
+ #line 14215 "gram.y"
48062
48069
  { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
48063
48070
  break;
48064
48071
 
48065
48072
  case 1909:
48066
- #line 14209 "gram.y"
48073
+ #line 14216 "gram.y"
48067
48074
  { (yyval.str) = NULL; ;}
48068
48075
  break;
48069
48076
 
48070
48077
  case 1910:
48071
- #line 14214 "gram.y"
48078
+ #line 14221 "gram.y"
48072
48079
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
48073
48080
  break;
48074
48081
 
48075
48082
  case 1911:
48076
- #line 14216 "gram.y"
48083
+ #line 14223 "gram.y"
48077
48084
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
48078
48085
  break;
48079
48086
 
48080
48087
  case 1912:
48081
- #line 14221 "gram.y"
48088
+ #line 14228 "gram.y"
48082
48089
  {
48083
48090
  JsonTableColumn *n = makeNode(JsonTableColumn);
48084
48091
 
@@ -48090,7 +48097,7 @@ yyreduce:
48090
48097
  break;
48091
48098
 
48092
48099
  case 1913:
48093
- #line 14234 "gram.y"
48100
+ #line 14241 "gram.y"
48094
48101
  {
48095
48102
  JsonTableColumn *n = makeNode(JsonTableColumn);
48096
48103
 
@@ -48109,7 +48116,7 @@ yyreduce:
48109
48116
  break;
48110
48117
 
48111
48118
  case 1914:
48112
- #line 14254 "gram.y"
48119
+ #line 14261 "gram.y"
48113
48120
  {
48114
48121
  JsonTableColumn *n = makeNode(JsonTableColumn);
48115
48122
 
@@ -48128,7 +48135,7 @@ yyreduce:
48128
48135
  break;
48129
48136
 
48130
48137
  case 1915:
48131
- #line 14272 "gram.y"
48138
+ #line 14279 "gram.y"
48132
48139
  {
48133
48140
  JsonTableColumn *n = makeNode(JsonTableColumn);
48134
48141
 
@@ -48147,7 +48154,7 @@ yyreduce:
48147
48154
  break;
48148
48155
 
48149
48156
  case 1916:
48150
- #line 14289 "gram.y"
48157
+ #line 14296 "gram.y"
48151
48158
  {
48152
48159
  JsonTableColumn *n = makeNode(JsonTableColumn);
48153
48160
 
@@ -48161,7 +48168,7 @@ yyreduce:
48161
48168
  break;
48162
48169
 
48163
48170
  case 1917:
48164
- #line 14301 "gram.y"
48171
+ #line 14308 "gram.y"
48165
48172
  {
48166
48173
  JsonTableColumn *n = makeNode(JsonTableColumn);
48167
48174
 
@@ -48175,17 +48182,17 @@ yyreduce:
48175
48182
  break;
48176
48183
 
48177
48184
  case 1920:
48178
- #line 14320 "gram.y"
48185
+ #line 14327 "gram.y"
48179
48186
  { (yyval.node) = (Node *) makeJsonTablePathSpec((yyvsp[(2) - (2)].str), NULL, (yylsp[(2) - (2)]), -1); ;}
48180
48187
  break;
48181
48188
 
48182
48189
  case 1921:
48183
- #line 14322 "gram.y"
48190
+ #line 14329 "gram.y"
48184
48191
  { (yyval.node) = NULL; ;}
48185
48192
  break;
48186
48193
 
48187
48194
  case 1922:
48188
- #line 14336 "gram.y"
48195
+ #line 14343 "gram.y"
48189
48196
  {
48190
48197
  (yyval.typnam) = (yyvsp[(1) - (2)].typnam);
48191
48198
  (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list);
@@ -48193,7 +48200,7 @@ yyreduce:
48193
48200
  break;
48194
48201
 
48195
48202
  case 1923:
48196
- #line 14341 "gram.y"
48203
+ #line 14348 "gram.y"
48197
48204
  {
48198
48205
  (yyval.typnam) = (yyvsp[(2) - (3)].typnam);
48199
48206
  (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list);
@@ -48202,7 +48209,7 @@ yyreduce:
48202
48209
  break;
48203
48210
 
48204
48211
  case 1924:
48205
- #line 14348 "gram.y"
48212
+ #line 14355 "gram.y"
48206
48213
  {
48207
48214
  (yyval.typnam) = (yyvsp[(1) - (5)].typnam);
48208
48215
  (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival)));
@@ -48210,7 +48217,7 @@ yyreduce:
48210
48217
  break;
48211
48218
 
48212
48219
  case 1925:
48213
- #line 14353 "gram.y"
48220
+ #line 14360 "gram.y"
48214
48221
  {
48215
48222
  (yyval.typnam) = (yyvsp[(2) - (6)].typnam);
48216
48223
  (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival)));
@@ -48219,7 +48226,7 @@ yyreduce:
48219
48226
  break;
48220
48227
 
48221
48228
  case 1926:
48222
- #line 14359 "gram.y"
48229
+ #line 14366 "gram.y"
48223
48230
  {
48224
48231
  (yyval.typnam) = (yyvsp[(1) - (2)].typnam);
48225
48232
  (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
@@ -48227,7 +48234,7 @@ yyreduce:
48227
48234
  break;
48228
48235
 
48229
48236
  case 1927:
48230
- #line 14364 "gram.y"
48237
+ #line 14371 "gram.y"
48231
48238
  {
48232
48239
  (yyval.typnam) = (yyvsp[(2) - (3)].typnam);
48233
48240
  (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
@@ -48236,47 +48243,47 @@ yyreduce:
48236
48243
  break;
48237
48244
 
48238
48245
  case 1928:
48239
- #line 14373 "gram.y"
48246
+ #line 14380 "gram.y"
48240
48247
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;}
48241
48248
  break;
48242
48249
 
48243
48250
  case 1929:
48244
- #line 14375 "gram.y"
48251
+ #line 14382 "gram.y"
48245
48252
  { (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;}
48246
48253
  break;
48247
48254
 
48248
48255
  case 1930:
48249
- #line 14377 "gram.y"
48256
+ #line 14384 "gram.y"
48250
48257
  { (yyval.list) = NIL; ;}
48251
48258
  break;
48252
48259
 
48253
48260
  case 1931:
48254
- #line 14381 "gram.y"
48261
+ #line 14388 "gram.y"
48255
48262
  { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
48256
48263
  break;
48257
48264
 
48258
48265
  case 1932:
48259
- #line 14382 "gram.y"
48266
+ #line 14389 "gram.y"
48260
48267
  { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
48261
48268
  break;
48262
48269
 
48263
48270
  case 1933:
48264
- #line 14383 "gram.y"
48271
+ #line 14390 "gram.y"
48265
48272
  { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
48266
48273
  break;
48267
48274
 
48268
48275
  case 1934:
48269
- #line 14384 "gram.y"
48276
+ #line 14391 "gram.y"
48270
48277
  { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
48271
48278
  break;
48272
48279
 
48273
48280
  case 1935:
48274
- #line 14385 "gram.y"
48281
+ #line 14392 "gram.y"
48275
48282
  { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
48276
48283
  break;
48277
48284
 
48278
48285
  case 1936:
48279
- #line 14387 "gram.y"
48286
+ #line 14394 "gram.y"
48280
48287
  {
48281
48288
  (yyval.typnam) = (yyvsp[(1) - (2)].typnam);
48282
48289
  (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
@@ -48284,7 +48291,7 @@ yyreduce:
48284
48291
  break;
48285
48292
 
48286
48293
  case 1937:
48287
- #line 14392 "gram.y"
48294
+ #line 14399 "gram.y"
48288
48295
  {
48289
48296
  (yyval.typnam) = (yyvsp[(1) - (4)].typnam);
48290
48297
  (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
@@ -48293,37 +48300,37 @@ yyreduce:
48293
48300
  break;
48294
48301
 
48295
48302
  case 1938:
48296
- #line 14397 "gram.y"
48303
+ #line 14404 "gram.y"
48297
48304
  { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
48298
48305
  break;
48299
48306
 
48300
48307
  case 1939:
48301
- #line 14412 "gram.y"
48308
+ #line 14419 "gram.y"
48302
48309
  { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
48303
48310
  break;
48304
48311
 
48305
48312
  case 1940:
48306
- #line 14413 "gram.y"
48313
+ #line 14420 "gram.y"
48307
48314
  { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
48308
48315
  break;
48309
48316
 
48310
48317
  case 1941:
48311
- #line 14414 "gram.y"
48318
+ #line 14421 "gram.y"
48312
48319
  { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
48313
48320
  break;
48314
48321
 
48315
48322
  case 1942:
48316
- #line 14415 "gram.y"
48323
+ #line 14422 "gram.y"
48317
48324
  { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
48318
48325
  break;
48319
48326
 
48320
48327
  case 1943:
48321
- #line 14416 "gram.y"
48328
+ #line 14423 "gram.y"
48322
48329
  { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
48323
48330
  break;
48324
48331
 
48325
48332
  case 1944:
48326
- #line 14428 "gram.y"
48333
+ #line 14435 "gram.y"
48327
48334
  {
48328
48335
  (yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str));
48329
48336
  (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
@@ -48332,7 +48339,7 @@ yyreduce:
48332
48339
  break;
48333
48340
 
48334
48341
  case 1945:
48335
- #line 14434 "gram.y"
48342
+ #line 14441 "gram.y"
48336
48343
  {
48337
48344
  (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(2) - (3)].list)));
48338
48345
  (yyval.typnam)->typmods = (yyvsp[(3) - (3)].list);
@@ -48341,17 +48348,17 @@ yyreduce:
48341
48348
  break;
48342
48349
 
48343
48350
  case 1946:
48344
- #line 14441 "gram.y"
48351
+ #line 14448 "gram.y"
48345
48352
  { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
48346
48353
  break;
48347
48354
 
48348
48355
  case 1947:
48349
- #line 14442 "gram.y"
48356
+ #line 14449 "gram.y"
48350
48357
  { (yyval.list) = NIL; ;}
48351
48358
  break;
48352
48359
 
48353
48360
  case 1948:
48354
- #line 14449 "gram.y"
48361
+ #line 14456 "gram.y"
48355
48362
  {
48356
48363
  (yyval.typnam) = SystemTypeName("int4");
48357
48364
  (yyval.typnam)->location = (yylsp[(1) - (1)]);
@@ -48359,7 +48366,7 @@ yyreduce:
48359
48366
  break;
48360
48367
 
48361
48368
  case 1949:
48362
- #line 14454 "gram.y"
48369
+ #line 14461 "gram.y"
48363
48370
  {
48364
48371
  (yyval.typnam) = SystemTypeName("int4");
48365
48372
  (yyval.typnam)->location = (yylsp[(1) - (1)]);
@@ -48367,7 +48374,7 @@ yyreduce:
48367
48374
  break;
48368
48375
 
48369
48376
  case 1950:
48370
- #line 14459 "gram.y"
48377
+ #line 14466 "gram.y"
48371
48378
  {
48372
48379
  (yyval.typnam) = SystemTypeName("int2");
48373
48380
  (yyval.typnam)->location = (yylsp[(1) - (1)]);
@@ -48375,7 +48382,7 @@ yyreduce:
48375
48382
  break;
48376
48383
 
48377
48384
  case 1951:
48378
- #line 14464 "gram.y"
48385
+ #line 14471 "gram.y"
48379
48386
  {
48380
48387
  (yyval.typnam) = SystemTypeName("int8");
48381
48388
  (yyval.typnam)->location = (yylsp[(1) - (1)]);
@@ -48383,7 +48390,7 @@ yyreduce:
48383
48390
  break;
48384
48391
 
48385
48392
  case 1952:
48386
- #line 14469 "gram.y"
48393
+ #line 14476 "gram.y"
48387
48394
  {
48388
48395
  (yyval.typnam) = SystemTypeName("float4");
48389
48396
  (yyval.typnam)->location = (yylsp[(1) - (1)]);
@@ -48391,7 +48398,7 @@ yyreduce:
48391
48398
  break;
48392
48399
 
48393
48400
  case 1953:
48394
- #line 14474 "gram.y"
48401
+ #line 14481 "gram.y"
48395
48402
  {
48396
48403
  (yyval.typnam) = (yyvsp[(2) - (2)].typnam);
48397
48404
  (yyval.typnam)->location = (yylsp[(1) - (2)]);
@@ -48399,7 +48406,7 @@ yyreduce:
48399
48406
  break;
48400
48407
 
48401
48408
  case 1954:
48402
- #line 14479 "gram.y"
48409
+ #line 14486 "gram.y"
48403
48410
  {
48404
48411
  (yyval.typnam) = SystemTypeName("float8");
48405
48412
  (yyval.typnam)->location = (yylsp[(1) - (2)]);
@@ -48407,7 +48414,7 @@ yyreduce:
48407
48414
  break;
48408
48415
 
48409
48416
  case 1955:
48410
- #line 14484 "gram.y"
48417
+ #line 14491 "gram.y"
48411
48418
  {
48412
48419
  (yyval.typnam) = SystemTypeName("numeric");
48413
48420
  (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
@@ -48416,7 +48423,7 @@ yyreduce:
48416
48423
  break;
48417
48424
 
48418
48425
  case 1956:
48419
- #line 14490 "gram.y"
48426
+ #line 14497 "gram.y"
48420
48427
  {
48421
48428
  (yyval.typnam) = SystemTypeName("numeric");
48422
48429
  (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
@@ -48425,7 +48432,7 @@ yyreduce:
48425
48432
  break;
48426
48433
 
48427
48434
  case 1957:
48428
- #line 14496 "gram.y"
48435
+ #line 14503 "gram.y"
48429
48436
  {
48430
48437
  (yyval.typnam) = SystemTypeName("numeric");
48431
48438
  (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
@@ -48434,7 +48441,7 @@ yyreduce:
48434
48441
  break;
48435
48442
 
48436
48443
  case 1958:
48437
- #line 14502 "gram.y"
48444
+ #line 14509 "gram.y"
48438
48445
  {
48439
48446
  (yyval.typnam) = SystemTypeName("bool");
48440
48447
  (yyval.typnam)->location = (yylsp[(1) - (1)]);
@@ -48442,7 +48449,7 @@ yyreduce:
48442
48449
  break;
48443
48450
 
48444
48451
  case 1959:
48445
- #line 14509 "gram.y"
48452
+ #line 14516 "gram.y"
48446
48453
  {
48447
48454
  /*
48448
48455
  * Check FLOAT() precision limits assuming IEEE floating
@@ -48466,35 +48473,35 @@ yyreduce:
48466
48473
  break;
48467
48474
 
48468
48475
  case 1960:
48469
- #line 14530 "gram.y"
48476
+ #line 14537 "gram.y"
48470
48477
  {
48471
48478
  (yyval.typnam) = SystemTypeName("float8");
48472
48479
  ;}
48473
48480
  break;
48474
48481
 
48475
48482
  case 1961:
48476
- #line 14540 "gram.y"
48483
+ #line 14547 "gram.y"
48477
48484
  {
48478
48485
  (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
48479
48486
  ;}
48480
48487
  break;
48481
48488
 
48482
48489
  case 1962:
48483
- #line 14544 "gram.y"
48490
+ #line 14551 "gram.y"
48484
48491
  {
48485
48492
  (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
48486
48493
  ;}
48487
48494
  break;
48488
48495
 
48489
48496
  case 1963:
48490
- #line 14552 "gram.y"
48497
+ #line 14559 "gram.y"
48491
48498
  {
48492
48499
  (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
48493
48500
  ;}
48494
48501
  break;
48495
48502
 
48496
48503
  case 1964:
48497
- #line 14556 "gram.y"
48504
+ #line 14563 "gram.y"
48498
48505
  {
48499
48506
  (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
48500
48507
  (yyval.typnam)->typmods = NIL;
@@ -48502,7 +48509,7 @@ yyreduce:
48502
48509
  break;
48503
48510
 
48504
48511
  case 1965:
48505
- #line 14564 "gram.y"
48512
+ #line 14571 "gram.y"
48506
48513
  {
48507
48514
  char *typname;
48508
48515
 
@@ -48514,7 +48521,7 @@ yyreduce:
48514
48521
  break;
48515
48522
 
48516
48523
  case 1966:
48517
- #line 14576 "gram.y"
48524
+ #line 14583 "gram.y"
48518
48525
  {
48519
48526
  /* bit defaults to bit(1), varbit to no limit */
48520
48527
  if ((yyvsp[(2) - (2)].boolean))
@@ -48531,28 +48538,28 @@ yyreduce:
48531
48538
  break;
48532
48539
 
48533
48540
  case 1967:
48534
- #line 14597 "gram.y"
48541
+ #line 14604 "gram.y"
48535
48542
  {
48536
48543
  (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
48537
48544
  ;}
48538
48545
  break;
48539
48546
 
48540
48547
  case 1968:
48541
- #line 14601 "gram.y"
48548
+ #line 14608 "gram.y"
48542
48549
  {
48543
48550
  (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
48544
48551
  ;}
48545
48552
  break;
48546
48553
 
48547
48554
  case 1969:
48548
- #line 14607 "gram.y"
48555
+ #line 14614 "gram.y"
48549
48556
  {
48550
48557
  (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
48551
48558
  ;}
48552
48559
  break;
48553
48560
 
48554
48561
  case 1970:
48555
- #line 14611 "gram.y"
48562
+ #line 14618 "gram.y"
48556
48563
  {
48557
48564
  /* Length was not specified so allow to be unrestricted.
48558
48565
  * This handles problems with fixed-length (bpchar) strings
@@ -48566,7 +48573,7 @@ yyreduce:
48566
48573
  break;
48567
48574
 
48568
48575
  case 1971:
48569
- #line 14624 "gram.y"
48576
+ #line 14631 "gram.y"
48570
48577
  {
48571
48578
  (yyval.typnam) = SystemTypeName((yyvsp[(1) - (4)].str));
48572
48579
  (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
@@ -48575,7 +48582,7 @@ yyreduce:
48575
48582
  break;
48576
48583
 
48577
48584
  case 1972:
48578
- #line 14632 "gram.y"
48585
+ #line 14639 "gram.y"
48579
48586
  {
48580
48587
  (yyval.typnam) = SystemTypeName((yyvsp[(1) - (1)].str));
48581
48588
  /* char defaults to char(1), varchar to no limit */
@@ -48586,47 +48593,47 @@ yyreduce:
48586
48593
  break;
48587
48594
 
48588
48595
  case 1973:
48589
- #line 14642 "gram.y"
48596
+ #line 14649 "gram.y"
48590
48597
  { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
48591
48598
  break;
48592
48599
 
48593
48600
  case 1974:
48594
- #line 14644 "gram.y"
48601
+ #line 14651 "gram.y"
48595
48602
  { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
48596
48603
  break;
48597
48604
 
48598
48605
  case 1975:
48599
- #line 14646 "gram.y"
48606
+ #line 14653 "gram.y"
48600
48607
  { (yyval.str) = "varchar"; ;}
48601
48608
  break;
48602
48609
 
48603
48610
  case 1976:
48604
- #line 14648 "gram.y"
48611
+ #line 14655 "gram.y"
48605
48612
  { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
48606
48613
  break;
48607
48614
 
48608
48615
  case 1977:
48609
- #line 14650 "gram.y"
48616
+ #line 14657 "gram.y"
48610
48617
  { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
48611
48618
  break;
48612
48619
 
48613
48620
  case 1978:
48614
- #line 14652 "gram.y"
48621
+ #line 14659 "gram.y"
48615
48622
  { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
48616
48623
  break;
48617
48624
 
48618
48625
  case 1979:
48619
- #line 14656 "gram.y"
48626
+ #line 14663 "gram.y"
48620
48627
  { (yyval.boolean) = true; ;}
48621
48628
  break;
48622
48629
 
48623
48630
  case 1980:
48624
- #line 14657 "gram.y"
48631
+ #line 14664 "gram.y"
48625
48632
  { (yyval.boolean) = false; ;}
48626
48633
  break;
48627
48634
 
48628
48635
  case 1981:
48629
- #line 14665 "gram.y"
48636
+ #line 14672 "gram.y"
48630
48637
  {
48631
48638
  if ((yyvsp[(5) - (5)].boolean))
48632
48639
  (yyval.typnam) = SystemTypeName("timestamptz");
@@ -48638,7 +48645,7 @@ yyreduce:
48638
48645
  break;
48639
48646
 
48640
48647
  case 1982:
48641
- #line 14674 "gram.y"
48648
+ #line 14681 "gram.y"
48642
48649
  {
48643
48650
  if ((yyvsp[(2) - (2)].boolean))
48644
48651
  (yyval.typnam) = SystemTypeName("timestamptz");
@@ -48649,7 +48656,7 @@ yyreduce:
48649
48656
  break;
48650
48657
 
48651
48658
  case 1983:
48652
- #line 14682 "gram.y"
48659
+ #line 14689 "gram.y"
48653
48660
  {
48654
48661
  if ((yyvsp[(5) - (5)].boolean))
48655
48662
  (yyval.typnam) = SystemTypeName("timetz");
@@ -48661,7 +48668,7 @@ yyreduce:
48661
48668
  break;
48662
48669
 
48663
48670
  case 1984:
48664
- #line 14691 "gram.y"
48671
+ #line 14698 "gram.y"
48665
48672
  {
48666
48673
  if ((yyvsp[(2) - (2)].boolean))
48667
48674
  (yyval.typnam) = SystemTypeName("timetz");
@@ -48672,7 +48679,7 @@ yyreduce:
48672
48679
  break;
48673
48680
 
48674
48681
  case 1985:
48675
- #line 14702 "gram.y"
48682
+ #line 14709 "gram.y"
48676
48683
  {
48677
48684
  (yyval.typnam) = SystemTypeName("interval");
48678
48685
  (yyval.typnam)->location = (yylsp[(1) - (1)]);
@@ -48680,52 +48687,52 @@ yyreduce:
48680
48687
  break;
48681
48688
 
48682
48689
  case 1986:
48683
- #line 14709 "gram.y"
48690
+ #line 14716 "gram.y"
48684
48691
  { (yyval.boolean) = true; ;}
48685
48692
  break;
48686
48693
 
48687
48694
  case 1987:
48688
- #line 14710 "gram.y"
48695
+ #line 14717 "gram.y"
48689
48696
  { (yyval.boolean) = false; ;}
48690
48697
  break;
48691
48698
 
48692
48699
  case 1988:
48693
- #line 14711 "gram.y"
48700
+ #line 14718 "gram.y"
48694
48701
  { (yyval.boolean) = false; ;}
48695
48702
  break;
48696
48703
 
48697
48704
  case 1989:
48698
- #line 14716 "gram.y"
48705
+ #line 14723 "gram.y"
48699
48706
  { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;}
48700
48707
  break;
48701
48708
 
48702
48709
  case 1990:
48703
- #line 14718 "gram.y"
48710
+ #line 14725 "gram.y"
48704
48711
  { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;}
48705
48712
  break;
48706
48713
 
48707
48714
  case 1991:
48708
- #line 14720 "gram.y"
48715
+ #line 14727 "gram.y"
48709
48716
  { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;}
48710
48717
  break;
48711
48718
 
48712
48719
  case 1992:
48713
- #line 14722 "gram.y"
48720
+ #line 14729 "gram.y"
48714
48721
  { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;}
48715
48722
  break;
48716
48723
 
48717
48724
  case 1993:
48718
- #line 14724 "gram.y"
48725
+ #line 14731 "gram.y"
48719
48726
  { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;}
48720
48727
  break;
48721
48728
 
48722
48729
  case 1994:
48723
- #line 14726 "gram.y"
48730
+ #line 14733 "gram.y"
48724
48731
  { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
48725
48732
  break;
48726
48733
 
48727
48734
  case 1995:
48728
- #line 14728 "gram.y"
48735
+ #line 14735 "gram.y"
48729
48736
  {
48730
48737
  (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
48731
48738
  INTERVAL_MASK(MONTH), (yylsp[(1) - (3)])));
@@ -48733,7 +48740,7 @@ yyreduce:
48733
48740
  break;
48734
48741
 
48735
48742
  case 1996:
48736
- #line 14733 "gram.y"
48743
+ #line 14740 "gram.y"
48737
48744
  {
48738
48745
  (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
48739
48746
  INTERVAL_MASK(HOUR), (yylsp[(1) - (3)])));
@@ -48741,7 +48748,7 @@ yyreduce:
48741
48748
  break;
48742
48749
 
48743
48750
  case 1997:
48744
- #line 14738 "gram.y"
48751
+ #line 14745 "gram.y"
48745
48752
  {
48746
48753
  (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
48747
48754
  INTERVAL_MASK(HOUR) |
@@ -48750,7 +48757,7 @@ yyreduce:
48750
48757
  break;
48751
48758
 
48752
48759
  case 1998:
48753
- #line 14744 "gram.y"
48760
+ #line 14751 "gram.y"
48754
48761
  {
48755
48762
  (yyval.list) = (yyvsp[(3) - (3)].list);
48756
48763
  linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) |
@@ -48761,7 +48768,7 @@ yyreduce:
48761
48768
  break;
48762
48769
 
48763
48770
  case 1999:
48764
- #line 14752 "gram.y"
48771
+ #line 14759 "gram.y"
48765
48772
  {
48766
48773
  (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
48767
48774
  INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
@@ -48769,7 +48776,7 @@ yyreduce:
48769
48776
  break;
48770
48777
 
48771
48778
  case 2000:
48772
- #line 14757 "gram.y"
48779
+ #line 14764 "gram.y"
48773
48780
  {
48774
48781
  (yyval.list) = (yyvsp[(3) - (3)].list);
48775
48782
  linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) |
@@ -48779,7 +48786,7 @@ yyreduce:
48779
48786
  break;
48780
48787
 
48781
48788
  case 2001:
48782
- #line 14764 "gram.y"
48789
+ #line 14771 "gram.y"
48783
48790
  {
48784
48791
  (yyval.list) = (yyvsp[(3) - (3)].list);
48785
48792
  linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) |
@@ -48788,19 +48795,19 @@ yyreduce:
48788
48795
  break;
48789
48796
 
48790
48797
  case 2002:
48791
- #line 14770 "gram.y"
48798
+ #line 14777 "gram.y"
48792
48799
  { (yyval.list) = NIL; ;}
48793
48800
  break;
48794
48801
 
48795
48802
  case 2003:
48796
- #line 14775 "gram.y"
48803
+ #line 14782 "gram.y"
48797
48804
  {
48798
48805
  (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)])));
48799
48806
  ;}
48800
48807
  break;
48801
48808
 
48802
48809
  case 2004:
48803
- #line 14779 "gram.y"
48810
+ #line 14786 "gram.y"
48804
48811
  {
48805
48812
  (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (4)])),
48806
48813
  makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
@@ -48808,7 +48815,7 @@ yyreduce:
48808
48815
  break;
48809
48816
 
48810
48817
  case 2005:
48811
- #line 14787 "gram.y"
48818
+ #line 14794 "gram.y"
48812
48819
  {
48813
48820
  (yyval.typnam) = SystemTypeName("json");
48814
48821
  (yyval.typnam)->location = (yylsp[(1) - (1)]);
@@ -48816,17 +48823,17 @@ yyreduce:
48816
48823
  break;
48817
48824
 
48818
48825
  case 2006:
48819
- #line 14821 "gram.y"
48826
+ #line 14828 "gram.y"
48820
48827
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
48821
48828
  break;
48822
48829
 
48823
48830
  case 2007:
48824
- #line 14823 "gram.y"
48831
+ #line 14830 "gram.y"
48825
48832
  { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;}
48826
48833
  break;
48827
48834
 
48828
48835
  case 2008:
48829
- #line 14825 "gram.y"
48836
+ #line 14832 "gram.y"
48830
48837
  {
48831
48838
  CollateClause *n = makeNode(CollateClause);
48832
48839
 
@@ -48838,7 +48845,7 @@ yyreduce:
48838
48845
  break;
48839
48846
 
48840
48847
  case 2009:
48841
- #line 14834 "gram.y"
48848
+ #line 14841 "gram.y"
48842
48849
  {
48843
48850
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"),
48844
48851
  list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)),
@@ -48848,7 +48855,7 @@ yyreduce:
48848
48855
  break;
48849
48856
 
48850
48857
  case 2010:
48851
- #line 14841 "gram.y"
48858
+ #line 14848 "gram.y"
48852
48859
  {
48853
48860
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"),
48854
48861
  list_make1((yyvsp[(1) - (3)].node)),
@@ -48858,107 +48865,107 @@ yyreduce:
48858
48865
  break;
48859
48866
 
48860
48867
  case 2011:
48861
- #line 14857 "gram.y"
48868
+ #line 14864 "gram.y"
48862
48869
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
48863
48870
  break;
48864
48871
 
48865
48872
  case 2012:
48866
- #line 14859 "gram.y"
48873
+ #line 14866 "gram.y"
48867
48874
  { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
48868
48875
  break;
48869
48876
 
48870
48877
  case 2013:
48871
- #line 14861 "gram.y"
48878
+ #line 14868 "gram.y"
48872
48879
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48873
48880
  break;
48874
48881
 
48875
48882
  case 2014:
48876
- #line 14863 "gram.y"
48883
+ #line 14870 "gram.y"
48877
48884
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48878
48885
  break;
48879
48886
 
48880
48887
  case 2015:
48881
- #line 14865 "gram.y"
48888
+ #line 14872 "gram.y"
48882
48889
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48883
48890
  break;
48884
48891
 
48885
48892
  case 2016:
48886
- #line 14867 "gram.y"
48893
+ #line 14874 "gram.y"
48887
48894
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48888
48895
  break;
48889
48896
 
48890
48897
  case 2017:
48891
- #line 14869 "gram.y"
48898
+ #line 14876 "gram.y"
48892
48899
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48893
48900
  break;
48894
48901
 
48895
48902
  case 2018:
48896
- #line 14871 "gram.y"
48903
+ #line 14878 "gram.y"
48897
48904
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48898
48905
  break;
48899
48906
 
48900
48907
  case 2019:
48901
- #line 14873 "gram.y"
48908
+ #line 14880 "gram.y"
48902
48909
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48903
48910
  break;
48904
48911
 
48905
48912
  case 2020:
48906
- #line 14875 "gram.y"
48913
+ #line 14882 "gram.y"
48907
48914
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48908
48915
  break;
48909
48916
 
48910
48917
  case 2021:
48911
- #line 14877 "gram.y"
48918
+ #line 14884 "gram.y"
48912
48919
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48913
48920
  break;
48914
48921
 
48915
48922
  case 2022:
48916
- #line 14879 "gram.y"
48923
+ #line 14886 "gram.y"
48917
48924
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48918
48925
  break;
48919
48926
 
48920
48927
  case 2023:
48921
- #line 14881 "gram.y"
48928
+ #line 14888 "gram.y"
48922
48929
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48923
48930
  break;
48924
48931
 
48925
48932
  case 2024:
48926
- #line 14883 "gram.y"
48933
+ #line 14890 "gram.y"
48927
48934
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48928
48935
  break;
48929
48936
 
48930
48937
  case 2025:
48931
- #line 14886 "gram.y"
48938
+ #line 14893 "gram.y"
48932
48939
  { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48933
48940
  break;
48934
48941
 
48935
48942
  case 2026:
48936
- #line 14888 "gram.y"
48943
+ #line 14895 "gram.y"
48937
48944
  { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
48938
48945
  break;
48939
48946
 
48940
48947
  case 2027:
48941
- #line 14891 "gram.y"
48948
+ #line 14898 "gram.y"
48942
48949
  { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48943
48950
  break;
48944
48951
 
48945
48952
  case 2028:
48946
- #line 14893 "gram.y"
48953
+ #line 14900 "gram.y"
48947
48954
  { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
48948
48955
  break;
48949
48956
 
48950
48957
  case 2029:
48951
- #line 14895 "gram.y"
48958
+ #line 14902 "gram.y"
48952
48959
  { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
48953
48960
  break;
48954
48961
 
48955
48962
  case 2030:
48956
- #line 14897 "gram.y"
48963
+ #line 14904 "gram.y"
48957
48964
  { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
48958
48965
  break;
48959
48966
 
48960
48967
  case 2031:
48961
- #line 14900 "gram.y"
48968
+ #line 14907 "gram.y"
48962
48969
  {
48963
48970
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~",
48964
48971
  (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
@@ -48966,7 +48973,7 @@ yyreduce:
48966
48973
  break;
48967
48974
 
48968
48975
  case 2032:
48969
- #line 14905 "gram.y"
48976
+ #line 14912 "gram.y"
48970
48977
  {
48971
48978
  FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
48972
48979
  list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)),
@@ -48978,7 +48985,7 @@ yyreduce:
48978
48985
  break;
48979
48986
 
48980
48987
  case 2033:
48981
- #line 14914 "gram.y"
48988
+ #line 14921 "gram.y"
48982
48989
  {
48983
48990
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~",
48984
48991
  (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
@@ -48986,7 +48993,7 @@ yyreduce:
48986
48993
  break;
48987
48994
 
48988
48995
  case 2034:
48989
- #line 14919 "gram.y"
48996
+ #line 14926 "gram.y"
48990
48997
  {
48991
48998
  FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
48992
48999
  list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
@@ -48998,7 +49005,7 @@ yyreduce:
48998
49005
  break;
48999
49006
 
49000
49007
  case 2035:
49001
- #line 14928 "gram.y"
49008
+ #line 14935 "gram.y"
49002
49009
  {
49003
49010
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*",
49004
49011
  (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
@@ -49006,7 +49013,7 @@ yyreduce:
49006
49013
  break;
49007
49014
 
49008
49015
  case 2036:
49009
- #line 14933 "gram.y"
49016
+ #line 14940 "gram.y"
49010
49017
  {
49011
49018
  FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
49012
49019
  list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)),
@@ -49018,7 +49025,7 @@ yyreduce:
49018
49025
  break;
49019
49026
 
49020
49027
  case 2037:
49021
- #line 14942 "gram.y"
49028
+ #line 14949 "gram.y"
49022
49029
  {
49023
49030
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*",
49024
49031
  (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
@@ -49026,7 +49033,7 @@ yyreduce:
49026
49033
  break;
49027
49034
 
49028
49035
  case 2038:
49029
- #line 14947 "gram.y"
49036
+ #line 14954 "gram.y"
49030
49037
  {
49031
49038
  FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
49032
49039
  list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
@@ -49038,7 +49045,7 @@ yyreduce:
49038
49045
  break;
49039
49046
 
49040
49047
  case 2039:
49041
- #line 14957 "gram.y"
49048
+ #line 14964 "gram.y"
49042
49049
  {
49043
49050
  FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49044
49051
  list_make1((yyvsp[(4) - (4)].node)),
@@ -49050,7 +49057,7 @@ yyreduce:
49050
49057
  break;
49051
49058
 
49052
49059
  case 2040:
49053
- #line 14966 "gram.y"
49060
+ #line 14973 "gram.y"
49054
49061
  {
49055
49062
  FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49056
49063
  list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
@@ -49062,7 +49069,7 @@ yyreduce:
49062
49069
  break;
49063
49070
 
49064
49071
  case 2041:
49065
- #line 14975 "gram.y"
49072
+ #line 14982 "gram.y"
49066
49073
  {
49067
49074
  FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49068
49075
  list_make1((yyvsp[(5) - (5)].node)),
@@ -49074,7 +49081,7 @@ yyreduce:
49074
49081
  break;
49075
49082
 
49076
49083
  case 2042:
49077
- #line 14984 "gram.y"
49084
+ #line 14991 "gram.y"
49078
49085
  {
49079
49086
  FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49080
49087
  list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
@@ -49086,7 +49093,7 @@ yyreduce:
49086
49093
  break;
49087
49094
 
49088
49095
  case 2043:
49089
- #line 15003 "gram.y"
49096
+ #line 15010 "gram.y"
49090
49097
  {
49091
49098
  NullTest *n = makeNode(NullTest);
49092
49099
 
@@ -49098,7 +49105,7 @@ yyreduce:
49098
49105
  break;
49099
49106
 
49100
49107
  case 2044:
49101
- #line 15012 "gram.y"
49108
+ #line 15019 "gram.y"
49102
49109
  {
49103
49110
  NullTest *n = makeNode(NullTest);
49104
49111
 
@@ -49110,7 +49117,7 @@ yyreduce:
49110
49117
  break;
49111
49118
 
49112
49119
  case 2045:
49113
- #line 15021 "gram.y"
49120
+ #line 15028 "gram.y"
49114
49121
  {
49115
49122
  NullTest *n = makeNode(NullTest);
49116
49123
 
@@ -49122,7 +49129,7 @@ yyreduce:
49122
49129
  break;
49123
49130
 
49124
49131
  case 2046:
49125
- #line 15030 "gram.y"
49132
+ #line 15037 "gram.y"
49126
49133
  {
49127
49134
  NullTest *n = makeNode(NullTest);
49128
49135
 
@@ -49134,7 +49141,7 @@ yyreduce:
49134
49141
  break;
49135
49142
 
49136
49143
  case 2047:
49137
- #line 15039 "gram.y"
49144
+ #line 15046 "gram.y"
49138
49145
  {
49139
49146
  if (list_length((yyvsp[(1) - (3)].list)) != 2)
49140
49147
  ereport(ERROR,
@@ -49154,7 +49161,7 @@ yyreduce:
49154
49161
  break;
49155
49162
 
49156
49163
  case 2048:
49157
- #line 15056 "gram.y"
49164
+ #line 15063 "gram.y"
49158
49165
  {
49159
49166
  BooleanTest *b = makeNode(BooleanTest);
49160
49167
 
@@ -49166,7 +49173,7 @@ yyreduce:
49166
49173
  break;
49167
49174
 
49168
49175
  case 2049:
49169
- #line 15065 "gram.y"
49176
+ #line 15072 "gram.y"
49170
49177
  {
49171
49178
  BooleanTest *b = makeNode(BooleanTest);
49172
49179
 
@@ -49178,7 +49185,7 @@ yyreduce:
49178
49185
  break;
49179
49186
 
49180
49187
  case 2050:
49181
- #line 15074 "gram.y"
49188
+ #line 15081 "gram.y"
49182
49189
  {
49183
49190
  BooleanTest *b = makeNode(BooleanTest);
49184
49191
 
@@ -49190,7 +49197,7 @@ yyreduce:
49190
49197
  break;
49191
49198
 
49192
49199
  case 2051:
49193
- #line 15083 "gram.y"
49200
+ #line 15090 "gram.y"
49194
49201
  {
49195
49202
  BooleanTest *b = makeNode(BooleanTest);
49196
49203
 
@@ -49202,7 +49209,7 @@ yyreduce:
49202
49209
  break;
49203
49210
 
49204
49211
  case 2052:
49205
- #line 15092 "gram.y"
49212
+ #line 15099 "gram.y"
49206
49213
  {
49207
49214
  BooleanTest *b = makeNode(BooleanTest);
49208
49215
 
@@ -49214,7 +49221,7 @@ yyreduce:
49214
49221
  break;
49215
49222
 
49216
49223
  case 2053:
49217
- #line 15101 "gram.y"
49224
+ #line 15108 "gram.y"
49218
49225
  {
49219
49226
  BooleanTest *b = makeNode(BooleanTest);
49220
49227
 
@@ -49226,21 +49233,21 @@ yyreduce:
49226
49233
  break;
49227
49234
 
49228
49235
  case 2054:
49229
- #line 15110 "gram.y"
49236
+ #line 15117 "gram.y"
49230
49237
  {
49231
49238
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
49232
49239
  ;}
49233
49240
  break;
49234
49241
 
49235
49242
  case 2055:
49236
- #line 15114 "gram.y"
49243
+ #line 15121 "gram.y"
49237
49244
  {
49238
49245
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)]));
49239
49246
  ;}
49240
49247
  break;
49241
49248
 
49242
49249
  case 2056:
49243
- #line 15118 "gram.y"
49250
+ #line 15125 "gram.y"
49244
49251
  {
49245
49252
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN,
49246
49253
  "BETWEEN",
@@ -49251,7 +49258,7 @@ yyreduce:
49251
49258
  break;
49252
49259
 
49253
49260
  case 2057:
49254
- #line 15126 "gram.y"
49261
+ #line 15133 "gram.y"
49255
49262
  {
49256
49263
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN,
49257
49264
  "NOT BETWEEN",
@@ -49262,7 +49269,7 @@ yyreduce:
49262
49269
  break;
49263
49270
 
49264
49271
  case 2058:
49265
- #line 15134 "gram.y"
49272
+ #line 15141 "gram.y"
49266
49273
  {
49267
49274
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN_SYM,
49268
49275
  "BETWEEN SYMMETRIC",
@@ -49273,7 +49280,7 @@ yyreduce:
49273
49280
  break;
49274
49281
 
49275
49282
  case 2059:
49276
- #line 15142 "gram.y"
49283
+ #line 15149 "gram.y"
49277
49284
  {
49278
49285
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN_SYM,
49279
49286
  "NOT BETWEEN SYMMETRIC",
@@ -49284,7 +49291,7 @@ yyreduce:
49284
49291
  break;
49285
49292
 
49286
49293
  case 2060:
49287
- #line 15150 "gram.y"
49294
+ #line 15157 "gram.y"
49288
49295
  {
49289
49296
  /* in_expr returns a SubLink or a list of a_exprs */
49290
49297
  if (IsA((yyvsp[(3) - (3)].node), SubLink))
@@ -49308,7 +49315,7 @@ yyreduce:
49308
49315
  break;
49309
49316
 
49310
49317
  case 2061:
49311
- #line 15171 "gram.y"
49318
+ #line 15178 "gram.y"
49312
49319
  {
49313
49320
  /* in_expr returns a SubLink or a list of a_exprs */
49314
49321
  if (IsA((yyvsp[(4) - (4)].node), SubLink))
@@ -49334,7 +49341,7 @@ yyreduce:
49334
49341
  break;
49335
49342
 
49336
49343
  case 2062:
49337
- #line 15194 "gram.y"
49344
+ #line 15201 "gram.y"
49338
49345
  {
49339
49346
  SubLink *n = makeNode(SubLink);
49340
49347
 
@@ -49349,7 +49356,7 @@ yyreduce:
49349
49356
  break;
49350
49357
 
49351
49358
  case 2063:
49352
- #line 15206 "gram.y"
49359
+ #line 15213 "gram.y"
49353
49360
  {
49354
49361
  if ((yyvsp[(3) - (6)].ival) == ANY_SUBLINK)
49355
49362
  (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)]));
@@ -49359,7 +49366,7 @@ yyreduce:
49359
49366
  break;
49360
49367
 
49361
49368
  case 2064:
49362
- #line 15213 "gram.y"
49369
+ #line 15220 "gram.y"
49363
49370
  {
49364
49371
  /* Not sure how to get rid of the parentheses
49365
49372
  * but there are lots of shift/reduce errors without them.
@@ -49378,7 +49385,7 @@ yyreduce:
49378
49385
  break;
49379
49386
 
49380
49387
  case 2065:
49381
- #line 15229 "gram.y"
49388
+ #line 15236 "gram.y"
49382
49389
  {
49383
49390
  (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
49384
49391
  list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)]));
@@ -49386,7 +49393,7 @@ yyreduce:
49386
49393
  break;
49387
49394
 
49388
49395
  case 2066:
49389
- #line 15234 "gram.y"
49396
+ #line 15241 "gram.y"
49390
49397
  {
49391
49398
  (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL,
49392
49399
  list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])),
@@ -49395,7 +49402,7 @@ yyreduce:
49395
49402
  break;
49396
49403
 
49397
49404
  case 2067:
49398
- #line 15240 "gram.y"
49405
+ #line 15247 "gram.y"
49399
49406
  {
49400
49407
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"),
49401
49408
  list_make1((yyvsp[(1) - (3)].node)),
@@ -49405,7 +49412,7 @@ yyreduce:
49405
49412
  break;
49406
49413
 
49407
49414
  case 2068:
49408
- #line 15247 "gram.y"
49415
+ #line 15254 "gram.y"
49409
49416
  {
49410
49417
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"),
49411
49418
  list_make2((yyvsp[(1) - (4)].node), makeStringConst((yyvsp[(3) - (4)].str), (yylsp[(3) - (4)]))),
@@ -49415,7 +49422,7 @@ yyreduce:
49415
49422
  break;
49416
49423
 
49417
49424
  case 2069:
49418
- #line 15254 "gram.y"
49425
+ #line 15261 "gram.y"
49419
49426
  {
49420
49427
  (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"),
49421
49428
  list_make1((yyvsp[(1) - (4)].node)),
@@ -49426,7 +49433,7 @@ yyreduce:
49426
49433
  break;
49427
49434
 
49428
49435
  case 2070:
49429
- #line 15262 "gram.y"
49436
+ #line 15269 "gram.y"
49430
49437
  {
49431
49438
  (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"),
49432
49439
  list_make2((yyvsp[(1) - (5)].node), makeStringConst((yyvsp[(4) - (5)].str), (yylsp[(4) - (5)]))),
@@ -49437,7 +49444,7 @@ yyreduce:
49437
49444
  break;
49438
49445
 
49439
49446
  case 2071:
49440
- #line 15271 "gram.y"
49447
+ #line 15278 "gram.y"
49441
49448
  {
49442
49449
  JsonFormat *format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
49443
49450
 
@@ -49446,7 +49453,7 @@ yyreduce:
49446
49453
  break;
49447
49454
 
49448
49455
  case 2072:
49449
- #line 15289 "gram.y"
49456
+ #line 15296 "gram.y"
49450
49457
  {
49451
49458
  JsonFormat *format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
49452
49459
 
@@ -49455,7 +49462,7 @@ yyreduce:
49455
49462
  break;
49456
49463
 
49457
49464
  case 2073:
49458
- #line 15306 "gram.y"
49465
+ #line 15313 "gram.y"
49459
49466
  {
49460
49467
  /*
49461
49468
  * The SQL spec only allows DEFAULT in "contextually typed
@@ -49473,111 +49480,111 @@ yyreduce:
49473
49480
  break;
49474
49481
 
49475
49482
  case 2074:
49476
- #line 15332 "gram.y"
49483
+ #line 15339 "gram.y"
49477
49484
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
49478
49485
  break;
49479
49486
 
49480
49487
  case 2075:
49481
- #line 15334 "gram.y"
49488
+ #line 15341 "gram.y"
49482
49489
  { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;}
49483
49490
  break;
49484
49491
 
49485
49492
  case 2076:
49486
- #line 15336 "gram.y"
49493
+ #line 15343 "gram.y"
49487
49494
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
49488
49495
  break;
49489
49496
 
49490
49497
  case 2077:
49491
- #line 15338 "gram.y"
49498
+ #line 15345 "gram.y"
49492
49499
  { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
49493
49500
  break;
49494
49501
 
49495
49502
  case 2078:
49496
- #line 15340 "gram.y"
49503
+ #line 15347 "gram.y"
49497
49504
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49498
49505
  break;
49499
49506
 
49500
49507
  case 2079:
49501
- #line 15342 "gram.y"
49508
+ #line 15349 "gram.y"
49502
49509
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49503
49510
  break;
49504
49511
 
49505
49512
  case 2080:
49506
- #line 15344 "gram.y"
49513
+ #line 15351 "gram.y"
49507
49514
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49508
49515
  break;
49509
49516
 
49510
49517
  case 2081:
49511
- #line 15346 "gram.y"
49518
+ #line 15353 "gram.y"
49512
49519
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49513
49520
  break;
49514
49521
 
49515
49522
  case 2082:
49516
- #line 15348 "gram.y"
49523
+ #line 15355 "gram.y"
49517
49524
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49518
49525
  break;
49519
49526
 
49520
49527
  case 2083:
49521
- #line 15350 "gram.y"
49528
+ #line 15357 "gram.y"
49522
49529
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49523
49530
  break;
49524
49531
 
49525
49532
  case 2084:
49526
- #line 15352 "gram.y"
49533
+ #line 15359 "gram.y"
49527
49534
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49528
49535
  break;
49529
49536
 
49530
49537
  case 2085:
49531
- #line 15354 "gram.y"
49538
+ #line 15361 "gram.y"
49532
49539
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49533
49540
  break;
49534
49541
 
49535
49542
  case 2086:
49536
- #line 15356 "gram.y"
49543
+ #line 15363 "gram.y"
49537
49544
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49538
49545
  break;
49539
49546
 
49540
49547
  case 2087:
49541
- #line 15358 "gram.y"
49548
+ #line 15365 "gram.y"
49542
49549
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49543
49550
  break;
49544
49551
 
49545
49552
  case 2088:
49546
- #line 15360 "gram.y"
49553
+ #line 15367 "gram.y"
49547
49554
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49548
49555
  break;
49549
49556
 
49550
49557
  case 2089:
49551
- #line 15362 "gram.y"
49558
+ #line 15369 "gram.y"
49552
49559
  { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49553
49560
  break;
49554
49561
 
49555
49562
  case 2090:
49556
- #line 15364 "gram.y"
49563
+ #line 15371 "gram.y"
49557
49564
  { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
49558
49565
  break;
49559
49566
 
49560
49567
  case 2091:
49561
- #line 15366 "gram.y"
49568
+ #line 15373 "gram.y"
49562
49569
  { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
49563
49570
  break;
49564
49571
 
49565
49572
  case 2092:
49566
- #line 15368 "gram.y"
49573
+ #line 15375 "gram.y"
49567
49574
  {
49568
49575
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
49569
49576
  ;}
49570
49577
  break;
49571
49578
 
49572
49579
  case 2093:
49573
- #line 15372 "gram.y"
49580
+ #line 15379 "gram.y"
49574
49581
  {
49575
49582
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)]));
49576
49583
  ;}
49577
49584
  break;
49578
49585
 
49579
49586
  case 2094:
49580
- #line 15376 "gram.y"
49587
+ #line 15383 "gram.y"
49581
49588
  {
49582
49589
  (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
49583
49590
  list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)]));
@@ -49585,7 +49592,7 @@ yyreduce:
49585
49592
  break;
49586
49593
 
49587
49594
  case 2095:
49588
- #line 15381 "gram.y"
49595
+ #line 15388 "gram.y"
49589
49596
  {
49590
49597
  (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL,
49591
49598
  list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])),
@@ -49594,17 +49601,17 @@ yyreduce:
49594
49601
  break;
49595
49602
 
49596
49603
  case 2096:
49597
- #line 15396 "gram.y"
49604
+ #line 15403 "gram.y"
49598
49605
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
49599
49606
  break;
49600
49607
 
49601
49608
  case 2097:
49602
- #line 15397 "gram.y"
49609
+ #line 15404 "gram.y"
49603
49610
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
49604
49611
  break;
49605
49612
 
49606
49613
  case 2098:
49607
- #line 15399 "gram.y"
49614
+ #line 15406 "gram.y"
49608
49615
  {
49609
49616
  ParamRef *p = makeNode(ParamRef);
49610
49617
 
@@ -49624,7 +49631,7 @@ yyreduce:
49624
49631
  break;
49625
49632
 
49626
49633
  case 2099:
49627
- #line 15416 "gram.y"
49634
+ #line 15423 "gram.y"
49628
49635
  {
49629
49636
  if ((yyvsp[(4) - (4)].list))
49630
49637
  {
@@ -49640,17 +49647,17 @@ yyreduce:
49640
49647
  break;
49641
49648
 
49642
49649
  case 2100:
49643
- #line 15429 "gram.y"
49650
+ #line 15436 "gram.y"
49644
49651
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
49645
49652
  break;
49646
49653
 
49647
49654
  case 2101:
49648
- #line 15431 "gram.y"
49655
+ #line 15438 "gram.y"
49649
49656
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
49650
49657
  break;
49651
49658
 
49652
49659
  case 2102:
49653
- #line 15433 "gram.y"
49660
+ #line 15440 "gram.y"
49654
49661
  {
49655
49662
  SubLink *n = makeNode(SubLink);
49656
49663
 
@@ -49665,7 +49672,7 @@ yyreduce:
49665
49672
  break;
49666
49673
 
49667
49674
  case 2103:
49668
- #line 15445 "gram.y"
49675
+ #line 15452 "gram.y"
49669
49676
  {
49670
49677
  /*
49671
49678
  * Because the select_with_parens nonterminal is designed
@@ -49693,7 +49700,7 @@ yyreduce:
49693
49700
  break;
49694
49701
 
49695
49702
  case 2104:
49696
- #line 15470 "gram.y"
49703
+ #line 15477 "gram.y"
49697
49704
  {
49698
49705
  SubLink *n = makeNode(SubLink);
49699
49706
 
@@ -49708,7 +49715,7 @@ yyreduce:
49708
49715
  break;
49709
49716
 
49710
49717
  case 2105:
49711
- #line 15482 "gram.y"
49718
+ #line 15489 "gram.y"
49712
49719
  {
49713
49720
  SubLink *n = makeNode(SubLink);
49714
49721
 
@@ -49723,7 +49730,7 @@ yyreduce:
49723
49730
  break;
49724
49731
 
49725
49732
  case 2106:
49726
- #line 15494 "gram.y"
49733
+ #line 15501 "gram.y"
49727
49734
  {
49728
49735
  A_ArrayExpr *n = castNode(A_ArrayExpr, (yyvsp[(2) - (2)].node));
49729
49736
 
@@ -49734,7 +49741,7 @@ yyreduce:
49734
49741
  break;
49735
49742
 
49736
49743
  case 2107:
49737
- #line 15502 "gram.y"
49744
+ #line 15509 "gram.y"
49738
49745
  {
49739
49746
  RowExpr *r = makeNode(RowExpr);
49740
49747
 
@@ -49748,7 +49755,7 @@ yyreduce:
49748
49755
  break;
49749
49756
 
49750
49757
  case 2108:
49751
- #line 15513 "gram.y"
49758
+ #line 15520 "gram.y"
49752
49759
  {
49753
49760
  RowExpr *r = makeNode(RowExpr);
49754
49761
 
@@ -49762,7 +49769,7 @@ yyreduce:
49762
49769
  break;
49763
49770
 
49764
49771
  case 2109:
49765
- #line 15524 "gram.y"
49772
+ #line 15531 "gram.y"
49766
49773
  {
49767
49774
  GroupingFunc *g = makeNode(GroupingFunc);
49768
49775
 
@@ -49773,7 +49780,7 @@ yyreduce:
49773
49780
  break;
49774
49781
 
49775
49782
  case 2110:
49776
- #line 15534 "gram.y"
49783
+ #line 15541 "gram.y"
49777
49784
  {
49778
49785
  (yyval.node) = (Node *) makeFuncCall((yyvsp[(1) - (3)].list), NIL,
49779
49786
  COERCE_EXPLICIT_CALL,
@@ -49782,7 +49789,7 @@ yyreduce:
49782
49789
  break;
49783
49790
 
49784
49791
  case 2111:
49785
- #line 15540 "gram.y"
49792
+ #line 15547 "gram.y"
49786
49793
  {
49787
49794
  FuncCall *n = makeFuncCall((yyvsp[(1) - (5)].list), (yyvsp[(3) - (5)].list),
49788
49795
  COERCE_EXPLICIT_CALL,
@@ -49794,7 +49801,7 @@ yyreduce:
49794
49801
  break;
49795
49802
 
49796
49803
  case 2112:
49797
- #line 15549 "gram.y"
49804
+ #line 15556 "gram.y"
49798
49805
  {
49799
49806
  FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), list_make1((yyvsp[(4) - (6)].node)),
49800
49807
  COERCE_EXPLICIT_CALL,
@@ -49807,7 +49814,7 @@ yyreduce:
49807
49814
  break;
49808
49815
 
49809
49816
  case 2113:
49810
- #line 15559 "gram.y"
49817
+ #line 15566 "gram.y"
49811
49818
  {
49812
49819
  FuncCall *n = makeFuncCall((yyvsp[(1) - (8)].list), lappend((yyvsp[(3) - (8)].list), (yyvsp[(6) - (8)].node)),
49813
49820
  COERCE_EXPLICIT_CALL,
@@ -49820,7 +49827,7 @@ yyreduce:
49820
49827
  break;
49821
49828
 
49822
49829
  case 2114:
49823
- #line 15569 "gram.y"
49830
+ #line 15576 "gram.y"
49824
49831
  {
49825
49832
  FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(4) - (6)].list),
49826
49833
  COERCE_EXPLICIT_CALL,
@@ -49836,7 +49843,7 @@ yyreduce:
49836
49843
  break;
49837
49844
 
49838
49845
  case 2115:
49839
- #line 15582 "gram.y"
49846
+ #line 15589 "gram.y"
49840
49847
  {
49841
49848
  FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(4) - (6)].list),
49842
49849
  COERCE_EXPLICIT_CALL,
@@ -49849,7 +49856,7 @@ yyreduce:
49849
49856
  break;
49850
49857
 
49851
49858
  case 2116:
49852
- #line 15592 "gram.y"
49859
+ #line 15599 "gram.y"
49853
49860
  {
49854
49861
  /*
49855
49862
  * We consider AGGREGATE(*) to invoke a parameterless
@@ -49871,7 +49878,7 @@ yyreduce:
49871
49878
  break;
49872
49879
 
49873
49880
  case 2117:
49874
- #line 15623 "gram.y"
49881
+ #line 15630 "gram.y"
49875
49882
  {
49876
49883
  FuncCall *n = (FuncCall *) (yyvsp[(1) - (4)].node);
49877
49884
 
@@ -49910,7 +49917,7 @@ yyreduce:
49910
49917
  break;
49911
49918
 
49912
49919
  case 2118:
49913
- #line 15659 "gram.y"
49920
+ #line 15666 "gram.y"
49914
49921
  {
49915
49922
  JsonAggConstructor *n = IsA((yyvsp[(1) - (3)].node), JsonObjectAgg) ?
49916
49923
  ((JsonObjectAgg *) (yyvsp[(1) - (3)].node))->constructor :
@@ -49923,27 +49930,27 @@ yyreduce:
49923
49930
  break;
49924
49931
 
49925
49932
  case 2119:
49926
- #line 15669 "gram.y"
49933
+ #line 15676 "gram.y"
49927
49934
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
49928
49935
  break;
49929
49936
 
49930
49937
  case 2120:
49931
- #line 15679 "gram.y"
49938
+ #line 15686 "gram.y"
49932
49939
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
49933
49940
  break;
49934
49941
 
49935
49942
  case 2121:
49936
- #line 15680 "gram.y"
49943
+ #line 15687 "gram.y"
49937
49944
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
49938
49945
  break;
49939
49946
 
49940
49947
  case 2122:
49941
- #line 15681 "gram.y"
49948
+ #line 15688 "gram.y"
49942
49949
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
49943
49950
  break;
49944
49951
 
49945
49952
  case 2123:
49946
- #line 15689 "gram.y"
49953
+ #line 15696 "gram.y"
49947
49954
  {
49948
49955
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"),
49949
49956
  list_make1((yyvsp[(4) - (5)].node)),
@@ -49953,91 +49960,91 @@ yyreduce:
49953
49960
  break;
49954
49961
 
49955
49962
  case 2124:
49956
- #line 15696 "gram.y"
49963
+ #line 15703 "gram.y"
49957
49964
  {
49958
49965
  (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_DATE, -1, (yylsp[(1) - (1)]));
49959
49966
  ;}
49960
49967
  break;
49961
49968
 
49962
49969
  case 2125:
49963
- #line 15700 "gram.y"
49970
+ #line 15707 "gram.y"
49964
49971
  {
49965
49972
  (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME, -1, (yylsp[(1) - (1)]));
49966
49973
  ;}
49967
49974
  break;
49968
49975
 
49969
49976
  case 2126:
49970
- #line 15704 "gram.y"
49977
+ #line 15711 "gram.y"
49971
49978
  {
49972
49979
  (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
49973
49980
  ;}
49974
49981
  break;
49975
49982
 
49976
49983
  case 2127:
49977
- #line 15708 "gram.y"
49984
+ #line 15715 "gram.y"
49978
49985
  {
49979
49986
  (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[(1) - (1)]));
49980
49987
  ;}
49981
49988
  break;
49982
49989
 
49983
49990
  case 2128:
49984
- #line 15712 "gram.y"
49991
+ #line 15719 "gram.y"
49985
49992
  {
49986
49993
  (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
49987
49994
  ;}
49988
49995
  break;
49989
49996
 
49990
49997
  case 2129:
49991
- #line 15716 "gram.y"
49998
+ #line 15723 "gram.y"
49992
49999
  {
49993
50000
  (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME, -1, (yylsp[(1) - (1)]));
49994
50001
  ;}
49995
50002
  break;
49996
50003
 
49997
50004
  case 2130:
49998
- #line 15720 "gram.y"
50005
+ #line 15727 "gram.y"
49999
50006
  {
50000
50007
  (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
50001
50008
  ;}
50002
50009
  break;
50003
50010
 
50004
50011
  case 2131:
50005
- #line 15724 "gram.y"
50012
+ #line 15731 "gram.y"
50006
50013
  {
50007
50014
  (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP, -1, (yylsp[(1) - (1)]));
50008
50015
  ;}
50009
50016
  break;
50010
50017
 
50011
50018
  case 2132:
50012
- #line 15728 "gram.y"
50019
+ #line 15735 "gram.y"
50013
50020
  {
50014
50021
  (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
50015
50022
  ;}
50016
50023
  break;
50017
50024
 
50018
50025
  case 2133:
50019
- #line 15732 "gram.y"
50026
+ #line 15739 "gram.y"
50020
50027
  {
50021
50028
  (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_ROLE, -1, (yylsp[(1) - (1)]));
50022
50029
  ;}
50023
50030
  break;
50024
50031
 
50025
50032
  case 2134:
50026
- #line 15736 "gram.y"
50033
+ #line 15743 "gram.y"
50027
50034
  {
50028
50035
  (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_USER, -1, (yylsp[(1) - (1)]));
50029
50036
  ;}
50030
50037
  break;
50031
50038
 
50032
50039
  case 2135:
50033
- #line 15740 "gram.y"
50040
+ #line 15747 "gram.y"
50034
50041
  {
50035
50042
  (yyval.node) = makeSQLValueFunction(SVFOP_SESSION_USER, -1, (yylsp[(1) - (1)]));
50036
50043
  ;}
50037
50044
  break;
50038
50045
 
50039
50046
  case 2136:
50040
- #line 15744 "gram.y"
50047
+ #line 15751 "gram.y"
50041
50048
  {
50042
50049
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("system_user"),
50043
50050
  NIL,
@@ -50047,33 +50054,33 @@ yyreduce:
50047
50054
  break;
50048
50055
 
50049
50056
  case 2137:
50050
- #line 15751 "gram.y"
50057
+ #line 15758 "gram.y"
50051
50058
  {
50052
50059
  (yyval.node) = makeSQLValueFunction(SVFOP_USER, -1, (yylsp[(1) - (1)]));
50053
50060
  ;}
50054
50061
  break;
50055
50062
 
50056
50063
  case 2138:
50057
- #line 15755 "gram.y"
50064
+ #line 15762 "gram.y"
50058
50065
  {
50059
50066
  (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_CATALOG, -1, (yylsp[(1) - (1)]));
50060
50067
  ;}
50061
50068
  break;
50062
50069
 
50063
50070
  case 2139:
50064
- #line 15759 "gram.y"
50071
+ #line 15766 "gram.y"
50065
50072
  {
50066
50073
  (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_SCHEMA, -1, (yylsp[(1) - (1)]));
50067
50074
  ;}
50068
50075
  break;
50069
50076
 
50070
50077
  case 2140:
50071
- #line 15763 "gram.y"
50078
+ #line 15770 "gram.y"
50072
50079
  { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), (yylsp[(1) - (6)])); ;}
50073
50080
  break;
50074
50081
 
50075
50082
  case 2141:
50076
- #line 15765 "gram.y"
50083
+ #line 15772 "gram.y"
50077
50084
  {
50078
50085
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("extract"),
50079
50086
  (yyvsp[(3) - (4)].list),
@@ -50083,7 +50090,7 @@ yyreduce:
50083
50090
  break;
50084
50091
 
50085
50092
  case 2142:
50086
- #line 15772 "gram.y"
50093
+ #line 15779 "gram.y"
50087
50094
  {
50088
50095
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"),
50089
50096
  list_make1((yyvsp[(3) - (4)].node)),
@@ -50093,7 +50100,7 @@ yyreduce:
50093
50100
  break;
50094
50101
 
50095
50102
  case 2143:
50096
- #line 15779 "gram.y"
50103
+ #line 15786 "gram.y"
50097
50104
  {
50098
50105
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"),
50099
50106
  list_make2((yyvsp[(3) - (6)].node), makeStringConst((yyvsp[(5) - (6)].str), (yylsp[(5) - (6)]))),
@@ -50103,7 +50110,7 @@ yyreduce:
50103
50110
  break;
50104
50111
 
50105
50112
  case 2144:
50106
- #line 15786 "gram.y"
50113
+ #line 15793 "gram.y"
50107
50114
  {
50108
50115
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"),
50109
50116
  (yyvsp[(3) - (4)].list),
@@ -50113,7 +50120,7 @@ yyreduce:
50113
50120
  break;
50114
50121
 
50115
50122
  case 2145:
50116
- #line 15793 "gram.y"
50123
+ #line 15800 "gram.y"
50117
50124
  {
50118
50125
  /*
50119
50126
  * allow functions named overlay() to be called without
@@ -50127,7 +50134,7 @@ yyreduce:
50127
50134
  break;
50128
50135
 
50129
50136
  case 2146:
50130
- #line 15804 "gram.y"
50137
+ #line 15811 "gram.y"
50131
50138
  {
50132
50139
  /*
50133
50140
  * position(A in B) is converted to position(B, A)
@@ -50144,7 +50151,7 @@ yyreduce:
50144
50151
  break;
50145
50152
 
50146
50153
  case 2147:
50147
- #line 15818 "gram.y"
50154
+ #line 15825 "gram.y"
50148
50155
  {
50149
50156
  /* substring(A from B for C) is converted to
50150
50157
  * substring(A, B, C) - thomas 2000-11-28
@@ -50157,7 +50164,7 @@ yyreduce:
50157
50164
  break;
50158
50165
 
50159
50166
  case 2148:
50160
- #line 15828 "gram.y"
50167
+ #line 15835 "gram.y"
50161
50168
  {
50162
50169
  /*
50163
50170
  * allow functions named substring() to be called without
@@ -50171,7 +50178,7 @@ yyreduce:
50171
50178
  break;
50172
50179
 
50173
50180
  case 2149:
50174
- #line 15839 "gram.y"
50181
+ #line 15846 "gram.y"
50175
50182
  {
50176
50183
  /* TREAT(expr AS target) converts expr of a particular type to target,
50177
50184
  * which is defined to be a subtype of the original expression.
@@ -50190,7 +50197,7 @@ yyreduce:
50190
50197
  break;
50191
50198
 
50192
50199
  case 2150:
50193
- #line 15855 "gram.y"
50200
+ #line 15862 "gram.y"
50194
50201
  {
50195
50202
  /* various trim expressions are defined in SQL
50196
50203
  * - thomas 1997-07-19
@@ -50203,7 +50210,7 @@ yyreduce:
50203
50210
  break;
50204
50211
 
50205
50212
  case 2151:
50206
- #line 15865 "gram.y"
50213
+ #line 15872 "gram.y"
50207
50214
  {
50208
50215
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"),
50209
50216
  (yyvsp[(4) - (5)].list),
@@ -50213,7 +50220,7 @@ yyreduce:
50213
50220
  break;
50214
50221
 
50215
50222
  case 2152:
50216
- #line 15872 "gram.y"
50223
+ #line 15879 "gram.y"
50217
50224
  {
50218
50225
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"),
50219
50226
  (yyvsp[(4) - (5)].list),
@@ -50223,7 +50230,7 @@ yyreduce:
50223
50230
  break;
50224
50231
 
50225
50232
  case 2153:
50226
- #line 15879 "gram.y"
50233
+ #line 15886 "gram.y"
50227
50234
  {
50228
50235
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"),
50229
50236
  (yyvsp[(3) - (4)].list),
@@ -50233,14 +50240,14 @@ yyreduce:
50233
50240
  break;
50234
50241
 
50235
50242
  case 2154:
50236
- #line 15886 "gram.y"
50243
+ #line 15893 "gram.y"
50237
50244
  {
50238
50245
  (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)]));
50239
50246
  ;}
50240
50247
  break;
50241
50248
 
50242
50249
  case 2155:
50243
- #line 15890 "gram.y"
50250
+ #line 15897 "gram.y"
50244
50251
  {
50245
50252
  CoalesceExpr *c = makeNode(CoalesceExpr);
50246
50253
 
@@ -50251,7 +50258,7 @@ yyreduce:
50251
50258
  break;
50252
50259
 
50253
50260
  case 2156:
50254
- #line 15898 "gram.y"
50261
+ #line 15905 "gram.y"
50255
50262
  {
50256
50263
  MinMaxExpr *v = makeNode(MinMaxExpr);
50257
50264
 
@@ -50263,7 +50270,7 @@ yyreduce:
50263
50270
  break;
50264
50271
 
50265
50272
  case 2157:
50266
- #line 15907 "gram.y"
50273
+ #line 15914 "gram.y"
50267
50274
  {
50268
50275
  MinMaxExpr *v = makeNode(MinMaxExpr);
50269
50276
 
@@ -50275,42 +50282,42 @@ yyreduce:
50275
50282
  break;
50276
50283
 
50277
50284
  case 2158:
50278
- #line 15916 "gram.y"
50285
+ #line 15923 "gram.y"
50279
50286
  {
50280
50287
  (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
50281
50288
  ;}
50282
50289
  break;
50283
50290
 
50284
50291
  case 2159:
50285
- #line 15920 "gram.y"
50292
+ #line 15927 "gram.y"
50286
50293
  {
50287
50294
  (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (5)].str), NIL, NIL, (yylsp[(1) - (5)]));
50288
50295
  ;}
50289
50296
  break;
50290
50297
 
50291
50298
  case 2160:
50292
- #line 15924 "gram.y"
50299
+ #line 15931 "gram.y"
50293
50300
  {
50294
50301
  (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), (yyvsp[(6) - (7)].list), NIL, (yylsp[(1) - (7)]));
50295
50302
  ;}
50296
50303
  break;
50297
50304
 
50298
50305
  case 2161:
50299
- #line 15928 "gram.y"
50306
+ #line 15935 "gram.y"
50300
50307
  {
50301
50308
  (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), NIL, (yyvsp[(6) - (7)].list), (yylsp[(1) - (7)]));
50302
50309
  ;}
50303
50310
  break;
50304
50311
 
50305
50312
  case 2162:
50306
- #line 15932 "gram.y"
50313
+ #line 15939 "gram.y"
50307
50314
  {
50308
50315
  (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (9)].str), (yyvsp[(6) - (9)].list), (yyvsp[(8) - (9)].list), (yylsp[(1) - (9)]));
50309
50316
  ;}
50310
50317
  break;
50311
50318
 
50312
50319
  case 2163:
50313
- #line 15936 "gram.y"
50320
+ #line 15943 "gram.y"
50314
50321
  {
50315
50322
  /* xmlexists(A PASSING [BY REF] B [BY REF]) is
50316
50323
  * converted to xmlexists(A, B)*/
@@ -50322,14 +50329,14 @@ yyreduce:
50322
50329
  break;
50323
50330
 
50324
50331
  case 2164:
50325
- #line 15945 "gram.y"
50332
+ #line 15952 "gram.y"
50326
50333
  {
50327
50334
  (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[(3) - (4)].list), NIL, (yylsp[(1) - (4)]));
50328
50335
  ;}
50329
50336
  break;
50330
50337
 
50331
50338
  case 2165:
50332
- #line 15949 "gram.y"
50339
+ #line 15956 "gram.y"
50333
50340
  {
50334
50341
  XmlExpr *x = (XmlExpr *)
50335
50342
  makeXmlExpr(IS_XMLPARSE, NULL, NIL,
@@ -50342,21 +50349,21 @@ yyreduce:
50342
50349
  break;
50343
50350
 
50344
50351
  case 2166:
50345
- #line 15959 "gram.y"
50352
+ #line 15966 "gram.y"
50346
50353
  {
50347
50354
  (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (5)].str), NULL, NIL, (yylsp[(1) - (5)]));
50348
50355
  ;}
50349
50356
  break;
50350
50357
 
50351
50358
  case 2167:
50352
- #line 15963 "gram.y"
50359
+ #line 15970 "gram.y"
50353
50360
  {
50354
50361
  (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (7)].str), NULL, list_make1((yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)]));
50355
50362
  ;}
50356
50363
  break;
50357
50364
 
50358
50365
  case 2168:
50359
- #line 15967 "gram.y"
50366
+ #line 15974 "gram.y"
50360
50367
  {
50361
50368
  (yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL,
50362
50369
  list_make3((yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)]));
@@ -50364,7 +50371,7 @@ yyreduce:
50364
50371
  break;
50365
50372
 
50366
50373
  case 2169:
50367
- #line 15972 "gram.y"
50374
+ #line 15979 "gram.y"
50368
50375
  {
50369
50376
  XmlSerialize *n = makeNode(XmlSerialize);
50370
50377
 
@@ -50378,7 +50385,7 @@ yyreduce:
50378
50385
  break;
50379
50386
 
50380
50387
  case 2170:
50381
- #line 15983 "gram.y"
50388
+ #line 15990 "gram.y"
50382
50389
  {
50383
50390
  /* Support for legacy (non-standard) json_object() */
50384
50391
  (yyval.node) = (Node *) makeFuncCall(SystemFuncName("json_object"),
@@ -50387,7 +50394,7 @@ yyreduce:
50387
50394
  break;
50388
50395
 
50389
50396
  case 2171:
50390
- #line 15992 "gram.y"
50397
+ #line 15999 "gram.y"
50391
50398
  {
50392
50399
  JsonObjectConstructor *n = makeNode(JsonObjectConstructor);
50393
50400
 
@@ -50401,7 +50408,7 @@ yyreduce:
50401
50408
  break;
50402
50409
 
50403
50410
  case 2172:
50404
- #line 16003 "gram.y"
50411
+ #line 16010 "gram.y"
50405
50412
  {
50406
50413
  JsonObjectConstructor *n = makeNode(JsonObjectConstructor);
50407
50414
 
@@ -50415,7 +50422,7 @@ yyreduce:
50415
50422
  break;
50416
50423
 
50417
50424
  case 2173:
50418
- #line 16018 "gram.y"
50425
+ #line 16025 "gram.y"
50419
50426
  {
50420
50427
  JsonArrayConstructor *n = makeNode(JsonArrayConstructor);
50421
50428
 
@@ -50428,7 +50435,7 @@ yyreduce:
50428
50435
  break;
50429
50436
 
50430
50437
  case 2174:
50431
- #line 16033 "gram.y"
50438
+ #line 16040 "gram.y"
50432
50439
  {
50433
50440
  JsonArrayQueryConstructor *n = makeNode(JsonArrayQueryConstructor);
50434
50441
 
@@ -50442,7 +50449,7 @@ yyreduce:
50442
50449
  break;
50443
50450
 
50444
50451
  case 2175:
50445
- #line 16046 "gram.y"
50452
+ #line 16053 "gram.y"
50446
50453
  {
50447
50454
  JsonArrayConstructor *n = makeNode(JsonArrayConstructor);
50448
50455
 
@@ -50455,7 +50462,7 @@ yyreduce:
50455
50462
  break;
50456
50463
 
50457
50464
  case 2176:
50458
- #line 16056 "gram.y"
50465
+ #line 16063 "gram.y"
50459
50466
  {
50460
50467
  JsonParseExpr *n = makeNode(JsonParseExpr);
50461
50468
 
@@ -50468,7 +50475,7 @@ yyreduce:
50468
50475
  break;
50469
50476
 
50470
50477
  case 2177:
50471
- #line 16066 "gram.y"
50478
+ #line 16073 "gram.y"
50472
50479
  {
50473
50480
  JsonScalarExpr *n = makeNode(JsonScalarExpr);
50474
50481
 
@@ -50480,7 +50487,7 @@ yyreduce:
50480
50487
  break;
50481
50488
 
50482
50489
  case 2178:
50483
- #line 16075 "gram.y"
50490
+ #line 16082 "gram.y"
50484
50491
  {
50485
50492
  JsonSerializeExpr *n = makeNode(JsonSerializeExpr);
50486
50493
 
@@ -50492,7 +50499,7 @@ yyreduce:
50492
50499
  break;
50493
50500
 
50494
50501
  case 2179:
50495
- #line 16084 "gram.y"
50502
+ #line 16091 "gram.y"
50496
50503
  {
50497
50504
  MergeSupportFunc *m = makeNode(MergeSupportFunc);
50498
50505
 
@@ -50503,7 +50510,7 @@ yyreduce:
50503
50510
  break;
50504
50511
 
50505
50512
  case 2180:
50506
- #line 16098 "gram.y"
50513
+ #line 16105 "gram.y"
50507
50514
  {
50508
50515
  JsonFuncExpr *n = makeNode(JsonFuncExpr);
50509
50516
 
@@ -50522,7 +50529,7 @@ yyreduce:
50522
50529
  break;
50523
50530
 
50524
50531
  case 2181:
50525
- #line 16117 "gram.y"
50532
+ #line 16124 "gram.y"
50526
50533
  {
50527
50534
  JsonFuncExpr *n = makeNode(JsonFuncExpr);
50528
50535
 
@@ -50538,7 +50545,7 @@ yyreduce:
50538
50545
  break;
50539
50546
 
50540
50547
  case 2182:
50541
- #line 16134 "gram.y"
50548
+ #line 16141 "gram.y"
50542
50549
  {
50543
50550
  JsonFuncExpr *n = makeNode(JsonFuncExpr);
50544
50551
 
@@ -50555,52 +50562,52 @@ yyreduce:
50555
50562
  break;
50556
50563
 
50557
50564
  case 2183:
50558
- #line 16154 "gram.y"
50565
+ #line 16161 "gram.y"
50559
50566
  { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
50560
50567
  break;
50561
50568
 
50562
50569
  case 2184:
50563
- #line 16156 "gram.y"
50570
+ #line 16163 "gram.y"
50564
50571
  { (yyval.node) = makeNullAConst(-1); ;}
50565
50572
  break;
50566
50573
 
50567
50574
  case 2185:
50568
- #line 16160 "gram.y"
50575
+ #line 16167 "gram.y"
50569
50576
  { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); ;}
50570
50577
  break;
50571
50578
 
50572
50579
  case 2186:
50573
- #line 16162 "gram.y"
50580
+ #line 16169 "gram.y"
50574
50581
  { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); ;}
50575
50582
  break;
50576
50583
 
50577
50584
  case 2187:
50578
- #line 16164 "gram.y"
50585
+ #line 16171 "gram.y"
50579
50586
  { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); ;}
50580
50587
  break;
50581
50588
 
50582
50589
  case 2188:
50583
- #line 16166 "gram.y"
50590
+ #line 16173 "gram.y"
50584
50591
  { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); ;}
50585
50592
  break;
50586
50593
 
50587
50594
  case 2189:
50588
- #line 16169 "gram.y"
50595
+ #line 16176 "gram.y"
50589
50596
  { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
50590
50597
  break;
50591
50598
 
50592
50599
  case 2190:
50593
- #line 16172 "gram.y"
50600
+ #line 16179 "gram.y"
50594
50601
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
50595
50602
  break;
50596
50603
 
50597
50604
  case 2191:
50598
- #line 16173 "gram.y"
50605
+ #line 16180 "gram.y"
50599
50606
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
50600
50607
  break;
50601
50608
 
50602
50609
  case 2192:
50603
- #line 16177 "gram.y"
50610
+ #line 16184 "gram.y"
50604
50611
  {
50605
50612
  (yyval.target) = makeNode(ResTarget);
50606
50613
  (yyval.target)->name = (yyvsp[(3) - (3)].str);
@@ -50611,7 +50618,7 @@ yyreduce:
50611
50618
  break;
50612
50619
 
50613
50620
  case 2193:
50614
- #line 16185 "gram.y"
50621
+ #line 16192 "gram.y"
50615
50622
  {
50616
50623
  (yyval.target) = makeNode(ResTarget);
50617
50624
  (yyval.target)->name = NULL;
@@ -50622,115 +50629,115 @@ yyreduce:
50622
50629
  break;
50623
50630
 
50624
50631
  case 2194:
50625
- #line 16194 "gram.y"
50632
+ #line 16201 "gram.y"
50626
50633
  { (yyval.ival) = XMLOPTION_DOCUMENT; ;}
50627
50634
  break;
50628
50635
 
50629
50636
  case 2195:
50630
- #line 16195 "gram.y"
50637
+ #line 16202 "gram.y"
50631
50638
  { (yyval.ival) = XMLOPTION_CONTENT; ;}
50632
50639
  break;
50633
50640
 
50634
50641
  case 2196:
50635
- #line 16198 "gram.y"
50642
+ #line 16205 "gram.y"
50636
50643
  { (yyval.boolean) = true; ;}
50637
50644
  break;
50638
50645
 
50639
50646
  case 2197:
50640
- #line 16199 "gram.y"
50647
+ #line 16206 "gram.y"
50641
50648
  { (yyval.boolean) = false; ;}
50642
50649
  break;
50643
50650
 
50644
50651
  case 2198:
50645
- #line 16200 "gram.y"
50652
+ #line 16207 "gram.y"
50646
50653
  { (yyval.boolean) = false; ;}
50647
50654
  break;
50648
50655
 
50649
50656
  case 2199:
50650
- #line 16203 "gram.y"
50657
+ #line 16210 "gram.y"
50651
50658
  { (yyval.boolean) = true; ;}
50652
50659
  break;
50653
50660
 
50654
50661
  case 2200:
50655
- #line 16204 "gram.y"
50662
+ #line 16211 "gram.y"
50656
50663
  { (yyval.boolean) = false; ;}
50657
50664
  break;
50658
50665
 
50659
50666
  case 2201:
50660
- #line 16205 "gram.y"
50667
+ #line 16212 "gram.y"
50661
50668
  { (yyval.boolean) = false; ;}
50662
50669
  break;
50663
50670
 
50664
50671
  case 2202:
50665
- #line 16211 "gram.y"
50672
+ #line 16218 "gram.y"
50666
50673
  {
50667
50674
  (yyval.node) = (yyvsp[(2) - (2)].node);
50668
50675
  ;}
50669
50676
  break;
50670
50677
 
50671
50678
  case 2203:
50672
- #line 16215 "gram.y"
50679
+ #line 16222 "gram.y"
50673
50680
  {
50674
50681
  (yyval.node) = (yyvsp[(2) - (3)].node);
50675
50682
  ;}
50676
50683
  break;
50677
50684
 
50678
50685
  case 2204:
50679
- #line 16219 "gram.y"
50686
+ #line 16226 "gram.y"
50680
50687
  {
50681
50688
  (yyval.node) = (yyvsp[(3) - (3)].node);
50682
50689
  ;}
50683
50690
  break;
50684
50691
 
50685
50692
  case 2205:
50686
- #line 16223 "gram.y"
50693
+ #line 16230 "gram.y"
50687
50694
  {
50688
50695
  (yyval.node) = (yyvsp[(3) - (4)].node);
50689
50696
  ;}
50690
50697
  break;
50691
50698
 
50692
50699
  case 2208:
50693
- #line 16238 "gram.y"
50700
+ #line 16245 "gram.y"
50694
50701
  { (yyval.list) = (yyvsp[(4) - (5)].list); ;}
50695
50702
  break;
50696
50703
 
50697
50704
  case 2209:
50698
- #line 16239 "gram.y"
50705
+ #line 16246 "gram.y"
50699
50706
  { (yyval.list) = NIL; ;}
50700
50707
  break;
50701
50708
 
50702
50709
  case 2210:
50703
- #line 16243 "gram.y"
50710
+ #line 16250 "gram.y"
50704
50711
  { (yyval.node) = (yyvsp[(4) - (5)].node); ;}
50705
50712
  break;
50706
50713
 
50707
50714
  case 2211:
50708
- #line 16244 "gram.y"
50715
+ #line 16251 "gram.y"
50709
50716
  { (yyval.node) = NULL; ;}
50710
50717
  break;
50711
50718
 
50712
50719
  case 2212:
50713
- #line 16252 "gram.y"
50720
+ #line 16259 "gram.y"
50714
50721
  { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
50715
50722
  break;
50716
50723
 
50717
50724
  case 2213:
50718
- #line 16253 "gram.y"
50725
+ #line 16260 "gram.y"
50719
50726
  { (yyval.list) = NIL; ;}
50720
50727
  break;
50721
50728
 
50722
50729
  case 2214:
50723
- #line 16257 "gram.y"
50730
+ #line 16264 "gram.y"
50724
50731
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;}
50725
50732
  break;
50726
50733
 
50727
50734
  case 2215:
50728
- #line 16259 "gram.y"
50735
+ #line 16266 "gram.y"
50729
50736
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;}
50730
50737
  break;
50731
50738
 
50732
50739
  case 2216:
50733
- #line 16264 "gram.y"
50740
+ #line 16271 "gram.y"
50734
50741
  {
50735
50742
  WindowDef *n = (yyvsp[(3) - (3)].windef);
50736
50743
 
@@ -50740,12 +50747,12 @@ yyreduce:
50740
50747
  break;
50741
50748
 
50742
50749
  case 2217:
50743
- #line 16273 "gram.y"
50750
+ #line 16280 "gram.y"
50744
50751
  { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;}
50745
50752
  break;
50746
50753
 
50747
50754
  case 2218:
50748
- #line 16275 "gram.y"
50755
+ #line 16282 "gram.y"
50749
50756
  {
50750
50757
  WindowDef *n = makeNode(WindowDef);
50751
50758
 
@@ -50762,12 +50769,12 @@ yyreduce:
50762
50769
  break;
50763
50770
 
50764
50771
  case 2219:
50765
- #line 16289 "gram.y"
50772
+ #line 16296 "gram.y"
50766
50773
  { (yyval.windef) = NULL; ;}
50767
50774
  break;
50768
50775
 
50769
50776
  case 2220:
50770
- #line 16294 "gram.y"
50777
+ #line 16301 "gram.y"
50771
50778
  {
50772
50779
  WindowDef *n = makeNode(WindowDef);
50773
50780
 
@@ -50785,27 +50792,27 @@ yyreduce:
50785
50792
  break;
50786
50793
 
50787
50794
  case 2221:
50788
- #line 16320 "gram.y"
50795
+ #line 16327 "gram.y"
50789
50796
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
50790
50797
  break;
50791
50798
 
50792
50799
  case 2222:
50793
- #line 16321 "gram.y"
50800
+ #line 16328 "gram.y"
50794
50801
  { (yyval.str) = NULL; ;}
50795
50802
  break;
50796
50803
 
50797
50804
  case 2223:
50798
- #line 16324 "gram.y"
50805
+ #line 16331 "gram.y"
50799
50806
  { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
50800
50807
  break;
50801
50808
 
50802
50809
  case 2224:
50803
- #line 16325 "gram.y"
50810
+ #line 16332 "gram.y"
50804
50811
  { (yyval.list) = NIL; ;}
50805
50812
  break;
50806
50813
 
50807
50814
  case 2225:
50808
- #line 16334 "gram.y"
50815
+ #line 16341 "gram.y"
50809
50816
  {
50810
50817
  WindowDef *n = (yyvsp[(2) - (3)].windef);
50811
50818
 
@@ -50816,7 +50823,7 @@ yyreduce:
50816
50823
  break;
50817
50824
 
50818
50825
  case 2226:
50819
- #line 16342 "gram.y"
50826
+ #line 16349 "gram.y"
50820
50827
  {
50821
50828
  WindowDef *n = (yyvsp[(2) - (3)].windef);
50822
50829
 
@@ -50827,7 +50834,7 @@ yyreduce:
50827
50834
  break;
50828
50835
 
50829
50836
  case 2227:
50830
- #line 16350 "gram.y"
50837
+ #line 16357 "gram.y"
50831
50838
  {
50832
50839
  WindowDef *n = (yyvsp[(2) - (3)].windef);
50833
50840
 
@@ -50838,7 +50845,7 @@ yyreduce:
50838
50845
  break;
50839
50846
 
50840
50847
  case 2228:
50841
- #line 16358 "gram.y"
50848
+ #line 16365 "gram.y"
50842
50849
  {
50843
50850
  WindowDef *n = makeNode(WindowDef);
50844
50851
 
@@ -50850,7 +50857,7 @@ yyreduce:
50850
50857
  break;
50851
50858
 
50852
50859
  case 2229:
50853
- #line 16369 "gram.y"
50860
+ #line 16376 "gram.y"
50854
50861
  {
50855
50862
  WindowDef *n = (yyvsp[(1) - (1)].windef);
50856
50863
 
@@ -50871,7 +50878,7 @@ yyreduce:
50871
50878
  break;
50872
50879
 
50873
50880
  case 2230:
50874
- #line 16387 "gram.y"
50881
+ #line 16394 "gram.y"
50875
50882
  {
50876
50883
  WindowDef *n1 = (yyvsp[(2) - (4)].windef);
50877
50884
  WindowDef *n2 = (yyvsp[(4) - (4)].windef);
@@ -50912,7 +50919,7 @@ yyreduce:
50912
50919
  break;
50913
50920
 
50914
50921
  case 2231:
50915
- #line 16433 "gram.y"
50922
+ #line 16440 "gram.y"
50916
50923
  {
50917
50924
  WindowDef *n = makeNode(WindowDef);
50918
50925
 
@@ -50924,7 +50931,7 @@ yyreduce:
50924
50931
  break;
50925
50932
 
50926
50933
  case 2232:
50927
- #line 16442 "gram.y"
50934
+ #line 16449 "gram.y"
50928
50935
  {
50929
50936
  WindowDef *n = makeNode(WindowDef);
50930
50937
 
@@ -50936,7 +50943,7 @@ yyreduce:
50936
50943
  break;
50937
50944
 
50938
50945
  case 2233:
50939
- #line 16451 "gram.y"
50946
+ #line 16458 "gram.y"
50940
50947
  {
50941
50948
  WindowDef *n = makeNode(WindowDef);
50942
50949
 
@@ -50948,7 +50955,7 @@ yyreduce:
50948
50955
  break;
50949
50956
 
50950
50957
  case 2234:
50951
- #line 16460 "gram.y"
50958
+ #line 16467 "gram.y"
50952
50959
  {
50953
50960
  WindowDef *n = makeNode(WindowDef);
50954
50961
 
@@ -50960,7 +50967,7 @@ yyreduce:
50960
50967
  break;
50961
50968
 
50962
50969
  case 2235:
50963
- #line 16469 "gram.y"
50970
+ #line 16476 "gram.y"
50964
50971
  {
50965
50972
  WindowDef *n = makeNode(WindowDef);
50966
50973
 
@@ -50972,232 +50979,232 @@ yyreduce:
50972
50979
  break;
50973
50980
 
50974
50981
  case 2236:
50975
- #line 16480 "gram.y"
50982
+ #line 16487 "gram.y"
50976
50983
  { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; ;}
50977
50984
  break;
50978
50985
 
50979
50986
  case 2237:
50980
- #line 16481 "gram.y"
50987
+ #line 16488 "gram.y"
50981
50988
  { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; ;}
50982
50989
  break;
50983
50990
 
50984
50991
  case 2238:
50985
- #line 16482 "gram.y"
50992
+ #line 16489 "gram.y"
50986
50993
  { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; ;}
50987
50994
  break;
50988
50995
 
50989
50996
  case 2239:
50990
- #line 16483 "gram.y"
50997
+ #line 16490 "gram.y"
50991
50998
  { (yyval.ival) = 0; ;}
50992
50999
  break;
50993
51000
 
50994
51001
  case 2240:
50995
- #line 16484 "gram.y"
51002
+ #line 16491 "gram.y"
50996
51003
  { (yyval.ival) = 0; ;}
50997
51004
  break;
50998
51005
 
50999
51006
  case 2241:
51000
- #line 16498 "gram.y"
51007
+ #line 16505 "gram.y"
51001
51008
  { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
51002
51009
  break;
51003
51010
 
51004
51011
  case 2242:
51005
- #line 16499 "gram.y"
51012
+ #line 16506 "gram.y"
51006
51013
  { (yyval.list) = NIL; ;}
51007
51014
  break;
51008
51015
 
51009
51016
  case 2243:
51010
- #line 16500 "gram.y"
51017
+ #line 16507 "gram.y"
51011
51018
  { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;}
51012
51019
  break;
51013
51020
 
51014
51021
  case 2244:
51015
- #line 16503 "gram.y"
51022
+ #line 16510 "gram.y"
51016
51023
  { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
51017
51024
  break;
51018
51025
 
51019
51026
  case 2245:
51020
- #line 16504 "gram.y"
51027
+ #line 16511 "gram.y"
51021
51028
  { (yyval.list) = NIL; ;}
51022
51029
  break;
51023
51030
 
51024
51031
  case 2246:
51025
- #line 16507 "gram.y"
51032
+ #line 16514 "gram.y"
51026
51033
  { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;}
51027
51034
  break;
51028
51035
 
51029
51036
  case 2247:
51030
- #line 16510 "gram.y"
51037
+ #line 16517 "gram.y"
51031
51038
  { (yyval.ival) = ANY_SUBLINK; ;}
51032
51039
  break;
51033
51040
 
51034
51041
  case 2248:
51035
- #line 16511 "gram.y"
51042
+ #line 16518 "gram.y"
51036
51043
  { (yyval.ival) = ANY_SUBLINK; ;}
51037
51044
  break;
51038
51045
 
51039
51046
  case 2249:
51040
- #line 16512 "gram.y"
51047
+ #line 16519 "gram.y"
51041
51048
  { (yyval.ival) = ALL_SUBLINK; ;}
51042
51049
  break;
51043
51050
 
51044
51051
  case 2250:
51045
- #line 16515 "gram.y"
51052
+ #line 16522 "gram.y"
51046
51053
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
51047
51054
  break;
51048
51055
 
51049
51056
  case 2251:
51050
- #line 16516 "gram.y"
51057
+ #line 16523 "gram.y"
51051
51058
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
51052
51059
  break;
51053
51060
 
51054
51061
  case 2252:
51055
- #line 16519 "gram.y"
51062
+ #line 16526 "gram.y"
51056
51063
  { (yyval.str) = "+"; ;}
51057
51064
  break;
51058
51065
 
51059
51066
  case 2253:
51060
- #line 16520 "gram.y"
51067
+ #line 16527 "gram.y"
51061
51068
  { (yyval.str) = "-"; ;}
51062
51069
  break;
51063
51070
 
51064
51071
  case 2254:
51065
- #line 16521 "gram.y"
51072
+ #line 16528 "gram.y"
51066
51073
  { (yyval.str) = "*"; ;}
51067
51074
  break;
51068
51075
 
51069
51076
  case 2255:
51070
- #line 16522 "gram.y"
51077
+ #line 16529 "gram.y"
51071
51078
  { (yyval.str) = "/"; ;}
51072
51079
  break;
51073
51080
 
51074
51081
  case 2256:
51075
- #line 16523 "gram.y"
51082
+ #line 16530 "gram.y"
51076
51083
  { (yyval.str) = "%"; ;}
51077
51084
  break;
51078
51085
 
51079
51086
  case 2257:
51080
- #line 16524 "gram.y"
51087
+ #line 16531 "gram.y"
51081
51088
  { (yyval.str) = "^"; ;}
51082
51089
  break;
51083
51090
 
51084
51091
  case 2258:
51085
- #line 16525 "gram.y"
51092
+ #line 16532 "gram.y"
51086
51093
  { (yyval.str) = "<"; ;}
51087
51094
  break;
51088
51095
 
51089
51096
  case 2259:
51090
- #line 16526 "gram.y"
51097
+ #line 16533 "gram.y"
51091
51098
  { (yyval.str) = ">"; ;}
51092
51099
  break;
51093
51100
 
51094
51101
  case 2260:
51095
- #line 16527 "gram.y"
51102
+ #line 16534 "gram.y"
51096
51103
  { (yyval.str) = "="; ;}
51097
51104
  break;
51098
51105
 
51099
51106
  case 2261:
51100
- #line 16528 "gram.y"
51107
+ #line 16535 "gram.y"
51101
51108
  { (yyval.str) = "<="; ;}
51102
51109
  break;
51103
51110
 
51104
51111
  case 2262:
51105
- #line 16529 "gram.y"
51112
+ #line 16536 "gram.y"
51106
51113
  { (yyval.str) = ">="; ;}
51107
51114
  break;
51108
51115
 
51109
51116
  case 2263:
51110
- #line 16530 "gram.y"
51117
+ #line 16537 "gram.y"
51111
51118
  { (yyval.str) = "<>"; ;}
51112
51119
  break;
51113
51120
 
51114
51121
  case 2264:
51115
- #line 16534 "gram.y"
51122
+ #line 16541 "gram.y"
51116
51123
  { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
51117
51124
  break;
51118
51125
 
51119
51126
  case 2265:
51120
- #line 16536 "gram.y"
51127
+ #line 16543 "gram.y"
51121
51128
  { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
51122
51129
  break;
51123
51130
 
51124
51131
  case 2266:
51125
- #line 16541 "gram.y"
51132
+ #line 16548 "gram.y"
51126
51133
  { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
51127
51134
  break;
51128
51135
 
51129
51136
  case 2267:
51130
- #line 16543 "gram.y"
51137
+ #line 16550 "gram.y"
51131
51138
  { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
51132
51139
  break;
51133
51140
 
51134
51141
  case 2268:
51135
- #line 16548 "gram.y"
51142
+ #line 16555 "gram.y"
51136
51143
  { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
51137
51144
  break;
51138
51145
 
51139
51146
  case 2269:
51140
- #line 16550 "gram.y"
51147
+ #line 16557 "gram.y"
51141
51148
  { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
51142
51149
  break;
51143
51150
 
51144
51151
  case 2270:
51145
- #line 16552 "gram.y"
51152
+ #line 16559 "gram.y"
51146
51153
  { (yyval.list) = list_make1(makeString("~~")); ;}
51147
51154
  break;
51148
51155
 
51149
51156
  case 2271:
51150
- #line 16554 "gram.y"
51157
+ #line 16561 "gram.y"
51151
51158
  { (yyval.list) = list_make1(makeString("!~~")); ;}
51152
51159
  break;
51153
51160
 
51154
51161
  case 2272:
51155
- #line 16556 "gram.y"
51162
+ #line 16563 "gram.y"
51156
51163
  { (yyval.list) = list_make1(makeString("~~*")); ;}
51157
51164
  break;
51158
51165
 
51159
51166
  case 2273:
51160
- #line 16558 "gram.y"
51167
+ #line 16565 "gram.y"
51161
51168
  { (yyval.list) = list_make1(makeString("!~~*")); ;}
51162
51169
  break;
51163
51170
 
51164
51171
  case 2274:
51165
- #line 16570 "gram.y"
51172
+ #line 16577 "gram.y"
51166
51173
  {
51167
51174
  (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
51168
51175
  ;}
51169
51176
  break;
51170
51177
 
51171
51178
  case 2275:
51172
- #line 16574 "gram.y"
51179
+ #line 16581 "gram.y"
51173
51180
  {
51174
51181
  (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
51175
51182
  ;}
51176
51183
  break;
51177
51184
 
51178
51185
  case 2276:
51179
- #line 16581 "gram.y"
51186
+ #line 16588 "gram.y"
51180
51187
  {
51181
51188
  (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
51182
51189
  ;}
51183
51190
  break;
51184
51191
 
51185
51192
  case 2277:
51186
- #line 16585 "gram.y"
51193
+ #line 16592 "gram.y"
51187
51194
  {
51188
51195
  (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
51189
51196
  ;}
51190
51197
  break;
51191
51198
 
51192
51199
  case 2278:
51193
- #line 16591 "gram.y"
51200
+ #line 16598 "gram.y"
51194
51201
  {
51195
51202
  (yyval.node) = (yyvsp[(1) - (1)].node);
51196
51203
  ;}
51197
51204
  break;
51198
51205
 
51199
51206
  case 2279:
51200
- #line 16595 "gram.y"
51207
+ #line 16602 "gram.y"
51201
51208
  {
51202
51209
  NamedArgExpr *na = makeNode(NamedArgExpr);
51203
51210
 
@@ -51210,7 +51217,7 @@ yyreduce:
51210
51217
  break;
51211
51218
 
51212
51219
  case 2280:
51213
- #line 16605 "gram.y"
51220
+ #line 16612 "gram.y"
51214
51221
  {
51215
51222
  NamedArgExpr *na = makeNode(NamedArgExpr);
51216
51223
 
@@ -51223,132 +51230,132 @@ yyreduce:
51223
51230
  break;
51224
51231
 
51225
51232
  case 2281:
51226
- #line 16616 "gram.y"
51233
+ #line 16623 "gram.y"
51227
51234
  { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
51228
51235
  break;
51229
51236
 
51230
51237
  case 2282:
51231
- #line 16617 "gram.y"
51238
+ #line 16624 "gram.y"
51232
51239
  { (yyval.list) = NIL; ;}
51233
51240
  break;
51234
51241
 
51235
51242
  case 2283:
51236
- #line 16620 "gram.y"
51243
+ #line 16627 "gram.y"
51237
51244
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;}
51238
51245
  break;
51239
51246
 
51240
51247
  case 2284:
51241
- #line 16621 "gram.y"
51248
+ #line 16628 "gram.y"
51242
51249
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;}
51243
51250
  break;
51244
51251
 
51245
51252
  case 2285:
51246
- #line 16625 "gram.y"
51253
+ #line 16632 "gram.y"
51247
51254
  {
51248
51255
  (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)]));
51249
51256
  ;}
51250
51257
  break;
51251
51258
 
51252
51259
  case 2286:
51253
- #line 16629 "gram.y"
51260
+ #line 16636 "gram.y"
51254
51261
  {
51255
51262
  (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)]));
51256
51263
  ;}
51257
51264
  break;
51258
51265
 
51259
51266
  case 2287:
51260
- #line 16633 "gram.y"
51267
+ #line 16640 "gram.y"
51261
51268
  {
51262
51269
  (yyval.node) = makeAArrayExpr(NIL, (yylsp[(1) - (2)]));
51263
51270
  ;}
51264
51271
  break;
51265
51272
 
51266
51273
  case 2288:
51267
- #line 16638 "gram.y"
51274
+ #line 16645 "gram.y"
51268
51275
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
51269
51276
  break;
51270
51277
 
51271
51278
  case 2289:
51272
- #line 16639 "gram.y"
51279
+ #line 16646 "gram.y"
51273
51280
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
51274
51281
  break;
51275
51282
 
51276
51283
  case 2290:
51277
- #line 16645 "gram.y"
51284
+ #line 16652 "gram.y"
51278
51285
  {
51279
51286
  (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node));
51280
51287
  ;}
51281
51288
  break;
51282
51289
 
51283
51290
  case 2291:
51284
- #line 16649 "gram.y"
51291
+ #line 16656 "gram.y"
51285
51292
  {
51286
51293
  (yyval.list) = list_make2(makeParamRef((yyvsp[(1) - (3)].ival), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node));
51287
51294
  ;}
51288
51295
  break;
51289
51296
 
51290
51297
  case 2292:
51291
- #line 16658 "gram.y"
51298
+ #line 16665 "gram.y"
51292
51299
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
51293
51300
  break;
51294
51301
 
51295
51302
  case 2293:
51296
- #line 16659 "gram.y"
51303
+ #line 16666 "gram.y"
51297
51304
  { (yyval.str) = "year"; ;}
51298
51305
  break;
51299
51306
 
51300
51307
  case 2294:
51301
- #line 16660 "gram.y"
51308
+ #line 16667 "gram.y"
51302
51309
  { (yyval.str) = "month"; ;}
51303
51310
  break;
51304
51311
 
51305
51312
  case 2295:
51306
- #line 16661 "gram.y"
51313
+ #line 16668 "gram.y"
51307
51314
  { (yyval.str) = "day"; ;}
51308
51315
  break;
51309
51316
 
51310
51317
  case 2296:
51311
- #line 16662 "gram.y"
51318
+ #line 16669 "gram.y"
51312
51319
  { (yyval.str) = "hour"; ;}
51313
51320
  break;
51314
51321
 
51315
51322
  case 2297:
51316
- #line 16663 "gram.y"
51323
+ #line 16670 "gram.y"
51317
51324
  { (yyval.str) = "minute"; ;}
51318
51325
  break;
51319
51326
 
51320
51327
  case 2298:
51321
- #line 16664 "gram.y"
51328
+ #line 16671 "gram.y"
51322
51329
  { (yyval.str) = "second"; ;}
51323
51330
  break;
51324
51331
 
51325
51332
  case 2299:
51326
- #line 16665 "gram.y"
51333
+ #line 16672 "gram.y"
51327
51334
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
51328
51335
  break;
51329
51336
 
51330
51337
  case 2300:
51331
- #line 16669 "gram.y"
51338
+ #line 16676 "gram.y"
51332
51339
  { (yyval.str) = "NFC"; ;}
51333
51340
  break;
51334
51341
 
51335
51342
  case 2301:
51336
- #line 16670 "gram.y"
51343
+ #line 16677 "gram.y"
51337
51344
  { (yyval.str) = "NFD"; ;}
51338
51345
  break;
51339
51346
 
51340
51347
  case 2302:
51341
- #line 16671 "gram.y"
51348
+ #line 16678 "gram.y"
51342
51349
  { (yyval.str) = "NFKC"; ;}
51343
51350
  break;
51344
51351
 
51345
51352
  case 2303:
51346
- #line 16672 "gram.y"
51353
+ #line 16679 "gram.y"
51347
51354
  { (yyval.str) = "NFKD"; ;}
51348
51355
  break;
51349
51356
 
51350
51357
  case 2304:
51351
- #line 16678 "gram.y"
51358
+ #line 16685 "gram.y"
51352
51359
  {
51353
51360
  /* overlay(A PLACING B FROM C FOR D) is converted to overlay(A, B, C, D) */
51354
51361
  (yyval.list) = list_make4((yyvsp[(1) - (7)].node), (yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node));
@@ -51356,7 +51363,7 @@ yyreduce:
51356
51363
  break;
51357
51364
 
51358
51365
  case 2305:
51359
- #line 16683 "gram.y"
51366
+ #line 16690 "gram.y"
51360
51367
  {
51361
51368
  /* overlay(A PLACING B FROM C) is converted to overlay(A, B, C) */
51362
51369
  (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));
@@ -51364,19 +51371,19 @@ yyreduce:
51364
51371
  break;
51365
51372
 
51366
51373
  case 2306:
51367
- #line 16691 "gram.y"
51374
+ #line 16698 "gram.y"
51368
51375
  { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;}
51369
51376
  break;
51370
51377
 
51371
51378
  case 2307:
51372
- #line 16713 "gram.y"
51379
+ #line 16720 "gram.y"
51373
51380
  {
51374
51381
  (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));
51375
51382
  ;}
51376
51383
  break;
51377
51384
 
51378
51385
  case 2308:
51379
- #line 16717 "gram.y"
51386
+ #line 16724 "gram.y"
51380
51387
  {
51381
51388
  /* not legal per SQL, but might as well allow it */
51382
51389
  (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yyvsp[(3) - (5)].node));
@@ -51384,7 +51391,7 @@ yyreduce:
51384
51391
  break;
51385
51392
 
51386
51393
  case 2309:
51387
- #line 16722 "gram.y"
51394
+ #line 16729 "gram.y"
51388
51395
  {
51389
51396
  /*
51390
51397
  * Because we aren't restricting data types here, this
@@ -51398,7 +51405,7 @@ yyreduce:
51398
51405
  break;
51399
51406
 
51400
51407
  case 2310:
51401
- #line 16733 "gram.y"
51408
+ #line 16740 "gram.y"
51402
51409
  {
51403
51410
  /* not legal per SQL */
51404
51411
 
@@ -51418,29 +51425,29 @@ yyreduce:
51418
51425
  break;
51419
51426
 
51420
51427
  case 2311:
51421
- #line 16750 "gram.y"
51428
+ #line 16757 "gram.y"
51422
51429
  {
51423
51430
  (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));
51424
51431
  ;}
51425
51432
  break;
51426
51433
 
51427
51434
  case 2312:
51428
- #line 16755 "gram.y"
51435
+ #line 16762 "gram.y"
51429
51436
  { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;}
51430
51437
  break;
51431
51438
 
51432
51439
  case 2313:
51433
- #line 16756 "gram.y"
51440
+ #line 16763 "gram.y"
51434
51441
  { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
51435
51442
  break;
51436
51443
 
51437
51444
  case 2314:
51438
- #line 16757 "gram.y"
51445
+ #line 16764 "gram.y"
51439
51446
  { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
51440
51447
  break;
51441
51448
 
51442
51449
  case 2315:
51443
- #line 16761 "gram.y"
51450
+ #line 16768 "gram.y"
51444
51451
  {
51445
51452
  SubLink *n = makeNode(SubLink);
51446
51453
 
@@ -51451,12 +51458,12 @@ yyreduce:
51451
51458
  break;
51452
51459
 
51453
51460
  case 2316:
51454
- #line 16768 "gram.y"
51461
+ #line 16775 "gram.y"
51455
51462
  { (yyval.node) = (Node *) (yyvsp[(2) - (3)].list); ;}
51456
51463
  break;
51457
51464
 
51458
51465
  case 2317:
51459
- #line 16779 "gram.y"
51466
+ #line 16786 "gram.y"
51460
51467
  {
51461
51468
  CaseExpr *c = makeNode(CaseExpr);
51462
51469
 
@@ -51470,17 +51477,17 @@ yyreduce:
51470
51477
  break;
51471
51478
 
51472
51479
  case 2318:
51473
- #line 16793 "gram.y"
51480
+ #line 16800 "gram.y"
51474
51481
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
51475
51482
  break;
51476
51483
 
51477
51484
  case 2319:
51478
- #line 16794 "gram.y"
51485
+ #line 16801 "gram.y"
51479
51486
  { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
51480
51487
  break;
51481
51488
 
51482
51489
  case 2320:
51483
- #line 16799 "gram.y"
51490
+ #line 16806 "gram.y"
51484
51491
  {
51485
51492
  CaseWhen *w = makeNode(CaseWhen);
51486
51493
 
@@ -51492,55 +51499,55 @@ yyreduce:
51492
51499
  break;
51493
51500
 
51494
51501
  case 2321:
51495
- #line 16810 "gram.y"
51502
+ #line 16817 "gram.y"
51496
51503
  { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
51497
51504
  break;
51498
51505
 
51499
51506
  case 2322:
51500
- #line 16811 "gram.y"
51507
+ #line 16818 "gram.y"
51501
51508
  { (yyval.node) = NULL; ;}
51502
51509
  break;
51503
51510
 
51504
51511
  case 2323:
51505
- #line 16814 "gram.y"
51512
+ #line 16821 "gram.y"
51506
51513
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
51507
51514
  break;
51508
51515
 
51509
51516
  case 2324:
51510
- #line 16815 "gram.y"
51517
+ #line 16822 "gram.y"
51511
51518
  { (yyval.node) = NULL; ;}
51512
51519
  break;
51513
51520
 
51514
51521
  case 2325:
51515
- #line 16819 "gram.y"
51522
+ #line 16826 "gram.y"
51516
51523
  {
51517
51524
  (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner);
51518
51525
  ;}
51519
51526
  break;
51520
51527
 
51521
51528
  case 2326:
51522
- #line 16823 "gram.y"
51529
+ #line 16830 "gram.y"
51523
51530
  {
51524
51531
  (yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner);
51525
51532
  ;}
51526
51533
  break;
51527
51534
 
51528
51535
  case 2327:
51529
- #line 16830 "gram.y"
51536
+ #line 16837 "gram.y"
51530
51537
  {
51531
51538
  (yyval.node) = (Node *) makeString((yyvsp[(2) - (2)].str));
51532
51539
  ;}
51533
51540
  break;
51534
51541
 
51535
51542
  case 2328:
51536
- #line 16834 "gram.y"
51543
+ #line 16841 "gram.y"
51537
51544
  {
51538
51545
  (yyval.node) = (Node *) makeNode(A_Star);
51539
51546
  ;}
51540
51547
  break;
51541
51548
 
51542
51549
  case 2329:
51543
- #line 16838 "gram.y"
51550
+ #line 16845 "gram.y"
51544
51551
  {
51545
51552
  A_Indices *ai = makeNode(A_Indices);
51546
51553
 
@@ -51552,7 +51559,7 @@ yyreduce:
51552
51559
  break;
51553
51560
 
51554
51561
  case 2330:
51555
- #line 16847 "gram.y"
51562
+ #line 16854 "gram.y"
51556
51563
  {
51557
51564
  A_Indices *ai = makeNode(A_Indices);
51558
51565
 
@@ -51564,57 +51571,57 @@ yyreduce:
51564
51571
  break;
51565
51572
 
51566
51573
  case 2331:
51567
- #line 16858 "gram.y"
51574
+ #line 16865 "gram.y"
51568
51575
  { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
51569
51576
  break;
51570
51577
 
51571
51578
  case 2332:
51572
- #line 16859 "gram.y"
51579
+ #line 16866 "gram.y"
51573
51580
  { (yyval.node) = NULL; ;}
51574
51581
  break;
51575
51582
 
51576
51583
  case 2333:
51577
- #line 16863 "gram.y"
51584
+ #line 16870 "gram.y"
51578
51585
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
51579
51586
  break;
51580
51587
 
51581
51588
  case 2334:
51582
- #line 16864 "gram.y"
51589
+ #line 16871 "gram.y"
51583
51590
  { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
51584
51591
  break;
51585
51592
 
51586
51593
  case 2335:
51587
- #line 16868 "gram.y"
51594
+ #line 16875 "gram.y"
51588
51595
  { (yyval.list) = NIL; ;}
51589
51596
  break;
51590
51597
 
51591
51598
  case 2336:
51592
- #line 16869 "gram.y"
51599
+ #line 16876 "gram.y"
51593
51600
  { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
51594
51601
  break;
51595
51602
 
51596
51603
  case 2339:
51597
- #line 16878 "gram.y"
51604
+ #line 16885 "gram.y"
51598
51605
  { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
51599
51606
  break;
51600
51607
 
51601
51608
  case 2340:
51602
- #line 16879 "gram.y"
51609
+ #line 16886 "gram.y"
51603
51610
  { (yyval.list) = NIL; ;}
51604
51611
  break;
51605
51612
 
51606
51613
  case 2341:
51607
- #line 16883 "gram.y"
51614
+ #line 16890 "gram.y"
51608
51615
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
51609
51616
  break;
51610
51617
 
51611
51618
  case 2342:
51612
- #line 16884 "gram.y"
51619
+ #line 16891 "gram.y"
51613
51620
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
51614
51621
  break;
51615
51622
 
51616
51623
  case 2343:
51617
- #line 16889 "gram.y"
51624
+ #line 16896 "gram.y"
51618
51625
  {
51619
51626
  JsonArgument *n = makeNode(JsonArgument);
51620
51627
 
@@ -51625,132 +51632,132 @@ yyreduce:
51625
51632
  break;
51626
51633
 
51627
51634
  case 2344:
51628
- #line 16900 "gram.y"
51635
+ #line 16907 "gram.y"
51629
51636
  { (yyval.ival) = JSW_NONE; ;}
51630
51637
  break;
51631
51638
 
51632
51639
  case 2345:
51633
- #line 16901 "gram.y"
51640
+ #line 16908 "gram.y"
51634
51641
  { (yyval.ival) = JSW_NONE; ;}
51635
51642
  break;
51636
51643
 
51637
51644
  case 2346:
51638
- #line 16902 "gram.y"
51645
+ #line 16909 "gram.y"
51639
51646
  { (yyval.ival) = JSW_UNCONDITIONAL; ;}
51640
51647
  break;
51641
51648
 
51642
51649
  case 2347:
51643
- #line 16903 "gram.y"
51650
+ #line 16910 "gram.y"
51644
51651
  { (yyval.ival) = JSW_UNCONDITIONAL; ;}
51645
51652
  break;
51646
51653
 
51647
51654
  case 2348:
51648
- #line 16904 "gram.y"
51655
+ #line 16911 "gram.y"
51649
51656
  { (yyval.ival) = JSW_CONDITIONAL; ;}
51650
51657
  break;
51651
51658
 
51652
51659
  case 2349:
51653
- #line 16905 "gram.y"
51660
+ #line 16912 "gram.y"
51654
51661
  { (yyval.ival) = JSW_UNCONDITIONAL; ;}
51655
51662
  break;
51656
51663
 
51657
51664
  case 2350:
51658
- #line 16906 "gram.y"
51665
+ #line 16913 "gram.y"
51659
51666
  { (yyval.ival) = JSW_CONDITIONAL; ;}
51660
51667
  break;
51661
51668
 
51662
51669
  case 2351:
51663
- #line 16907 "gram.y"
51670
+ #line 16914 "gram.y"
51664
51671
  { (yyval.ival) = JSW_UNCONDITIONAL; ;}
51665
51672
  break;
51666
51673
 
51667
51674
  case 2352:
51668
- #line 16908 "gram.y"
51675
+ #line 16915 "gram.y"
51669
51676
  { (yyval.ival) = JSW_UNSPEC; ;}
51670
51677
  break;
51671
51678
 
51672
51679
  case 2353:
51673
- #line 16913 "gram.y"
51680
+ #line 16920 "gram.y"
51674
51681
  { (yyval.node) = (Node *) makeJsonBehavior(JSON_BEHAVIOR_DEFAULT, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
51675
51682
  break;
51676
51683
 
51677
51684
  case 2354:
51678
- #line 16915 "gram.y"
51685
+ #line 16922 "gram.y"
51679
51686
  { (yyval.node) = (Node *) makeJsonBehavior((yyvsp[(1) - (1)].ival), NULL, (yylsp[(1) - (1)])); ;}
51680
51687
  break;
51681
51688
 
51682
51689
  case 2355:
51683
- #line 16919 "gram.y"
51690
+ #line 16926 "gram.y"
51684
51691
  { (yyval.ival) = JSON_BEHAVIOR_ERROR; ;}
51685
51692
  break;
51686
51693
 
51687
51694
  case 2356:
51688
- #line 16920 "gram.y"
51695
+ #line 16927 "gram.y"
51689
51696
  { (yyval.ival) = JSON_BEHAVIOR_NULL; ;}
51690
51697
  break;
51691
51698
 
51692
51699
  case 2357:
51693
- #line 16921 "gram.y"
51700
+ #line 16928 "gram.y"
51694
51701
  { (yyval.ival) = JSON_BEHAVIOR_TRUE; ;}
51695
51702
  break;
51696
51703
 
51697
51704
  case 2358:
51698
- #line 16922 "gram.y"
51705
+ #line 16929 "gram.y"
51699
51706
  { (yyval.ival) = JSON_BEHAVIOR_FALSE; ;}
51700
51707
  break;
51701
51708
 
51702
51709
  case 2359:
51703
- #line 16923 "gram.y"
51710
+ #line 16930 "gram.y"
51704
51711
  { (yyval.ival) = JSON_BEHAVIOR_UNKNOWN; ;}
51705
51712
  break;
51706
51713
 
51707
51714
  case 2360:
51708
- #line 16924 "gram.y"
51715
+ #line 16931 "gram.y"
51709
51716
  { (yyval.ival) = JSON_BEHAVIOR_EMPTY_ARRAY; ;}
51710
51717
  break;
51711
51718
 
51712
51719
  case 2361:
51713
- #line 16925 "gram.y"
51720
+ #line 16932 "gram.y"
51714
51721
  { (yyval.ival) = JSON_BEHAVIOR_EMPTY_OBJECT; ;}
51715
51722
  break;
51716
51723
 
51717
51724
  case 2362:
51718
- #line 16927 "gram.y"
51725
+ #line 16934 "gram.y"
51719
51726
  { (yyval.ival) = JSON_BEHAVIOR_EMPTY_ARRAY; ;}
51720
51727
  break;
51721
51728
 
51722
51729
  case 2363:
51723
- #line 16932 "gram.y"
51730
+ #line 16939 "gram.y"
51724
51731
  { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), NULL); ;}
51725
51732
  break;
51726
51733
 
51727
51734
  case 2364:
51728
- #line 16934 "gram.y"
51735
+ #line 16941 "gram.y"
51729
51736
  { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (3)].node)); ;}
51730
51737
  break;
51731
51738
 
51732
51739
  case 2365:
51733
- #line 16936 "gram.y"
51740
+ #line 16943 "gram.y"
51734
51741
  { (yyval.list) = list_make2((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node)); ;}
51735
51742
  break;
51736
51743
 
51737
51744
  case 2366:
51738
- #line 16938 "gram.y"
51745
+ #line 16945 "gram.y"
51739
51746
  { (yyval.list) = list_make2(NULL, NULL); ;}
51740
51747
  break;
51741
51748
 
51742
51749
  case 2367:
51743
- #line 16943 "gram.y"
51750
+ #line 16950 "gram.y"
51744
51751
  { (yyval.node) = (yyvsp[(1) - (3)].node); ;}
51745
51752
  break;
51746
51753
 
51747
51754
  case 2368:
51748
- #line 16945 "gram.y"
51755
+ #line 16952 "gram.y"
51749
51756
  { (yyval.node) = NULL; ;}
51750
51757
  break;
51751
51758
 
51752
51759
  case 2369:
51753
- #line 16950 "gram.y"
51760
+ #line 16957 "gram.y"
51754
51761
  {
51755
51762
  /* formatted_expr will be set during parse-analysis. */
51756
51763
  (yyval.node) = (Node *) makeJsonValueExpr((Expr *) (yyvsp[(1) - (2)].node), NULL,
@@ -51759,7 +51766,7 @@ yyreduce:
51759
51766
  break;
51760
51767
 
51761
51768
  case 2370:
51762
- #line 16959 "gram.y"
51769
+ #line 16966 "gram.y"
51763
51770
  {
51764
51771
  int encoding;
51765
51772
 
@@ -51779,53 +51786,53 @@ yyreduce:
51779
51786
  break;
51780
51787
 
51781
51788
  case 2371:
51782
- #line 16976 "gram.y"
51789
+ #line 16983 "gram.y"
51783
51790
  {
51784
51791
  (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_JSON, JS_ENC_DEFAULT, (yylsp[(1) - (2)]));
51785
51792
  ;}
51786
51793
  break;
51787
51794
 
51788
51795
  case 2372:
51789
- #line 16983 "gram.y"
51796
+ #line 16990 "gram.y"
51790
51797
  {
51791
51798
  (yyval.node) = (yyvsp[(1) - (1)].node);
51792
51799
  ;}
51793
51800
  break;
51794
51801
 
51795
51802
  case 2373:
51796
- #line 16987 "gram.y"
51803
+ #line 16994 "gram.y"
51797
51804
  {
51798
51805
  (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
51799
51806
  ;}
51800
51807
  break;
51801
51808
 
51802
51809
  case 2374:
51803
- #line 16993 "gram.y"
51810
+ #line 17000 "gram.y"
51804
51811
  { (yyval.ival) = JS_QUOTES_KEEP; ;}
51805
51812
  break;
51806
51813
 
51807
51814
  case 2375:
51808
- #line 16994 "gram.y"
51815
+ #line 17001 "gram.y"
51809
51816
  { (yyval.ival) = JS_QUOTES_KEEP; ;}
51810
51817
  break;
51811
51818
 
51812
51819
  case 2376:
51813
- #line 16995 "gram.y"
51820
+ #line 17002 "gram.y"
51814
51821
  { (yyval.ival) = JS_QUOTES_OMIT; ;}
51815
51822
  break;
51816
51823
 
51817
51824
  case 2377:
51818
- #line 16996 "gram.y"
51825
+ #line 17003 "gram.y"
51819
51826
  { (yyval.ival) = JS_QUOTES_OMIT; ;}
51820
51827
  break;
51821
51828
 
51822
51829
  case 2378:
51823
- #line 16997 "gram.y"
51830
+ #line 17004 "gram.y"
51824
51831
  { (yyval.ival) = JS_QUOTES_UNSPEC; ;}
51825
51832
  break;
51826
51833
 
51827
51834
  case 2379:
51828
- #line 17002 "gram.y"
51835
+ #line 17009 "gram.y"
51829
51836
  {
51830
51837
  JsonOutput *n = makeNode(JsonOutput);
51831
51838
 
@@ -51837,122 +51844,122 @@ yyreduce:
51837
51844
  break;
51838
51845
 
51839
51846
  case 2380:
51840
- #line 17010 "gram.y"
51847
+ #line 17017 "gram.y"
51841
51848
  { (yyval.node) = NULL; ;}
51842
51849
  break;
51843
51850
 
51844
51851
  case 2381:
51845
- #line 17024 "gram.y"
51852
+ #line 17031 "gram.y"
51846
51853
  { (yyval.ival) = JS_TYPE_ANY; ;}
51847
51854
  break;
51848
51855
 
51849
51856
  case 2382:
51850
- #line 17025 "gram.y"
51857
+ #line 17032 "gram.y"
51851
51858
  { (yyval.ival) = JS_TYPE_ANY; ;}
51852
51859
  break;
51853
51860
 
51854
51861
  case 2383:
51855
- #line 17026 "gram.y"
51862
+ #line 17033 "gram.y"
51856
51863
  { (yyval.ival) = JS_TYPE_ARRAY; ;}
51857
51864
  break;
51858
51865
 
51859
51866
  case 2384:
51860
- #line 17027 "gram.y"
51867
+ #line 17034 "gram.y"
51861
51868
  { (yyval.ival) = JS_TYPE_OBJECT; ;}
51862
51869
  break;
51863
51870
 
51864
51871
  case 2385:
51865
- #line 17028 "gram.y"
51872
+ #line 17035 "gram.y"
51866
51873
  { (yyval.ival) = JS_TYPE_SCALAR; ;}
51867
51874
  break;
51868
51875
 
51869
51876
  case 2386:
51870
- #line 17037 "gram.y"
51877
+ #line 17044 "gram.y"
51871
51878
  { (yyval.boolean) = true; ;}
51872
51879
  break;
51873
51880
 
51874
51881
  case 2387:
51875
- #line 17038 "gram.y"
51882
+ #line 17045 "gram.y"
51876
51883
  { (yyval.boolean) = true; ;}
51877
51884
  break;
51878
51885
 
51879
51886
  case 2388:
51880
- #line 17039 "gram.y"
51887
+ #line 17046 "gram.y"
51881
51888
  { (yyval.boolean) = false; ;}
51882
51889
  break;
51883
51890
 
51884
51891
  case 2389:
51885
- #line 17040 "gram.y"
51892
+ #line 17047 "gram.y"
51886
51893
  { (yyval.boolean) = false; ;}
51887
51894
  break;
51888
51895
 
51889
51896
  case 2390:
51890
- #line 17041 "gram.y"
51897
+ #line 17048 "gram.y"
51891
51898
  { (yyval.boolean) = false; ;}
51892
51899
  break;
51893
51900
 
51894
51901
  case 2391:
51895
- #line 17046 "gram.y"
51902
+ #line 17053 "gram.y"
51896
51903
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
51897
51904
  break;
51898
51905
 
51899
51906
  case 2392:
51900
- #line 17048 "gram.y"
51907
+ #line 17055 "gram.y"
51901
51908
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
51902
51909
  break;
51903
51910
 
51904
51911
  case 2393:
51905
- #line 17058 "gram.y"
51912
+ #line 17065 "gram.y"
51906
51913
  { (yyval.node) = makeJsonKeyValue((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;}
51907
51914
  break;
51908
51915
 
51909
51916
  case 2394:
51910
- #line 17061 "gram.y"
51917
+ #line 17068 "gram.y"
51911
51918
  { (yyval.node) = makeJsonKeyValue((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;}
51912
51919
  break;
51913
51920
 
51914
51921
  case 2395:
51915
- #line 17066 "gram.y"
51922
+ #line 17073 "gram.y"
51916
51923
  { (yyval.boolean) = false; ;}
51917
51924
  break;
51918
51925
 
51919
51926
  case 2396:
51920
- #line 17067 "gram.y"
51927
+ #line 17074 "gram.y"
51921
51928
  { (yyval.boolean) = true; ;}
51922
51929
  break;
51923
51930
 
51924
51931
  case 2397:
51925
- #line 17068 "gram.y"
51932
+ #line 17075 "gram.y"
51926
51933
  { (yyval.boolean) = false; ;}
51927
51934
  break;
51928
51935
 
51929
51936
  case 2398:
51930
- #line 17072 "gram.y"
51937
+ #line 17079 "gram.y"
51931
51938
  { (yyval.boolean) = false; ;}
51932
51939
  break;
51933
51940
 
51934
51941
  case 2399:
51935
- #line 17073 "gram.y"
51942
+ #line 17080 "gram.y"
51936
51943
  { (yyval.boolean) = true; ;}
51937
51944
  break;
51938
51945
 
51939
51946
  case 2400:
51940
- #line 17074 "gram.y"
51947
+ #line 17081 "gram.y"
51941
51948
  { (yyval.boolean) = true; ;}
51942
51949
  break;
51943
51950
 
51944
51951
  case 2401:
51945
- #line 17078 "gram.y"
51952
+ #line 17085 "gram.y"
51946
51953
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
51947
51954
  break;
51948
51955
 
51949
51956
  case 2402:
51950
- #line 17079 "gram.y"
51957
+ #line 17086 "gram.y"
51951
51958
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));;}
51952
51959
  break;
51953
51960
 
51954
51961
  case 2403:
51955
- #line 17089 "gram.y"
51962
+ #line 17096 "gram.y"
51956
51963
  {
51957
51964
  JsonObjectAgg *n = makeNode(JsonObjectAgg);
51958
51965
 
@@ -51968,7 +51975,7 @@ yyreduce:
51968
51975
  break;
51969
51976
 
51970
51977
  case 2404:
51971
- #line 17107 "gram.y"
51978
+ #line 17114 "gram.y"
51972
51979
  {
51973
51980
  JsonArrayAgg *n = makeNode(JsonArrayAgg);
51974
51981
 
@@ -51983,37 +51990,37 @@ yyreduce:
51983
51990
  break;
51984
51991
 
51985
51992
  case 2405:
51986
- #line 17121 "gram.y"
51993
+ #line 17128 "gram.y"
51987
51994
  { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
51988
51995
  break;
51989
51996
 
51990
51997
  case 2406:
51991
- #line 17122 "gram.y"
51998
+ #line 17129 "gram.y"
51992
51999
  { (yyval.list) = NIL; ;}
51993
52000
  break;
51994
52001
 
51995
52002
  case 2407:
51996
- #line 17131 "gram.y"
52003
+ #line 17138 "gram.y"
51997
52004
  { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
51998
52005
  break;
51999
52006
 
52000
52007
  case 2408:
52001
- #line 17132 "gram.y"
52008
+ #line 17139 "gram.y"
52002
52009
  { (yyval.list) = NIL; ;}
52003
52010
  break;
52004
52011
 
52005
52012
  case 2409:
52006
- #line 17136 "gram.y"
52013
+ #line 17143 "gram.y"
52007
52014
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
52008
52015
  break;
52009
52016
 
52010
52017
  case 2410:
52011
- #line 17137 "gram.y"
52018
+ #line 17144 "gram.y"
52012
52019
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
52013
52020
  break;
52014
52021
 
52015
52022
  case 2411:
52016
- #line 17141 "gram.y"
52023
+ #line 17148 "gram.y"
52017
52024
  {
52018
52025
  (yyval.target) = makeNode(ResTarget);
52019
52026
  (yyval.target)->name = (yyvsp[(3) - (3)].str);
@@ -52024,7 +52031,7 @@ yyreduce:
52024
52031
  break;
52025
52032
 
52026
52033
  case 2412:
52027
- #line 17149 "gram.y"
52034
+ #line 17156 "gram.y"
52028
52035
  {
52029
52036
  (yyval.target) = makeNode(ResTarget);
52030
52037
  (yyval.target)->name = (yyvsp[(2) - (2)].str);
@@ -52035,7 +52042,7 @@ yyreduce:
52035
52042
  break;
52036
52043
 
52037
52044
  case 2413:
52038
- #line 17157 "gram.y"
52045
+ #line 17164 "gram.y"
52039
52046
  {
52040
52047
  (yyval.target) = makeNode(ResTarget);
52041
52048
  (yyval.target)->name = NULL;
@@ -52046,7 +52053,7 @@ yyreduce:
52046
52053
  break;
52047
52054
 
52048
52055
  case 2414:
52049
- #line 17165 "gram.y"
52056
+ #line 17172 "gram.y"
52050
52057
  {
52051
52058
  ColumnRef *n = makeNode(ColumnRef);
52052
52059
 
@@ -52062,61 +52069,61 @@ yyreduce:
52062
52069
  break;
52063
52070
 
52064
52071
  case 2415:
52065
- #line 17187 "gram.y"
52072
+ #line 17194 "gram.y"
52066
52073
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;}
52067
52074
  break;
52068
52075
 
52069
52076
  case 2416:
52070
- #line 17188 "gram.y"
52077
+ #line 17195 "gram.y"
52071
52078
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;}
52072
52079
  break;
52073
52080
 
52074
52081
  case 2417:
52075
- #line 17200 "gram.y"
52082
+ #line 17207 "gram.y"
52076
52083
  {
52077
52084
  (yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
52078
52085
  ;}
52079
52086
  break;
52080
52087
 
52081
52088
  case 2418:
52082
- #line 17204 "gram.y"
52089
+ #line 17211 "gram.y"
52083
52090
  {
52084
52091
  (yyval.range) = makeRangeVarFromQualifiedName((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner);
52085
52092
  ;}
52086
52093
  break;
52087
52094
 
52088
52095
  case 2419:
52089
- #line 17210 "gram.y"
52096
+ #line 17217 "gram.y"
52090
52097
  { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
52091
52098
  break;
52092
52099
 
52093
52100
  case 2420:
52094
- #line 17212 "gram.y"
52101
+ #line 17219 "gram.y"
52095
52102
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;}
52096
52103
  break;
52097
52104
 
52098
52105
  case 2421:
52099
- #line 17216 "gram.y"
52106
+ #line 17223 "gram.y"
52100
52107
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
52101
52108
  break;
52102
52109
 
52103
52110
  case 2422:
52104
- #line 17218 "gram.y"
52111
+ #line 17225 "gram.y"
52105
52112
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
52106
52113
  break;
52107
52114
 
52108
52115
  case 2423:
52109
- #line 17220 "gram.y"
52116
+ #line 17227 "gram.y"
52110
52117
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
52111
52118
  break;
52112
52119
 
52113
52120
  case 2424:
52114
- #line 17231 "gram.y"
52121
+ #line 17238 "gram.y"
52115
52122
  { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
52116
52123
  break;
52117
52124
 
52118
52125
  case 2425:
52119
- #line 17233 "gram.y"
52126
+ #line 17240 "gram.y"
52120
52127
  {
52121
52128
  (yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)),
52122
52129
  yyscanner);
@@ -52124,35 +52131,35 @@ yyreduce:
52124
52131
  break;
52125
52132
 
52126
52133
  case 2426:
52127
- #line 17244 "gram.y"
52134
+ #line 17251 "gram.y"
52128
52135
  {
52129
52136
  (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)]));
52130
52137
  ;}
52131
52138
  break;
52132
52139
 
52133
52140
  case 2427:
52134
- #line 17248 "gram.y"
52141
+ #line 17255 "gram.y"
52135
52142
  {
52136
52143
  (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
52137
52144
  ;}
52138
52145
  break;
52139
52146
 
52140
52147
  case 2428:
52141
- #line 17252 "gram.y"
52148
+ #line 17259 "gram.y"
52142
52149
  {
52143
52150
  (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
52144
52151
  ;}
52145
52152
  break;
52146
52153
 
52147
52154
  case 2429:
52148
- #line 17256 "gram.y"
52155
+ #line 17263 "gram.y"
52149
52156
  {
52150
52157
  (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
52151
52158
  ;}
52152
52159
  break;
52153
52160
 
52154
52161
  case 2430:
52155
- #line 17260 "gram.y"
52162
+ #line 17267 "gram.y"
52156
52163
  {
52157
52164
  /* This is a bit constant per SQL99:
52158
52165
  * Without Feature F511, "BIT data type",
@@ -52164,7 +52171,7 @@ yyreduce:
52164
52171
  break;
52165
52172
 
52166
52173
  case 2431:
52167
- #line 17269 "gram.y"
52174
+ #line 17276 "gram.y"
52168
52175
  {
52169
52176
  /* generic type 'literal' syntax */
52170
52177
  TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list));
@@ -52175,7 +52182,7 @@ yyreduce:
52175
52182
  break;
52176
52183
 
52177
52184
  case 2432:
52178
- #line 17277 "gram.y"
52185
+ #line 17284 "gram.y"
52179
52186
  {
52180
52187
  /* generic syntax with a type modifier */
52181
52188
  TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (6)].list));
@@ -52210,7 +52217,7 @@ yyreduce:
52210
52217
  break;
52211
52218
 
52212
52219
  case 2433:
52213
- #line 17309 "gram.y"
52220
+ #line 17316 "gram.y"
52214
52221
  {
52215
52222
  /* generic type 'literal' syntax */
52216
52223
  TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list));
@@ -52220,7 +52227,7 @@ yyreduce:
52220
52227
  break;
52221
52228
 
52222
52229
  case 2434:
52223
- #line 17316 "gram.y"
52230
+ #line 17323 "gram.y"
52224
52231
  {
52225
52232
  /* generic syntax with a type modifier */
52226
52233
  TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (6)].list));
@@ -52255,14 +52262,14 @@ yyreduce:
52255
52262
  break;
52256
52263
 
52257
52264
  case 2435:
52258
- #line 17348 "gram.y"
52265
+ #line 17355 "gram.y"
52259
52266
  {
52260
52267
  (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam));
52261
52268
  ;}
52262
52269
  break;
52263
52270
 
52264
52271
  case 2436:
52265
- #line 17352 "gram.y"
52272
+ #line 17359 "gram.y"
52266
52273
  {
52267
52274
  TypeName *t = (yyvsp[(1) - (3)].typnam);
52268
52275
 
@@ -52272,7 +52279,7 @@ yyreduce:
52272
52279
  break;
52273
52280
 
52274
52281
  case 2437:
52275
- #line 17359 "gram.y"
52282
+ #line 17366 "gram.y"
52276
52283
  {
52277
52284
  TypeName *t = (yyvsp[(1) - (5)].typnam);
52278
52285
 
@@ -52283,14 +52290,14 @@ yyreduce:
52283
52290
  break;
52284
52291
 
52285
52292
  case 2438:
52286
- #line 17367 "gram.y"
52293
+ #line 17374 "gram.y"
52287
52294
  {
52288
52295
  (yyval.node) = makeParamRefCast((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam));
52289
52296
  ;}
52290
52297
  break;
52291
52298
 
52292
52299
  case 2439:
52293
- #line 17371 "gram.y"
52300
+ #line 17378 "gram.y"
52294
52301
  {
52295
52302
  TypeName *t = (yyvsp[(1) - (3)].typnam);
52296
52303
  t->typmods = (yyvsp[(3) - (3)].list);
@@ -52299,7 +52306,7 @@ yyreduce:
52299
52306
  break;
52300
52307
 
52301
52308
  case 2440:
52302
- #line 17377 "gram.y"
52309
+ #line 17384 "gram.y"
52303
52310
  {
52304
52311
  TypeName *t = (yyvsp[(1) - (5)].typnam);
52305
52312
  t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
@@ -52309,53 +52316,53 @@ yyreduce:
52309
52316
  break;
52310
52317
 
52311
52318
  case 2441:
52312
- #line 17384 "gram.y"
52319
+ #line 17391 "gram.y"
52313
52320
  {
52314
52321
  (yyval.node) = makeBoolAConst(true, (yylsp[(1) - (1)]));
52315
52322
  ;}
52316
52323
  break;
52317
52324
 
52318
52325
  case 2442:
52319
- #line 17388 "gram.y"
52326
+ #line 17395 "gram.y"
52320
52327
  {
52321
52328
  (yyval.node) = makeBoolAConst(false, (yylsp[(1) - (1)]));
52322
52329
  ;}
52323
52330
  break;
52324
52331
 
52325
52332
  case 2443:
52326
- #line 17392 "gram.y"
52333
+ #line 17399 "gram.y"
52327
52334
  {
52328
52335
  (yyval.node) = makeNullAConst((yylsp[(1) - (1)]));
52329
52336
  ;}
52330
52337
  break;
52331
52338
 
52332
52339
  case 2444:
52333
- #line 17397 "gram.y"
52340
+ #line 17404 "gram.y"
52334
52341
  { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
52335
52342
  break;
52336
52343
 
52337
52344
  case 2445:
52338
- #line 17398 "gram.y"
52345
+ #line 17405 "gram.y"
52339
52346
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
52340
52347
  break;
52341
52348
 
52342
52349
  case 2446:
52343
- #line 17400 "gram.y"
52350
+ #line 17407 "gram.y"
52344
52351
  { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
52345
52352
  break;
52346
52353
 
52347
52354
  case 2447:
52348
- #line 17401 "gram.y"
52355
+ #line 17408 "gram.y"
52349
52356
  { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;}
52350
52357
  break;
52351
52358
 
52352
52359
  case 2448:
52353
- #line 17402 "gram.y"
52360
+ #line 17409 "gram.y"
52354
52361
  { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;}
52355
52362
  break;
52356
52363
 
52357
52364
  case 2449:
52358
- #line 17407 "gram.y"
52365
+ #line 17414 "gram.y"
52359
52366
  {
52360
52367
  RoleSpec *spc = (RoleSpec *) (yyvsp[(1) - (1)].rolespec);
52361
52368
 
@@ -52397,7 +52404,7 @@ yyreduce:
52397
52404
  break;
52398
52405
 
52399
52406
  case 2450:
52400
- #line 17448 "gram.y"
52407
+ #line 17455 "gram.y"
52401
52408
  {
52402
52409
  /*
52403
52410
  * "public" and "none" are not keywords, but they must
@@ -52428,38 +52435,38 @@ yyreduce:
52428
52435
  break;
52429
52436
 
52430
52437
  case 2451:
52431
- #line 17476 "gram.y"
52438
+ #line 17483 "gram.y"
52432
52439
  {
52433
52440
  (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_ROLE, (yylsp[(1) - (1)]));
52434
52441
  ;}
52435
52442
  break;
52436
52443
 
52437
52444
  case 2452:
52438
- #line 17480 "gram.y"
52445
+ #line 17487 "gram.y"
52439
52446
  {
52440
52447
  (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[(1) - (1)]));
52441
52448
  ;}
52442
52449
  break;
52443
52450
 
52444
52451
  case 2453:
52445
- #line 17484 "gram.y"
52452
+ #line 17491 "gram.y"
52446
52453
  {
52447
52454
  (yyval.rolespec) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[(1) - (1)]));
52448
52455
  ;}
52449
52456
  break;
52450
52457
 
52451
52458
  case 2454:
52452
- #line 17490 "gram.y"
52459
+ #line 17497 "gram.y"
52453
52460
  { (yyval.list) = list_make1((yyvsp[(1) - (1)].rolespec)); ;}
52454
52461
  break;
52455
52462
 
52456
52463
  case 2455:
52457
- #line 17492 "gram.y"
52464
+ #line 17499 "gram.y"
52458
52465
  { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].rolespec)); ;}
52459
52466
  break;
52460
52467
 
52461
52468
  case 2456:
52462
- #line 17509 "gram.y"
52469
+ #line 17516 "gram.y"
52463
52470
  {
52464
52471
  SelectStmt *n = makeNode(SelectStmt);
52465
52472
 
@@ -52489,7 +52496,7 @@ yyreduce:
52489
52496
  break;
52490
52497
 
52491
52498
  case 2457:
52492
- #line 17542 "gram.y"
52499
+ #line 17549 "gram.y"
52493
52500
  {
52494
52501
  PLAssignStmt *n = makeNode(PLAssignStmt);
52495
52502
 
@@ -52503,103 +52510,103 @@ yyreduce:
52503
52510
  break;
52504
52511
 
52505
52512
  case 2458:
52506
- #line 17554 "gram.y"
52513
+ #line 17561 "gram.y"
52507
52514
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
52508
52515
  break;
52509
52516
 
52510
52517
  case 2459:
52511
- #line 17555 "gram.y"
52518
+ #line 17562 "gram.y"
52512
52519
  { (yyval.str) = psprintf("$%d", (yyvsp[(1) - (1)].ival)); ;}
52513
52520
  break;
52514
52521
 
52515
52522
  case 2462:
52516
- #line 17576 "gram.y"
52523
+ #line 17583 "gram.y"
52517
52524
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
52518
52525
  break;
52519
52526
 
52520
52527
  case 2463:
52521
- #line 17577 "gram.y"
52528
+ #line 17584 "gram.y"
52522
52529
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52523
52530
  break;
52524
52531
 
52525
52532
  case 2464:
52526
- #line 17578 "gram.y"
52533
+ #line 17585 "gram.y"
52527
52534
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52528
52535
  break;
52529
52536
 
52530
52537
  case 2465:
52531
- #line 17583 "gram.y"
52538
+ #line 17590 "gram.y"
52532
52539
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
52533
52540
  break;
52534
52541
 
52535
52542
  case 2466:
52536
- #line 17584 "gram.y"
52543
+ #line 17591 "gram.y"
52537
52544
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52538
52545
  break;
52539
52546
 
52540
52547
  case 2467:
52541
- #line 17585 "gram.y"
52548
+ #line 17592 "gram.y"
52542
52549
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52543
52550
  break;
52544
52551
 
52545
52552
  case 2468:
52546
- #line 17590 "gram.y"
52553
+ #line 17597 "gram.y"
52547
52554
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
52548
52555
  break;
52549
52556
 
52550
52557
  case 2469:
52551
- #line 17591 "gram.y"
52558
+ #line 17598 "gram.y"
52552
52559
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52553
52560
  break;
52554
52561
 
52555
52562
  case 2470:
52556
- #line 17592 "gram.y"
52563
+ #line 17599 "gram.y"
52557
52564
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52558
52565
  break;
52559
52566
 
52560
52567
  case 2471:
52561
- #line 17593 "gram.y"
52568
+ #line 17600 "gram.y"
52562
52569
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52563
52570
  break;
52564
52571
 
52565
52572
  case 2472:
52566
- #line 17599 "gram.y"
52573
+ #line 17606 "gram.y"
52567
52574
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
52568
52575
  break;
52569
52576
 
52570
52577
  case 2473:
52571
- #line 17600 "gram.y"
52578
+ #line 17607 "gram.y"
52572
52579
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52573
52580
  break;
52574
52581
 
52575
52582
  case 2474:
52576
- #line 17601 "gram.y"
52583
+ #line 17608 "gram.y"
52577
52584
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52578
52585
  break;
52579
52586
 
52580
52587
  case 2475:
52581
- #line 17602 "gram.y"
52588
+ #line 17609 "gram.y"
52582
52589
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52583
52590
  break;
52584
52591
 
52585
52592
  case 2476:
52586
- #line 17603 "gram.y"
52593
+ #line 17610 "gram.y"
52587
52594
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52588
52595
  break;
52589
52596
 
52590
52597
  case 2477:
52591
- #line 17609 "gram.y"
52598
+ #line 17616 "gram.y"
52592
52599
  { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
52593
52600
  break;
52594
52601
 
52595
52602
  case 2478:
52596
- #line 17610 "gram.y"
52603
+ #line 17617 "gram.y"
52597
52604
  { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
52598
52605
  break;
52599
52606
 
52600
52607
 
52601
52608
  /* Line 1267 of yacc.c. */
52602
- #line 52543 "gram.c"
52609
+ #line 52550 "gram.c"
52603
52610
  default: break;
52604
52611
  }
52605
52612
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -52819,7 +52826,7 @@ yyreturn:
52819
52826
  }
52820
52827
 
52821
52828
 
52822
- #line 18622 "gram.y"
52829
+ #line 18629 "gram.y"
52823
52830
 
52824
52831
 
52825
52832
  /*