OSDN Git Service

Update gram.c.nd *.h files.
authorBruce Momjian <bruce@momjian.us>
Tue, 14 Apr 1998 03:28:50 +0000 (03:28 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 14 Apr 1998 03:28:50 +0000 (03:28 +0000)
src/backend/parser/gram.c

index a69b41f..f7e685a 100644 (file)
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.6 1998/04/08 06:39:01 thomas Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.7 1998/04/14 03:28:50 momjian Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -815,46 +815,46 @@ static const short yyrline[] = { 0,
   2434,  2435,  2438,  2439,  2442,  2443,  2444,  2445,  2448,  2449,
   2452,  2453,  2456,  2464,  2472,  2482,  2483,  2484,  2485,  2486,
   2487,  2497,  2498,  2501,  2503,  2505,  2509,  2510,  2513,  2514,
-  2517,  2525,  2533,  2543,  2548,  2560,  2565,  2566,  2569,  2571,
-  2573,  2577,  2583,  2589,  2597,  2598,  2600,  2602,  2604,  2606,
-  2608,  2610,  2614,  2615,  2618,  2619,  2620,  2623,  2624,  2627,
-  2635,  2643,  2653,  2654,  2657,  2664,  2672,  2674,  2676,  2680,
-  2682,  2684,  2699,  2721,  2722,  2729,  2730,  2731,  2734,  2742,
-  2743,  2752,  2758,  2763,  2769,  2777,  2779,  2781,  2783,  2787,
-  2798,  2804,  2811,  2816,  2822,  2830,  2836,  2849,  2875,  2883,
-  2903,  2904,  2905,  2906,  2909,  2910,  2913,  2914,  2917,  2918,
-  2921,  2927,  2934,  2940,  2948,  2949,  2950,  2951,  2952,  2953,
-  2956,  2957,  2960,  2961,  2962,  2963,  2964,  2965,  2966,  2967,
-  2977,  2979,  2991,  3001,  3011,  3024,  3034,  3044,  3054,  3064,
-  3074,  3084,  3094,  3107,  3117,  3127,  3137,  3147,  3157,  3167,
-  3177,  3190,  3200,  3210,  3220,  3230,  3240,  3250,  3260,  3264,
-  3268,  3272,  3276,  3280,  3284,  3288,  3294,  3300,  3304,  3318,
-  3323,  3325,  3327,  3335,  3337,  3339,  3341,  3343,  3345,  3347,
-  3349,  3351,  3353,  3355,  3357,  3373,  3389,  3391,  3393,  3395,
-  3397,  3399,  3401,  3413,  3420,  3427,  3442,  3457,  3479,  3494,
-  3516,  3523,  3533,  3540,  3547,  3555,  3562,  3569,  3576,  3583,
-  3585,  3587,  3589,  3596,  3606,  3616,  3626,  3636,  3642,  3648,
-  3648,  3662,  3662,  3676,  3686,  3696,  3706,  3716,  3726,  3736,
-  3746,  3756,  3766,  3776,  3786,  3796,  3806,  3816,  3826,  3836,
-  3846,  3856,  3866,  3876,  3886,  3896,  3906,  3916,  3918,  3920,
-  3930,  3935,  3937,  3945,  3947,  3949,  3951,  3953,  3955,  3957,
-  3959,  3961,  3977,  3993,  3995,  3997,  3999,  4001,  4008,  4015,
-  4030,  4045,  4067,  4082,  4104,  4111,  4118,  4126,  4133,  4140,
-  4147,  4156,  4163,  4170,  4174,  4176,  4178,  4182,  4189,  4197,
-  4201,  4203,  4207,  4212,  4214,  4216,  4218,  4220,  4222,  4224,
-  4226,  4242,  4258,  4260,  4262,  4264,  4266,  4274,  4281,  4288,
-  4295,  4303,  4310,  4317,  4324,  4333,  4337,  4341,  4343,  4352,
-  4354,  4358,  4360,  4362,  4366,  4372,  4376,  4378,  4384,  4390,
-  4394,  4396,  4402,  4410,  4420,  4422,  4424,  4435,  4437,  4439,
-  4454,  4461,  4468,  4487,  4489,  4494,  4501,  4508,  4520,  4534,
-  4535,  4538,  4543,  4555,  4556,  4557,  4558,  4559,  4565,  4566,
-  4568,  4569,  4574,  4581,  4588,  4595,  4603,  4605,  4615,  4627,
-  4634,  4635,  4638,  4639,  4640,  4647,  4649,  4651,  4662,  4663,
-  4664,  4665,  4666,  4667,  4668,  4669,  4670,  4671,  4672,  4673,
-  4674,  4675,  4676,  4677,  4678,  4679,  4680,  4681,  4682,  4683,
-  4684,  4685,  4686,  4687,  4688,  4689,  4690,  4691,  4692,  4693,
-  4694,  4707,  4708,  4709,  4710,  4711,  4712,  4713,  4714,  4715,
-  4716,  4717,  4718,  4719,  4720,  4721,  4724,  4731
+  2517,  2525,  2533,  2543,  2547,  2559,  2564,  2565,  2568,  2570,
+  2572,  2576,  2582,  2588,  2596,  2597,  2599,  2601,  2603,  2605,
+  2607,  2609,  2613,  2614,  2617,  2618,  2619,  2622,  2623,  2626,
+  2634,  2642,  2652,  2653,  2656,  2663,  2671,  2673,  2675,  2679,
+  2681,  2683,  2698,  2720,  2721,  2728,  2729,  2730,  2733,  2741,
+  2742,  2751,  2757,  2762,  2768,  2776,  2778,  2780,  2782,  2786,
+  2797,  2803,  2810,  2815,  2821,  2829,  2835,  2848,  2874,  2882,
+  2902,  2903,  2904,  2905,  2908,  2909,  2912,  2913,  2916,  2917,
+  2920,  2926,  2933,  2939,  2947,  2948,  2949,  2950,  2951,  2952,
+  2955,  2956,  2959,  2960,  2961,  2962,  2963,  2964,  2965,  2966,
+  2976,  2978,  2990,  3000,  3010,  3023,  3033,  3043,  3053,  3063,
+  3073,  3083,  3093,  3106,  3116,  3126,  3136,  3146,  3156,  3166,
+  3176,  3189,  3199,  3209,  3219,  3229,  3239,  3249,  3259,  3263,
+  3267,  3271,  3275,  3279,  3283,  3287,  3293,  3299,  3303,  3317,
+  3322,  3324,  3326,  3334,  3336,  3338,  3340,  3342,  3344,  3346,
+  3348,  3350,  3352,  3354,  3356,  3372,  3388,  3390,  3392,  3394,
+  3396,  3398,  3400,  3412,  3419,  3426,  3441,  3456,  3478,  3493,
+  3515,  3522,  3532,  3539,  3546,  3554,  3561,  3568,  3575,  3582,
+  3584,  3586,  3588,  3595,  3605,  3615,  3625,  3635,  3641,  3647,
+  3647,  3661,  3661,  3675,  3685,  3695,  3705,  3715,  3725,  3735,
+  3745,  3755,  3765,  3775,  3785,  3795,  3805,  3815,  3825,  3835,
+  3845,  3855,  3865,  3875,  3885,  3895,  3905,  3915,  3917,  3919,
+  3929,  3934,  3936,  3944,  3946,  3948,  3950,  3952,  3954,  3956,
+  3958,  3960,  3976,  3992,  3994,  3996,  3998,  4000,  4007,  4014,
+  4029,  4044,  4066,  4081,  4103,  4110,  4117,  4125,  4132,  4139,
+  4146,  4155,  4162,  4169,  4173,  4175,  4177,  4181,  4188,  4196,
+  4200,  4202,  4206,  4211,  4213,  4215,  4217,  4219,  4221,  4223,
+  4225,  4241,  4257,  4259,  4261,  4263,  4265,  4273,  4280,  4287,
+  4294,  4302,  4309,  4316,  4323,  4332,  4336,  4340,  4342,  4351,
+  4353,  4357,  4359,  4361,  4365,  4371,  4375,  4377,  4383,  4389,
+  4393,  4395,  4401,  4409,  4419,  4421,  4423,  4434,  4436,  4438,
+  4453,  4460,  4467,  4486,  4488,  4493,  4500,  4507,  4519,  4533,
+  4534,  4537,  4542,  4554,  4555,  4556,  4557,  4558,  4564,  4565,
+  4567,  4568,  4573,  4580,  4587,  4594,  4602,  4604,  4614,  4626,
+  4633,  4634,  4637,  4638,  4639,  4646,  4648,  4650,  4661,  4662,
+  4663,  4664,  4665,  4666,  4667,  4668,  4669,  4670,  4671,  4672,
+  4673,  4674,  4675,  4676,  4677,  4678,  4679,  4680,  4681,  4682,
+  4683,  4684,  4685,  4686,  4687,  4688,  4689,  4690,  4691,  4692,
+  4693,  4706,  4707,  4708,  4709,  4710,  4711,  4712,  4713,  4714,
+  4715,  4716,  4717,  4718,  4719,  4720,  4723,  4730
 };
 #endif
 
@@ -3866,7 +3866,7 @@ static const short yycheck[] = {     3,
     -1,    -1,   172,    -1,    -1,    -1,    -1,    -1,   178
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/lib/bison.simple"
+#line 3 "/usr/share/misc/bison.simple"
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -4059,7 +4059,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/lib/bison.simple"
+#line 196 "/usr/share/misc/bison.simple"
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -6776,43 +6776,42 @@ case 463:
 case 464:
 #line 2544 "gram.y"
 {
-                                       /***S*H***/ /* elog(NOTICE, "HAVING not yet supported; ignore clause");*/
                                        yyval.node = yyvsp[0].node;
                                ;
     break;}
 case 465:
-#line 2548 "gram.y"
+#line 2547 "gram.y"
 { yyval.node = NULL; ;
     break;}
 case 466:
-#line 2561 "gram.y"
+#line 2560 "gram.y"
 {
                                        yyval.list = NIL;
                                        elog(ERROR,"JOIN not yet implemented");
                                ;
     break;}
 case 467:
-#line 2565 "gram.y"
+#line 2564 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
 case 468:
-#line 2566 "gram.y"
+#line 2565 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 469:
-#line 2570 "gram.y"
+#line 2569 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].range); ;
     break;}
 case 470:
-#line 2572 "gram.y"
+#line 2571 "gram.y"
 { elog(ERROR,"CROSS JOIN not yet implemented"); ;
     break;}
 case 471:
-#line 2574 "gram.y"
+#line 2573 "gram.y"
 { yyval.list = lcons(yyvsp[0].range, NIL); ;
     break;}
 case 472:
-#line 2578 "gram.y"
+#line 2577 "gram.y"
 {
                                        yyval.range = makeNode(RangeVar);
                                        yyval.range->relExpr = yyvsp[-2].relexp;
@@ -6820,7 +6819,7 @@ case 472:
                                ;
     break;}
 case 473:
-#line 2584 "gram.y"
+#line 2583 "gram.y"
 {
                                        yyval.range = makeNode(RangeVar);
                                        yyval.range->relExpr = yyvsp[-1].relexp;
@@ -6828,7 +6827,7 @@ case 473:
                                ;
     break;}
 case 474:
-#line 2590 "gram.y"
+#line 2589 "gram.y"
 {
                                        yyval.range = makeNode(RangeVar);
                                        yyval.range->relExpr = yyvsp[0].relexp;
@@ -6836,67 +6835,67 @@ case 474:
                                ;
     break;}
 case 475:
-#line 2597 "gram.y"
+#line 2596 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 476:
-#line 2599 "gram.y"
+#line 2598 "gram.y"
 { elog(ERROR,"FULL OUTER JOIN not yet implemented"); ;
     break;}
 case 477:
-#line 2601 "gram.y"
+#line 2600 "gram.y"
 { elog(ERROR,"LEFT OUTER JOIN not yet implemented"); ;
     break;}
 case 478:
-#line 2603 "gram.y"
+#line 2602 "gram.y"
 { elog(ERROR,"RIGHT OUTER JOIN not yet implemented"); ;
     break;}
 case 479:
-#line 2605 "gram.y"
+#line 2604 "gram.y"
 { elog(ERROR,"OUTER JOIN not yet implemented"); ;
     break;}
 case 480:
-#line 2607 "gram.y"
+#line 2606 "gram.y"
 { elog(ERROR,"INNER JOIN not yet implemented"); ;
     break;}
 case 481:
-#line 2609 "gram.y"
+#line 2608 "gram.y"
 { elog(ERROR,"UNION JOIN not yet implemented"); ;
     break;}
 case 482:
-#line 2611 "gram.y"
+#line 2610 "gram.y"
 { elog(ERROR,"INNER JOIN not yet implemented"); ;
     break;}
 case 483:
-#line 2614 "gram.y"
+#line 2613 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 484:
-#line 2615 "gram.y"
+#line 2614 "gram.y"
 { yyval.str = NULL;  /* no qualifiers */ ;
     break;}
 case 485:
-#line 2618 "gram.y"
+#line 2617 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 486:
-#line 2619 "gram.y"
+#line 2618 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 487:
-#line 2620 "gram.y"
+#line 2619 "gram.y"
 { yyval.str = NULL;  /* no qualifiers */ ;
     break;}
 case 488:
-#line 2623 "gram.y"
+#line 2622 "gram.y"
 { yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ;
     break;}
 case 489:
-#line 2624 "gram.y"
+#line 2623 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ;
     break;}
 case 490:
