Added code so SubLinks make it to optimizer.
authorBruce Momjian
Mon, 19 Jan 1998 05:48:55 +0000 (05:48 +0000)
committerBruce Momjian
Mon, 19 Jan 1998 05:48:55 +0000 (05:48 +0000)
src/backend/parser/parse_expr.c
src/include/storage/s_lock.h

index b1bf7d3a95f5246f48fc3d149f796b45d56ee3be..6dab88c12cda98366ee6da450b25d40f966e6c8f 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.8 1998/01/19 05:06:18 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.9 1998/01/19 05:48:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -277,12 +277,14 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
                    {
                        Node       *lexpr = transformExpr(pstate, lfirst(elist), precedence);
                        Node       *rexpr = lfirst(right_expr);
+                       TargetEntry *tent = (TargetEntry *)rexpr;
                        Expr       *op_expr;                        
 
-                       op_expr = make_op(op, lexpr, rexpr);
+                       op_expr = make_op(op, lexpr, tent->expr);
                        sublink->oper = lappend(sublink->oper, op_expr->oper);
                        right_expr = lnext(right_expr);
                    }
+                   result = (Node *) expr;
                }
                break;
            }
@@ -382,6 +384,9 @@ exprType(Node *expr)
        case T_Param:
            type = ((Param *) expr)->paramtype;
            break;
+       case T_SubLink:
+           type = BOOLOID;
+           break;
        case T_Ident:
            /* is this right? */
            type = UNKNOWNOID;
index 6ad51713a37bf377a10cc1f4ba8a928d7a40f1b1..611073823233bd149dfc67ca4f84fb8ec3ea3814 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.17 1998/01/17 23:33:14 scrappy Exp $
+ *   $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.18 1998/01/19 05:48:55 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -315,7 +315,7 @@ again:
                            slock_t     _res; \
                            do \
                            { \
-               __asm__("lock xchgb %0,%1": "=q"(_res), "=m"(*lock):"0"(0x1)); \
+               __asm__("xchgb %0,%1": "=q"(_res), "=m"(*lock):"0"(0x1)); \
                            } while (_res != 0); \
                        } while (0)
 #endif