Changeset: 41de19d91d28 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=41de19d91d28
Modified Files:
Branch: sciql
Log Message:
Merge with default branch.
diffs (truncated from 1165 to 300 lines):
diff --git a/clients/python/monetdb/mapi2.py b/clients/python/monetdb/mapi2.py
--- a/clients/python/monetdb/mapi2.py
+++ b/clients/python/monetdb/mapi2.py
@@ -237,7 +237,7 @@
while count > 0:
try:
recv = self.socket.recv(bytes, flags)
- logging.debug("II: package size: %i payload: %s" % (len(recv),
recv))
+ logger.debug("II: package size: %i payload: %s" % (len(recv),
recv))
except socket.error, error:
raise OperationalError(error[1])
count -= len(recv)
diff --git a/clients/python/monetdb/mapi3.py b/clients/python/monetdb/mapi3.py
--- a/clients/python/monetdb/mapi3.py
+++ b/clients/python/monetdb/mapi3.py
@@ -238,7 +238,7 @@
while count > 0:
try:
recv = self.socket.recv(bytes, flags)
- logging.debug("II: package size: %i payload: %s" % (len(recv),
recv))
+ logger.debug("II: package size: %i payload: %s" % (len(recv),
recv))
except socket.error as error:
raise OperationalError(error[1])
count -= len(recv)
diff --git a/sql/backends/monet5/datacell/50_datacell.sql
b/sql/backends/monet5/datacell/50_datacell.sql
--- a/sql/backends/monet5/datacell/50_datacell.sql
+++ b/sql/backends/monet5/datacell/50_datacell.sql
@@ -41,6 +41,9 @@
create procedure datacell.query(proc string, def string)
external name datacell.query;
+create procedure datacell.query(proc string)
+ external name datacell.query;
+
create procedure datacell.remove (obj string)
external name datacell.remove;
@@ -66,10 +69,14 @@
returns boolean
external name datacell.threshold;
-create function datacell.window(bskt string, size integer, slide integer)
+create function datacell.window(bskt string, size integer, stride integer)
returns boolean
external name datacell.window;
+create function datacell.window(bskt string, size interval second, stride
interval second)
+returns boolean
+ external name datacell.timewindow;
+
create function datacell.beat(bskt string, t integer)
returns boolean
external name datacell.beat;
@@ -77,10 +84,14 @@
-- Inspection tables
create function datacell.baskets()
-returns table( nme string, threshold int, winsize int, winslide int, beat int,
+returns table( nme string, threshold int, winsize int, winstride int,
timeslice int, timestride int, beat int,
seen timestamp, grabs int, events int)
external name datacell.baskets;
create function datacell.queries()
returns table( nme string, status string, seen timestamp, cycles int, events
int, time bigint, error string, def string)
external name datacell.queries;
+
+create function datacell.errors()
+returns table( nme string, error string)
+external name datacell.errors;
diff --git a/sql/backends/monet5/datacell/Tests/dctemper00.sql
b/sql/backends/monet5/datacell/Tests/dctemper00.sql
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/datacell/Tests/dctemper00.sql
@@ -0,0 +1,45 @@
+-- Scenario to exercise the datacell implementation
+-- using our temperature sensors.
+-- they should sent their events to a particular port.
+-- a warning is issued if the temperature in any of the
+-- rooms fluctuates more then a predefined thresshold within a few minutes/
+
+create schema datacell;
+set optimizer='datacell_pipe';
+
+create table datacell.temperature(
+ location string,
+ tag time with time zone,
+ tmp decimal(3,1)
+);
+
+create table datacell.warnings (msg string, ts time with time zone, location
string);
+create table datacell.templog( ts timestamp with time zone, cnt integer);
+
+call datacell.receptor('datacell.temperature','localhost',50550);
+
+call datacell.emitter('datacell.warnings','localhost',50650);
+
+create procedure datacell.guardian()
+begin
+ declare flg boolean;
+ set flg = datacell.window('datacell.temperature',interval '3' second,
interval '1' second);
+ insert into datacell.warnings
+ select 'WARNING', now(), location from datacell.temperature group by
location having avg(tmp) >3;
+ insert into datacell.templog values (now(), (select count(*) from
datacell.temperature));
+end;
+call datacell.query('datacell.guardian');
+
+call datacell.resume();
+call datacell.dump();
+
+-- externally, use the dctemp program
+-- externally, use netcat to listen to warnings
+
+
+-- wrapup
+call datacell.postlude();
+drop table datacell.temperature;
+drop table datacell.tempout;
+drop table datacell.templog;
+
diff --git a/sql/backends/monet5/datacell/Tests/scenario01.sql
b/sql/backends/monet5/datacell/Tests/scenario01.sql
--- a/sql/backends/monet5/datacell/Tests/scenario01.sql
+++ b/sql/backends/monet5/datacell/Tests/scenario01.sql
@@ -18,7 +18,7 @@
call datacell.basket('datacell.bsktout');
-- initialize receptor
-call datacell.receptor('datacell.bsktin','localhost',50500);
+call datacell.receptor('datacell.bsktin','localhost',50501);
call datacell.mode('datacell.bsktin','passive');
call datacell.protocol('datacell.bsktin','udp');
call datacell.resume('datacell.bsktin');
@@ -27,7 +27,7 @@
--sensor --host=localhost --port=50500 --events=100 --columns=3 --delay=1
-- initialize emitter
-call datacell.emitter('datacell.bsktout','localhost',50600);
+call datacell.emitter('datacell.bsktout','localhost',50601);
call datacell.mode('datacell.bsktout','active');
call datacell.protocol('datacell.bsktout','udp');
call datacell.resume('datacell.bsktout');
diff --git a/sql/backends/monet5/datacell/Tests/scenario02.sql
b/sql/backends/monet5/datacell/Tests/scenario02.sql
--- a/sql/backends/monet5/datacell/Tests/scenario02.sql
+++ b/sql/backends/monet5/datacell/Tests/scenario02.sql
@@ -12,9 +12,9 @@
);
create table datacell.potout( tag timestamp, cnt integer);
-call datacell.receptor('datacell.potin','localhost',50500);
+call datacell.receptor('datacell.potin','localhost',50502);
-call datacell.emitter('datacell.potout','localhost',50600);
+call datacell.emitter('datacell.potout','localhost',50602);
call datacell.query('datacell.putter', 'insert into datacell.potout select
now(), count(*) from datacell.potin;');
@@ -22,7 +22,7 @@
call datacell.dump();
-- externally, activate the sensor
---sensor --host=localhost --port=50500 --events=100 --columns=3 --delay=1
+--sensor --host=localhost --port=50502 --events=100 --columns=3 --delay=1
-- externally, activate the actuator server to listen
-- actuator
diff --git a/sql/backends/monet5/datacell/Tests/scenario03.sql
b/sql/backends/monet5/datacell/Tests/scenario03.sql
--- a/sql/backends/monet5/datacell/Tests/scenario03.sql
+++ b/sql/backends/monet5/datacell/Tests/scenario03.sql
@@ -14,9 +14,9 @@
);
create table datacell.bakout( tag timestamp, cnt integer);
-call datacell.receptor('datacell.bakin','localhost',50500);
+call datacell.receptor('datacell.bakin','localhost',50503);
-call datacell.emitter('datacell.bakout','localhost',50600);
+call datacell.emitter('datacell.bakout','localhost',50603);
call datacell.query('datacell.schep', 'insert into datacell.bakout select
now(), count(*) from datacell.bakin where
datacell.threshold(\'datacell.bakin\',15);');
@@ -24,7 +24,7 @@
call datacell.dump();
-- externally, activate the sensor
---sensor --host=localhost --port=50500 --events=100 --columns=3 --delay=1
+--sensor --host=localhost --port=50503 --events=100 --columns=3 --delay=1
-- externally, activate the actuator server to listen
-- actuator
diff --git a/sql/backends/monet5/datacell/Tests/scenario04.sql
b/sql/backends/monet5/datacell/Tests/scenario04.sql
--- a/sql/backends/monet5/datacell/Tests/scenario04.sql
+++ b/sql/backends/monet5/datacell/Tests/scenario04.sql
@@ -13,9 +13,9 @@
);
create table datacell.winout( tag timestamp, mi integer, ma integer, su
bigint);
-call datacell.receptor('datacell.winin','localhost',50500);
+call datacell.receptor('datacell.winin','localhost',50504);
-call datacell.emitter('datacell.winout','localhost',50600);
+call datacell.emitter('datacell.winout','localhost',50604);
call datacell.query('datacell.mavg', 'insert into datacell.winout select
now(), min(payload),
max(payload), sum(payload) from datacell.winin where
datacell.window(\'datacell.winin\',10,1);');
@@ -24,7 +24,7 @@
call datacell.dump();
-- externally, activate the sensor
---sensor --host=localhost --port=50500 --events=100 --columns=3 --delay=1
+--sensor --host=localhost --port=504444--events=100 --columns=3 --delay=1
-- externally, activate the actuator server to listen
-- actuator
diff --git a/sql/backends/monet5/datacell/Tests/scenario05.sql
b/sql/backends/monet5/datacell/Tests/scenario05.sql
--- a/sql/backends/monet5/datacell/Tests/scenario05.sql
+++ b/sql/backends/monet5/datacell/Tests/scenario05.sql
@@ -13,9 +13,9 @@
);
create table datacell.beatout( tag timestamp, mi integer, ma integer, su
bigint);
-call datacell.receptor('datacell.beatin','localhost',50500);
+call datacell.receptor('datacell.beatin','localhost',50505);
-call datacell.emitter('datacell.beatout','localhost',50600);
+call datacell.emitter('datacell.beatout','localhost',50605);
call datacell.query('datacell.mavgbeat', 'insert into datacell.beatout select
now(), min(payload),
max(payload), sum(payload) from datacell.beatin where
datacell.beat(\'datacell.beatin\',2000) and
datacell.window(\'datacell.beatin\',10,1);');
@@ -27,7 +27,7 @@
select * from datacell.queries();
-- externally, activate the sensor
---sensor --host=localhost --port=50500 --events=100 --columns=3 --delay=1
+--sensor --host=localhost --port=50505 --events=100 --columns=3 --delay=1
-- externally, activate the actuator server to listen
-- actuator
diff --git a/sql/backends/monet5/datacell/Tests/scenario06.sql
b/sql/backends/monet5/datacell/Tests/scenario06.sql
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/datacell/Tests/scenario06.sql
@@ -0,0 +1,41 @@
+-- Scenario to exercise the datacell implementation
+-- using a single receptor and emitter
+-- use a compound query to deliver the events to both emitter
+-- and store aggregated information in a log
+
+create schema datacell;
+set optimizer='datacell_pipe';
+
+create table datacell.barrelin(
+ id integer,
+ tag timestamp,
+ payload integer
+);
+create table datacell.barrelout (like datacell.barrelin);
+create table datacell.barrellog( ts timestamp, cnt integer);
+
+call datacell.receptor('datacell.barrelin','localhost',50506);
+
+call datacell.emitter('datacell.barrelout','localhost',50606);
+
+create procedure datacell.splitter()
+begin
+ insert into datacell.barrelout select * from datacell.barrelin;
+ insert into datacell.barrellog values (now(), (select count(*) from
datacell.barrelin));
+end;
+call datacell.query('datacell.splitter');
+
+call datacell.resume();
+call datacell.dump();
+
+-- externally, activate the sensor
+--sensor --host=localhost --port=50506 --events=100 --columns=3 --delay=1
+-- externally, activate the actuator server to listen
+-- actuator
+
+
+-- wrapup
+call datacell.postlude();
+drop table datacell.barrelin;
+drop table datacell.barrelout;
+
diff --git a/sql/backends/monet5/datacell/basket.mx
b/sql/backends/monet5/datacell/basket.mx
--- a/sql/backends/monet5/datacell/basket.mx
+++ b/sql/backends/monet5/datacell/basket.mx
@@ -64,6 +64,10 @@
address BSKTwindow
comment "Use a window of N event and slide S afterwards";
+command timewindow{unsafe}(tbl:str, N:int, S:int):bit
+address BSKTtimewindow
+comment "Use a window of N milliseconds and slide S milliseconds afterwards";
+
command beat(tbl:str,N:int):bit
address BSKTbeat
comment "Set an delay to N milliseconds";
@@ -76,6 +80,10 @@
address BSKTtable
comment "Inspect the datacell baskets";
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list