-#line 2628 "gram.y"
+#line 2627 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = 0;
@@ -6906,7 +6905,7 @@ case 490:
                                ;
     break;}
 case 491:
-#line 2636 "gram.y"
+#line 2635 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = 0;
@@ -6916,7 +6915,7 @@ case 491:
                                ;
     break;}
 case 492:
-#line 2644 "gram.y"
+#line 2643 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = yyvsp[0].ival;
@@ -6926,15 +6925,15 @@ case 492:
                                ;
     break;}
 case 493:
-#line 2653 "gram.y"
+#line 2652 "gram.y"
 { yyval.node = yyvsp[0].node; ;
     break;}
 case 494:
-#line 2654 "gram.y"
+#line 2653 "gram.y"
 { yyval.node = NULL;  /* no qualifiers */ ;
     break;}
 case 495:
-#line 2658 "gram.y"
+#line 2657 "gram.y"
 {
                                        /* normal relations */
                                        yyval.relexp = makeNode(RelExpr);
@@ -6943,7 +6942,7 @@ case 495:
                                ;
     break;}
 case 496:
-#line 2665 "gram.y"
+#line 2664 "gram.y"
 {
                                        /* inheritance query */
                                        yyval.relexp = makeNode(RelExpr);
@@ -6952,31 +6951,31 @@ case 496:
                                ;
     break;}
 case 497:
-#line 2673 "gram.y"
+#line 2672 "gram.y"
 {  yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ;
     break;}
 case 498:
-#line 2675 "gram.y"
+#line 2674 "gram.y"
 {  yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ;
     break;}
 case 499:
-#line 2677 "gram.y"
+#line 2676 "gram.y"
 {  yyval.list = NIL; ;
     break;}
 case 500:
-#line 2681 "gram.y"
+#line 2680 "gram.y"
 {  yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ;
     break;}
 case 501:
-#line 2683 "gram.y"
+#line 2682 "gram.y"
 {  yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ;
     break;}
 case 502:
-#line 2685 "gram.y"
+#line 2684 "gram.y"
 {  yyval.list = NIL; ;
     break;}
 case 503:
-#line 2700 "gram.y"
+#line 2699 "gram.y"
 {
                                        yyval.typnam = yyvsp[-1].typnam;
                                        yyval.typnam->arrayBounds = yyvsp[0].list;
@@ -7000,14 +6999,14 @@ case 503:
                                ;
     break;}
 case 505:
-#line 2723 "gram.y"
+#line 2722 "gram.y"
 {
                                        yyval.typnam = yyvsp[0].typnam;
                                        yyval.typnam->setof = TRUE;
                                ;
     break;}
 case 509:
-#line 2735 "gram.y"
+#line 2734 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType(yyvsp[0].str);
@@ -7015,15 +7014,15 @@ case 509:
                                ;
     break;}
 case 510:
-#line 2742 "gram.y"
+#line 2741 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 511:
-#line 2743 "gram.y"
+#line 2742 "gram.y"
 { yyval.str = xlateSqlType("type"); ;
     break;}
 case 512:
-#line 2753 "gram.y"
+#line 2752 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType(yyvsp[0].str);
@@ -7031,14 +7030,14 @@ case 512:
                                ;
     break;}
 case 513:
-#line 2759 "gram.y"
+#line 2758 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("float");
                                ;
     break;}
 case 514:
-#line 2764 "gram.y"
+#line 2763 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("integer");
@@ -7046,7 +7045,7 @@ case 514:
                                ;
     break;}
 case 515:
-#line 2770 "gram.y"
+#line 2769 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("integer");
@@ -7054,23 +7053,23 @@ case 515:
                                ;
     break;}
 case 516:
-#line 2778 "gram.y"
+#line 2777 "gram.y"
 {      yyval.str = xlateSqlType("float8"); ;
     break;}
 case 517:
