Changeset: 290282750fc9 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=290282750fc9
Modified Files:
        sql/backends/monet5/datacell/50_datacell.mal
        sql/backends/monet5/datacell/50_datacell.sql
        sql/backends/monet5/datacell/Makefile.ag
        sql/backends/monet5/datacell/Tests/basket00.mal
        sql/backends/monet5/datacell/Tests/datacell00.sql
        sql/backends/monet5/datacell/Tests/emitter00.mal
        sql/backends/monet5/datacell/Tests/receptor00.mal
        sql/backends/monet5/datacell/basket.mx
        sql/backends/monet5/datacell/datacell.sql
        sql/backends/monet5/datacell/emitter.mx
        sql/backends/monet5/datacell/petrinet.mx
        sql/backends/monet5/datacell/receptor.mx
Branch: default
Log Message:

Basic basket, receptor, emitter works
The code has been checked and basket.register(), receptor.start(),
and emitter.start() seem to work (= not to crash).
SQL layer hangs on resolution bug.


diffs (truncated from 807 to 300 lines):

diff --git a/sql/backends/monet5/datacell/50_datacell.mal 
b/sql/backends/monet5/datacell/50_datacell.mal
--- a/sql/backends/monet5/datacell/50_datacell.mal
+++ b/sql/backends/monet5/datacell/50_datacell.mal
@@ -16,7 +16,7 @@
 # All Rights Reserved.
 
 # This loads the MonetDB/SQL module
-library datacell;
+include datacell;
 include basket;
 include receptor;
 include emitter;
diff --git a/sql/backends/monet5/datacell/50_datacell.sql 
b/sql/backends/monet5/datacell/50_datacell.sql
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/datacell/50_datacell.sql
@@ -0,0 +1,40 @@
+# The contents of this file are subject to the MonetDB Public License
+# Version 1.1 (the "License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at
+# http://monetdb.cwi.nl/Legal/MonetDBLicense-1.1.html
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+# License for the specific language governing rights and limitations
+# under the License.
+#
+# The Original Code is the MonetDB Database System.
+#
+# The Initial Developer of the Original Code is CWI.
+# Portions created by CWI are Copyright (C) 1997-July 2008 CWI.
+# Copyright August 2008-2011 MonetDB B.V.
+# All Rights Reserved.
+
+-- Datacell basket  wrappers
+create schema datacell;
+create procedure datacell.basket(sch string, tbl string)
+   external name datacell.basket;
+
+create function datacell.inventory()
+returns table (kind string, nme string)
+   external name datacell.inventory;
+
+create procedure datacell.receptor(sch string, tbl string, host string, port 
int, protocol string)
+    external name receptor.start;
+
+create procedure datacell.emitter(sch string, tbl string, host string, port 
int, protocol string)
+    external name emitter.start;
+
+create procedure datacell.pause (sch string, tbl string)
+    external name datacell.pause;
+
+create procedure datacell.resume (sch string, tbl string)
+    external name datacell.resume;
+
+create procedure datacell.drop (sch string, tbl string)
+    external name datacell.drop;
diff --git a/sql/backends/monet5/datacell/Makefile.ag 
b/sql/backends/monet5/datacell/Makefile.ag
--- a/sql/backends/monet5/datacell/Makefile.ag
+++ b/sql/backends/monet5/datacell/Makefile.ag
@@ -40,6 +40,7 @@
                  receptor.mx \
                  petrinet.mx \
                  dcoperator.mx \
+                 datacell.mx \
                  emitter.mx 
 
        LIBS = ../../../../monetdb5/tools/libmonetdb5 \
@@ -70,6 +71,7 @@
                  receptor.mal \
                  emitter.mal \
                  petrinet.mal \
+                 datacell.mal \
                  dcoperator.mal
 }
 
diff --git a/sql/backends/monet5/datacell/Tests/basket00.mal 
b/sql/backends/monet5/datacell/Tests/basket00.mal
--- a/sql/backends/monet5/datacell/Tests/basket00.mal
+++ b/sql/backends/monet5/datacell/Tests/basket00.mal
@@ -1,18 +1,15 @@
 #Testing the basket functionality
-libary datacell;
-include basket;
+# this assumes you have ran first datacell00.sql
 
