Return-Path: owner-postman
Received: from localhost (localhost [127.0.0.1]) by nobozo.CS.Berkeley.EDU (8.6.4/8.6.3) with SMTP id BAA12774 for postgres-dist; Fri, 12 Nov 1993 01:42:36 -0800
Resent-From: POSTGRES mailing list <postman@postgres.Berkeley.EDU>
Resent-Message-Id: <199311120942.BAA12774@nobozo.CS.Berkeley.EDU>
Sender: owner-postman@postgres.Berkeley.EDU
X-Return-Path: owner-postman
Received: from faerie.CS.Berkeley.EDU (faerie.CS.Berkeley.EDU [128.32.149.14]) by nobozo.CS.Berkeley.EDU (8.6.4/8.6.3) with ESMTP id BAA12765 for <postgres@nobozo.CS.Berkeley.EDU>; Fri, 12 Nov 1993 01:42:35 -0800
Received: from localhost (localhost [127.0.0.1]) by faerie.CS.Berkeley.EDU (8.6.3/8.1B) with SMTP id BAA04093; Fri, 12 Nov 1993 01:42:16 -0800
Message-Id: <199311120942.BAA04093@faerie.CS.Berkeley.EDU>
X-Authentication-Warning: faerie.CS.Berkeley.EDU: Host localhost didn't use HELO protocol
From: aoki@postgres.Berkeley.EDU (Paul M. Aoki)
To: Peter van Oosterom <P.v.Oosterom@fel.tno.nl>
Cc: postgres@postgres.Berkeley.EDU
Subject: Re: rewrite rule 
In-reply-to: Your message of Thu, 11 Nov 93 15:38:44 MET 
	     <199311111438.AA12842@fel.tno.nl> 
Date: Fri, 12 Nov 93 01:42:16 -0800
X-Sender: aoki@postgres.Berkeley.EDU
Resent-To: postgres-dist@postgres.Berkeley.EDU
X-Mts: smtp
Resent-Date: Fri, 12 Nov 93 01:42:36 -0800
Resent-XMts: smtp

Peter van Oosterom <P.v.Oosterom@fel.tno.nl> writes:
>   define rewrite rule r1 is
>     on retrieve to rel.a where current.a = "AAB"
>     do instead retrieve (a = "Y")\g

the manual says (in its usual crystal-clear prose):

     When choosing between the rewrite and instance rule systems for a par-
     ticular rule application, remember that in the rewrite system current
     refers to a relation and some qualifiers whereas in the instance system
     it refers to an instance (tuple).

in the rewrite system, this effectively means that the query
is rewritten as	
	retrieve (a = "Y") from current in rel where current.a = "AAB"
and since there is at least one element in rel that contains AAB, the
qualification is always true! (i.e., this is an existential query).
hence, "Y" is retrieved in place of every rel.a...
--
  Paul M. Aoki  |  CS Div., Dept. of EECS, UCB  |  aoki@postgres.Berkeley.EDU
                |  Berkeley, CA 94720           |  ...!uunet!ucbvax!aoki