-#line 2780 "gram.y"
+#line 2779 "gram.y"
 {      yyval.str = xlateSqlType("float8"); ;
     break;}
 case 518:
-#line 2782 "gram.y"
+#line 2781 "gram.y"
 {      yyval.str = xlateSqlType("decimal"); ;
     break;}
 case 519:
-#line 2784 "gram.y"
+#line 2783 "gram.y"
 {      yyval.str = xlateSqlType("numeric"); ;
     break;}
 case 520:
-#line 2788 "gram.y"
+#line 2787 "gram.y"
 {
                                        if (yyvsp[-1].ival < 1)
                                                elog(ERROR,"precision for FLOAT must be at least 1");
@@ -7083,13 +7082,13 @@ case 520:
                                ;
     break;}
 case 521:
-#line 2799 "gram.y"
+#line 2798 "gram.y"
 {
                                        yyval.str = xlateSqlType("float8");
                                ;
     break;}
 case 522:
-#line 2805 "gram.y"
+#line 2804 "gram.y"
 {
                                        if (yyvsp[-3].ival != 9)
                                                elog(ERROR,"NUMERIC precision %d must be 9",yyvsp[-3].ival);
@@ -7098,20 +7097,20 @@ case 522:
                                ;
     break;}
 case 523:
-#line 2812 "gram.y"
+#line 2811 "gram.y"
 {
                                        if (yyvsp[-1].ival != 9)
                                                elog(ERROR,"NUMERIC precision %d must be 9",yyvsp[-1].ival);
                                ;
     break;}
 case 524:
-#line 2817 "gram.y"
+#line 2816 "gram.y"
 {
                                        yyval.str = NULL;
                                ;
     break;}
 case 525:
-#line 2823 "gram.y"
+#line 2822 "gram.y"
 {
                                        if (yyvsp[-3].ival > 9)
                                                elog(ERROR,"DECIMAL precision %d exceeds implementation limit of 9",yyvsp[-3].ival);
@@ -7121,7 +7120,7 @@ case 525:
                                ;
     break;}
 case 526:
-#line 2831 "gram.y"
+#line 2830 "gram.y"
 {
                                        if (yyvsp[-1].ival > 9)
                                                elog(ERROR,"DECIMAL precision %d exceeds implementation limit of 9",yyvsp[-1].ival);
@@ -7129,13 +7128,13 @@ case 526:
                                ;
     break;}
 case 527:
-#line 2837 "gram.y"
+#line 2836 "gram.y"
 {
                                        yyval.str = NULL;
                                ;
     break;}
 case 528:
-#line 2850 "gram.y"
+#line 2849 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        if (!strcasecmp(yyvsp[-3].str, "char"))
@@ -7163,7 +7162,7 @@ case 528:
                                ;
     break;}
 case 529:
-#line 2876 "gram.y"
+#line 2875 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType(yyvsp[0].str);
@@ -7171,7 +7170,7 @@ case 529:
                                ;
     break;}
 case 530:
-#line 2884 "gram.y"
+#line 2883 "gram.y"
 {
                                        char *type, *c;
                                        if ((yyvsp[-1].str == NULL) || (strcasecmp(yyvsp[-1].str, "sql_text") == 0)) {
@@ -7193,47 +7192,47 @@ case 530:
                                ;
     break;}
 case 531:
-#line 2903 "gram.y"
+#line 2902 "gram.y"
 { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ;
     break;}
 case 532:
-#line 2904 "gram.y"
+#line 2903 "gram.y"
 { yyval.str = xlateSqlType("varchar"); ;
     break;}
 case 533:
-#line 2905 "gram.y"
+#line 2904 "gram.y"
 { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ;
     break;}
 case 534:
-#line 2906 "gram.y"
+#line 2905 "gram.y"
 { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ;
     break;}
 case 535:
-#line 2909 "gram.y"
+#line 2908 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
 case 536:
-#line 2910 "gram.y"
+#line 2909 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
 case 537:
-#line 2913 "gram.y"
+#line 2912 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 538:
-#line 2914 "gram.y"
+#line 2913 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 539:
-#line 2917 "gram.y"
+#line 2916 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 540:
-#line 2918 "gram.y"
+#line 2917 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 541:
-#line 2922 "gram.y"
+#line 2921 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType(yyvsp[0].str);
@@ -7241,7 +7240,7 @@ case 541:
                                ;
     break;}
 case 542:
-#line 2928 "gram.y"
+#line 2927 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("timestamp");
@@ -7250,7 +7249,7 @@ case 542:
                                ;
     break;}
 case 543:
-#line 2935 "gram.y"
+#line 2934 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("time");
@@ -7258,7 +7257,7 @@ case 543:
                                ;
     break;}
 case 544:
-#line 2941 "gram.y"
+#line 2940 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("interval");
@@ -7266,75 +7265,75 @@ case 544:
                                ;
     break;}
 case 545:
-#line 2948 "gram.y"
+#line 2947 "gram.y"
 { yyval.str = "year"; ;
     break;}
 case 546:
-#line 2949 "gram.y"
+#line 2948 "gram.y"
 { yyval.str = "month"; ;
     break;}
 case 547:
-#line 2950 "gram.y"
+#line 2949 "gram.y"
 { yyval.str = "day"; ;
     break;}
 case 548:
-#line 2951 "gram.y"
+#line 2950 "gram.y"
 { yyval.str = "hour"; ;
     break;}
 case 549:
-#line 2952 "gram.y"
+#line 2951 "gram.y"
 { yyval.str = "minute"; ;
     break;}
 case 550:
-#line 2953 "gram.y"
+#line 2952 "gram.y"
 { yyval.str = "second"; ;
     break;}
 case 551:
-#line 2956 "gram.y"
+#line 2955 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
 case 552:
-#line 2957 "gram.y"
+#line 2956 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
 case 553:
-#line 2960 "gram.y"
+#line 2959 "gram.y"
 { yyval.list = lcons(yyvsp[0].str, NIL); ;
     break;}
 case 554:
-#line 2961 "gram.y"
+#line 2960 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 555:
-#line 2962 "gram.y"
+#line 2961 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 556:
-#line 2963 "gram.y"
+#line 2962 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 557:
-#line 2964 "gram.y"
+#line 2963 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 558:
-#line 2965 "gram.y"
+#line 2964 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 559:
-#line 2966 "gram.y"
+#line 2965 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 560:
-#line 2967 "gram.y"
+#line 2966 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 561:
-#line 2978 "gram.y"
+#line 2977 "gram.y"
 { yyval.node = yyvsp[0].node; ;
     break;}
 case 562:
-#line 2980 "gram.y"
+#line 2979 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_Null;
@@ -7342,7 +7341,7 @@ case 562:
                                ;
     break;}
 case 563:
-#line 2992 "gram.y"
+#line 2991 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-5].list;
@@ -7354,7 +7353,7 @@ case 563:
                                ;
     break;}
 case 564:
-#line 3002 "gram.y"
+#line 3001 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7366,7 +7365,7 @@ case 564:
                                ;
     break;}
 case 565:
-#line 3012 "gram.y"
+#line 3011 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-5].list;
@@ -7381,7 +7380,7 @@ case 565:
                                ;
     break;}
 case 566:
-#line 3025 "gram.y"
+#line 3024 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-5].list;
@@ -7393,7 +7392,7 @@ case 566:
                                ;
     break;}
 case 567:
-#line 3035 "gram.y"
+#line 3034 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-5].list;
@@ -7405,7 +7404,7 @@ case 567:
                                ;
     break;}
 case 568:
-#line 3045 "gram.y"
+#line 3044 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-5].list;
@@ -7417,7 +7416,7 @@ case 568:
                                ;
     break;}
 case 569:
-#line 3055 "gram.y"
+#line 3054 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-5].list;
@@ -7429,7 +7428,7 @@ case 569:
                                ;
     break;}
 case 570:
-#line 3065 "gram.y"
+#line 3064 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-5].list;
@@ -7441,7 +7440,7 @@ case 570:
                                ;
     break;}
 case 571:
-#line 3075 "gram.y"
+#line 3074 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-5].list;
@@ -7453,7 +7452,7 @@ case 571:
                                ;
     break;}
 case 572:
-#line 3085 "gram.y"
+#line 3084 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-5].list;
@@ -7465,7 +7464,7 @@ case 572:
                                ;
     break;}
 case 573:
-#line 3095 "gram.y"
+#line 3094 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7480,7 +7479,7 @@ case 573:
                                ;
     break;}
 case 574:
-#line 3108 "gram.y"
+#line 3107 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7492,7 +7491,7 @@ case 574:
                                ;
     break;}
 case 575:
