Fabian Groffen wrote:
On 14-11-2007 22:56:27 +0100, Martin Kersten wrote:
Fabian Groffen wrote:
On 14-11-2007 22:46:34 +0100, darabi@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.
The orginal example showed that the variable was already declared, i.e. type was frozen. mal> s := bat.new(:void,:oid); mal> bat.setName(s, "schema"); mal> bat.setPersistent(s); mal> mal> s := bat.new(:void,:void); mal> bat.setName(s, "version"); mal> bat.setPersistent(s); mal>
------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Monetdb-developers mailing list Monetdb-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/monetdb-developers