[Monetdb-developers] bat.new undefined

Fabian Groffen Fabian.Groffen at cwi.nl
Thu Nov 15 09:44:09 CET 2007


On 14-11-2007 22:56:27 +0100, Martin Kersten wrote:
> Fabian Groffen wrote:
> > On 14-11-2007 22:46:34 +0100, darabi at web.de wrote:
> >   
> >> mal>    # create schema, if it doesn't exist
> >> mal>    catch MALException:str;
> >> mal>
> >> mal>        s := bat.new(:void,:oid);
> >> mal>        bat.setName(s, "schema");
> >> mal>        bat.setPersistent(s);
> >> mal>
> >> mal>        s := bat.new(:void,:void);
> >>     
> >
> > The error occurs here.  This is a typing issue, but the expert has to
> > give his opinion on it to make it final.  ;)
> >
> > You can try (haven't tested it) to first set it to nil, e.g.:
> > s := nil;
> >   
> there he is:-)
> 
> In MAL arguments and signatures are strongly typed.
> 
> s:bat[:void,:oid] := bat.new(_6:void, _6:void)
> 
> is type incompatible.
> it should have been
> 
> s:bat[:void,:oid] := bat.new(_6:void, _7:oid)

The observation is that you cannot reuse variables, unless you want to
reuse them for something which has exactly the same type.  The
assignment makes that counter intuitive, because it /does/ work when the
variable has never been referenced before.




More information about the developers-list mailing list