-#line 3118 "gram.y"
+#line 3117 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7504,7 +7503,7 @@ case 575:
                                ;
     break;}
 case 576:
-#line 3128 "gram.y"
+#line 3127 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7516,7 +7515,7 @@ case 576:
                                ;
     break;}
 case 577:
-#line 3138 "gram.y"
+#line 3137 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7528,7 +7527,7 @@ case 577:
                                ;
     break;}
 case 578:
-#line 3148 "gram.y"
+#line 3147 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7540,7 +7539,7 @@ case 578:
                                ;
     break;}
 case 579:
-#line 3158 "gram.y"
+#line 3157 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7552,7 +7551,7 @@ case 579:
                                ;
     break;}
 case 580:
-#line 3168 "gram.y"
+#line 3167 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7564,7 +7563,7 @@ case 580:
                                ;
     break;}
 case 581:
-#line 3178 "gram.y"
+#line 3177 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7579,7 +7578,7 @@ case 581:
                                ;
     break;}
 case 582:
-#line 3191 "gram.y"
+#line 3190 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7591,7 +7590,7 @@ case 582:
                                ;
     break;}
 case 583:
-#line 3201 "gram.y"
+#line 3200 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7603,7 +7602,7 @@ case 583:
                                ;
     break;}
 case 584:
-#line 3211 "gram.y"
+#line 3210 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7615,7 +7614,7 @@ case 584:
                                ;
     break;}
 case 585:
-#line 3221 "gram.y"
+#line 3220 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7627,7 +7626,7 @@ case 585:
                                ;
     break;}
 case 586:
-#line 3231 "gram.y"
+#line 3230 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7639,7 +7638,7 @@ case 586:
                                ;
     break;}
 case 587:
-#line 3241 "gram.y"
+#line 3240 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7651,7 +7650,7 @@ case 587:
                                ;
     break;}
 case 588:
-#line 3251 "gram.y"
+#line 3250 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7663,88 +7662,88 @@ case 588:
                                ;
     break;}
 case 589:
-#line 3261 "gram.y"
+#line 3260 "gram.y"
 {
                                        yyval.node = makeRowExpr(yyvsp[-3].str, yyvsp[-5].list, yyvsp[-1].list);
                                ;
     break;}
 case 590:
-#line 3265 "gram.y"
+#line 3264 "gram.y"
 {
                                        yyval.node = makeRowExpr("+", yyvsp[-5].list, yyvsp[-1].list);
                                ;
     break;}
 case 591:
-#line 3269 "gram.y"
+#line 3268 "gram.y"
 {
                                        yyval.node = makeRowExpr("-", yyvsp[-5].list, yyvsp[-1].list);
                                ;
     break;}
 case 592:
-#line 3273 "gram.y"
+#line 3272 "gram.y"
 {
                                        yyval.node = makeRowExpr("/", yyvsp[-5].list, yyvsp[-1].list);
                                ;
     break;}
 case 593:
-#line 3277 "gram.y"
+#line 3276 "gram.y"
 {
                                        yyval.node = makeRowExpr("*", yyvsp[-5].list, yyvsp[-1].list);
                                ;
     break;}
 case 594:
-#line 3281 "gram.y"
+#line 3280 "gram.y"
 {
                                        yyval.node = makeRowExpr("<", yyvsp[-5].list, yyvsp[-1].list);
                                ;
     break;}
 case 595:
-#line 3285 "gram.y"
+#line 3284 "gram.y"
 {
                                        yyval.node = makeRowExpr(">", yyvsp[-5].list, yyvsp[-1].list);
                                ;
     break;}
 case 596:
-#line 3289 "gram.y"
+#line 3288 "gram.y"
 {
                                        yyval.node = makeRowExpr("=", yyvsp[-5].list, yyvsp[-1].list);
                                ;
     break;}
 case 597:
-#line 3295 "gram.y"
+#line 3294 "gram.y"
 {
                                        yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
                                ;
     break;}
 case 598:
-#line 3301 "gram.y"
+#line 3300 "gram.y"
 {
                                        yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
                                ;
     break;}
 case 599:
-#line 3305 "gram.y"
+#line 3304 "gram.y"
 {
                                        yyval.list = lcons(yyvsp[0].node, NIL);
                                ;
     break;}
 case 600:
-#line 3319 "gram.y"
+#line 3318 "gram.y"
 {
                                        yyvsp[-1].attr->indirection = yyvsp[0].list;
                                        yyval.node = (Node *)yyvsp[-1].attr;
                                ;
     break;}
 case 601:
-#line 3324 "gram.y"
+#line 3323 "gram.y"
 {      yyval.node = yyvsp[0].node;  ;
     break;}
 case 602:
-#line 3326 "gram.y"
+#line 3325 "gram.y"
 {      yyval.node = yyvsp[0].node;  ;
     break;}
 case 603:
-#line 3328 "gram.y"
+#line 3327 "gram.y"
 {
                                        /* could be a column name or a relation_name */
                                        Ident *n = makeNode(Ident);
@@ -7754,51 +7753,51 @@ case 603:
                                ;
     break;}
 case 604:
-#line 3336 "gram.y"
+#line 3335 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ;
     break;}
 case 605:
-#line 3338 "gram.y"
+#line 3337 "gram.y"
 {      yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 606:
-#line 3340 "gram.y"
+#line 3339 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 607:
-#line 3342 "gram.y"
+#line 3341 "gram.y"
 {      yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 608:
-#line 3344 "gram.y"
+#line 3343 "gram.y"
 {      yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 609:
-#line 3346 "gram.y"
+#line 3345 "gram.y"
 {      yyval.node = makeA_Expr(OP, "<", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 610:
-#line 3348 "gram.y"
+#line 3347 "gram.y"
 {      yyval.node = makeA_Expr(OP, ">", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 611:
-#line 3350 "gram.y"
+#line 3349 "gram.y"
 {      yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 612:
-#line 3352 "gram.y"
+#line 3351 "gram.y"
 {      yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ;
     break;}
 case 613:
-#line 3354 "gram.y"
+#line 3353 "gram.y"
 {      yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ;
     break;}
 case 614:
-#line 3356 "gram.y"
+#line 3355 "gram.y"
 {      yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ;
     break;}
 case 615:
-#line 3358 "gram.y"
+#line 3357 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-2].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -7816,7 +7815,7 @@ case 615:
                                ;
     break;}
 case 616:
-#line 3374 "gram.y"
+#line 3373 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-3].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -7834,31 +7833,31 @@ case 616:
                                ;
     break;}
 case 617:
-#line 3390 "gram.y"
+#line 3389 "gram.y"
 {      yyval.node = yyvsp[-1].node; ;
     break;}
 case 618:
-#line 3392 "gram.y"
+#line 3391 "gram.y"
 {      yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ;
     break;}
 case 619:
-#line 3394 "gram.y"
+#line 3393 "gram.y"
 {      yyval.node = makeIndexable("~~", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 620:
-#line 3396 "gram.y"
+#line 3395 "gram.y"
 {      yyval.node = makeA_Expr(OP, "!~~", yyvsp[-3].node, yyvsp[0].node); ;
     break;}
 case 621:
-#line 3398 "gram.y"
+#line 3397 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ;
     break;}
 case 622:
-#line 3400 "gram.y"
+#line 3399 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ;
     break;}
 case 623:
-#line 3402 "gram.y"
+#line 3401 "gram.y"
 {
                                        /* cheap hack for aggregate (eg. count) */
                                        FuncCall *n = makeNode(FuncCall);
@@ -7872,7 +7871,7 @@ case 623:
                                ;
     break;}
 case 624:
-#line 3414 "gram.y"
+#line 3413 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-2].str;
@@ -7881,7 +7880,7 @@ case 624:
                                ;
     break;}
 case 625:
-#line 3421 "gram.y"
+#line 3420 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-3].str;
@@ -7890,7 +7889,7 @@ case 625:
                                ;
     break;}
 case 626:
-#line 3428 "gram.y"
+#line 3427 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -7907,7 +7906,7 @@ case 626:
                                ;
     break;}
 case 627:
-#line 3443 "gram.y"
+#line 3442 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -7924,7 +7923,7 @@ case 627:
                                ;
     break;}
 case 628:
-#line 3458 "gram.y"
+#line 3457 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        A_Const *s = makeNode(A_Const);
@@ -7948,7 +7947,7 @@ case 628:
                                ;
     break;}
 case 629:
-#line 3480 "gram.y"
+#line 3479 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -7965,7 +7964,7 @@ case 629:
                                ;
     break;}
 case 630:
-#line 3495 "gram.y"
+#line 3494 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        A_Const *s = makeNode(A_Const);
@@ -7989,7 +7988,7 @@ case 630:
                                ;
     break;}
 case 631:
