Changeset: e49571ae2f6a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e49571ae2f6a
Added Files:
        sql/backends/monet5/iot/Tests/iot13.stable.err
        sql/backends/monet5/iot/Tests/iot13.stable.out
        sql/backends/monet5/iot/Tests/x.ql
Modified Files:
        monetdb5/mal/mal_module.c
        sql/backends/monet5/iot/50_iot.sql
        sql/backends/monet5/iot/Tests/bug01.stable.out
        sql/backends/monet5/iot/basket.c
        sql/backends/monet5/iot/basket.h
        sql/backends/monet5/iot/iot.mal
        sql/backends/monet5/iot/petrinet.c
        sql/backends/monet5/iot/petrinet.h
Branch: iot
Log Message:

Fixing property settings


diffs (truncated from 437 to 300 lines):

diff --git a/monetdb5/mal/mal_module.c b/monetdb5/mal/mal_module.c
--- a/monetdb5/mal/mal_module.c
+++ b/monetdb5/mal/mal_module.c
@@ -247,7 +247,7 @@ Module findModule(Module scope, str name
                        scope= scope->link;
        }
        /* default is always matched with current */
-       if( def->name==NULL) return NULL;
+       if( def == NULL || def->name==NULL) return NULL;
        return def;
 }
 int isModuleDefined(Module scope, str name){
diff --git a/sql/backends/monet5/iot/50_iot.sql 
b/sql/backends/monet5/iot/50_iot.sql
--- a/sql/backends/monet5/iot/50_iot.sql
+++ b/sql/backends/monet5/iot/50_iot.sql
@@ -98,7 +98,7 @@ create function iot.getheartbeat("schema
 external name iot.getheartbeat;
 
 create function iot.baskets()
-returns table( "schema" string, "table" string, "status" string, threshold 
int, winsize int, winstride int, timeslice int, timestride int, heartbeat int, 
seen timestamp, events int)
+returns table( "schema" string, "table" string, "status" string, winsize int, 
winstride int, timeslice int, timestride int, heartbeat int, seen timestamp, 
events int)
 external name iot.baskets;
 
 create procedure iot.show("schema" string, "query" string)
diff --git a/sql/backends/monet5/iot/Tests/bug01.stable.out 
b/sql/backends/monet5/iot/Tests/bug01.stable.out
--- a/sql/backends/monet5/iot/Tests/bug01.stable.out
+++ b/sql/backends/monet5/iot/Tests/bug01.stable.out
@@ -68,10 +68,10 @@ Ready.
 # 15:59:58 >  
 
 #select * from iot.baskets();
-% .,   .,      .,      .,      .,      .,      .,      .,      .,      .,      
. # table_name
-% schema,      table,  status, threshold,      winsize,        winstride,      
timeslice,      timestride,     heartbeat,      seen,   events # name
-% clob,        clob,   clob,   int,    int,    int,    int,    int,    int,    
timestamp,      int # type
-% 0,   0,      0,      1,      1,      1,      1,      1,      1,      26,     
1 # length
+% .,   .,      .,      .,      .,      .,      .,      .,      .,      . # 
table_name
+% schema,      table,  status, winsize,        winstride,      timeslice,      
timestride,     heartbeat,      seen,   events # name
+% clob,        clob,   clob,   int,    int,    int,    int,    int,    
timestamp,      int # type
+% 0,   0,      0,      1,      1,      1,      1,      1,      26,     1 # 
length
 
 # 15:59:58 >  
 # 15:59:58 >  "Done."
diff --git a/sql/backends/monet5/iot/Tests/iot13.stable.err 
b/sql/backends/monet5/iot/Tests/iot13.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/iot/Tests/iot13.stable.err
@@ -0,0 +1,34 @@
+stderr of test 'iot13` in directory 'sql/backends/monet5/iot` itself:
+
+
+# 11:32:49 >  
+# 11:32:49 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=30951" "--set" 
"mapi_usock=/var/tmp/mtest-13328/.s.monetdb.30951" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/export/scratch1/mk/iot//Linux/var/MonetDB/mTests_sql_backends_monet5_iot"
+# 11:32:49 >  
+
+# builtin opt  gdk_dbpath = 
/export/scratch1/mk/iot//Linux/var/monetdb5/dbfarm/demo
+# builtin opt  gdk_debug = 0
+# builtin opt  gdk_vmtrim = no
+# 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 = 30951
+# cmdline opt  mapi_usock = /var/tmp/mtest-13328/.s.monetdb.30951
+# cmdline opt  monet_prompt = 
+# cmdline opt  gdk_dbpath = 
/export/scratch1/mk/iot//Linux/var/MonetDB/mTests_sql_backends_monet5_iot
+# cmdline opt  gdk_debug = 536870922
+
+# 11:32:49 >  
+# 11:32:49 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-13328" "--port=30951"
+# 11:32:49 >  
+
+
+# 11:32:54 >  
+# 11:32:54 >  "Done."
+# 11:32:54 >  
+
diff --git a/sql/backends/monet5/iot/Tests/iot13.stable.out 
b/sql/backends/monet5/iot/Tests/iot13.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/iot/Tests/iot13.stable.out
@@ -0,0 +1,80 @@
+stdout of test 'iot13` in directory 'sql/backends/monet5/iot` itself:
+
+
+# 11:32:49 >  
+# 11:32:49 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=30951" "--set" 
"mapi_usock=/var/tmp/mtest-13328/.s.monetdb.30951" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/export/scratch1/mk/iot//Linux/var/MonetDB/mTests_sql_backends_monet5_iot"
+# 11:32:49 >  
+
+# MonetDB 5 server v11.24.0
+# This is an unreleased version
+# Serving database 'mTests_sql_backends_monet5_iot', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 128bit integers
+# Found 15.589 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2016 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://vienna.da.cwi.nl:30951/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-13328/.s.monetdb.30951
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+# MonetDB/iot loaded
+
+Ready.
+#Tumbled iot.tmp13[0] 1 elements
+#Tumbled iot.tmp13[1] 1 elements
+#Tumbled iot.tmp13[2] 1 elements
+#Tumbled iot.tmp13[0] 0 elements
+#Tumbled iot.tmp13[1] 0 elements
+#Tumbled iot.tmp13[2] 0 elements
+
+# 11:32:49 >  
+# 11:32:49 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-13328" "--port=30951"
+# 11:32:49 >  
+
+#set schema iot;
+#set optimizer='iot_pipe';
+#create stream table tmp13 (t timestamp, sensor integer, val decimal(8,2)) ;
+#create table agenda13(i integer, msg string);
+#create procedure cq13()
+#begin
+#      insert into agenda13 select count(*), 'full batch' from tmp13;
+#end;
+#insert into tmp13 values('2005-09-23 12:34:26.736',1,12.34);
+[ 1    ]
+#insert into tmp13 values('2005-09-23 12:34:26.736',1,12.35);
+[ 1    ]
+#insert into tmp13 values('2005-09-23 12:34:26.736',1,12.36);
+[ 1    ]
+#select * from tmp13;
+% iot.tmp13,   iot.tmp13,      iot.tmp13 # table_name
+% t,   sensor, val # name
+% timestamp,   int,    decimal # type
+% 26,  1,      10 # length
+[ 2005-09-23 12:34:26.736000,  1,      12.34   ]
+[ 2005-09-23 12:34:26.736000,  1,      12.35   ]
+#select 'RESULT';
+% .L # table_name
+% single_value # name
+% char # type
+% 6 # length
+[ "RESULT"     ]
+#select * from agenda13;
+% iot.agenda13,        iot.agenda13 # table_name
+% i,   msg # name
+% int, clob # type
+% 1,   10 # length
+[ 2,   "full batch"    ]
+[ 1,   "full batch"    ]
+#select * from iot.errors();
+% .,   . # table_name
+% table,       error # name
+% clob,        clob # type
+% 0,   0 # length
+#drop procedure cq13;
+#drop table tmp13;
+#drop table agenda13;
+
+# 11:32:54 >  
+# 11:32:54 >  "Done."
+# 11:32:54 >  
+
diff --git a/sql/backends/monet5/iot/Tests/x.ql 
b/sql/backends/monet5/iot/Tests/x.ql
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/iot/Tests/x.ql
@@ -0,0 +1,26 @@
+SET optimizer = 'iot_pipe';
+
+CREATE STREAM TABLE testing (a timestamp, b int, c real);
+CALL iot.window('sys', 'testing', 3);
+CREATE TABLE testout (a timestamp, b int, c real);
+
+CREATE PROCEDURE cquery()
+BEGIN  
+       INSERT INTO testout SELECT * FROM testing;
+END;
+
+CALL iot.query('sys', 'cquery');
+CALL iot.resume();
+
+INSERT INTO testing VALUES (now(), 1, 1);
+INSERT INTO testing VALUES (now(), 2, 2);
+INSERT INTO testing VALUES (now(), 3, 3);
+
+CALL iot.show('sys', 'cquery');
+CALL iot.stop();
+
+DROP PROCEDURE cquery;
+DROP TABLE testout;
+DROP TABLE testing;
+
+
diff --git a/sql/backends/monet5/iot/basket.c b/sql/backends/monet5/iot/basket.c
--- a/sql/backends/monet5/iot/basket.c
+++ b/sql/backends/monet5/iot/basket.c
@@ -358,6 +358,7 @@ BSKTtid(Client cntxt, MalBlkPtr mb, MalS
     tids = COLnew(0, TYPE_void, 0, TRANSIENT);
     if (tids == NULL)
         throw(SQL, "basket.tid", MAL_MALLOC_FAIL);
+       tids->tseqbase = 0;
     BATsetcount(tids, BATcount(b));
        BATsettrivprop(tids);
 
@@ -662,8 +663,9 @@ BSKTexport(Client cntxt, MalBlkPtr mb, M
 /* remove tuples from a basket according to the sliding policy */
 #define ColumnShift(B,TPE) { \
        TPE *first= (TPE*) Tloc(B, 0);\
-       TPE *n = first + (stride == -1 ? BATcount(b): (BUN) stride);\
-       TPE *last=  (TPE*) Tloc(B, BUNlast(B));\
+       TPE *n, *last=  (TPE*) Tloc(B, BUNlast(B));\
+       shift = stride == -1 ? BATcount(b): (BUN) stride;\
+       n = first + shift;\
        for(cnt=0 ; n < last; cnt++, n++, first++)\
                *first=*n;\
 }
@@ -672,7 +674,7 @@ static str
 BSKTtumbleInternal(Client cntxt, str sch, str tbl, int stride)
 {
        BAT *b;
-       BUN cnt;
+       BUN cnt, shift;
        int i, bskt;
        (void) cntxt;
 
@@ -709,19 +711,30 @@ BSKTtumbleInternal(Client cntxt, str sch
                        throw(SQL, "iot.tumble", "Could not find the basket 
column storage %s.%s[%d]",sch,tbl,i);
                }
 
-               mnstr_printf(BSKTout,"#Tumbled %s.%s[%d] "BUNFMT" 
elements\n",sch,tbl,i,cnt);
+               _DEBUG_BASKET_ mnstr_printf(BSKTout,"#Tumbled %s.%s[%d] 
"BUNFMT" elements\n",sch,tbl,i,cnt);
                BATsetcount(b, cnt);
                baskets[bskt].count = BATcount(b);
                if( cnt == 0)
                        baskets[bskt].status = BSKTWAIT;
-               b->tnil = b->tnonil = 0;
-               b->tsorted = b->trevsorted = 0;
+               b->tnil = 0;
+               if( shift < BATcount(b)){
+                       b->tnokey[0] -= shift;
+                       b->tnokey[1] -= shift;
+                       b->tnosorted = 0;
+                       b->tnorevsorted = 0;
+               } else {
+                       b->tnokey[0] = 0;
+                       b->tnokey[1] = 0;
+                       b->tnosorted = 0;
+                       b->tnorevsorted = 0;
+               }
                BATsettrivprop(b);
        }
        return MAL_SUCCEED;
 }
 
 /* set the tumbling properties */
+
 str
 BSKTtumble(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
@@ -819,12 +832,11 @@ BSKTdump(void *ret)
                        if( b)
                                cnt = BATcount(b);
 
-                       mnstr_printf(GDKout, "#baskets[%2d] %s.%s columns 
"BUNFMT" threshold %d window=["BUNFMT","BUNFMT"] time window=[" LLFMT "," LLFMT 
"] beat " LLFMT " milliseconds" BUNFMT"\n",
+                       mnstr_printf(GDKout, "#baskets[%2d] %s.%s columns 
"BUNFMT" window=["BUNFMT","BUNFMT"] time window=[" LLFMT "," LLFMT "] beat " 
LLFMT " milliseconds" BUNFMT"\n",
                                        bskt,
                                        baskets[bskt].schema_name,
                                        baskets[bskt].table_name,
                                        baskets[bskt].count,
-                                       baskets[bskt].threshold,
                                        baskets[bskt].winsize,
                                        baskets[bskt].winstride,
                                        baskets[bskt].timeslice,
@@ -947,11 +959,17 @@ BSKTdelete(Client cntxt, MalBlkPtr mb, M
                b = baskets[idx].bats[i];
                if(b){
                        (void) BATdel(b, rid);
+                       baskets[idx].count = BATcount(b);
+                       if( BATcount(b) == 0)
+                               baskets[idx].status = BSKTWAIT;
+                       else
+                               baskets[idx].status = BSKTFILLED;
+                       b->tnil = 0;
+                       b->tnokey[0] = 0;
+                       b->tnokey[1] = 0;
                        BATsettrivprop(b);
                }
        }
-
-       baskets[idx].status = BSKTFILLED;
        BBPunfix(rid->batCacheid);
        *res = *getArgReference_int(stk,pci,1);
        return MAL_SUCCEED;
@@ -1035,16 +1053,15 @@ BSKTtable (Client cntxt, MalBlkPtr mb, M
        bat *schemaId = getArgReference_bat(stk,pci,0);
        bat *nameId = getArgReference_bat(stk,pci,1);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to