MonetDB: default - merged

2014-04-19 Thread Niels Nes
Changeset: 74941394f32d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=74941394f32d
Modified Files:
monetdb5/modules/mal/pqueue.c
Branch: default
Log Message:

merged


diffs (12 lines):

diff --git a/monetdb5/modules/mal/pqueue.c b/monetdb5/modules/mal/pqueue.c
--- a/monetdb5/modules/mal/pqueue.c
+++ b/monetdb5/modules/mal/pqueue.c
@@ -382,7 +382,7 @@ str PQtopn3_minmax(Client cntxt, MalBlkP
 
// shuffle insert new values, keep it simple!
if( size){
-   if ( max ==0)
+   if ( min)
switch(tpe){
case TYPE_bte: QTOPN_shuffle3(bte,) break;
case TYPE_sht: QTOPN_shuffle3(sht,) break;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - initialize gpck

2014-04-19 Thread Niels Nes
Changeset: 02c271dcda5f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=02c271dcda5f
Modified Files:
monetdb5/optimizer/opt_mergetable.c
Branch: default
Log Message:

initialize gpck


diffs (23 lines):

diff --git a/monetdb5/optimizer/opt_mergetable.c 
b/monetdb5/optimizer/opt_mergetable.c
--- a/monetdb5/optimizer/opt_mergetable.c
+++ b/monetdb5/optimizer/opt_mergetable.c
@@ -1333,7 +1333,7 @@ static int
 mat_topn(MalBlkPtr mb, InstrPtr p, mat_t *mat, int mtop, int m, int n, int o)
 {
int tpe = getArgType(mb,p,0), k, is_slice = isSlice(p), zero = -1;
-   InstrPtr pck, gpck, q, r;
+   InstrPtr pck, gpck = NULL, q, r;
int with_groups = (p-retc == 2), piv = 0, topn2 = (n = 0);
 
assert( topn2 || o  0);
@@ -1382,9 +1382,8 @@ mat_topn(MalBlkPtr mb, InstrPtr p, mat_t
piv = mtop;
mtop = mat_add_var(mat, mtop, pck, p, getArg(p,0), 
is_slice?mat_slc:mat_tpn, m, n);
mat[mtop-1].pushed = 0;
-   if (with_groups) {
+   if (with_groups)
mtop = mat_add_var(mat, mtop, gpck, p, getArg(p,1), 
is_slice?mat_slc:mat_tpn, m, piv);
-   }
 
if (is_slice || p-retc ==1 /* single result, ie last of the topn's */) 
{
if (mat[m].type == mat_tpn || !is_slice) 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - pqueue min/max were reverted (well as compare...

2014-04-19 Thread Niels Nes
Changeset: 30cb291839fd for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=30cb291839fd
Modified Files:
monetdb5/modules/mal/pqueue.c
sql/test/Tests/orderby_non_selection_column.stable.out
Branch: default
Log Message:

pqueue min/max were reverted (well as compared to the old heap-min/max-topn 
implementations)
approved output of test (was incorrect!)


diffs (157 lines):

diff --git a/monetdb5/modules/mal/pqueue.c b/monetdb5/modules/mal/pqueue.c
--- a/monetdb5/modules/mal/pqueue.c
+++ b/monetdb5/modules/mal/pqueue.c
@@ -27,10 +27,12 @@
continue;\
idx[top] = o;\
for (i= top; i 0; i--)\
-   if ( (TYPE) val[idx[i]] OPER (TYPE) val[idx[i-1]]) {\
-   tmp = idx[i]; idx[i]= idx[i-1]; idx[i-1] = tmp;\
-   } else break; \
-   if( top  size) top++;\
+   if ( (TYPE) val[idx[i]] OPER (TYPE) val[idx[i-1]]) {\
+   tmp = idx[i]; idx[i]= idx[i-1]; idx[i-1] = tmp;\
+   } else \
+   break; \
+   if( top  size) \
+   top++;\
}\
 }
 
@@ -51,6 +53,8 @@ str PQtopn_minmax(Client cntxt, MalBlkPt
min = strstr(getFunctionId(pci),min) != 0;
 
assert(max+min == 1);
+   max = !(max);
+   min = !(min);
b = BATdescriptor(*(bat *) getArgReference(stk, pci, 1));
if (!b)
throw(MAL, topn_min, RUNTIME_OBJECT_MISSING);
@@ -93,13 +97,14 @@ str PQtopn_minmax(Client cntxt, MalBlkPt
case TYPE_dbl: QTOPN_shuffle(dbl,) break;
default:
for(o = 0; o  lim; o++){
-   if( top == size   atom_CMP((void*) Tloc(b,o), 
(void*) Tloc(b,idx[top-1]), tpe)  0 )
+   if( top == size  atom_CMP((void*) Tloc(b,o), 
(void*) Tloc(b,idx[top-1]), tpe)  0 )
continue;
idx[top] = o;
for (i= top; i 0; i--)
-   if (  atom_CMP( Tloc(b,idx[i]), 
Tloc(b,idx[i-1]), tpe)  0) {
-   tmp = idx[i]; idx[i]= idx[i-1]; 
idx[i-1] = tmp;
-   } else break; 
+   if (atom_CMP( Tloc(b,idx[i]), 
Tloc(b,idx[i-1]), tpe)  0) {
+   tmp = idx[i]; idx[i]= idx[i-1]; 
idx[i-1] = tmp;
+   } else 
+   break; 
if( top  size)
top++;
}
@@ -115,13 +120,14 @@ str PQtopn_minmax(Client cntxt, MalBlkPt
case TYPE_dbl: QTOPN_shuffle(dbl,) break;
default:
for(o = 0; o  lim; o++){
-   if( top == size   atom_CMP((void*) Tloc(b,o), 
(void*) Tloc(b,idx[top-1]), tpe)  0 )
+   if( top == size  atom_CMP((void*) Tloc(b,o), 
(void*) Tloc(b,idx[top-1]), tpe)  0 )
continue;
idx[top] = o;
for (i= top; i 0; i--)
-   if (  atom_CMP( Tloc(b,idx[i]), 
Tloc(b,idx[i-1]), tpe)  0) {
-   tmp = idx[i]; idx[i]= idx[i-1]; 
idx[i-1] = tmp;
-   } else break; 
+   if (atom_CMP( Tloc(b,idx[i]), 
Tloc(b,idx[i-1]), tpe)  0) {
+   tmp = idx[i]; idx[i]= idx[i-1]; 
idx[i-1] = tmp;
+   } else 
+   break; 
if( top  size)
top++;
}
@@ -149,19 +155,19 @@ str PQtopn_minmax(Client cntxt, MalBlkPt
if( (TYPE) val[idx[i]] OPER (TYPE) val[idx[i-1]]){\
tmp= idx[i]; idx[i] = idx[i-1]; idx[i-1] = tmp;\
tmp= gdx[i]; gdx[i] = gdx[i-1]; gdx[i-1] = tmp;\
-   } else\
-   if( (TYPE) val[idx[i]] == (TYPE) val[idx[i-1]]){\
+   } else if( (TYPE) val[idx[i]] == (TYPE) val[idx[i-1]]){\
gdx[i] = gdx[i-1];\
-   } else break;\
+   } else \
+   break;\
uniq=0;\
for( i=1; i = top; i++)\
-   if( gdx[i]!= gdx[i-1]){\
-   uniq++;\
-   if( uniq = size) {\
-   top = i;\
-   break;\
+   if( gdx[i]!= gdx[i-1]){\
+   

MonetDB: default - approved output. Plan/explain changed because...

2014-04-19 Thread Niels Nes
Changeset: 88970f309a81 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=88970f309a81
Modified Files:
sql/benchmarks/ssbm/Tests/02-explain.stable.out
sql/benchmarks/ssbm/Tests/02-plan.stable.out
sql/benchmarks/ssbm/Tests/03-explain.stable.out
sql/benchmarks/ssbm/Tests/03-plan.stable.out
sql/benchmarks/ssbm/Tests/07-explain.stable.out
sql/benchmarks/ssbm/Tests/07-plan.stable.out
sql/benchmarks/ssbm/Tests/08-explain.stable.out
sql/benchmarks/ssbm/Tests/08-plan.stable.out
Branch: default
Log Message:

approved output. Plan/explain changed because of stricter ordering on selects 
and group by expressions


diffs (224 lines):

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,20 +39,20 @@ 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_discount,0);
-X_19 := sql.bind(X_7,sys,lineorder,lo_quantity,0);
+X_11 := sql.bind(X_7,sys,lineorder,lo_quantity,0);
+X_19 := 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,A3,A4,true,true,false);
-(X_21,r1_25) := sql.bind(X_7,sys,lineorder,lo_quantity,2);
-X_91 := algebra.subselect(r1_25,A3,A4,true,true,false);
-X_23 := sql.bind(X_7,sys,lineorder,lo_quantity,1);
-X_92 := algebra.subselect(X_23,X_8,A3,A4,true,true,false);
+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_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,A1,A2,true,true,false);
-(X_14,r1_14) := sql.bind(X_7,sys,lineorder,lo_discount,2);
-X_94 := algebra.subselect(r1_14,A1,A2,true,true,false);
-X_17 := sql.bind(X_7,sys,lineorder,lo_discount,1);
-X_95 := algebra.subselect(X_17,X_24,A1,A2,true,true,false);
+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);
+X_94 := algebra.subselect(r1_14,A3,A4,true,true,false);
+X_17 := sql.bind(X_7,sys,lineorder,lo_quantity,1);
+X_95 := algebra.subselect(X_17,X_24,A3,A4,true,true,false);
 X_26 := sql.subdelta(X_93,X_24,X_14,X_94,X_95);
 X_27 := 
sql.bind_idxbat(X_7,sys,lineorder,lineorder_lo_orderdate_fkey,0);
 (X_29,r1_37) := 
sql.bind_idxbat(X_7,sys,lineorder,lineorder_lo_orderdate_fkey,2);
@@ -74,7 +74,7 @@ function user.s2_1{autoCommit=true}(A0:i
 X_55 := sql.projectdelta(X_26,X_49,X_52,r1_65,X_54);
 X_56 := algebra.leftfetchjoin(X_47,X_55);
 X_57 := batcalc.lng(X_56);
-X_58 := sql.projectdelta(X_26,X_11,X_14,r1_14,X_17);
+X_58 := sql.projectdelta(X_26,X_19,X_21,r1_25,X_23);
 X_59 := algebra.leftfetchjoin(X_47,X_58);
 X_60:bat[:oid,:lng]  := batcalc.*(X_57,X_59);
 X_61 := algebra.selectNotNil(X_60);
diff --git a/sql/benchmarks/ssbm/Tests/02-plan.stable.out 
b/sql/benchmarks/ssbm/Tests/02-plan.stable.out
--- a/sql/benchmarks/ssbm/Tests/02-plan.stable.out
+++ b/sql/benchmarks/ssbm/Tests/02-plan.stable.out
@@ -41,7 +41,7 @@ project (
 | | join (
 | | | select (
 | | | | table(sys.lineorder) [ lineorder.lo_quantity, 
lineorder.lo_extendedprice, lineorder.lo_discount, 
lineorder.%lineorder_lo_orderdate_fkey NOT NULL JOINIDX 
sys.lineorder.lineorder_lo_orderdate_fkey ] COUNT 
-| | | ) [ int[tinyint 26] = lineorder.lo_quantity = int[tinyint 35], 
int[tinyint 4] = lineorder.lo_discount = int[tinyint 6] ],
+| | | ) [ int[tinyint 4] = lineorder.lo_discount = int[tinyint 6], 
int[tinyint 26] = lineorder.lo_quantity = int[tinyint 35] ],
 | | | select (
 | | | | table(sys.dwdate) [ dwdate.d_yearmonthnum, dwdate.%TID% NOT NULL ] 
COUNT 
 | | | ) [ dwdate.d_yearmonthnum = int 199401 ]
diff --git a/sql/benchmarks/ssbm/Tests/03-explain.stable.out 
b/sql/benchmarks/ssbm/Tests/03-explain.stable.out
--- a/sql/benchmarks/ssbm/Tests/03-explain.stable.out
+++ b/sql/benchmarks/ssbm/Tests/03-explain.stable.out
@@ -39,20 +39,20 @@ Ready.
 % 283 # length
 function 
user.s2_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int,A4:int,A5:int):void;
 X_8 := sql.mvc();
-X_12 := sql.bind(X_8,sys,lineorder,lo_discount,0);
-X_20 := sql.bind(X_8,sys,lineorder,lo_quantity,0);
+X_12 := sql.bind(X_8,sys,lineorder,lo_quantity,0);
+X_20 := sql.bind(X_8,sys,lineorder,lo_discount,0);
 X_9:bat[:oid,:oid]  := sql.tid(X_8,sys,lineorder);
-X_101 := algebra.subselect(X_20,X_9,A4,A5,true,true,false);
-(X_22,r1_26) := sql.bind(X_8,sys,lineorder,lo_quantity,2);
-

MonetDB: default - approved output. Plan changes because of stri...

2014-04-19 Thread Niels Nes
Changeset: 041d7927d2e1 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=041d7927d2e1
Modified Files:
sql/benchmarks/tpch/Tests/01-explain.stable.out
sql/benchmarks/tpch/Tests/01-plan.stable.out
sql/benchmarks/tpch/Tests/02-explain.stable.out
sql/benchmarks/tpch/Tests/03-explain.stable.out
sql/benchmarks/tpch/Tests/03-plan.stable.out
sql/benchmarks/tpch/Tests/08-explain.stable.out
sql/benchmarks/tpch/Tests/08-plan.stable.out
sql/benchmarks/tpch/Tests/10-explain.stable.out
sql/benchmarks/tpch/Tests/18-explain.stable.out
sql/benchmarks/tpch/Tests/21-explain.stable.out
Branch: default
Log Message:

approved output. Plan changes because of stricter groupby/select expression 
ordering. Explains changed because of plan and/or new topn implementation.


diffs (truncated from 1120 to 300 lines):

diff --git a/sql/benchmarks/tpch/Tests/01-explain.stable.out 
b/sql/benchmarks/tpch/Tests/01-explain.stable.out
--- a/sql/benchmarks/tpch/Tests/01-explain.stable.out
+++ b/sql/benchmarks/tpch/Tests/01-explain.stable.out
@@ -62,18 +62,18 @@ function user.s2_1{autoCommit=true}(A0:b
 X_17 := sql.bind(X_7,sys,lineitem,l_shipdate,1);
 X_186 := algebra.thetasubselect(X_17,X_8,X_19,=);
 X_20 := sql.subdelta(X_184,X_8,X_14,X_185,X_186);
-X_22 := sql.bind(X_7,sys,lineitem,l_returnflag,0);
-(X_24,r1_28) := sql.bind(X_7,sys,lineitem,l_returnflag,2);
-X_26 := sql.bind(X_7,sys,lineitem,l_returnflag,1);
+X_22 := sql.bind(X_7,sys,lineitem,l_linestatus,0);
+(X_24,r1_28) := sql.bind(X_7,sys,lineitem,l_linestatus,2);
+X_26 := sql.bind(X_7,sys,lineitem,l_linestatus,1);
 X_27 := sql.projectdelta(X_20,X_22,X_24,r1_28,X_26);
-X_28 := sql.bind(X_7,sys,lineitem,l_linestatus,0);
-(X_30,r1_36) := sql.bind(X_7,sys,lineitem,l_linestatus,2);
-X_32 := sql.bind(X_7,sys,lineitem,l_linestatus,1);
+X_28 := sql.bind(X_7,sys,lineitem,l_returnflag,0);
+(X_30,r1_36) := sql.bind(X_7,sys,lineitem,l_returnflag,2);
+X_32 := sql.bind(X_7,sys,lineitem,l_returnflag,1);
 X_33 := sql.projectdelta(X_20,X_28,X_30,r1_36,X_32);
 (X_34,r1_42,r2_42) := group.subgroup(X_33);
 (X_37,r1_45,r2_45) := group.subgroupdone(X_27,X_34);
-X_40 := algebra.leftfetchjoin(r1_45,X_33);
-X_41 := algebra.leftfetchjoin(r1_45,X_27);
+X_40 := algebra.leftfetchjoin(r1_45,X_27);
+X_41 := algebra.leftfetchjoin(r1_45,X_33);
 X_51 := sql.bind(X_7,sys,lineitem,l_quantity,0);
 (X_56,r1_64) := sql.bind(X_7,sys,lineitem,l_quantity,2);
 X_59 := sql.bind(X_7,sys,lineitem,l_quantity,1);
diff --git a/sql/benchmarks/tpch/Tests/01-plan.stable.out 
b/sql/benchmarks/tpch/Tests/01-plan.stable.out
--- a/sql/benchmarks/tpch/Tests/01-plan.stable.out
+++ b/sql/benchmarks/tpch/Tests/01-plan.stable.out
@@ -55,7 +55,7 @@ project (
 | | select (
 | | | table(sys.lineitem) [ lineitem.l_quantity NOT NULL, 
lineitem.l_extendedprice NOT NULL, lineitem.l_discount NOT NULL, lineitem.l_tax 
NOT NULL, lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, 
lineitem.l_shipdate NOT NULL ] COUNT 
 | | ) [ lineitem.l_shipdate NOT NULL = sys.sql_sub(date 1998-12-01, 
sec_interval(4) 777600) ]
-| ) [ lineitem.l_linestatus NOT NULL, lineitem.l_returnflag NOT NULL ] [ 
lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, sys.sum no nil 
(lineitem.l_quantity NOT NULL) NOT NULL as L1.L1, sys.sum no nil 
(lineitem.l_extendedprice NOT NULL) NOT NULL as L2.L2, sys.sum no nil 
(sys.sql_mul(lineitem.l_extendedprice NOT NULL, 
sys.sql_sub(decimal(15,2)[tinyint 1], lineitem.l_discount NOT NULL))) as 
L3.L3, sys.sum no nil (sys.sql_mul(sys.sql_mul(lineitem.l_extendedprice NOT 
NULL, sys.sql_sub(decimal(15,2)[tinyint 1], lineitem.l_discount NOT NULL)), 
sys.sql_add(decimal(15,2)[tinyint 1], lineitem.l_tax NOT NULL))) as L4.L4, 
sys.avg no nil (double[lineitem.l_quantity NOT NULL] as lineitem.l_quantity) as 
L5.L5, sys.avg no nil (double[lineitem.l_extendedprice NOT NULL] as 
lineitem.l_extendedprice) as L6.L6, sys.avg no nil (double[lineitem.l_discount 
NOT NULL] as lineitem.l_discount) as L7.L7, sys.count() NOT NULL as L10.L10 ]
+| ) [ lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL ] [ 
lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, sys.sum no nil 
(lineitem.l_quantity NOT NULL) NOT NULL as L1.L1, sys.sum no nil 
(lineitem.l_extendedprice NOT NULL) NOT NULL as L2.L2, sys.sum no nil 
(sys.sql_mul(lineitem.l_extendedprice NOT NULL, 
sys.sql_sub(decimal(15,2)[tinyint 1], lineitem.l_discount NOT NULL))) as 
L3.L3, sys.sum no nil (sys.sql_mul(sys.sql_mul(lineitem.l_extendedprice NOT 
NULL, sys.sql_sub(decimal(15,2)[tinyint 1], lineitem.l_discount NOT NULL)), 
sys.sql_add(decimal(15,2)[tinyint 1], lineitem.l_tax NOT NULL))) as L4.L4, 
sys.avg no nil (double[lineitem.l_quantity NOT NULL] as lineitem.l_quantity) as 
L5.L5, sys.avg no nil (double[lineitem.l_extendedprice NOT NULL] as 

MonetDB: default - approved output after pqueue changes, orderby...

2014-04-19 Thread Niels Nes
Changeset: ca153d4b9996 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ca153d4b9996
Modified Files:

sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.stable.out
Branch: default
Log Message:

approved output after pqueue changes, orderby on an equal column ie allowed 
change


diffs (25 lines):

diff --git 
a/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.stable.out
 
b/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.stable.out
--- 
a/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.stable.out
+++ 
b/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.stable.out
@@ -138,8 +138,9 @@ Ready.
 % value,   type,   prob # name
 % varchar, char,   double # type
 % 2,   4,  24 # length
+[ A1,term, 1   ]
 [ A2,term, 1   ]
-[ A1,term, 1   ]
+#ROLLBACK;
 
 # 23:06:18   
 # 23:06:18   Mtimeout -timeout 60 mclient -lsql -umonetdb -Pmonetdb 
--host=localhost --port=31419  
/home/wouter/opt/MonetDB-Aug2009/mTests/src/test/BugTracker-2009/old_views_incorrectly_reused.SF-2863804.view2.sql
@@ -168,8 +169,9 @@ Ready.
 % value,   type,   prob # name
 % varchar, char,   double # type
 % 4,   4,  24 # length
+[ 2000,  term, 1   ]
 [ 2001,  term, 1   ]
-[ 2000,  term, 1   ]
+#ROLLBACK;
 
 # 23:06:18   
 # 23:06:18   Done.
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - fixed bug in tsorted/trevsorted topn case

2014-04-19 Thread Niels Nes
Changeset: ab33c4b2d78f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ab33c4b2d78f
Modified Files:
monetdb5/modules/mal/pqueue.c

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
Branch: default
Log Message:

fixed bug in tsorted/trevsorted topn case

approved new plans.


diffs (166 lines):

diff --git a/monetdb5/modules/mal/pqueue.c b/monetdb5/modules/mal/pqueue.c
--- a/monetdb5/modules/mal/pqueue.c
+++ b/monetdb5/modules/mal/pqueue.c
@@ -66,7 +66,7 @@ str PQtopn_minmax(Client cntxt, MalBlkPt
 
if ((b-tsorted  max) || (b-trevsorted  !max)) {
size_t l = BATcount(b)  size ? 0 : BATcount(b)-size;
-   bn = BATslice(b, l, size);
+   bn = BATslice(b, l, BATcount(b));
} else
bn = BATslice(b, 0, size);
r = BATmirror(BATmark(bn, 0));
diff --git 
a/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out 
b/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
--- a/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
+++ b/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
@@ -303,25 +303,24 @@ function user.s11_1{autoCommit=true}():v
 (X_9,r1_9) := sql.bind(X_2,sys,oblo,a,2);
 X_12 := sql.bind(X_2,sys,oblo,a,1);
 X_14 := sql.delta(X_6,X_9,r1_9,X_12);
-X_15 := algebra.leftfetchjoin(X_3,X_14);
+r1_21 := algebra.leftfetchjoin(X_3,X_14);
 X_16 := calc.wrd(0:wrd);
 X_18 := calc.wrd(2:wrd);
 X_20 := calc.+(X_16,X_18);
-X_21 := pqueue.topn_max(X_15,X_20);
-X_22 := calc.oid(0@0);
-X_24 := algebra.markT(X_21,X_22);
-X_25 := bat.reverse(X_24);
-X_26 := algebra.leftfetchjoin(X_25,X_15);
-X_27 := calc.wrd(0:wrd);
-X_28 := calc.wrd(2:wrd);
-X_29 := calc.+(X_27,X_28);
-X_30 := calc.-(X_29,1);
-X_31 := algebra.subslice(X_26,X_27,X_30);
-X_32 := algebra.leftfetchjoin(X_31,X_26);
-X_33 := sql.resultSet(1,1,X_32);
-sql.rsColumn(X_33,sys.oblo,a,int,32,0,X_32);
-X_38 := io.stdout();
-sql.exportResult(X_38,X_33);
+X_21 := pqueue.topn_max(r1_21,X_20);
+X_22 := algebra.leftfetchjoin(X_21,r1_21);
+(X_23,r1_23,r2_23) := algebra.subsort(X_22,false,false);
+X_27 := algebra.leftfetchjoin(r1_23,X_22);
+X_28 := calc.wrd(0:wrd);
+X_29 := calc.wrd(2:wrd);
+X_30 := calc.+(X_28,X_29);
+X_31 := calc.-(X_30,1);
+X_32 := algebra.subslice(X_27,X_28,X_31);
+X_33 := algebra.leftfetchjoin(X_32,X_27);
+X_34 := sql.resultSet(1,1,X_33);
+sql.rsColumn(X_34,sys.oblo,a,int,32,0,X_33);
+X_39 := io.stdout();
+sql.exportResult(X_39,X_34);
 end s11_1;
 # querylog.define(explain select * from oblo order by a limit 
2;,minimal_pipe)
 #EXPLAIN select * from oblo ORDER BY a LIMIT 2 OFFSET 1;
@@ -336,27 +335,26 @@ function user.s12_1{autoCommit=true}():v
 (X_9,r1_9) := sql.bind(X_2,sys,oblo,a,2);
 X_12 := sql.bind(X_2,sys,oblo,a,1);
 X_14 := sql.delta(X_6,X_9,r1_9,X_12);
-X_15 := algebra.leftfetchjoin(X_3,X_14);
+r1_24 := algebra.leftfetchjoin(X_3,X_14);
 X_16 := calc.wrd(0:wrd);
 X_18 := calc.wrd(2:wrd);
 X_20 := calc.wrd(1:wrd);
 X_22 := calc.+(X_18,X_20);
 X_23 := calc.+(X_16,X_22);
-X_24 := pqueue.topn_max(X_15,X_23);
-X_25 := calc.oid(0@0);
-X_27 := algebra.markT(X_24,X_25);
-X_28 := bat.reverse(X_27);
-X_29 := algebra.leftfetchjoin(X_28,X_15);
-X_30 := calc.wrd(1:wrd);
-X_31 := calc.wrd(2:wrd);
-X_32 := calc.+(X_30,X_31);
-X_33 := calc.-(X_32,1);
-X_34 := algebra.subslice(X_29,X_30,X_33);
-X_35 := algebra.leftfetchjoin(X_34,X_29);
-X_36 := sql.resultSet(1,1,X_35);
-sql.rsColumn(X_36,sys.oblo,a,int,32,0,X_35);
-X_42 := io.stdout();
-sql.exportResult(X_42,X_36);
+X_24 := pqueue.topn_max(r1_24,X_23);
+X_25 := algebra.leftfetchjoin(X_24,r1_24);
+(X_26,r1_26,r2_26) := algebra.subsort(X_25,false,false);
+X_30 := algebra.leftfetchjoin(r1_26,X_25);
+X_31 := calc.wrd(1:wrd);
+X_32 := calc.wrd(2:wrd);
+X_33 := calc.+(X_31,X_32);
+X_34 := calc.-(X_33,1);
+X_35 := algebra.subslice(X_30,X_31,X_34);
+X_36 := algebra.leftfetchjoin(X_35,X_30);
+X_37 := sql.resultSet(1,1,X_36);
+sql.rsColumn(X_37,sys.oblo,a,int,32,0,X_36);
+X_44 := io.stdout();
+sql.exportResult(X_44,X_37);
 end s12_1;
 # querylog.define(explain select * from oblo order by a limit 2 offset 
1;,minimal_pipe)
 #EXPLAIN select * from oblo ORDER BY a LIMIT 1 OFFSET 2;
@@ -371,27 +369,26 @@ function user.s13_1{autoCommit=true}():v
 (X_9,r1_9) := sql.bind(X_2,sys,oblo,a,2);
 X_12 := sql.bind(X_2,sys,oblo,a,1);
 X_14 := sql.delta(X_6,X_9,r1_9,X_12);
-X_15 := algebra.leftfetchjoin(X_3,X_14);
+r1_24 := algebra.leftfetchjoin(X_3,X_14);
   

MonetDB: default - approved output

2014-04-19 Thread Niels Nes
Changeset: c669195b0544 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c669195b0544
Added Files:
sql/test/BugTracker-2014/Tests/temporary.Bug-3430.stable.err
sql/test/BugTracker-2014/Tests/temporary.Bug-3430.stable.out
Modified Files:
sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
sql/test/BugTracker-2014/Tests/crash_on_or_with_in.Bug-3461.stable.out
sql/test/BugTracker-2014/Tests/in_incorrect_multi.Bug-3462.stable.out
Branch: default
Log Message:

approved output


diffs (143 lines):

diff --git 
a/sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out 
b/sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
--- a/sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
+++ b/sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
@@ -30,7 +30,7 @@ Ready.
 % L1 # name
 % double # type
 % 24 # length
-[ 5091 ]
+[ 5193 ]
 
 # 17:14:33   
 # 17:14:33   Done.
diff --git 
a/sql/test/BugTracker-2014/Tests/crash_on_or_with_in.Bug-3461.stable.out 
b/sql/test/BugTracker-2014/Tests/crash_on_or_with_in.Bug-3461.stable.out
--- a/sql/test/BugTracker-2014/Tests/crash_on_or_with_in.Bug-3461.stable.out
+++ b/sql/test/BugTracker-2014/Tests/crash_on_or_with_in.Bug-3461.stable.out
@@ -28,10 +28,10 @@ Ready.
 #SELECT * FROM SYS.ARGS
 # WHERE FUNC_ID NOT IN (SELECT ID FROM SYS.FUNCTIONS)
 #OR FUNC_ID NOT IN (SELECT ID FROM SYS.FUNCTIONS);
-% .args,   .args,  .args,  .args,  .args,  .args,  .args # table_name
-% id,  func_id,name,   type,   type_digits,type_scale, number 
# name
-% int, int,varchar,varchar,int,int,int # type
-% 1,   1,  0,  0,  1,  1,  1 # length
+% .args,   .args,  .args,  .args,  .args,  .args,  .args,  .args # 
table_name
+% id,  func_id,name,   type,   type_digits,type_scale, inout,  
number # name
+% int, int,varchar,varchar,int,int,tinyint,
int # type
+% 1,   1,  0,  0,  1,  1,  1,  1 # length
 
 # 14:17:10   
 # 14:17:10   Done.
diff --git 
a/sql/test/BugTracker-2014/Tests/in_incorrect_multi.Bug-3462.stable.out 
b/sql/test/BugTracker-2014/Tests/in_incorrect_multi.Bug-3462.stable.out
--- a/sql/test/BugTracker-2014/Tests/in_incorrect_multi.Bug-3462.stable.out
+++ b/sql/test/BugTracker-2014/Tests/in_incorrect_multi.Bug-3462.stable.out
@@ -27,10 +27,10 @@ Ready.
 
 #SELECT * FROM SYS.ARGS
 # WHERE FUNC_ID NOT IN (SELECT FUNC_ID FROM SYS.FUNCTIONS);
-% sys.args,sys.args,   sys.args,   sys.args,   sys.args,   
sys.args,   sys.args # table_name
-% id,  func_id,name,   type,   type_digits,type_scale, number 
# name
-% int, int,varchar,varchar,int,int,int # type
-% 1,   1,  0,  0,  1,  1,  1 # length
+% sys.args,sys.args,   sys.args,   sys.args,   sys.args,   
sys.args,   sys.args,   sys.args # table_name
+% id,  func_id,name,   type,   type_digits,type_scale, inout,  
number # name
+% int, int,varchar,varchar,int,int,tinyint,
int # type
+% 1,   1,  0,  0,  1,  1,  1,  1 # length
 
 # 14:17:13   
 # 14:17:13   Done.
diff --git a/sql/test/BugTracker-2014/Tests/temporary.Bug-3430.stable.err 
b/sql/test/BugTracker-2014/Tests/temporary.Bug-3430.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2014/Tests/temporary.Bug-3430.stable.err
@@ -0,0 +1,51 @@
+stderr of test 'temporary.Bug-3430` in directory 'sql/test/BugTracker-2014` 
itself:
+
+
+# 12:14:57   
+# 12:14:57   mserver5 --debug=10 --set gdk_nr_threads=0 --set 
mapi_open=true --set mapi_port=33005 --set 
mapi_usock=/var/tmp/mtest-30260/.s.monetdb.33005 --set monet_prompt= 
--forcemito --set mal_listing=2 
--dbpath=/home/niels/scratch/monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2014
 --set mal_listing=0
+# 12:14:57   
+
+# builtin opt  gdk_dbpath = 
/home/niels/scratch/monetdb/Linux-x86_64/var/monetdb5/dbfarm/demo
+# builtin opt  gdk_debug = 0
+# builtin opt  gdk_vmtrim = no
+# builtin opt  monet_prompt = 
+# builtin opt  monet_daemon = no
+# builtin opt  mapi_port = 5
+# builtin opt  mapi_open = false
+# builtin opt  mapi_autosense = false
+# builtin opt  sql_optimizer = default_pipe
+# builtin opt  sql_debug = 0
+# cmdline opt  gdk_nr_threads = 0
+# cmdline opt  mapi_open = true
+# cmdline opt  mapi_port = 33005
+# cmdline opt  mapi_usock = /var/tmp/mtest-30260/.s.monetdb.33005
+# cmdline opt  monet_prompt = 
+# cmdline opt  mal_listing = 2
+# cmdline opt  gdk_dbpath = 
/home/niels/scratch/monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2014
+# cmdline opt  mal_listing = 0
+# cmdline opt  gdk_debug = 536870922
+
+# 12:14:57   
+# 12:14:57   mclient -lsql -ftest -Eutf-8 -i -e 
--host=/var/tmp/mtest-30260 --port=33005
+# 12:14:57 

MonetDB: default - approved errors

2014-04-19 Thread Niels Nes
Changeset: 31c808252df0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=31c808252df0
Modified Files:
sql/test/json/Tests/parsing.stable.err
Branch: default
Log Message:

approved errors


diffs (56 lines):

diff --git a/sql/test/json/Tests/parsing.stable.err 
b/sql/test/json/Tests/parsing.stable.err
--- a/sql/test/json/Tests/parsing.stable.err
+++ b/sql/test/json/Tests/parsing.stable.err
@@ -28,34 +28,34 @@ stderr of test 'parsing` in directory 's
 # 19:12:46   mclient -lsql -ftest -Eutf-8 -i -e 
--host=/var/tmp/mtest-1134 --port=32043
 # 19:12:46   
 
-MAPI  = (monetdb) /var/tmp/mtest-24972/.s.monetdb.33905
+MAPI  = (monetdb) /var/tmp/mtest-10926/.s.monetdb.33389
 QUERY = insert into jsonparse values('{');
 ERROR = !Syntax error : '}' expected
-MAPI  = (monetdb) /var/tmp/mtest-24972/.s.monetdb.33905
+MAPI  = (monetdb) /var/tmp/mtest-10926/.s.monetdb.33389
 QUERY = insert into jsonparse values('}');
-ERROR = !Syntax error
-MAPI  = (monetdb) /var/tmp/mtest-24972/.s.monetdb.33905
+ERROR = !Syntax error: json parse failed
+MAPI  = (monetdb) /var/tmp/mtest-10926/.s.monetdb.33389
 QUERY = insert into jsonparse values('{}  k');
-ERROR = !Syntax error
-MAPI  = (monetdb) /var/tmp/mtest-24972/.s.monetdb.33905
+ERROR = !Syntax error: json parse failed
+MAPI  = (monetdb) /var/tmp/mtest-10926/.s.monetdb.33389
 QUERY = insert into jsonparse values('{:1}');
-ERROR = !Syntax error
-MAPI  = (monetdb) /var/tmp/mtest-24972/.s.monetdb.33905
+ERROR = !Syntax error: json parse failed
+MAPI  = (monetdb) /var/tmp/mtest-10926/.s.monetdb.33389
 QUERY = insert into jsonparse values('{k}');
-ERROR = !Syntax error
-MAPI  = (monetdb) /var/tmp/mtest-24972/.s.monetdb.33905
+ERROR = !Syntax error: json parse failed
+MAPI  = (monetdb) /var/tmp/mtest-10926/.s.monetdb.33389
 QUERY = insert into jsonparse values('{[}]');
-ERROR = !Syntax error
-MAPI  = (monetdb) /var/tmp/mtest-24972/.s.monetdb.33905
+ERROR = !Syntax error: json parse failed
+MAPI  = (monetdb) /var/tmp/mtest-10926/.s.monetdb.33389
 QUERY = insert into jsonparse values('{} }');
-ERROR = !Syntax error
-MAPI  = (monetdb) /var/tmp/mtest-24972/.s.monetdb.33905
+ERROR = !Syntax error: json parse failed
+MAPI  = (monetdb) /var/tmp/mtest-10926/.s.monetdb.33389
 QUERY = insert into jsonparse values('{} }[1]');
-ERROR = !Syntax error
-MAPI  = (monetdb) /var/tmp/mtest-24972/.s.monetdb.33905
+ERROR = !Syntax error: json parse failed
+MAPI  = (monetdb) /var/tmp/mtest-10926/.s.monetdb.33389
 QUERY = insert into jsonparse values('{f1::1}');
-ERROR = !Syntax error
-MAPI  = (monetdb) /var/tmp/mtest-24972/.s.monetdb.33905
+ERROR = !Syntax error: json parse failed
+MAPI  = (monetdb) /var/tmp/mtest-10926/.s.monetdb.33389
 QUERY = insert into jsonparse values('{f1:1,f2:2 ');
 ERROR = !Syntax error : '}' expected
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - added missing subuniform mal definition

2014-04-19 Thread Niels Nes
Changeset: e2709b0bb4f9 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e2709b0bb4f9
Modified Files:
monetdb5/modules/mal/sample.mal
Branch: default
Log Message:

added missing subuniform mal definition


diffs (15 lines):

diff --git a/monetdb5/modules/mal/sample.mal b/monetdb5/modules/mal/sample.mal
--- a/monetdb5/modules/mal/sample.mal
+++ b/monetdb5/modules/mal/sample.mal
@@ -27,6 +27,11 @@ command uniform(b:bat[:oid,:any],s:wrd):
 address SAMPLEuniform
 comment Returns the oids of a uniform sample of size s;
 
+command subuniform(b:bat[:oid,:any],s:wrd):bat[:oid,:oid]
+address SAMPLEuniform
+comment Returns the oids of a uniform sample of size s;
+
 command uniform(b:bat[:oid,:any],p:dbl):bat[:oid,:oid]
 address SAMPLEuniform_dbl
 comment Returns the oids of a uniform sample of size = (p x count(b)), where 
0 = p = 1.0;
+
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - some json functions were added.

2014-04-19 Thread Niels Nes
Changeset: 9458f1ee8223 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9458f1ee8223
Modified Files:
sql/test/Tests/systemfunctions.stable.out
Branch: default
Log Message:

some json functions were added.


diffs (54 lines):

diff --git a/sql/test/Tests/systemfunctions.stable.out 
b/sql/test/Tests/systemfunctions.stable.out
--- a/sql/test/Tests/systemfunctions.stable.out
+++ b/sql/test/Tests/systemfunctions.stable.out
@@ -91,11 +91,17 @@ Ready.
 [ json,  length,   1,  json,   ]
 [ json,  number,   0,  double,   create function 
json.number(js json)\nreturns float external name json.number;]
 [ json,  number,   1,  json,   ]
+[ json,  output,   0,  clob, -- The remainder awaits the 
implementation \n\ncreate aggregate json.output(js json)\nreturns string 
external name json.output;   ]
+[ json,  output,   1,  json,   ]
 [ json,  text, 0,  clob, create function json.text(js json, e 
string)\nreturns string external name json.text; ]
 [ json,  text, 1,  json,   ]
 [ json,  text, 2,  clob,   ]
 [ json,  text, 0,  clob, create function json.text(js 
json)\nreturns string external name json.text;   ]
 [ json,  text, 1,  json,   ]
+[ json,  text, 0,  clob, create function json.text(js 
string)\nreturns string external name json.text; ]
+[ json,  text, 1,  clob,   ]
+[ json,  text, 0,  clob, create function json.text(js 
int)\nreturns string external name json.text;]
+[ json,  text, 1,  int,]
 [ json,  valuearray,   0,  json, create function 
json.valuearray(js json)\nreturns  json external name json.valuearray;]
 [ json,  valuearray,   1,  json,   ]
 [ sys,   Intersect,0,  boolean,  create function 
\Intersect\(a geometry, b geometry) returns boolean external name 
geom.\Intersect\;   ]
@@ -253,6 +259,8 @@ Ready.
 [ sys,   distance, 0,  double,   create function 
distance(a geometry, b geometry) returns float external name 
geom.\Distance\;   ]
 [ sys,   distance, 1,  geometry,   ]
 [ sys,   distance, 2,  geometry,   ]
+[ sys,   dropdictionary,   0,  clob, create procedure 
dropdictionary (s string, t string)\nexternal name sql.dropdictionary;   ]
+[ sys,   dropdictionary,   1,  clob,   ]
 [ sys,   env,  0,  varchar,  CREATE FUNCTION env () RETURNS 
TABLE( name varchar(1024), value varchar(2048)) EXTERNAL NAME 
sql.sql_environment; ]
 [ sys,   env,  1,  varchar,]
 [ sys,   envelope, 0,  geometry, create function 
envelope(g geometry) returns geometry external name geom.\Envelope\;]
@@ -307,6 +315,14 @@ Ready.
 [ sys,   getroboturl,  1,  url,]
 [ sys,   getuser,  0,  clob, create function getuser(theurl 
url) returns string   \n\texternal name url.\getUser\;   ]
 [ sys,   getuser,  1,  url,]
+[ sys,   gzcompress,   0,  clob, -- The contents of this file 
are subject to the MonetDB Public License\n-- Version 1.1 (the \License\); 
you may not use this file except in\n-- compliance with the License. You may 
obtain a copy of the License at\n-- 
http://www.monetdb.org/Legal/MonetDBLicense\n--\n-- Software distributed under 
the License is distributed on an \AS IS\\n-- basis, WITHOUT WARRANTY OF ANY 
KIND, either express or implied. See the\n-- License for the specific language 
governing rights and limitations\n-- under the License.\n--\n-- The Original 
Code is the MonetDB Database System.\n--\n-- The Initial Developer of the 
Original Code is CWI.\n-- Portions created by CWI are Copyright (C) 1997-July 
2008 CWI.\n-- Copyright August 2008-2014 MonetDB B.V.\n-- All Rights 
Reserved.\n\n-- Perform LZ-compression over a specific table;\ncreate procedure 
gzcompress (s string, t string)\nexternal name sql.gzcompress;   ]
+[ sys,   gzcompress,   1,  clob,   ]
+[ sys,   gzdecompress, 0,  clob, create procedure gzdecompress 
(s string, t string)\nexternal name sql.gzdecompress;   ]
+[ sys,   gzdecompress, 1,  clob,   ]
+[ sys,   gzexpand, 0,  clob, -- Remove the compressed 
images\ncreate procedure gzexpand (s string, t string)\nexternal name 
sql.gzexpand;  ]
+[ sys,   gzexpand, 1,  clob,   ]
+[ sys,   gztruncate,   0,  clob, -- Truncate the storage for 
columns with a compressed image\ncreate procedure gztruncate (s string, t 
string)\nexternal name sql.gztruncate;  ]
+[ sys,   gztruncate,   1,  clob,   ]
 [ sys,   hashsize, 0,  bigint,   create function 
sys.hashsize(b boolean, i bigint)\nreturns bigint\nbegin\n\t-- assume 
non-compound keys\n\tif  b = true\n\tthen\n\t\treturn 8 * i;\n\tend 
if;\n\treturn 0;\nend;  ]
 [ sys, 

MonetDB: default - Silence compiler

2014-04-19 Thread Martin Kersten
Changeset: 9bb0ec4566af for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9bb0ec4566af
Modified Files:
monetdb5/extras/sphinx/sphinx.c
Branch: default
Log Message:

Silence compiler


diffs (12 lines):

diff --git a/monetdb5/extras/sphinx/sphinx.c b/monetdb5/extras/sphinx/sphinx.c
--- a/monetdb5/extras/sphinx/sphinx.c
+++ b/monetdb5/extras/sphinx/sphinx.c
@@ -78,7 +78,7 @@ sphinx_searchIndexLimit(BAT **ret, /* pu
 str
 SPHINXsearchIndexLimit(int *ret, str *query, str *index, int *limit)
 {
-   BAT *b;
+   BAT *b= NULL;
str msg = sphinx_searchIndexLimit(b, *query, *index, *limit);
 
if (msg) {
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list