-#line 3517 "gram.y"
+#line 3516 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "getpgusername";
@@ -7998,7 +7997,7 @@ case 631:
                                ;
     break;}
 case 632:
-#line 3524 "gram.y"
+#line 3523 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = NIL;
@@ -8010,7 +8009,7 @@ case 632:
                                ;
     break;}
 case 633:
-#line 3534 "gram.y"
+#line 3533 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "date_part";
@@ -8019,7 +8018,7 @@ case 633:
                                ;
     break;}
 case 634:
-#line 3541 "gram.y"
+#line 3540 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "strpos";
@@ -8028,7 +8027,7 @@ case 634:
                                ;
     break;}
 case 635:
-#line 3548 "gram.y"
+#line 3547 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "substr";
@@ -8037,7 +8036,7 @@ case 635:
                                ;
     break;}
 case 636:
-#line 3556 "gram.y"
+#line 3555 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -8046,7 +8045,7 @@ case 636:
                                ;
     break;}
 case 637:
-#line 3563 "gram.y"
+#line 3562 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "ltrim";
@@ -8055,7 +8054,7 @@ case 637:
                                ;
     break;}
 case 638:
-#line 3570 "gram.y"
+#line 3569 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "rtrim";
@@ -8064,7 +8063,7 @@ case 638:
                                ;
     break;}
 case 639:
-#line 3577 "gram.y"
+#line 3576 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -8073,23 +8072,23 @@ case 639:
                                ;
     break;}
 case 640:
-#line 3584 "gram.y"
+#line 3583 "gram.y"
 {      yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-1].node, NULL); ;
     break;}
 case 641:
-#line 3586 "gram.y"
+#line 3585 "gram.y"
 {      yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-2].node, NULL); ;
     break;}
 case 642:
-#line 3588 "gram.y"
+#line 3587 "gram.y"
 {      yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-1].node, NULL); ;
     break;}
 case 643:
-#line 3590 "gram.y"
+#line 3589 "gram.y"
 {      yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-3].node, NULL); ;
     break;}
 case 644:
-#line 3597 "gram.y"
+#line 3596 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -8101,7 +8100,7 @@ case 644:
                                ;
     break;}
 case 645:
-#line 3607 "gram.y"
+#line 3606 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -8113,7 +8112,7 @@ case 645:
                                ;
     break;}
 case 646:
-#line 3617 "gram.y"
+#line 3616 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -8125,7 +8124,7 @@ case 646:
                                ;
     break;}
 case 647:
-#line 3627 "gram.y"
+#line 3626 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -8137,7 +8136,7 @@ case 647:
                                ;
     break;}
 case 648:
-#line 3637 "gram.y"
+#line 3636 "gram.y"
 {
                                        yyval.node = makeA_Expr(AND, NULL,
                                                makeA_Expr(OP, ">=", yyvsp[-4].node, yyvsp[-2].node),
@@ -8145,7 +8144,7 @@ case 648:
                                ;
     break;}
 case 649:
-#line 3643 "gram.y"
+#line 3642 "gram.y"
 {
                                        yyval.node = makeA_Expr(OR, NULL,
                                                makeA_Expr(OP, "<", yyvsp[-5].node, yyvsp[-2].node),
@@ -8153,11 +8152,11 @@ case 649:
                                ;
     break;}
 case 650:
-#line 3648 "gram.y"
+#line 3647 "gram.y"
 { saved_In_Expr = lcons(yyvsp[-1].node,saved_In_Expr); ;
     break;}
 case 651:
-#line 3649 "gram.y"
+#line 3648 "gram.y"
 {
                                        saved_In_Expr = lnext(saved_In_Expr);
                                        if (nodeTag(yyvsp[-1].node) == T_SubLink)
@@ -8173,11 +8172,11 @@ case 651:
                                ;
     break;}
 case 652:
-#line 3662 "gram.y"
+#line 3661 "gram.y"
 { saved_In_Expr = lcons(yyvsp[-2].node,saved_In_Expr); ;
     break;}
 case 653:
-#line 3663 "gram.y"
+#line 3662 "gram.y"
 {
                                        saved_In_Expr = lnext(saved_In_Expr);
                                        if (nodeTag(yyvsp[-1].node) == T_SubLink)
@@ -8193,7 +8192,7 @@ case 653:
                                ;
     break;}
 case 654:
-#line 3677 "gram.y"
+#line 3676 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8205,7 +8204,7 @@ case 654:
                                ;
     break;}
 case 655:
-#line 3687 "gram.y"
+#line 3686 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8217,7 +8216,7 @@ case 655:
                                ;
     break;}
 case 656:
-#line 3697 "gram.y"
+#line 3696 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8229,7 +8228,7 @@ case 656:
                                ;
     break;}
 case 657:
-#line 3707 "gram.y"
+#line 3706 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8241,7 +8240,7 @@ case 657:
                                ;
     break;}
 case 658:
-#line 3717 "gram.y"
+#line 3716 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8253,7 +8252,7 @@ case 658:
                                ;
     break;}
 case 659:
-#line 3727 "gram.y"
+#line 3726 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8265,7 +8264,7 @@ case 659:
                                ;
     break;}
 case 660:
-#line 3737 "gram.y"
+#line 3736 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8277,7 +8276,7 @@ case 660:
                                ;
     break;}
 case 661:
-#line 3747 "gram.y"
+#line 3746 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8289,7 +8288,7 @@ case 661:
                                ;
     break;}
 case 662:
-#line 3757 "gram.y"
+#line 3756 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8301,7 +8300,7 @@ case 662:
                                ;
     break;}
 case 663:
-#line 3767 "gram.y"
+#line 3766 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8313,7 +8312,7 @@ case 663:
                                ;
     break;}
 case 664:
-#line 3777 "gram.y"
+#line 3776 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8325,7 +8324,7 @@ case 664:
                                ;
     break;}
 case 665:
-#line 3787 "gram.y"
+#line 3786 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8337,7 +8336,7 @@ case 665:
                                ;
     break;}
 case 666:
-#line 3797 "gram.y"
+#line 3796 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8349,7 +8348,7 @@ case 666:
                                ;
     break;}
 case 667:
-#line 3807 "gram.y"
+#line 3806 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8361,7 +8360,7 @@ case 667:
                                ;
     break;}
 case 668:
-#line 3817 "gram.y"
+#line 3816 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8373,7 +8372,7 @@ case 668:
                                ;
     break;}
 case 669:
-#line 3827 "gram.y"
+#line 3826 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8385,7 +8384,7 @@ case 669:
                                ;
     break;}
 case 670:
-#line 3837 "gram.y"
+#line 3836 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8397,7 +8396,7 @@ case 670:
                                ;
     break;}
 case 671:
-#line 3847 "gram.y"
+#line 3846 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8409,7 +8408,7 @@ case 671:
                                ;
     break;}
 case 672:
-#line 3857 "gram.y"
+#line 3856 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8421,7 +8420,7 @@ case 672:
                                ;
     break;}
 case 673:
-#line 3867 "gram.y"
+#line 3866 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8433,7 +8432,7 @@ case 673:
                                ;
     break;}
 case 674:
-#line 3877 "gram.y"
+#line 3876 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8445,7 +8444,7 @@ case 674:
                                ;
     break;}
 case 675:
-#line 3887 "gram.y"
+#line 3886 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8457,7 +8456,7 @@ case 675:
                                ;
     break;}
 case 676:
-#line 3897 "gram.y"
+#line 3896 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8469,7 +8468,7 @@ case 676:
                                ;
     break;}
 case 677:
-#line 3907 "gram.y"
+#line 3906 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8481,30 +8480,30 @@ case 677:
                                ;
     break;}
 case 678:
