Make expression locations for LIKE and SIMILAR TO constructs uniformly point
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 4 Nov 2009 23:15:08 +0000 (23:15 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 4 Nov 2009 23:15:08 +0000 (23:15 +0000)
at the first keyword of the expression, rather than drawing a rather
artificial distinction between the ESCAPE subclause and the rest.
Per gripe from Gokulakannan Somasundaram and subsequent discusssion.

src/backend/parser/gram.y

index 2fe6ab16120fdcb37f5f6c607469374a7bfeb0c0..058574a9a4e65c565a17020a0278602a4aa41ebd 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.686 2009/10/14 22:14:22 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.687 2009/11/04 23:15:08 tgl Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -8607,7 +8607,7 @@ a_expr:           c_expr                                                                  { $$ = $1; }
                                        n->agg_distinct = FALSE;
                                        n->func_variadic = FALSE;
                                        n->over = NULL;
-                                       n->location = @4;
+                                       n->location = @2;
                                        $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", $1, (Node *) n, @2);
                                }
                        | a_expr NOT LIKE a_expr
@@ -8621,7 +8621,7 @@ a_expr:           c_expr                                                                  { $$ = $1; }
                                        n->agg_distinct = FALSE;
                                        n->func_variadic = FALSE;
                                        n->over = NULL;
-                                       n->location = @5;
+                                       n->location = @2;
                                        $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", $1, (Node *) n, @2);
                                }
                        | a_expr ILIKE a_expr
@@ -8635,7 +8635,7 @@ a_expr:           c_expr                                                                  { $$ = $1; }
                                        n->agg_distinct = FALSE;
                                        n->func_variadic = FALSE;
                                        n->over = NULL;
-                                       n->location = @4;
+                                       n->location = @2;
                                        $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", $1, (Node *) n, @2);
                                }
                        | a_expr NOT ILIKE a_expr
@@ -8649,7 +8649,7 @@ a_expr:           c_expr                                                                  { $$ = $1; }
                                        n->agg_distinct = FALSE;
                                        n->func_variadic = FALSE;
                                        n->over = NULL;
-                                       n->location = @5;
+                                       n->location = @2;
                                        $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", $1, (Node *) n, @2);
                                }
 
@@ -8674,7 +8674,7 @@ a_expr:           c_expr                                                                  { $$ = $1; }
                                        n->agg_distinct = FALSE;
                                        n->func_variadic = FALSE;
                                        n->over = NULL;
-                                       n->location = @5;
+                                       n->location = @2;
                                        $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", $1, (Node *) n, @2);
                                }
                        | a_expr NOT SIMILAR TO a_expr                  %prec SIMILAR
@@ -8686,7 +8686,7 @@ a_expr:           c_expr                                                                  { $$ = $1; }
                                        n->agg_distinct = FALSE;
                                        n->func_variadic = FALSE;
                                        n->over = NULL;
-                                       n->location = @5;
+                                       n->location = @2;
                                        $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", $1, (Node *) n, @2);
                                }
                        | a_expr NOT SIMILAR TO a_expr ESCAPE a_expr
@@ -8698,7 +8698,7 @@ a_expr:           c_expr                                                                  { $$ = $1; }
                                        n->agg_distinct = FALSE;
                                        n->func_variadic = FALSE;
                                        n->over = NULL;
-                                       n->location = @6;
+                                       n->location = @2;
                                        $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", $1, (Node *) n, @2);
                                }