Lists: | pgsql-hackerspgsql-patches |
---|
From: | Greg Stark <gsstark(at)mit(dot)edu> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org, pgsql-patches(at)postgresql(dot)org |
Subject: | parse_expr.c another type produced by transformations? |
Date: | 2003-02-12 18:06:24 |
Message-ID: | 87heb9nzkv.fsf@stark.dyndns.tv |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers pgsql-patches |
Ran into this in cvs tip checked out as of yesterday:
db=> SELECT sum(CASE WHEN (upper(substr((select 'en'::varchar),1,1)) not between 'A' and 'Z') THEN 1 ELSE 0 END) AS n FROM tab;
ERROR: transformExpr: does not know how to transform node 309 (internal error)
309 is T_FuncExpr. Is this a node type that should be added as described by
the comment? Appended is the patch to add it but I don't know if it should be
or not.
parse_expr.c:
/*********************************************
* Quietly accept node types that may be presented when we are
* called on an already-transformed tree.
*
* Do any other node types need to be accepted? For now we are
* taking a conservative approach, and only accepting node
* types that are demonstrably necessary to accept.
*********************************************/
--- parse_expr.c.~1.144.~ 2003-02-09 23:44:46.000000000 -0500
+++ parse_expr.c 2003-02-12 13:02:35.000000000 -0500
@@ -670,6 +670,7 @@
case T_Param:
case T_Aggref:
case T_ArrayRef:
+ case T_FuncExpr:
case T_FieldSelect:
case T_RelabelType:
case T_CoerceToDomain:
--
greg
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Greg Stark <gsstark(at)mit(dot)edu> |
Cc: | pgsql-hackers(at)postgresql(dot)org, pgsql-patches(at)postgresql(dot)org |
Subject: | Re: [HACKERS] parse_expr.c another type produced by transformations? |
Date: | 2003-02-13 18:30:50 |
Message-ID: | 23790.1045161050@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers pgsql-patches |
Greg Stark <gsstark(at)mit(dot)edu> writes:
> Ran into this in cvs tip checked out as of yesterday:
> db=> SELECT sum(CASE WHEN (upper(substr((select 'en'::varchar),1,1)) not between 'A' and 'Z') THEN 1 ELSE 0 END) AS n FROM tab;
> ERROR: transformExpr: does not know how to transform node 309 (internal error)
> 309 is T_FuncExpr. Is this a node type that should be added as described by
> the comment?
Yeah, you're right, and three other node types too. I missed this spot
while changing the representation of Expr the other day. Thanks for
catching it.
regards, tom lane