# Re: more on delete from join

Date: Sat, 29 Aug 2009 08:32:04 -0700 (PDT)

Message-ID: <385686bf-7bdc-4ba8-9233-377d94ed7e4a_at_p36g2000vbn.googlegroups.com>

On Aug 29, 9:45 am, Bob Badour <bbad..._at_pei.sympatico.ca> wrote:

> Kevin Kirkpatrick wrote:

*> > On Aug 28, 6:29 pm, Bob Badour <bbad..._at_pei.sympatico.ca> wrote:
**>
**> >>Kevin Kirkpatrick wrote:
**>
**> >>>On Aug 28, 4:32 pm, paul c <toledobythe..._at_oohay.ac> wrote:
**>
**> >>>>Kevin Kirkpatrick wrote:
**>
**> >>>>...
**>
**> >>>>>>By the way, why assume that CURRENT_USER
**> >>>>>>is not updateable?
**>
**> >>>>>Great question, cuts to the heart of the matter: It can't be updated
**> >>>>>because it is a view. It returns an conclusion, and it is not (IMO)
**> >>>>>valid to assert conclusions. ...
**>
**> >>>>So A UNION B is a conclusion when assigned to a view, but not a
**> >>>>conclusion when assigned to a base. Where does this idea come from and
**> >>>>what is it good for, apart from appearing to be a spurious reason to say
**> >>>>that views aren't updateable? Even if I were to accept that views
**> >>>>aren't updateable, I'd ask why is CURRENT_USER necessarily a view?
**>
**> >>>>(Personally, I would prefer an engine that allows a user to log himself
**> >>>>off by means of a simple delete rather than the usual arcane engine
**> >>>>plumbing that introduces various environmental commands. That way, the
**> >>>>environment is forced to react to db changes rather than the other way
**> >>>>around. The engine becomes much simpler if this approach is followed
**> >>>>and this is important if there's ever to be any progess in the aspects
**> >>>>that today's engines slough off.)
**> >>>>...
**>
**> >>>My point, phrased another way, is: given base relvars A, B, and C with
**> >>>identical headings, this does not make sense:
**>
**> >>>(A UNION B) := (B UNION C)
**>
**> >>>in the exact same way that this does not make sense:
**>
**> >>>int x, y;
**> >>>x+y := 3;
**>
**> >>But computers do solve systems of equations:
**>
**> >>x+y = 3
**> >>x-y = 1
**>
**> > Well, I will grant that. But there is an difference between
**>
**> > exp[0]:='x+y = 3'
**> > exp[1]:='x-y = 1'
**> > print(Solve_system (exp, 'x')); -- prints 2
**>
**> > and
**> > x+y := 3;
**> > x-y := 1;
**> > print (x); -- prints 2? (does it? can it? see below...)
**>
**> I agree. The former is klunky and inelegant while the latter is elegant
**> and clear.
*

What should these clear and elegant programs print?

int x, y;

y:=3;

x:=y;

print (x);

y:=4;

print (x);

int x, y;

y:=3;

x+y:=5;

print(x);

y:=4;

print(x); Received on Sat Aug 29 2009 - 17:32:04 CEST