-#line 3917 "gram.y"
+#line 3916 "gram.y"
 {      yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 679:
-#line 3919 "gram.y"
+#line 3918 "gram.y"
 {      yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 680:
-#line 3921 "gram.y"
+#line 3920 "gram.y"
 {      yyval.node = makeA_Expr(NOT, NULL, NULL, yyvsp[0].node); ;
     break;}
 case 681:
-#line 3931 "gram.y"
+#line 3930 "gram.y"
 {
                                        yyvsp[-1].attr->indirection = yyvsp[0].list;
                                        yyval.node = (Node *)yyvsp[-1].attr;
                                ;
     break;}
 case 682:
-#line 3936 "gram.y"
+#line 3935 "gram.y"
 {      yyval.node = yyvsp[0].node;  ;
     break;}
 case 683:
-#line 3938 "gram.y"
+#line 3937 "gram.y"
 {
                                        /* could be a column name or a relation_name */
                                        Ident *n = makeNode(Ident);
@@ -8514,39 +8513,39 @@ case 683:
                                ;
     break;}
 case 684:
-#line 3946 "gram.y"
+#line 3945 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ;
     break;}
 case 685:
-#line 3948 "gram.y"
+#line 3947 "gram.y"
 {      yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 686:
-#line 3950 "gram.y"
+#line 3949 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 687:
-#line 3952 "gram.y"
+#line 3951 "gram.y"
 {      yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 688:
-#line 3954 "gram.y"
+#line 3953 "gram.y"
 {      yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 689:
-#line 3956 "gram.y"
+#line 3955 "gram.y"
 {      yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ;
     break;}
 case 690:
-#line 3958 "gram.y"
+#line 3957 "gram.y"
 {      yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ;
     break;}
 case 691:
-#line 3960 "gram.y"
+#line 3959 "gram.y"
 {      yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ;
     break;}
 case 692:
-#line 3962 "gram.y"
+#line 3961 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-2].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -8564,7 +8563,7 @@ case 692:
                                ;
     break;}
 case 693:
-#line 3978 "gram.y"
+#line 3977 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-3].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -8582,23 +8581,23 @@ case 693:
                                ;
     break;}
 case 694:
-#line 3994 "gram.y"
+#line 3993 "gram.y"
 {      yyval.node = yyvsp[-1].node; ;
     break;}
 case 695:
-#line 3996 "gram.y"
+#line 3995 "gram.y"
 {      yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ;
     break;}
 case 696:
-#line 3998 "gram.y"
+#line 3997 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ;
     break;}
 case 697:
-#line 4000 "gram.y"
+#line 3999 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ;
     break;}
 case 698:
-#line 4002 "gram.y"
+#line 4001 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-2].str;
@@ -8607,7 +8606,7 @@ case 698:
                                ;
     break;}
 case 699:
-#line 4009 "gram.y"
+#line 4008 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-3].str;
@@ -8616,7 +8615,7 @@ case 699:
                                ;
     break;}
 case 700:
-#line 4016 "gram.y"
+#line 4015 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -8633,7 +8632,7 @@ case 700:
                                ;
     break;}
 case 701:
-#line 4031 "gram.y"
+#line 4030 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -8650,7 +8649,7 @@ case 701:
                                ;
     break;}
 case 702:
-#line 4046 "gram.y"
+#line 4045 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        A_Const *s = makeNode(A_Const);
@@ -8674,7 +8673,7 @@ case 702:
                                ;
     break;}
 case 703:
-#line 4068 "gram.y"
+#line 4067 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -8691,7 +8690,7 @@ case 703:
                                ;
     break;}
 case 704:
-#line 4083 "gram.y"
+#line 4082 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        A_Const *s = makeNode(A_Const);
@@ -8715,7 +8714,7 @@ case 704:
                                ;
     break;}
 case 705:
-#line 4105 "gram.y"
+#line 4104 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "getpgusername";
@@ -8724,7 +8723,7 @@ case 705:
                                ;
     break;}
 case 706:
-#line 4112 "gram.y"
+#line 4111 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "strpos";
@@ -8733,7 +8732,7 @@ case 706:
                                ;
     break;}
 case 707:
-#line 4119 "gram.y"
+#line 4118 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "substr";
@@ -8742,7 +8741,7 @@ case 707:
                                ;
     break;}
 case 708:
-#line 4127 "gram.y"
+#line 4126 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -8751,7 +8750,7 @@ case 708:
                                ;
     break;}
 case 709:
-#line 4134 "gram.y"
+#line 4133 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "ltrim";
@@ -8760,7 +8759,7 @@ case 709:
                                ;
     break;}
 case 710:
-#line 4141 "gram.y"
+#line 4140 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "rtrim";
@@ -8769,7 +8768,7 @@ case 710:
                                ;
     break;}
 case 711:
-#line 4148 "gram.y"
+#line 4147 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -8778,7 +8777,7 @@ case 711:
                                ;
     break;}
 case 712:
-#line 4157 "gram.y"
+#line 4156 "gram.y"
 {
                                        A_Indices *ai = makeNode(A_Indices);
                                        ai->lidx = NULL;
@@ -8787,7 +8786,7 @@ case 712:
                                ;
     break;}
 case 713:
-#line 4164 "gram.y"
+#line 4163 "gram.y"
 {
                                        A_Indices *ai = makeNode(A_Indices);
                                        ai->lidx = yyvsp[-4].node;
@@ -8796,23 +8795,23 @@ case 713:
                                ;
     break;}
 case 714:
-#line 4171 "gram.y"
+#line 4170 "gram.y"
 {      yyval.list = NIL; ;
     break;}
 case 715:
-#line 4175 "gram.y"
+#line 4174 "gram.y"
 { yyval.list = lcons(yyvsp[0].node, NIL); ;
     break;}
 case 716:
-#line 4177 "gram.y"
+#line 4176 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ;
     break;}
 case 717:
-#line 4179 "gram.y"
+#line 4178 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ;
     break;}
 case 718:
-#line 4183 "gram.y"
+#line 4182 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -8821,58 +8820,58 @@ case 718:
                                ;
     break;}
 case 719:
-#line 4190 "gram.y"
+#line 4189 "gram.y"
 {      yyval.list = NIL; ;
     break;}
 case 720:
-#line 4198 "gram.y"
+#line 4197 "gram.y"
 {      yyval.str = yyvsp[0].str; ;
     break;}
 case 721:
-#line 4202 "gram.y"
+#line 4201 "gram.y"
 {      yyval.list = makeList(yyvsp[0].node, yyvsp[-2].node, -1); ;
     break;}
 case 722:
-#line 4204 "gram.y"
+#line 4203 "gram.y"
 {      yyval.list = NIL; ;
     break;}
 case 723:
-#line 4208 "gram.y"
+#line 4207 "gram.y"
 {
                                        yyvsp[-1].attr->indirection = yyvsp[0].list;
                                        yyval.node = (Node *)yyvsp[-1].attr;
                                ;
     break;}
 case 724:
-#line 4213 "gram.y"
+#line 4212 "gram.y"
 {      yyval.node = yyvsp[0].node;  ;
     break;}
 case 725:
-#line 4215 "gram.y"
+#line 4214 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ;
     break;}
 case 726:
-#line 4217 "gram.y"
+#line 4216 "gram.y"
 {      yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 727:
-#line 4219 "gram.y"
+#line 4218 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 728:
-#line 4221 "gram.y"
+#line 4220 "gram.y"
 {      yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 729:
-#line 4223 "gram.y"
+#line 4222 "gram.y"
 {      yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 730:
-#line 4225 "gram.y"
+#line 4224 "gram.y"
 {      yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ;
     break;}
 case 731:
-#line 4227 "gram.y"
+#line 4226 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-2].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -8890,7 +8889,7 @@ case 731:
                                ;
     break;}
 case 732:
-#line 4243 "gram.y"
+#line 4242 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-3].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -8908,23 +8907,23 @@ case 732:
                                ;
     break;}
 case 733:
-#line 4259 "gram.y"
+#line 4258 "gram.y"
 {      yyval.node = yyvsp[-1].node; ;
     break;}
 case 734:
-#line 4261 "gram.y"
+#line 4260 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[-1].str, yyvsp[-2].node, yyvsp[0].node); ;
     break;}
 case 735:
-#line 4263 "gram.y"
+#line 4262 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ;
     break;}
 case 736:
-#line 4265 "gram.y"
+#line 4264 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ;
     break;}
 case 737:
-#line 4267 "gram.y"
+#line 4266 "gram.y"
 {
                                        /* could be a column name or a relation_name */
                                        Ident *n = makeNode(Ident);
@@ -8934,7 +8933,7 @@ case 737:
                                ;
     break;}
 case 738:
-#line 4275 "gram.y"
+#line 4274 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-2].str;
@@ -8943,7 +8942,7 @@ case 738:
                                ;
     break;}
 case 739:
-#line 4282 "gram.y"
+#line 4281 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-3].str;
@@ -8952,7 +8951,7 @@ case 739:
                                ;
     break;}
 case 740:
-#line 4289 "gram.y"
+#line 4288 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "strpos";
@@ -8961,7 +8960,7 @@ case 740:
                                ;
     break;}
 case 741:
-#line 4296 "gram.y"
+#line 4295 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "substr";
@@ -8970,7 +8969,7 @@ case 741:
                                ;
     break;}
 case 742:
-#line 4304 "gram.y"
+#line 4303 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -8979,7 +8978,7 @@ case 742:
                                ;
     break;}
 case 743:
-#line 4311 "gram.y"
+#line 4310 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "ltrim";
@@ -8988,7 +8987,7 @@ case 743:
                                ;
     break;}
 case 744:
-#line 4318 "gram.y"
+#line 4317 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "rtrim";
@@ -8997,7 +8996,7 @@ case 744:
                                ;
     break;}
 case 745:
