Changeset: 60ff5e0fdf83 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=60ff5e0fdf83
Added Files:
        monetdb5/modules/mal/Tests/batpartition.mal
        monetdb5/modules/mal/Tests/batpartition.stable.err
        monetdb5/modules/mal/Tests/batpartition.stable.out
Modified Files:
        monetdb5/extras/jaql/jaqlscenario.c
        monetdb5/modules/mal/Tests/All
        monetdb5/modules/mal/Tests/partition.stable.out
        monetdb5/modules/mal/batExtensions.c
Branch: default
Log Message:

Merge with Feb2013 branch


diffs (249 lines):

diff --git a/monetdb5/extras/jaql/jaqlscenario.c 
b/monetdb5/extras/jaql/jaqlscenario.c
--- a/monetdb5/extras/jaql/jaqlscenario.c
+++ b/monetdb5/extras/jaql/jaqlscenario.c
@@ -28,6 +28,7 @@
 #include "mal_scenario.h"
 #include "mal_instruction.h"
 #include "optimizer.h"
+#include "opt_pipes.h"
 
 extern int jaqlparse(jc *j);
 extern int jaqllex_init_extra(jc *user_defined, void **scanner);
@@ -241,6 +242,16 @@ JAQLparser(Client c)
 
                j->timing.optimise = GDKusec();
                chkTypes(out, c->nspace, prg->def, FALSE);
