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