Changeset: a7085891fd87 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a7085891fd87
Modified Files:
        monetdb5/modules/mal/Tests/remote04.malC
        monetdb5/modules/mal/Tests/remote04.stable.out
        monetdb5/modules/mal/Tests/remote12.malC
        monetdb5/modules/mal/Tests/remote12.stable.err
        monetdb5/modules/mal/Tests/remote12.stable.out
        monetdb5/modules/mal/Tests/remote13.malC
        monetdb5/modules/mal/remote.c
Branch: default
Log Message:

MAL remote accepts sending nil-bats
Receiving the nil-bats is not yet supported.


diffs (116 lines):

diff --git a/monetdb5/modules/mal/Tests/remote04.malC 
b/monetdb5/modules/mal/Tests/remote04.malC
--- a/monetdb5/modules/mal/Tests/remote04.malC
+++ b/monetdb5/modules/mal/Tests/remote04.malC
@@ -10,7 +10,7 @@ bat.append(b, "foo");
 bat.append(b, "bar");
 bat.append(b, "baz");
 
-no := nil:bat[:oid];
+no := algebra.select (b,"bar":str,nil:str,true,true,false);
 n := remote.put(conn, no);
 bo:= bat.new(:oid);
 bok := remote.put(conn, bo);
diff --git a/monetdb5/modules/mal/Tests/remote04.stable.out 
b/monetdb5/modules/mal/Tests/remote04.stable.out
--- a/monetdb5/modules/mal/Tests/remote04.stable.out
+++ b/monetdb5/modules/mal/Tests/remote04.stable.out
@@ -30,9 +30,9 @@ Ready.
 # 09:46:22 >  
 
 [ "mTests_monetdb5_modules_mal_monetdb_0" ]
-[ "rmt1_b_bat_str"     ]
-[ "rmt2_X_12_str"      ]
-[ "rmt3_X_8_str"       ]
+[ "rmt2_b_bat_str"     ]
+[ "rmt3_X_12_str"      ]
+[ "rmt4_X_8_str"       ]
 #--------------------------#
 # h    t         # name
 # void oid  # type
diff --git a/monetdb5/modules/mal/Tests/remote12.malC 
b/monetdb5/modules/mal/Tests/remote12.malC
--- a/monetdb5/modules/mal/Tests/remote12.malC
+++ b/monetdb5/modules/mal/Tests/remote12.malC
@@ -4,6 +4,7 @@ conn:str := remote.connect(uri, "monetdb
 e := nil:bat[:int];
 m:str := remote.put(conn, e);
 io.print(m);
-v:bat[:int] := remote.get(conn,m);
-io.print(v);
-mdb.var();
+# retrieval of nil bats require an API change
+#v:bat[:int] := remote.get(conn,m);
+#io.print(v);
+#mdb.var();
diff --git a/monetdb5/modules/mal/Tests/remote12.stable.err 
b/monetdb5/modules/mal/Tests/remote12.stable.err
--- a/monetdb5/modules/mal/Tests/remote12.stable.err
+++ b/monetdb5/modules/mal/Tests/remote12.stable.err
@@ -32,17 +32,6 @@ stderr of test 'remote12` in directory '
 # 09:46:27 >  "mclient" "-lmal" "-ftest" "-Eutf-8" 
"--host=/var/tmp/mtest-26774" "--port=35410"
 # 09:46:27 >  
 
-MAPI  = (monetdb) /var/tmp/mtest-26774/.s.monetdb.35410
-QUERY = #causing a segfault 
-        uri := sabaoth.getLocalConnectionURI();
-        conn:str := remote.connect(uri, "monetdb", "monetdb");
-        e := nil:bat[:int];
-        m:str := remote.put(conn, e);
-        io.print(m);
-        v:bat[:int] := remote.get(conn,m);
-        io.print(v);
-        mdb.var();
-ERROR = !MALException:remote.put:Object not found
 
 # 20:06:20 >  
 # 20:06:20 >  Done.
diff --git a/monetdb5/modules/mal/Tests/remote12.stable.out 
b/monetdb5/modules/mal/Tests/remote12.stable.out
--- a/monetdb5/modules/mal/Tests/remote12.stable.out
+++ b/monetdb5/modules/mal/Tests/remote12.stable.out
@@ -21,6 +21,7 @@ stdout of test 'remote12` in directory '
 Ready.
 
 
+[ "rmt0_e_bat_int"     ]
 
 # 20:06:20 >  
 # 20:06:20 >  Done.
diff --git a/monetdb5/modules/mal/Tests/remote13.malC 
b/monetdb5/modules/mal/Tests/remote13.malC
--- a/monetdb5/modules/mal/Tests/remote13.malC
+++ b/monetdb5/modules/mal/Tests/remote13.malC
@@ -10,8 +10,9 @@ io.print(j);
 
 no := nil:bat[:oid];
 n := remote.put(conn, no);
-k:bat[:oid] := remote.get(conn, n);
-io.print(k);
+# retrieval of nil bat requires an MAPI change.
+#k:bat[:oid] := remote.get(conn, n);
+#io.print(k);
 
 # help testweb a bit, since currently no cleanup is done on server
 # shutdown
diff --git a/monetdb5/modules/mal/remote.c b/monetdb5/modules/mal/remote.c
--- a/monetdb5/modules/mal/remote.c
+++ b/monetdb5/modules/mal/remote.c
@@ -697,7 +697,7 @@ str RMTput(Client cntxt, MalBlkPtr mb, M
                msg = createException(MAL, "remote.put", "unsupported type: 
%s", tpe);
                GDKfree(tpe);
                return msg;
-       } else if (isaBatType(type) && *(bat*) value != 0) {
+       } else if (isaBatType(type) && *(bat*) value != 0 && *(bat*) value != 
int_nil) {
                BATiter bi;
                /* naive approach using bat.new() and bat.insert() calls */
                char *tail;
@@ -759,6 +759,14 @@ str RMTput(Client cntxt, MalBlkPtr mb, M
                        return tmp;
                }
                mapi_close_handle(mhdl);
+       } else if (isaBatType(type) && *(bat*) value == int_nil) {
+               stream *sout;
+               str typename = getTypeName(type);
+               sout = mapi_get_to(c->mconn);
+               mnstr_printf(sout,
+                               "%s := nil:%s;\n", ident, typename);
+               mnstr_flush(sout);
+               GDKfree(typename);
        } else {
                int l = 0;
                str val = NULL;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to