-#line 4325 "gram.y"
+#line 4324 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -9006,21 +9005,21 @@ case 745:
                                ;
     break;}
 case 746:
-#line 4334 "gram.y"
+#line 4333 "gram.y"
 {
                                        yyval.list = nconc(nconc(yyvsp[-2].list,yyvsp[-1].list),yyvsp[0].list);
                                ;
     break;}
 case 747:
-#line 4338 "gram.y"
+#line 4337 "gram.y"
 {      yyval.list = NIL; ;
     break;}
 case 748:
-#line 4342 "gram.y"
+#line 4341 "gram.y"
 {      yyval.list = yyvsp[0].list; ;
     break;}
 case 749:
-#line 4344 "gram.y"
+#line 4343 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_Integer;
@@ -9029,27 +9028,27 @@ case 749:
                                ;
     break;}
 case 750:
-#line 4353 "gram.y"
+#line 4352 "gram.y"
 {      yyval.list = yyvsp[0].list; ;
     break;}
 case 751:
-#line 4355 "gram.y"
+#line 4354 "gram.y"
 {      yyval.list = NIL; ;
     break;}
 case 752:
-#line 4359 "gram.y"
+#line 4358 "gram.y"
 { yyval.list = lappend(yyvsp[0].list, yyvsp[-2].node); ;
     break;}
 case 753:
-#line 4361 "gram.y"
+#line 4360 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
 case 754:
-#line 4363 "gram.y"
+#line 4362 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
 case 755:
-#line 4367 "gram.y"
+#line 4366 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->subselect = yyvsp[0].node;
@@ -9057,21 +9056,21 @@ case 755:
                                ;
     break;}
 case 756:
-#line 4373 "gram.y"
+#line 4372 "gram.y"
 {      yyval.node = yyvsp[0].node; ;
     break;}
 case 757:
-#line 4377 "gram.y"
+#line 4376 "gram.y"
 {      yyval.node = makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node); ;
     break;}
 case 758:
-#line 4379 "gram.y"
+#line 4378 "gram.y"
 {      yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node,
                                                makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node));
                                ;
     break;}
 case 759:
-#line 4385 "gram.y"
+#line 4384 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->subselect = yyvsp[0].node;
@@ -9079,21 +9078,21 @@ case 759:
                                ;
     break;}
 case 760:
-#line 4391 "gram.y"
+#line 4390 "gram.y"
 {      yyval.node = yyvsp[0].node; ;
     break;}
 case 761:
-#line 4395 "gram.y"
+#line 4394 "gram.y"
 {      yyval.node = makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node); ;
     break;}
 case 762:
-#line 4397 "gram.y"
+#line 4396 "gram.y"
 {      yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node,
                                                makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node));
                                ;
     break;}
 case 763:
-#line 4403 "gram.y"
+#line 4402 "gram.y"
 {
                                        yyval.attr = makeNode(Attr);
                                        yyval.attr->relname = yyvsp[-2].str;
@@ -9103,7 +9102,7 @@ case 763:
                                ;
     break;}
 case 764:
-#line 4411 "gram.y"
+#line 4410 "gram.y"
 {
                                        yyval.attr = makeNode(Attr);
                                        yyval.attr->relname = NULL;
@@ -9113,27 +9112,27 @@ case 764:
                                ;
     break;}
 case 765:
-#line 4421 "gram.y"
+#line 4420 "gram.y"
 { yyval.list = lcons(makeString(yyvsp[0].str), NIL); ;
     break;}
 case 766:
-#line 4423 "gram.y"
+#line 4422 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); ;
     break;}
 case 767:
-#line 4425 "gram.y"
+#line 4424 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, makeString("*")); ;
     break;}
 case 768:
-#line 4436 "gram.y"
+#line 4435 "gram.y"
 {      yyval.list = lappend(yyvsp[-2].list,yyvsp[0].target);  ;
     break;}
 case 769:
-#line 4438 "gram.y"
+#line 4437 "gram.y"
 {      yyval.list = lcons(yyvsp[0].target, NIL);  ;
     break;}
 case 770:
-#line 4440 "gram.y"
+#line 4439 "gram.y"
 {
                                        ResTarget *rt = makeNode(ResTarget);
                                        Attr *att = makeNode(Attr);
@@ -9148,7 +9147,7 @@ case 770:
                                ;
     break;}
 case 771:
-#line 4455 "gram.y"
+#line 4454 "gram.y"
 {
                                        yyval.target = makeNode(ResTarget);
                                        yyval.target->name = yyvsp[-3].str;
@@ -9157,7 +9156,7 @@ case 771:
                                ;
     break;}
 case 772:
-#line 4462 "gram.y"
+#line 4461 "gram.y"
 {
                                        yyval.target = makeNode(ResTarget);
                                        yyval.target->name = NULL;
@@ -9166,7 +9165,7 @@ case 772:
                                ;
     break;}
 case 773:
-#line 4469 "gram.y"
+#line 4468 "gram.y"
 {
                                        Attr *att = makeNode(Attr);
                                        att->relname = yyvsp[-2].str;
@@ -9180,15 +9179,15 @@ case 773:
                                ;
     break;}
 case 774:
-#line 4488 "gram.y"
+#line 4487 "gram.y"
 {      yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target);  ;
     break;}
 case 775:
-#line 4490 "gram.y"
+#line 4489 "gram.y"
 {      yyval.list = lcons(yyvsp[0].target, NIL);  ;
     break;}
 case 776:
-#line 4495 "gram.y"
+#line 4494 "gram.y"
 {
                                        yyval.target = makeNode(ResTarget);
                                        yyval.target->name = yyvsp[0].str;
@@ -9197,7 +9196,7 @@ case 776:
                                ;
     break;}
 case 777:
-#line 4502 "gram.y"
+#line 4501 "gram.y"
 {
                                        yyval.target = makeNode(ResTarget);
                                        yyval.target->name = NULL;
@@ -9206,7 +9205,7 @@ case 777:
                                ;
     break;}
 case 778:
-#line 4509 "gram.y"
+#line 4508 "gram.y"
 {
                                        Attr *att = makeNode(Attr);
                                        att->relname = yyvsp[-2].str;
@@ -9220,7 +9219,7 @@ case 778:
                                ;
     break;}
 case 779:
-#line 4521 "gram.y"
+#line 4520 "gram.y"
 {
                                        Attr *att = makeNode(Attr);
                                        att->relname = "*";
@@ -9234,22 +9233,22 @@ case 779:
                                ;
     break;}
 case 780:
-#line 4534 "gram.y"
+#line 4533 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 781:
-#line 4535 "gram.y"
+#line 4534 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 782:
-#line 4539 "gram.y"
+#line 4538 "gram.y"
 {
                                        yyval.str = yyvsp[0].str;
                                        StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN);
                                ;
     break;}
 case 783:
-#line 4544 "gram.y"
+#line 4543 "gram.y"
 {
                                        /* disallow refs to variable system tables */
                                        if (strcmp(LogRelationName, yyvsp[0].str) == 0
@@ -9261,43 +9260,43 @@ case 783:
                                ;
     break;}
 case 784:
-#line 4555 "gram.y"
+#line 4554 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 785:
-#line 4556 "gram.y"
+#line 4555 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 786:
-#line 4557 "gram.y"
+#line 4556 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 787:
-#line 4558 "gram.y"
+#line 4557 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 788:
-#line 4559 "gram.y"
+#line 4558 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 789:
-#line 4565 "gram.y"
+#line 4564 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 790:
-#line 4566 "gram.y"
+#line 4565 "gram.y"
 { yyval.str = xlateSqlFunc(yyvsp[0].str); ;
     break;}
 case 791:
-#line 4568 "gram.y"
+#line 4567 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 792:
-#line 4569 "gram.y"
+#line 4568 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 793:
-#line 4575 "gram.y"
+#line 4574 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_Integer;
@@ -9306,7 +9305,7 @@ case 793:
                                ;
     break;}
 case 794:
-#line 4582 "gram.y"
+#line 4581 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_Float;
@@ -9315,7 +9314,7 @@ case 794:
                                ;
     break;}
 case 795:
-#line 4589 "gram.y"
+#line 4588 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -9324,7 +9323,7 @@ case 795:
                                ;
     break;}
 case 796:
-#line 4596 "gram.y"
+#line 4595 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->typename = yyvsp[-1].typnam;
@@ -9334,11 +9333,11 @@ case 796:
                                ;
     break;}
 case 797:
-#line 4604 "gram.y"
+#line 4603 "gram.y"
 {      yyval.node = (Node *)yyvsp[0].paramno;  ;
     break;}
 case 798:
