Changeset: 82f548419863 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=82f548419863
Modified Files:
        monetdb5/optimizer/opt_iot.c
        sql/backends/monet5/iot/Tests/bug05.stable.out
        sql/backends/monet5/iot/Tests/iot06.stable.out
        sql/backends/monet5/iot/Tests/iot11.stable.out
        sql/backends/monet5/iot/Tests/iot14.stable.out
        sql/backends/monet5/iot/Tests/receptor00.stable.out
        sql/backends/monet5/iot/Tests/webtest.stable.out
        sql/backends/monet5/iot/petrinet.c
Branch: iot
Log Message:

Fixing error handling on BUNappend


diffs (truncated from 454 to 300 lines):

diff --git a/monetdb5/optimizer/opt_iot.c b/monetdb5/optimizer/opt_iot.c
--- a/monetdb5/optimizer/opt_iot.c
+++ b/monetdb5/optimizer/opt_iot.c
@@ -19,8 +19,7 @@
 
 /*
  * (author) M. Kersten
- * Assume simple queries . Clear out all non-iot schema related sql 
statements, except
- * for the bare minimum.
+ * Assume simple queries . Clear out all non-iot schema related sql 
statements, except for the bare minimum.
  */
 /*
  * We keep a flow dependency table to detect.
@@ -320,7 +319,5 @@ OPTiotImplementation(Client cntxt, MalBl
 
     if( btop > 0)
         return MAL_SUCCEED;
-    else {
-        return createException(MAL,"optimizer.iot", "The iot optimizer failed 
to start! (btop = %d)", btop);
-    }
+       throw (MAL,"optimizer.iot", "The iot optimizer failed to start! (btop = 
%d)", btop);
 }
diff --git a/sql/backends/monet5/iot/Tests/bug05.stable.out 
b/sql/backends/monet5/iot/Tests/bug05.stable.out
--- a/sql/backends/monet5/iot/Tests/bug05.stable.out
+++ b/sql/backends/monet5/iot/Tests/bug05.stable.out
@@ -52,26 +52,29 @@ end user.petri_0;
 % .explain # table_name
 % mal # name
 % clob # type
-% 65 # length
+% 68 # length
 unsafe function user.sys_cquery():void;
-    X_0 := sql.mvc();
-    X_23 := basket.register(X_0,"sys","testing",0);
-    X_27 := basket.lock(X_23,"sys","testing");
-    X_1:bat[:oid] := basket.tid(X_0,"sys","testing");
-    X_4:bat[:timestamp] := basket.bind(X_23,"sys","testing","a");
-    X_9 := sql.append(X_27,"sys","testout","a",X_4);
-    X_11:bat[:int] := basket.bind(X_9,"sys","testing","b");
-    X_15 := sql.append(X_9,"sys","testout","b",X_11);
-    X_16:bat[:flt] := basket.bind(X_15,"sys","testing","c");
-    X_20 := sql.append(X_15,"sys","testout","c",X_16);
-    X_28 := basket.tumble(X_20,"sys","testing");
+    X_1 := sql.mvc();
+    X_51 := basket.register(X_1, "sys", "testing", 0:int);
+    X_55 := basket.lock(X_51, "sys", "testing");
+    X_2:bat[:oid] := basket.tid(X_1, "sys", "testing");
+    X_5:bat[:timestamp] := basket.bind(X_51, "sys", "testing", "a");
+    X_9:bat[:int] := basket.bind(X_51, "sys", "testing", "b");
+    X_12:bat[:flt] := basket.bind(X_51, "sys", "testing", "c");
+barrier X_83 := language.dataflow();
+    X_16 := sql.append(X_55, "sys", "testout", "a", X_5);
+    X_19 := sql.append(X_16, "sys", "testout", "b", X_9);
+    X_21 := sql.append(X_19, "sys", "testout", "c", X_12);
+    aggr.count(X_12);
+exit X_83;
+    X_56 := basket.tumble(X_21, "sys", "testing");
 catch SQLexception:str;
-    iot.error("user","cquery",SQLexception);
+    iot.error("user", "cquery", SQLexception);
 exit SQLexception:str;
 catch MALexception:str;
-    iot.error("user","cquery",MALexception);
+    iot.error("user", "cquery", MALexception);
 exit MALexception:str;
-    basket.unlock(X_28,"sys","testing");
+    basket.unlock(X_56, "sys", "testing");
 end user.sys_cquery;
 #inline               actions= 0 time=1 usec 
 #candidates           actions= 1 time=1 usec 
diff --git a/sql/backends/monet5/iot/Tests/iot06.stable.out 
b/sql/backends/monet5/iot/Tests/iot06.stable.out
--- a/sql/backends/monet5/iot/Tests/iot06.stable.out
+++ b/sql/backends/monet5/iot/Tests/iot06.stable.out
@@ -47,31 +47,34 @@ end user.petri_0;
 % .explain # table_name
 % mal # name
 % clob # type
-% 63 # length
+% 66 # length
 unsafe function user.iot_cq06():void;
-    X_0 := sql.mvc();
-    X_31 := basket.register(X_0,"iot","tmp06",0);
-    X_35 := basket.lock(X_31,"iot","tmp06");
-    X_1:bat[:oid] := basket.tid(X_0,"iot","tmp06");
-    X_4:bat[:timestamp] := basket.bind(X_31,"iot","tmp06","t");
-    X_8 := aggr.min(X_4);
-    X_10 := sql.append(X_35,"iot","result","t",X_8);
-    X_12 := aggr.count(X_4);
-    X_13 := calc.int(X_12);
-    X_15 := sql.append(X_10,"iot","result","sensor",X_13);
-    X_17:bat[:int] := basket.bind(X_15,"iot","tmp06","val");
-    X_20:bat[:dbl] := batcalc.dbl(2,X_17);
-    X_24:dbl := aggr.avg(X_20);
-    X_25 := calc.int(X_24,8,2);
-    X_28 := sql.append(X_15,"iot","result","val",X_25);
-    X_36 := basket.tumble(X_28,"iot","tmp06");
+    X_1 := sql.mvc();
+    X_62 := basket.register(X_1, "iot", "tmp06", 0:int);
+    X_66 := basket.lock(X_62, "iot", "tmp06");
+    X_2:bat[:oid] := basket.tid(X_1, "iot", "tmp06");
+    X_5:bat[:timestamp] := basket.bind(X_62, "iot", "tmp06", "t");
+    X_9:bat[:int] := basket.bind(X_62, "iot", "tmp06", "sensor");
+    X_12:bat[:int] := basket.bind(X_62, "iot", "tmp06", "val");
+barrier X_94 := language.dataflow();
+    X_15 := aggr.min(X_5);
+    X_16 := aggr.count(X_5);
+    X_17:bat[:dbl] := batcalc.dbl(2:int, X_12);
+    X_21:dbl := aggr.avg(X_17);
+    X_22 := calc.int(X_16);
+    X_23 := calc.int(X_21, 8:int, 2:int);
+    X_26 := sql.append(X_66, "iot", "result", "t", X_15);
+    X_29 := sql.append(X_26, "iot", "result", "sensor", X_22);
+    X_31 := sql.append(X_29, "iot", "result", "val", X_23);
+exit X_94;
+    X_67 := basket.tumble(X_31, "iot", "tmp06");
 catch SQLexception:str;
-    iot.error("user","cq06",SQLexception);
+    iot.error("user", "cq06", SQLexception);
 exit SQLexception:str;
 catch MALexception:str;
-    iot.error("user","cq06",MALexception);
+    iot.error("user", "cq06", MALexception);
 exit MALexception:str;
-    basket.unlock(X_36,"iot","tmp06");
+    basket.unlock(X_67, "iot", "tmp06");
 end user.iot_cq06;
 #inline               actions= 0 time=2 usec 
 #candidates           actions= 1 time=1 usec 
diff --git a/sql/backends/monet5/iot/Tests/iot11.stable.out 
b/sql/backends/monet5/iot/Tests/iot11.stable.out
--- a/sql/backends/monet5/iot/Tests/iot11.stable.out
+++ b/sql/backends/monet5/iot/Tests/iot11.stable.out
@@ -42,47 +42,47 @@ Ready.
 % .explain # table_name
 % mal # name
 % clob # type
-% 80 # length
+% 85 # length
 function user.s12_1():void;
-    X_45:void := querylog.define("explain select * from 
sdel11;","iot_pipe",41);
-    X_0 := sql.mvc();
-    X_50 := basket.register(X_0,"iot","sdel11",0);
-    X_54 := basket.lock(X_50,"iot","sdel11");
-    X_1:bat[:oid] := basket.tid(X_0,"iot","sdel11");
-    X_4:bat[:timestamp] := basket.bind(X_50,"iot","sdel11","t");
-    X_8:bat[:int] := basket.bind(X_50,"iot","sdel11","sensor");
-    X_11:bat[:int] := basket.bind(X_50,"iot","sdel11","val");
-barrier X_80 := language.dataflow();
-    X_15 := bat.new(nil:str);
-    X_17 := bat.new(nil:str);
-    X_18 := bat.new(nil:str);
-    X_19 := bat.new(nil:int);
-    X_21 := bat.new(nil:int);
-    X_22 := bat.append(X_15,"iot.sdel11");
-    X_24 := bat.append(X_17,"t");
-    X_25 := bat.append(X_18,"timestamp");
-    X_27 := bat.append(X_19,7);
-    X_29 := bat.append(X_21,0);
-    X_30 := bat.append(X_22,"iot.sdel11");
-    X_31 := bat.append(X_24,"sensor");
-    X_32 := bat.append(X_25,"int");
-    X_34 := bat.append(X_27,32);
-    X_36 := bat.append(X_29,0);
-    X_37 := bat.append(X_30,"iot.sdel11");
-    X_38 := bat.append(X_31,"val");
-    X_39 := bat.append(X_32,"decimal");
-    X_41 := bat.append(X_34,8);
-    X_43 := bat.append(X_36,2);
-exit X_80;
-    sql.resultSet(X_37,X_38,X_39,X_41,X_43,X_4,X_8,X_11);
-    X_55 := basket.tumble(X_54,"iot","sdel11");
+    X_1:void := querylog.define("explain select * from sdel11;", "iot_pipe", 
32:int);
+    X_4 := sql.mvc();
+    X_77 := basket.register(X_4, "iot", "sdel11", 0:int);
+    X_81 := basket.lock(X_77, "iot", "sdel11");
+    X_5:bat[:oid] := basket.tid(X_4, "iot", "sdel11");
+    X_8:bat[:timestamp] := basket.bind(X_77, "iot", "sdel11", "t");
+    X_12:bat[:int] := basket.bind(X_77, "iot", "sdel11", "sensor");
+    X_15:bat[:int] := basket.bind(X_77, "iot", "sdel11", "val");
+barrier X_109 := language.dataflow();
+    X_19 := bat.new(nil:str);
+    X_21 := bat.new(nil:str);
+    X_22 := bat.new(nil:str);
+    X_23 := bat.new(nil:int);
+    X_25 := bat.new(nil:int);
+    X_26 := bat.append(X_19, "iot.sdel11");
+    X_28 := bat.append(X_21, "t");
+    X_29 := bat.append(X_22, "timestamp");
+    X_31 := bat.append(X_23, 7:int);
+    X_33 := bat.append(X_25, 0:int);
+    X_34 := bat.append(X_26, "iot.sdel11");
+    X_35 := bat.append(X_28, "sensor");
+    X_36 := bat.append(X_29, "int");
+    X_38 := bat.append(X_31, 32:int);
+    X_40 := bat.append(X_33, 0:int);
+    X_41 := bat.append(X_34, "iot.sdel11");
+    X_42 := bat.append(X_35, "val");
+    X_43 := bat.append(X_36, "decimal");
+    X_45 := bat.append(X_38, 8:int);
+    X_47 := bat.append(X_40, 2:int);
+exit X_109;
+    sql.resultSet(X_41, X_42, X_43, X_45, X_47, X_8, X_12, X_15);
+    X_82 := basket.tumble(X_81, "iot", "sdel11");
 catch SQLexception:str;
-    iot.error("user","s12_1",SQLexception);
+    iot.error("user", "s12_1", SQLexception);
 exit SQLexception:str;
 catch MALexception:str;
-    iot.error("user","s12_1",MALexception);
+    iot.error("user", "s12_1", MALexception);
 exit MALexception:str;
-    basket.unlock(X_55,"iot","sdel11");
+    basket.unlock(X_82, "iot", "sdel11");
 end user.s12_1;
 #inline               actions= 0 time=0 usec 
 #remap                actions= 0 time=2 usec 
@@ -110,27 +110,27 @@ end user.s12_1;
 % .explain # table_name
 % mal # name
 % clob # type
-% 95 # length
+% 100 # length
 function user.s14_1():void;
-    X_19:void := querylog.define("explain delete from sdel11 where sensor = 
2;","iot_pipe",21);
-    X_0 := sql.mvc();
-    X_24 := basket.register(X_0,"iot","sdel11",0);
-    X_28 := basket.lock(X_24,"iot","sdel11");
-    X_1:bat[:oid] := basket.tid(X_0,"iot","sdel11");
-    X_4:bat[:int] := basket.bind(X_24,"iot","sdel11","sensor");
-    C_9 := algebra.subselect(X_4,2,2,true,false,false);
-    X_13 := algebra.projection(C_9,X_1);
-    X_15 := basket.delete(X_24,"iot","sdel11",X_13);
-    X_16 := aggr.count(X_13);
-    sql.affectedRows(X_15,X_16);
-    X_29 := basket.tumble(X_28,"iot","sdel11");
+    X_2:void := querylog.define("explain delete from sdel11 where sensor = 
2;", "iot_pipe", 14:int);
+    X_5 := sql.mvc();
+    X_52 := basket.register(X_5, "iot", "sdel11", 0:int);
+    X_56 := basket.lock(X_52, "iot", "sdel11");
+    X_6:bat[:oid] := basket.tid(X_5, "iot", "sdel11");
+    X_9:bat[:int] := basket.bind(X_52, "iot", "sdel11", "sensor");
+    C_14 := algebra.thetaselect(X_9, 2:int, "==");
+    X_17 := algebra.projection(C_14, X_6);
+    X_19 := basket.delete(X_52, "iot", "sdel11", X_17);
+    X_20 := aggr.count(X_17);
+    sql.affectedRows(X_19, X_20);
+    X_57 := basket.tumble(X_56, "iot", "sdel11");
 catch SQLexception:str;
-    iot.error("user","s14_1",SQLexception);
+    iot.error("user", "s14_1", SQLexception);
 exit SQLexception:str;
 catch MALexception:str;
-    iot.error("user","s14_1",MALexception);
+    iot.error("user", "s14_1", MALexception);
 exit MALexception:str;
-    basket.unlock(X_29,"iot","sdel11");
+    basket.unlock(X_57, "iot", "sdel11");
 end user.s14_1;
 # optimizer.mitosis()
 # optimizer.dataflow()
diff --git a/sql/backends/monet5/iot/Tests/iot14.stable.out 
b/sql/backends/monet5/iot/Tests/iot14.stable.out
--- a/sql/backends/monet5/iot/Tests/iot14.stable.out
+++ b/sql/backends/monet5/iot/Tests/iot14.stable.out
@@ -46,24 +46,33 @@ end user.petri_0;
 % .explain # table_name
 % mal # name
 % clob # type
-% 61 # length
+% 65 # length
 unsafe function user.iot_sdel00():void;
-    X_0 := sql.mvc();
-    X_19 := basket.register(X_0,"iot","sdel",0);
-    X_23 := basket.lock(X_19,"iot","sdel");
-    X_1:bat[:oid] := basket.tid(X_0,"iot","sdel");
-    X_4:bat[:int] := basket.bind(X_19,"iot","sdel","sensor");
-    C_10 := algebra.subselect(X_4,3,3,true,false,false);
-    X_14 := algebra.projection(C_10,X_1);
-    basket.delete(X_19,"iot","sdel",X_14);
-    X_24 := basket.tumble(X_23,"iot","sdel");
+    X_1 := sql.mvc();
+    X_54 := basket.register(X_1, "iot", "sdel", 0:int);
+    X_58 := basket.lock(X_54, "iot", "sdel");
+    X_2:bat[:oid] := basket.tid(X_1, "iot", "sdel");
+    X_5:bat[:timestamp] := basket.bind(X_54, "iot", "sdel", "t");
+    X_9:bat[:int] := basket.bind(X_54, "iot", "sdel", "sensor");
+    X_12:bat[:int] := basket.bind(X_54, "iot", "sdel", "val");
+barrier X_86 := language.dataflow();
+    C_17 := algebra.thetaselect(X_9, 3:int, "==");
+    algebra.projection(C_17, X_5);
+    algebra.projection(C_17, X_9);
+    algebra.projection(C_17, X_12);
+    X_22 := algebra.projection(C_17, X_2);
+    language.pass(C_17);
+exit X_86;
+    basket.delete(X_54, "iot", "sdel", X_22);
+    aggr.count(X_22);
+    X_59 := basket.tumble(X_58, "iot", "sdel");
 catch SQLexception:str;
-    iot.error("user","sdel00",SQLexception);
+    iot.error("user", "sdel00", SQLexception);
 exit SQLexception:str;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to