]> granicus.if.org Git - postgresql/commitdiff
BETWEEN and LIKE patch from Thomas
authorBruce Momjian <bruce@momjian.us>
Thu, 26 Mar 1998 21:08:10 +0000 (21:08 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 26 Mar 1998 21:08:10 +0000 (21:08 +0000)
src/backend/parser/parse_expr.c

index f4cf3247628a4d203714277d26403ff488e0f33a..da5f90685773746273618ff07af6317e249262b2 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.23 1998/02/27 16:07:02 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.24 1998/03/26 21:08:10 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -301,6 +301,21 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
                                result = (Node *) expr;
                                break;
                        }
+/* These nodes do _not_ come from the original parse tree.
+ * They result from parser transformation in this phase.
+ * At least one construct (BETWEEN/AND) puts the same nodes
+ *  into two branches of the parse tree. Hence, some nodes
+ *  are transformed twice. These nodes come from transforming
+ *  a function call. Let's try just passing them through...
+ * - thomas 1998-03-14
+ */
+               case T_Expr:
+               case T_Var:
+               case T_Const:
+                       {
+                               result = (Node *) expr;
+                               break;
+                       }
                default:
                        /* should not reach here */
                        elog(ERROR, "transformExpr: does not know how to transform node %d",