From 3d24e75176cf93a109392e9a9449b47c9dc58330 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 19 Jan 1998 05:48:55 +0000
Subject: [PATCH] Added code so SubLinks make it to optimizer.

---
 src/backend/parser/parse_expr.c | 9 +++++++--
 src/include/storage/s_lock.h    | 4 ++--
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index b1bf7d3a95f..6dab88c12cd 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -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;
diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
index 6ad51713a37..61107382323 100644
--- a/src/include/storage/s_lock.h
+++ b/src/include/storage/s_lock.h
@@ -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
-- 
GitLab