-p1:= basket.new("sys_x_p1",:bat[:lng,:int]);
-p2:= basket.new("sys_x_p2",:bat[:lng,:int]);
+basket.register("datacell","x");
 
-basket.group("X","sys_x_p1","sys_x_p2");
+basket.lock("x");
+io.print("x locked");
+basket.unlock("x");
 
-basket.lock("X");
-io.print("sys_x_p1 locked");
-basket.unlock("X");
+basket.drop("x");
 
-basket.lock("X");
-io.print("sys_x_p2 locked");
-basket.unlock("X");
-
-basket.drop("X");
+# The SQL equivalent
+#call datacell.basket('datacell','x');
+#call datacell.lock('x');
+#call datacell.unlock('x');
diff --git a/sql/backends/monet5/datacell/Tests/datacell00.sql 
b/sql/backends/monet5/datacell/Tests/datacell00.sql
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/datacell/Tests/datacell00.sql
@@ -0,0 +1,5 @@
+#set up the minimal test environment for datacell
+
+create schema datacell;
+create table datacell.X( id int, tag timestamp, payload int);
+create table datacell.Y( id int, tag timestamp, payload int, msdelay int);
diff --git a/sql/backends/monet5/datacell/Tests/emitter00.mal 
b/sql/backends/monet5/datacell/Tests/emitter00.mal
--- a/sql/backends/monet5/datacell/Tests/emitter00.mal
+++ b/sql/backends/monet5/datacell/Tests/emitter00.mal
@@ -5,21 +5,21 @@
 
 sql.init();
 
-emitter.start("datacell","X","localhost",50502,"passive");
+emitter.start("datacell","y","localhost",50502,"active");
 io.print("emitter working");
 alarm.sleep(5);
-emitter.pause("datacell","X");
+emitter.pause("datacell","y");
 io.print("emitter paused");
 alarm.sleep(5);
-emitter.resume("datacell","X");
+emitter.resume("datacell","y");
 io.print("emitter restarted");
 alarm.sleep(5);
-emitter.pause("datacell","X");
+emitter.pause("datacell","y");
 io.print("emitter stopped");
-emitter.drop("datacell","X");
+emitter.drop("datacell","y");
 
 # The SQL equivalents
-# call emitter.start('datacell','X','localhost',50502,'passive');
-# call emitter.pause('datacell','X');
-# call emitter.resume('datacell','X');
-# call emitter.drop('datacell','X');
+# call datacell.emitter('datacell','y','localhost',50502,'active');
+# call datacell.pause('datacell','y');
+# call datacell.resume('datacell','y');
+# call datacell.drop('datacell','y');
diff --git a/sql/backends/monet5/datacell/Tests/receptor00.mal 
b/sql/backends/monet5/datacell/Tests/receptor00.mal
--- a/sql/backends/monet5/datacell/Tests/receptor00.mal
+++ b/sql/backends/monet5/datacell/Tests/receptor00.mal
@@ -1,25 +1,25 @@
 #A single thread for a simple stream
-#The test is based on the definition the datacell baskets X 
+#The test is based on the definition the datacell baskets x 
 # it starts a receptor in debug mode to see arrivals coming
 # from a (client) sensor.
 
 sql.init();
 
-receptor.start("datacell","X","localhost",50501,"passive");
+receptor.start("datacell","x","localhost",50501,"passive");
 io.print("receptor working");
 alarm.sleep(5);
-receptor.pause("datacell","X");
+receptor.pause("datacell","x");
 io.print("receptor paused");
 alarm.sleep(5);
-receptor.resume("datacell","X");
+receptor.resume("datacell","x");
 io.print("receptor restarted");
 alarm.sleep(5);
-receptor.pause("datacell","X");
+receptor.pause("datacell","x");
 io.print("receptor stopped");
-receptor.drop("datacell","X");
+receptor.drop("datacell","x");
 
 # The SQL equivalents
-# call receptor.start('datacell','X','localhost',50501,'passive');
-# call receptor.pause('datacell','X');
-# call receptor.resume('datacell','X');
-# call receptor.drop('datacell','X');
+# call datacell.receptor('datacell','x','localhost',50501,'passive');
+# call datacell.pause('datacell','x');
+# call datacell.resume('datacell','x');
+# call datacell.drop('datacell','x');
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
@@ -22,39 +22,28 @@
 processing is ignored.
 
 @mal
