Running MAL Programs Manually?

Stephen P. Morgan stephen_p_morgan at sbcglobal.net
Mon Mar 11 21:09:06 CET 2013


Should it be possible to run MAL programs manually, by reading them from a 
file?  I just tried a simple experiment and got an error message.

The experiment: I created a table, "test," with two columns, "field1" and 
field2."  I created a MAL query by issuing the SQL query, "EXPLAIN SELECT * FROM 
test;" and cut and pasted the output to a file.  I then stripped out all of the 
formatting characters ('|') and extraneous spaces.  I then re-entered mclient, 
choosing the MAL language, and read in the MAL form of the query with "\< 
junk.mal."  The interpreter then complained that two identifiers were not 
initialized (see output, below).  So, is it not possible to issue a MAL query by 
hand?  Or am I missing something?  (Again, please forgive me, I am new to 
MonetDB.)

Thanks,

Steve Morgan

mal>\< junk.mal
MAPI  = (monetdb) /tmp/.s.monetdb.50000
QUERY = function user.s1_1{autoCommit=true}():void;
        barrier X_41 := language.dataflow();
            X_2 := sql.mvc();
            X_3:bat[:oid,:oid]  := sql.tid(X_2,"sys","test");
            X_6 := sql.bind(X_2,"sys","test","field1",0);
            (X_9,r1_9) := sql.bind(X_2,"sys","test","field1",2);
            X_12 :=  sql.bind(X_2,"sys","test","field1",1);
            X_14 := sql.delta(X_6,X_9,r1_9,X_12);
            X_15 := algebra.leftfetchjoin(X_3,X_14);
            X_16 := sql.bind(X_2,"sys","test","field2",0);
            (X_18,r1_22) := sql.bind(X_2,"sys","test","field2",2);
            X_20 := sql.bind(X_2,"sys","test","field2",1);
            X_21 := sql.delta(X_16,X_18,r1_22,X_20);
            X_22 := algebra.leftfetchjoin(X_3,X_21);
             language.pass(X_3);
        exit X_41;
            X_23 := sql.resultSet(2,1,X_15);
            sql.rsColumn(X_23,"sys.test","field1","int",32,0,X_15);
            sql.rsColumn(X_23,"sys.test","field2","int",32,0,X_22);
            X_29 := io.stdout();
            sql.exportResult(X_29,X_23);
        end s1_1;
ERROR = !TypeException:user.s1_1[16]:'X_15' may not be used before being 
initialized
        !TypeException:user.s1_1[17]:'X_15' may not be used before being 
initialized
         !TypeException:user.s1_1[18]:'X_22' may not be used before being 
initialized
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.monetdb.org/pipermail/developers-list/attachments/20130311/2150a610/attachment.html>


More information about the developers-list mailing list