+               /* TODO: use a configured pipe */
+               addOptimizerPipe(c, prg->def, "minimal_pipe");
+               if ((errmsg = optimizeMALBlock(c, prg->def)) != MAL_SUCCEED) {
+                       MSresetInstructions(prg->def, oldstop);
+                       freeVariables(c, prg->def, c->glb, oldvtop);
+                       prg->def->errors = 0;
+                       mnstr_printf(out, "!%s\n", errmsg);
+                       freetree(j->p);
+                       return errmsg;
+               }
                j->timing.optimise = GDKusec() - j->timing.optimise;
                if (prg->def->errors) {
                        /* this is bad already, so let's try to make it 
debuggable */
@@ -271,7 +282,7 @@ JAQLengine(Client c)
 
        /* FIXME: if we don't run this, any barrier will cause an endless loop
         * (program jumps back to first frame), so this is kind of a
-        * workaround that maybe can go once we run the optimiser stack */
+        * workaround */
        chkProgram(c->fdout, c->nspace, c->curprg->def);
 
        c->glb = 0;
diff --git a/monetdb5/modules/mal/Tests/All b/monetdb5/modules/mal/Tests/All
--- a/monetdb5/modules/mal/Tests/All
+++ b/monetdb5/modules/mal/Tests/All
@@ -54,6 +54,7 @@ remote10
 sabaoth01
 
 partition
+batpartition
 printf
 #some remote related tests
 mapi04
diff --git a/monetdb5/modules/mal/Tests/batpartition.mal 
b/monetdb5/modules/mal/Tests/batpartition.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/modules/mal/Tests/batpartition.mal
@@ -0,0 +1,23 @@
+b := bat.new(:oid,:lng);
+bat.append(b,0:lng);
+bat.append(b,1:lng);
+bat.append(b,2:lng);
+bat.append(b,3:lng);
+bat.append(b,4:lng);
+bat.append(b,5:lng);
+bat.append(b,6:lng);
+bat.append(b,7:lng);
+bat.append(b,8:lng);
+bat.append(b,9:lng);
+b1 := bat.partition(b,2,0);
+io.print(b1);
+b2 := bat.partition(b,2,1);
+io.print(b2);
+c1 := bat.partition(b1,2,0);
+io.print(c1);
+c2 := bat.partition(b1,2,1);
+io.print(c2);
+d1 := bat.partition(b2,2,0);
+io.print(d1);
+d2 := bat.partition(b2,2,1);
+io.print(d2);
diff --git a/monetdb5/modules/mal/Tests/batpartition.stable.err 
b/monetdb5/modules/mal/Tests/batpartition.stable.err
new file mode 100644
--- /dev/null
+++ b/monetdb5/modules/mal/Tests/batpartition.stable.err
@@ -0,0 +1,29 @@
+stderr of test 'batpartition` in directory 'monetdb5/modules/mal` itself:
+
+
+# 23:04:03 >  
+# 23:04:03 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=37122" "--set" 
"mapi_usock=/var/tmp/mtest-1915/.s.monetdb.37122" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/export/scratch1/mk/Feb2013//Linux/var/MonetDB/mTests_monetdb5_modules_mal"
 "batpartition.mal"
+# 23:04:03 >  
+
+# builtin opt  gdk_dbpath = 
/export/scratch1/mk/Feb2013//Linux/var/monetdb5/dbfarm/demo
+# builtin opt  gdk_debug = 0
+# builtin opt  gdk_vmtrim = yes
+# builtin opt  monet_prompt = >
+# builtin opt  monet_daemon = no
+# builtin opt  mapi_port = 50000
+# builtin opt  mapi_open = false
+# builtin opt  mapi_autosense = false
+# builtin opt  sql_optimizer = default_pipe
+# builtin opt  sql_debug = 0
+# cmdline opt  gdk_nr_threads = 0
+# cmdline opt  mapi_open = true
+# cmdline opt  mapi_port = 37122
+# cmdline opt  mapi_usock = /var/tmp/mtest-1915/.s.monetdb.37122
+# cmdline opt  monet_prompt = 
+# cmdline opt  mal_listing = 2
+# cmdline opt  gdk_dbpath = 
/export/scratch1/mk/Feb2013//Linux/var/MonetDB/mTests_monetdb5_modules_mal
+
+# 23:04:04 >  
+# 23:04:04 >  "Done."
+# 23:04:04 >  
+
diff --git a/monetdb5/modules/mal/Tests/batpartition.stable.out 
b/monetdb5/modules/mal/Tests/batpartition.stable.out
new file mode 100644
--- /dev/null
+++ b/monetdb5/modules/mal/Tests/batpartition.stable.out
@@ -0,0 +1,95 @@
+stdout of test 'batpartition` in directory 'monetdb5/modules/mal` itself:
+
+
+# 23:04:03 >  
+# 23:04:03 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=37122" "--set" 
"mapi_usock=/var/tmp/mtest-1915/.s.monetdb.37122" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/export/scratch1/mk/Feb2013//Linux/var/MonetDB/mTests_monetdb5_modules_mal"
 "batpartition.mal"
+# 23:04:03 >  
+
+# MonetDB 5 server v11.15.2
+# This is an unreleased version
+# Serving database 'mTests_monetdb5_modules_mal', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically 
linked
+# Found 15.629 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2013 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://vienna.ins.cwi.nl:37122/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-1915/.s.monetdb.37122
+# MonetDB/GIS module loaded
+# MonetDB/JAQL module loaded
+# MonetDB/SQL module loaded
+# MonetDB/DataCell loaded
+function user.main():void;
+    b := bat.new(:oid,:lng);
+    bat.append(b,0:lng);
+    bat.append(b,1:lng);
+    bat.append(b,2:lng);
+    bat.append(b,3:lng);
+    bat.append(b,4:lng);
+    bat.append(b,5:lng);
+    bat.append(b,6:lng);
+    bat.append(b,7:lng);
+    bat.append(b,8:lng);
+    bat.append(b,9:lng);
+    b1 := bat.partition(b,2,0);
+    io.print(b1);
+    b2 := bat.partition(b,2,1);
+    io.print(b2);
+    c1 := bat.partition(b1,2,0);
+    io.print(c1);
+    c2 := bat.partition(b1,2,1);
+    io.print(c2);
+    d1 := bat.partition(b2,2,0);
+    io.print(d1);
+    d2 := bat.partition(b2,2,1);
+    io.print(d2);
+end main;
+#-----------------#
+# h    t         # name
+# void lng       # type
+#-----------------#
+[ 0@0,   0       ]
+[ 1@0,   1       ]
+[ 2@0,   2       ]
+[ 3@0,   3       ]
+[ 4@0,   4       ]
+#-----------------#
+# h    t         # name
+# void lng       # type
+#-----------------#
+[ 5@0,   5       ]
+[ 6@0,   6       ]
+[ 7@0,   7       ]
+[ 8@0,   8       ]
+[ 9@0,   9       ]
+#-----------------#
+# h    t         # name
+# void lng       # type
+#-----------------#
+[ 0@0,   0       ]
+[ 1@0,   1       ]
+#-----------------#
+# h    t         # name
+# void lng       # type
+#-----------------#
+[ 2@0,   2       ]
+[ 3@0,   3       ]
+[ 4@0,   4       ]
+#-----------------#
+# h    t         # name
+# void lng       # type
+#-----------------#
+[ 0@0,   5       ]
+[ 1@0,   6       ]
+#-----------------#
+# h    t         # name
+# void lng       # type
+#-----------------#
+[ 2@0,   7       ]
+[ 3@0,   8       ]
+[ 4@0,   9       ]
+
+# 23:04:04 >  
+# 23:04:04 >  "Done."
+# 23:04:04 >  
+
diff --git a/monetdb5/modules/mal/Tests/partition.stable.out 
b/monetdb5/modules/mal/Tests/partition.stable.out
--- a/monetdb5/modules/mal/Tests/partition.stable.out
+++ b/monetdb5/modules/mal/Tests/partition.stable.out
@@ -61,11 +61,11 @@ end tst;                                
 #-----------------#
 [ 0@0,   1       ]
 [ 1@0,   2       ]
-[ 2@0,   3       ]
 #-----------------#
 # h    t         # name
 # void int       # type
 #-----------------#
+[ 2@0,   3       ]
 [ 3@0,   4       ]
 [ 4@0,   5       ]
 #-----------------#
diff --git a/monetdb5/modules/mal/batExtensions.c 
b/monetdb5/modules/mal/batExtensions.c
--- a/monetdb5/modules/mal/batExtensions.c
+++ b/monetdb5/modules/mal/batExtensions.c
@@ -253,7 +253,7 @@ CMDbatpartition2(Client cntxt, MalBlkPtr
        if ((b = BATdescriptor(bid)) == NULL) {
                throw(MAL, "bat.partition", INTERNAL_BAT_ACCESS);
        }
-       step = BATcount(b) / pieces + 1;
+       step = BATcount(b) / pieces;
 
        lval = idx * step;
        if ( idx == pieces-1)
@@ -266,9 +266,8 @@ CMDbatpartition2(Client cntxt, MalBlkPtr
                BBPunfix(b->batCacheid);
                throw(MAL, "bat.partition",  INTERNAL_OBJ_CREATE);
        }
-       stk->stk[getArg(pci,0)].val.bval = bn->batCacheid;
        ret= (int *) getArgReference(stk,pci,0);
        BBPkeepref(*ret = bn->batCacheid);
-       BBPunfix(b->batCacheid);
+       BBPreleaseref(b->batCacheid);
        return MAL_SUCCEED;
 }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to