-#line 4606 "gram.y"
+#line 4605 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -9350,7 +9349,7 @@ case 798:
                                ;
     break;}
 case 799:
-#line 4616 "gram.y"
+#line 4615 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -9362,238 +9361,238 @@ case 799:
                                ;
     break;}
 case 800:
-#line 4628 "gram.y"
+#line 4627 "gram.y"
 {
                                        yyval.paramno = makeNode(ParamNo);
                                        yyval.paramno->number = yyvsp[0].ival;
                                ;
     break;}
 case 801:
-#line 4634 "gram.y"
+#line 4633 "gram.y"
 { yyval.value = makeInteger(yyvsp[0].ival); ;
     break;}
 case 802:
-#line 4635 "gram.y"
+#line 4634 "gram.y"
 { yyval.value = makeFloat(yyvsp[0].dval); ;
     break;}
 case 803:
-#line 4638 "gram.y"
+#line 4637 "gram.y"
 { yyval.ival = yyvsp[0].ival; ;
     break;}
 case 804:
-#line 4639 "gram.y"
+#line 4638 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 805:
-#line 4640 "gram.y"
+#line 4639 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 806:
-#line 4648 "gram.y"
+#line 4647 "gram.y"
 {      yyval.str = xlateSqlType(yyvsp[0].str); ;
     break;}
 case 807:
-#line 4650 "gram.y"
+#line 4649 "gram.y"
 {      yyval.str = xlateSqlType(yyvsp[0].str); ;
     break;}
 case 808:
-#line 4652 "gram.y"
+#line 4651 "gram.y"
 {      yyval.str = xlateSqlType(yyvsp[0].str); ;
     break;}
 case 809:
-#line 4662 "gram.y"
+#line 4661 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 810:
-#line 4663 "gram.y"
+#line 4662 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 811:
-#line 4664 "gram.y"
+#line 4663 "gram.y"
 { yyval.str = "action"; ;
     break;}
 case 812:
-#line 4665 "gram.y"
+#line 4664 "gram.y"
 { yyval.str = "cache"; ;
     break;}
 case 813:
-#line 4666 "gram.y"
+#line 4665 "gram.y"
 { yyval.str = "cycle"; ;
     break;}
 case 814:
-#line 4667 "gram.y"
+#line 4666 "gram.y"
 { yyval.str = "database"; ;
     break;}
 case 815:
-#line 4668 "gram.y"
+#line 4667 "gram.y"
 { yyval.str = "delimiters"; ;
     break;}
 case 816:
-#line 4669 "gram.y"
+#line 4668 "gram.y"
 { yyval.str = "double"; ;
     break;}
 case 817:
-#line 4670 "gram.y"
+#line 4669 "gram.y"
 { yyval.str = "each"; ;
     break;}
 case 818:
-#line 4671 "gram.y"
+#line 4670 "gram.y"
 { yyval.str = "function"; ;
     break;}
 case 819:
-#line 4672 "gram.y"
+#line 4671 "gram.y"
 { yyval.str = "increment"; ;
     break;}
 case 820:
-#line 4673 "gram.y"
+#line 4672 "gram.y"
 { yyval.str = "index"; ;
     break;}
 case 821:
-#line 4674 "gram.y"
+#line 4673 "gram.y"
 { yyval.str = "key"; ;
     break;}
 case 822:
-#line 4675 "gram.y"
+#line 4674 "gram.y"
 { yyval.str = "language"; ;
     break;}
 case 823:
-#line 4676 "gram.y"
+#line 4675 "gram.y"
 { yyval.str = "location"; ;
     break;}
 case 824:
-#line 4677 "gram.y"
+#line 4676 "gram.y"
 { yyval.str = "match"; ;
     break;}
 case 825:
-#line 4678 "gram.y"
+#line 4677 "gram.y"
 { yyval.str = "maxvalue"; ;
     break;}
 case 826:
-#line 4679 "gram.y"
+#line 4678 "gram.y"
 { yyval.str = "minvalue"; ;
     break;}
 case 827:
-#line 4680 "gram.y"
+#line 4679 "gram.y"
 { yyval.str = "operator"; ;
     break;}
 case 828:
-#line 4681 "gram.y"
+#line 4680 "gram.y"
 { yyval.str = "option"; ;
     break;}
 case 829:
-#line 4682 "gram.y"
+#line 4681 "gram.y"
 { yyval.str = "password"; ;
     break;}
 case 830:
-#line 4683 "gram.y"
+#line 4682 "gram.y"
 { yyval.str = "privileges"; ;
     break;}
 case 831:
-#line 4684 "gram.y"
+#line 4683 "gram.y"
 { yyval.str = "recipe"; ;
     break;}
 case 832:
-#line 4685 "gram.y"
+#line 4684 "gram.y"
 { yyval.str = "row"; ;
     break;}
 case 833:
-#line 4686 "gram.y"
+#line 4685 "gram.y"
 { yyval.str = "start"; ;
     break;}
 case 834:
-#line 4687 "gram.y"
+#line 4686 "gram.y"
 { yyval.str = "statement"; ;
     break;}
 case 835:
-#line 4688 "gram.y"
+#line 4687 "gram.y"
 { yyval.str = "time"; ;
     break;}
 case 836:
-#line 4689 "gram.y"
+#line 4688 "gram.y"
 { yyval.str = "trigger"; ;
     break;}
 case 837:
-#line 4690 "gram.y"
+#line 4689 "gram.y"
 { yyval.str = "type"; ;
     break;}
 case 838:
-#line 4691 "gram.y"
+#line 4690 "gram.y"
 { yyval.str = "user"; ;
     break;}
 case 839:
-#line 4692 "gram.y"
+#line 4691 "gram.y"
 { yyval.str = "valid"; ;
     break;}
 case 840:
-#line 4693 "gram.y"
+#line 4692 "gram.y"
 { yyval.str = "version"; ;
     break;}
 case 841:
-#line 4694 "gram.y"
+#line 4693 "gram.y"
 { yyval.str = "zone"; ;
     break;}
 case 842:
-#line 4707 "gram.y"
+#line 4706 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 843:
-#line 4708 "gram.y"
+#line 4707 "gram.y"
 { yyval.str = "archive"; ;
     break;}
 case 844:
-#line 4709 "gram.y"
+#line 4708 "gram.y"
 { yyval.str = "cluster"; ;
     break;}
 case 845:
-#line 4710 "gram.y"
+#line 4709 "gram.y"
 { yyval.str = "constraint"; ;
     break;}
 case 846:
-#line 4711 "gram.y"
+#line 4710 "gram.y"
 { yyval.str = "cross"; ;
     break;}
 case 847:
-#line 4712 "gram.y"
+#line 4711 "gram.y"
 { yyval.str = "foreign"; ;
     break;}
 case 848:
-#line 4713 "gram.y"
+#line 4712 "gram.y"
 { yyval.str = "group"; ;
     break;}
 case 849:
-#line 4714 "gram.y"
+#line 4713 "gram.y"
 { yyval.str = "load"; ;
     break;}
 case 850:
-#line 4715 "gram.y"
+#line 4714 "gram.y"
 { yyval.str = "order"; ;
     break;}
 case 851:
-#line 4716 "gram.y"
+#line 4715 "gram.y"
 { yyval.str = "position"; ;
     break;}
 case 852:
-#line 4717 "gram.y"
+#line 4716 "gram.y"
 { yyval.str = "precision"; ;
     break;}
 case 853:
-#line 4718 "gram.y"
+#line 4717 "gram.y"
 { yyval.str = "table"; ;
     break;}
 case 854:
-#line 4719 "gram.y"
+#line 4718 "gram.y"
 { yyval.str = "transaction"; ;
     break;}
 case 855:
-#line 4720 "gram.y"
+#line 4719 "gram.y"
 { yyval.str = "true"; ;
     break;}
 case 856:
-#line 4721 "gram.y"
+#line 4720 "gram.y"
 { yyval.str = "false"; ;
     break;}
 case 857:
-#line 4725 "gram.y"
+#line 4724 "gram.y"
 {
                                        if (QueryIsRule)
                                                yyval.str = "*CURRENT*";
@@ -9602,7 +9601,7 @@ case 857:
                                ;
     break;}
 case 858:
-#line 4732 "gram.y"
+#line 4731 "gram.y"
 {
                                        if (QueryIsRule)
                                                yyval.str = "*NEW*";
@@ -9612,7 +9611,7 @@ case 858:
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/lib/bison.simple"
+#line 498 "/usr/share/misc/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -9808,7 +9807,7 @@ yyerrhandle:
   yystate = yyn;
   goto yynewstate;
 }
-#line 4740 "gram.y"
+#line 4739 "gram.y"
 
 
 static Node *