-module datacell;
+module basket;
 
-pattern register_basket(schema:str,tab:str):void
-address DCregister_basket
+pattern register(schema:str,tab:str):void
+address BSKTregister
 comment "Initialize a new basket based on a specific table definition in the 
datacell schema");
 
-pattern register_basket(tab:str):void
-address DCregister_basket
-comment "Initialize a new basket based on a specific table definition in the 
datacell schema");
+command lock(schema:str, tbl:str,delay:int):void
+address BSKTlock
+comment "Lock a basket group and spinlock upon need";
 
-pattern register_basket():void
-address DCregister_all
-comment "Create basket definitions for all tables in the datacell schema";
-
-command inventory():bat[:str,:bat]
-address DCinventory
-comment "Produce a tabular view of the baskets identified";
-
-command lock(schema:str, tbl:str,delay:int):void
-address DClock
-comment "Lock a basket group and spinlock upon need";
 command lock(schema:str, tbl:str):void
-address DClock2
+address BSKTlock2
 comment "Lock a basket group ";
 
 command unlock(schema:str, tbl:str):void
-address DCunlock
+address BSKTunlock
 comment "Unlock the basket";
 
 @{
 @h
-#ifndef _DATACELLS_
-#define _DATACELLS_
+#ifndef _BASKETS_
+#define _BASKETS_
 
 #include "monetdb_config.h"
 #include "mal.h"
@@ -72,7 +61,7 @@
 #endif
 
 /* #define _DEBUG_DATACELL     debug this module */
-#define DCout GDKout
+#define BSKTout GDKout
 #define MAXCOL 128
 #define MAXBSK 64
 
@@ -84,20 +73,21 @@
        str *cols;
        BAT **primary;  
        /* statistics */
-} *DCbasket, DCbasketRec;
+} *BSKTbasket, BSKTbasketRec;
 
 datacell_export str schema_default;
-datacell_export str DCregister_all(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-datacell_export str DCregister_basket(Client cntxt, MalBlkPtr mb, MalStkPtr 
stk, InstrPtr pci);
-datacell_export str DCinventory(int *ret);
-datacell_export int DCmemberCount(str schema, str tbl);
-datacell_export int DClocate(str schema, str tbl);
+datacell_export str BSKTregister(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+datacell_export str BSKTnewbasket(sql_schema *s, sql_table *t, sql_trans *tr);
+datacell_export str BSKTderegister(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+datacell_export str BSKTinventory(int *ret);
+datacell_export int BSKTmemberCount(str schema, str tbl);
+datacell_export int BSKTlocate(str schema, str tbl);
 
-datacell_export str DClock(int *ret, str *schema, str *tbl, int *delay);
-datacell_export str DCunlock(int *ret, str *schema, str *tbl);
-datacell_export str DClock2(int *ret, str *schema, str *tbl);
+datacell_export str BSKTlock(int *ret, str *schema, str *tbl, int *delay);
+datacell_export str BSKTunlock(int *ret, str *schema, str *tbl);
+datacell_export str BSKTlock2(int *ret, str *schema, str *tbl);
 
-datacell_export DCbasketRec *baskets;
+datacell_export BSKTbasketRec *baskets;
 datacell_export int bsktTop, bsktLimit;
 datacell_export lng usec(void);
 #endif
@@ -109,12 +99,12 @@
 
 str schema_default = "datacell";
 
-DCbasketRec *baskets;   /* the datacell catalog */
+BSKTbasketRec *baskets;   /* the datacell catalog */
 int bsktTop, bsktLimit;
 static MT_Lock bsktLock;
 
-#define lockDCbasketCatalog() mal_set_lock(bsktLock, "basket");
-#define unlockDCbasketCatalog() mal_unset_lock(bsktLock, "basket");
+#define lockBSKTbasketCatalog() mal_set_lock(bsktLock, "basket");
+#define unlockBSKTbasketCatalog() mal_unset_lock(bsktLock, "basket");
 
 @-
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to