Changeset: 192a529eaa4a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=192a529eaa4a
Modified Files:
monetdb5/modules/atoms/Tests/xml10.mal
monetdb5/modules/atoms/Tests/xml10.stable.out
monetdb5/scheduler/Tests/memo01.mal
monetdb5/scheduler/Tests/memo01.stable.out
monetdb5/scheduler/Tests/memo02.mal
monetdb5/scheduler/Tests/memo02.stable.out
sql/backends/monet5/sql_gencode.c
sql/benchmarks/ssbm/Tests/01-explain.stable.out
sql/benchmarks/ssbm/Tests/02-explain.stable.out
sql/benchmarks/ssbm/Tests/03-explain.stable.out
sql/benchmarks/ssbm/Tests/04-explain.stable.out
sql/benchmarks/ssbm/Tests/05-explain.stable.out
sql/benchmarks/ssbm/Tests/06-explain.stable.out
sql/benchmarks/ssbm/Tests/07-explain.stable.out
sql/benchmarks/ssbm/Tests/08-explain.stable.out
sql/benchmarks/ssbm/Tests/09-explain.stable.out
sql/benchmarks/ssbm/Tests/10-explain.stable.out
sql/benchmarks/ssbm/Tests/11-explain.stable.out
sql/benchmarks/ssbm/Tests/12-explain.stable.out
sql/benchmarks/ssbm/Tests/13-explain.stable.out
sql/benchmarks/tpch/Tests/01-explain.stable.out
sql/benchmarks/tpch/Tests/02-explain.stable.out
sql/benchmarks/tpch/Tests/03-explain.stable.out
sql/benchmarks/tpch/Tests/04-explain.stable.out
sql/benchmarks/tpch/Tests/05-explain.stable.out
sql/benchmarks/tpch/Tests/06-explain.stable.out
sql/benchmarks/tpch/Tests/07-explain.stable.out
sql/benchmarks/tpch/Tests/08-explain.stable.out
sql/benchmarks/tpch/Tests/09-explain.stable.out
sql/benchmarks/tpch/Tests/10-explain.stable.out
sql/benchmarks/tpch/Tests/11-explain.stable.out
sql/benchmarks/tpch/Tests/12-explain.stable.out
sql/benchmarks/tpch/Tests/13-explain.stable.out
sql/benchmarks/tpch/Tests/14-explain.stable.out
sql/benchmarks/tpch/Tests/15-explain.stable.out
sql/benchmarks/tpch/Tests/16-explain.stable.out
sql/benchmarks/tpch/Tests/17-explain.stable.out
sql/benchmarks/tpch/Tests/18-explain.stable.out
sql/benchmarks/tpch/Tests/19-explain.stable.out
sql/benchmarks/tpch/Tests/20-explain.stable.out
sql/benchmarks/tpch/Tests/21-explain.stable.out
sql/benchmarks/tpch/Tests/22-explain.stable.out
sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out
sql/test/BugTracker/Tests/alter_col_to_set_same_constraint.SF-1850781.stable.err
sql/test/BugTracker/Tests/alter_table_add_fkey.SF-1737668.stable.err
sql/test/BugTracker/Tests/alter_table_set_not_null.SF-1997030.stable.err
sql/test/BugTracker/Tests/ambiguous_join.SF-1580565.stable.err
sql/test/BugTracker/Tests/auto_increment.SF-1834820.stable.err
sql/test/BugTracker/Tests/between_having_problem.SF-1959391.stable.err
sql/test/BugTracker/Tests/between_with_column.SF-1959410.stable.err
sql/test/BugTracker/Tests/bind_with_cast.SF-1720934.stable.err
sql/test/BugTracker/Tests/broken_join.SF-1373391.stable.err
sql/test/BugTracker/Tests/bug_in_selection.SF-1892413.stable.err
sql/test/BugTracker/Tests/coalesce_equal_coalesce.SF-1907905.stable.err
sql/test/BugTracker/Tests/copy_decimal.SF-1582957.stable.err
sql/test/BugTracker/Tests/copy_overflow_null_bug.SF-1842550.stable.err
sql/test/BugTracker/Tests/crash_on_fkey_update.SF-1703497.stable.err
sql/test/BugTracker/Tests/crash_on_fkey_update2.SF-1703497.stable.err
sql/test/BugTracker/Tests/create_column.SF-1643542.stable.err
sql/test/BugTracker/Tests/create_same_temp_tab_after_its_drop.SF-1850809.stable.err
sql/test/BugTracker/Tests/creation_of_exeception_for_select.SF-1841749.stable.err
sql/test/BugTracker/Tests/drop_system_tables.SF-1550768.stable.err
sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
sql/test/BugTracker/Tests/groupby_orderby_nonselected.SF-1723863.stable.err
sql/test/BugTracker/Tests/insert_date.SF-1838785.stable.err
sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err
sql/test/BugTracker/Tests/inserting_invalid_timestamp.SF-1363557.stable.err
sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
sql/test/BugTracker/Tests/limits_of_decimal.SF-1685357.stable.err
sql/test/BugTracker/Tests/multivalue_insert.SF-1509864.stable.err
sql/test/BugTracker/Tests/number_null_first_row.SF-1833286.stable.err
sql/test/BugTracker/Tests/reset_session_vars.SF-1505987.stable.err
sql/test/BugTracker/Tests/revoke_role.SF-1691646.stable.err
sql/test/BugTracker/Tests/set_a_new_user_password.SF-1844050.stable.err
sql/test/BugTracker/Tests/set_operation_coersions.SF-1543216.stable.err
sql/test/BugTracker/Tests/string2int_conversion.SF-1356068.stable.err
sql/test/BugTracker/Tests/subquery_orderby.SF-1688915.stable.err
sql/test/BugTracker/Tests/table_dependency_inside_union.SF-1884382.stable.err
sql/test/BugTracker/Tests/temporary_tables.SF-1715669.stable.err
sql/test/BugTracker/Tests/update_fkey_with_value_not_in_the_pkey.SF-1734143.stable.err
sql/test/BugTracker/Tests/update_pkey_bug.SF-1733712.stable.err
sql/test/BugTracker/Tests/variables.SF-1508160.stable.err
sql/test/BugTracker/Tests/view_creation_using_func.SF-1714814.stable.err
Branch: Oct2014
Log Message:
Fix type admin of sql.binds
The sql.bind() calls should retain their MAL type structures.
diffs (truncated from 3819 to 300 lines):
diff --git a/monetdb5/modules/atoms/Tests/xml10.mal
b/monetdb5/modules/atoms/Tests/xml10.mal
--- a/monetdb5/modules/atoms/Tests/xml10.mal
+++ b/monetdb5/modules/atoms/Tests/xml10.mal
@@ -35,7 +35,7 @@ bat.insert(g,0@0,0@0);
bat.insert(g,1@0,0@0);
bat.insert(g,2@0,1@0);
-k:= algebra.join(g,te);
+k:= algebra.leftfetchjoin(g,te);
io.print(k);
l:= algebra.subsort(k,false,false);
io.print(l);
diff --git a/monetdb5/modules/atoms/Tests/xml10.stable.out
b/monetdb5/modules/atoms/Tests/xml10.stable.out
--- a/monetdb5/modules/atoms/Tests/xml10.stable.out
+++ b/monetdb5/modules/atoms/Tests/xml10.stable.out
@@ -48,7 +48,7 @@ function user.main():void;
bat.insert(g,0@0,0@0);
bat.insert(g,1@0,0@0);
bat.insert(g,2@0,1@0);
- k := algebra.join(g,te);
+ k := algebra.leftfetchjoin(g,te);
io.print(k);
l := algebra.subsort(k,false,false);
io.print(l);
diff --git a/monetdb5/scheduler/Tests/memo01.mal
b/monetdb5/scheduler/Tests/memo01.mal
--- a/monetdb5/scheduler/Tests/memo01.mal
+++ b/monetdb5/scheduler/Tests/memo01.mal
@@ -25,11 +25,11 @@
io.printf("choicepoint 1\n");
scheduler.choice();
- T1:= algebra.join(A,B);
+ T1:= algebra.leftfetchjoin(A,B);
T1cost:= aggr.count(T1);
- T2:= algebra.join(B,C);
+ T2:= algebra.leftfetchjoin(B,C);
T2cost:= aggr.count(T2);
- T3:= algebra.join(C,D);
+ T3:= algebra.leftfetchjoin(C,D);
T3cost:= aggr.count(T3);
io.printf("choicepoint 2\n");
@@ -41,15 +41,15 @@
T7cost:=Bcost+T3cost;
T8cost:=Ccost+Dcost;
- T4:= algebra.join(T1,C);
+ T4:= algebra.leftfetchjoin(T1,C);
T4cost:= aggr.count(T4);
- T5:= algebra.join(A,T2);
+ T5:= algebra.leftfetchjoin(A,T2);
T5cost:= aggr.count(T5);
- T6:= algebra.join(T2,D);
+ T6:= algebra.leftfetchjoin(T2,D);
T6cost:= aggr.count(T6);
- T7:= algebra.join(B,T3);
+ T7:= algebra.leftfetchjoin(B,T3);
T7cost:= aggr.count(T7);
- T8:= algebra.join(C,D);
+ T8:= algebra.leftfetchjoin(C,D);
T8cost:= aggr.count(T8);
io.printf("choicepoint 3\n");
@@ -61,11 +61,11 @@
T12cost:= Acost+T7cost;
T13cost:= T1cost+T8cost;
- T9:= algebra.join(T4,D);
- T10:= algebra.join(T5,D);
- T11:= algebra.join(A,T6);
- T12:= algebra.join(A,T7);
- T13:= algebra.join(T1,T8);
+ T9:= algebra.leftfetchjoin(T4,D);
+ T10:= algebra.leftfetchjoin(T5,D);
+ T11:= algebra.leftfetchjoin(A,T6);
+ T12:= algebra.leftfetchjoin(A,T7);
+ T13:= algebra.leftfetchjoin(T1,T8);
io.printf("choicepoint 4\n");
scheduler.choice(T9cost,T9,T10cost,T10,T11cost,T11,T12cost,T12,T13cost,T13);
diff --git a/monetdb5/scheduler/Tests/memo01.stable.out
b/monetdb5/scheduler/Tests/memo01.stable.out
--- a/monetdb5/scheduler/Tests/memo01.stable.out
+++ b/monetdb5/scheduler/Tests/memo01.stable.out
@@ -35,11 +35,11 @@ function user.main():void;
T3cost := calc.+(Ccost,Dcost);
io.printf("choicepoint 1\n");
scheduler.choice();
- T1 := algebra.join(A,B);
+ T1 := algebra.leftfetchjoin(A,B);
T1cost := aggr.count(T1);
- T2 := algebra.join(B,C);
+ T2 := algebra.leftfetchjoin(B,C);
T2cost := aggr.count(T2);
- T3 := algebra.join(C,D);
+ T3 := algebra.leftfetchjoin(C,D);
T3cost := aggr.count(T3);
io.printf("choicepoint 2\n");
scheduler.choice(T1cost,T1,T2cost,T2,T3cost,T3);
@@ -48,15 +48,15 @@ function user.main():void;
T6cost := calc.+(T2cost,Dcost);
T7cost := calc.+(Bcost,T3cost);
T8cost := calc.+(Ccost,Dcost);
- T4 := algebra.join(T1,C);
+ T4 := algebra.leftfetchjoin(T1,C);
T4cost := aggr.count(T4);
- T5 := algebra.join(A,T2);
+ T5 := algebra.leftfetchjoin(A,T2);
T5cost := aggr.count(T5);
- T6 := algebra.join(T2,D);
+ T6 := algebra.leftfetchjoin(T2,D);
T6cost := aggr.count(T6);
- T7 := algebra.join(B,T3);
+ T7 := algebra.leftfetchjoin(B,T3);
T7cost := aggr.count(T7);
- T8 := algebra.join(C,D);
+ T8 := algebra.leftfetchjoin(C,D);
T8cost := aggr.count(T8);
io.printf("choicepoint 3\n");
scheduler.choice(T4cost,T4,T5cost,T5,T6cost,T6,T7cost,T7,T8cost,T8);
@@ -65,11 +65,11 @@ function user.main():void;
T11cost := calc.+(Acost,T6cost);
T12cost := calc.+(Acost,T7cost);
T13cost := calc.+(T1cost,T8cost);
- T9 := algebra.join(T4,D);
- T10 := algebra.join(T5,D);
- T11 := algebra.join(A,T6);
- T12 := algebra.join(A,T7);
- T13 := algebra.join(T1,T8);
+ T9 := algebra.leftfetchjoin(T4,D);
+ T10 := algebra.leftfetchjoin(T5,D);
+ T11 := algebra.leftfetchjoin(A,T6);
+ T12 := algebra.leftfetchjoin(A,T7);
+ T13 := algebra.leftfetchjoin(T1,T8);
io.printf("choicepoint 4\n");
scheduler.choice(T9cost,T9,T10cost,T10,T11cost,T11,T12cost,T12,T13cost,T13);
answer := scheduler.pick(T9,T10,T11,T12,T13);
diff --git a/monetdb5/scheduler/Tests/memo02.mal
b/monetdb5/scheduler/Tests/memo02.mal
--- a/monetdb5/scheduler/Tests/memo02.mal
+++ b/monetdb5/scheduler/Tests/memo02.mal
@@ -14,23 +14,23 @@
bat.append(D,3@0);
scheduler.choice();
- T1:= algebra.join(A,B);
- T2:= algebra.join(B,C);
- T3:= algebra.join(C,D);
+ T1:= algebra.leftfetchjoin(A,B);
+ T2:= algebra.leftfetchjoin(B,C);
+ T3:= algebra.leftfetchjoin(C,D);
scheduler.choice("getVolume",T1,T2,T3);
- T4:= algebra.join(T1,C);
- T5:= algebra.join(A,T2);
- T6:= algebra.join(T2,D);
- T7:= algebra.join(B,T3);
- T8:= algebra.join(C,D);
+ T4:= algebra.leftfetchjoin(T1,C);
+ T5:= algebra.leftfetchjoin(A,T2);
+ T6:= algebra.leftfetchjoin(T2,D);
+ T7:= algebra.leftfetchjoin(B,T3);
+ T8:= algebra.leftfetchjoin(C,D);
scheduler.choice("getVolume",T4,T5,T6,T7,T8);
- T9:= algebra.join(T4,D);
- T10:= algebra.join(T5,D);
- T11:= algebra.join(A,T6);
- T12:= algebra.join(A,T7);
- T13:= algebra.join(T1,T8);
+ T9:= algebra.leftfetchjoin(T4,D);
+ T10:= algebra.leftfetchjoin(T5,D);
+ T11:= algebra.leftfetchjoin(A,T6);
+ T12:= algebra.leftfetchjoin(A,T7);
+ T13:= algebra.leftfetchjoin(T1,T8);
scheduler.choice("getVolume",T9,T10,T11,T12,T13);
answer:= scheduler.pick(T9,T10,T11,T12,T13);
io.print(answer);
diff --git a/monetdb5/scheduler/Tests/memo02.stable.out
b/monetdb5/scheduler/Tests/memo02.stable.out
--- a/monetdb5/scheduler/Tests/memo02.stable.out
+++ b/monetdb5/scheduler/Tests/memo02.stable.out
@@ -26,21 +26,21 @@ function user.main():void;
bat.setWriteMode(D);
bat.append(D,3@0);
scheduler.choice();
- T1 := algebra.join(A,B);
- T2 := algebra.join(B,C);
- T3 := algebra.join(C,D);
+ T1 := algebra.leftfetchjoin(A,B);
+ T2 := algebra.leftfetchjoin(B,C);
+ T3 := algebra.leftfetchjoin(C,D);
scheduler.choice("getVolume",T1,T2,T3);
- T4 := algebra.join(T1,C);
- T5 := algebra.join(A,T2);
- T6 := algebra.join(T2,D);
- T7 := algebra.join(B,T3);
- T8 := algebra.join(C,D);
+ T4 := algebra.leftfetchjoin(T1,C);
+ T5 := algebra.leftfetchjoin(A,T2);
+ T6 := algebra.leftfetchjoin(T2,D);
+ T7 := algebra.leftfetchjoin(B,T3);
+ T8 := algebra.leftfetchjoin(C,D);
scheduler.choice("getVolume",T4,T5,T6,T7,T8);
- T9 := algebra.join(T4,D);
- T10 := algebra.join(T5,D);
- T11 := algebra.join(A,T6);
- T12 := algebra.join(A,T7);
- T13 := algebra.join(T1,T8);
+ T9 := algebra.leftfetchjoin(T4,D);
+ T10 := algebra.leftfetchjoin(T5,D);
+ T11 := algebra.leftfetchjoin(A,T6);
+ T12 := algebra.leftfetchjoin(A,T7);
+ T13 := algebra.leftfetchjoin(T1,T8);
scheduler.choice("getVolume",T9,T10,T11,T12,T13);
answer := scheduler.pick(T9,T10,T11,T12,T13);
io.print(answer);
diff --git a/sql/backends/monet5/sql_gencode.c
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -899,8 +899,10 @@ static int
return -1;
if (s->flag == RD_UPD_ID) {
q = pushReturn(mb, q, newTmpVariable(mb,
newBatType(ht, tt)));
- } else
+ } else {
setVarType(mb, getArg(q, 0), newBatType(ht,
tt));
+ setVarUDFtype(mb, getArg(q, 0));
+ }
q = pushArgument(mb, q, sql->mvc_var);
q = pushSchema(mb, q, t);
q = pushStr(mb, q, t->base.name);
diff --git a/sql/benchmarks/ssbm/Tests/01-explain.stable.out
b/sql/benchmarks/ssbm/Tests/01-explain.stable.out
--- a/sql/benchmarks/ssbm/Tests/01-explain.stable.out
+++ b/sql/benchmarks/ssbm/Tests/01-explain.stable.out
@@ -39,38 +39,38 @@ Ready.
% 246 # length
function user.s2_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int):void;
X_6 := sql.mvc();
- X_10 := sql.bind(X_6,"sys","lineorder","lo_quantity",0);
- X_18 := sql.bind(X_6,"sys","lineorder","lo_discount",0);
+ X_10:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_quantity",0);
+ X_18:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_discount",0);
X_7:bat[:oid,:oid] := sql.tid(X_6,"sys","lineorder");
X_90 := algebra.subselect(X_18,X_7,A1,A2,true,true,false);
(X_20,r1_23) := sql.bind(X_6,"sys","lineorder","lo_discount",2);
X_91 := algebra.subselect(r1_23,A1,A2,true,true,false);
- X_22 := sql.bind(X_6,"sys","lineorder","lo_discount",1);
+ X_22:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_discount",1);
X_92 := algebra.subselect(X_22,X_7,A1,A2,true,true,false);
X_23 := sql.subdelta(X_90,X_7,X_20,X_91,X_92);
X_93 := algebra.thetasubselect(X_10,X_23,A3,"<");
(X_13,r1_13) := sql.bind(X_6,"sys","lineorder","lo_quantity",2);
X_94 := algebra.thetasubselect(r1_13,A3,"<");
- X_16 := sql.bind(X_6,"sys","lineorder","lo_quantity",1);
+ X_16:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_quantity",1);
X_95 := algebra.thetasubselect(X_16,X_23,A3,"<");
X_25 := sql.subdelta(X_93,X_23,X_13,X_94,X_95);
X_27 :=
sql.bind_idxbat(X_6,"sys","lineorder","lineorder_lo_orderdate_fkey",0);
(X_29,r1_36) :=
sql.bind_idxbat(X_6,"sys","lineorder","lineorder_lo_orderdate_fkey",2);
X_31 :=
sql.bind_idxbat(X_6,"sys","lineorder","lineorder_lo_orderdate_fkey",1);
X_32 := sql.projectdelta(X_25,X_27,X_29,r1_36,X_31);
- X_36 := sql.bind(X_6,"sys","dwdate","d_year",0);
+ X_36:bat[:oid,:int] := sql.bind(X_6,"sys","dwdate","d_year",0);
X_33:bat[:oid,:oid] := sql.tid(X_6,"sys","dwdate");
X_96 := algebra.subselect(X_36,X_33,A0,A0,true,true,false);
(X_39,r1_48) := sql.bind(X_6,"sys","dwdate","d_year",2);
X_97 := algebra.subselect(r1_48,A0,A0,true,true,false);
- X_42 := sql.bind(X_6,"sys","dwdate","d_year",1);
+ X_42:bat[:oid,:int] := sql.bind(X_6,"sys","dwdate","d_year",1);
X_98 := algebra.subselect(X_42,X_33,A0,A0,true,true,false);
X_44 := sql.subdelta(X_96,X_33,X_39,X_97,X_98);
X_46 := X_44;
(X_47,r1_59) := algebra.join(X_32,X_46);
- X_49 := sql.bind(X_6,"sys","lineorder","lo_extendedprice",0);
+ X_49:bat[:oid,:int] :=
sql.bind(X_6,"sys","lineorder","lo_extendedprice",0);
(X_52,r1_64) := sql.bind(X_6,"sys","lineorder","lo_extendedprice",2);
- X_54 := sql.bind(X_6,"sys","lineorder","lo_extendedprice",1);
+ X_54:bat[:oid,:int] :=
sql.bind(X_6,"sys","lineorder","lo_extendedprice",1);
X_55 := sql.projectdelta(X_25,X_49,X_52,r1_64,X_54);
X_56 := algebra.leftfetchjoin(X_47,X_55);
X_57 := batcalc.lng(X_56);
diff --git a/sql/benchmarks/ssbm/Tests/02-explain.stable.out
b/sql/benchmarks/ssbm/Tests/02-explain.stable.out
--- a/sql/benchmarks/ssbm/Tests/02-explain.stable.out
+++ b/sql/benchmarks/ssbm/Tests/02-explain.stable.out
@@ -39,38 +39,38 @@ Ready.
% 269 # length
function user.s2_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int,A4:int):void;
X_7 := sql.mvc();
- X_11 := sql.bind(X_7,"sys","lineorder","lo_quantity",0);
- X_19 := sql.bind(X_7,"sys","lineorder","lo_discount",0);
+ X_11:bat[:oid,:int] := sql.bind(X_7,"sys","lineorder","lo_quantity",0);
+ X_19:bat[:oid,:int] := sql.bind(X_7,"sys","lineorder","lo_discount",0);
X_8:bat[:oid,:oid] := sql.tid(X_7,"sys","lineorder");
X_90 := algebra.subselect(X_19,X_8,A1,A2,true,true,false);
(X_21,r1_25) := sql.bind(X_7,"sys","lineorder","lo_discount",2);
X_91 := algebra.subselect(r1_25,A1,A2,true,true,false);
- X_23 := sql.bind(X_7,"sys","lineorder","lo_discount",1);
+ X_23:bat[:oid,:int] := sql.bind(X_7,"sys","lineorder","lo_discount",1);
X_92 := algebra.subselect(X_23,X_8,A1,A2,true,true,false);
X_24 := sql.subdelta(X_90,X_8,X_21,X_91,X_92);
X_93 := algebra.subselect(X_11,X_24,A3,A4,true,true,false);
(X_14,r1_14) := sql.bind(X_7,"sys","lineorder","lo_quantity",2);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list