MonetDB: default - Fix a few leaks upon errors

2017-09-18 Thread Martin Kersten
Changeset: 251770a80b1a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=251770a80b1a
Modified Files:
sql/backends/monet5/sql.c
sql/backends/monet5/sql_cat.c
Branch: default
Log Message:

Fix a few leaks upon errors


diffs (119 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -2025,7 +2025,7 @@ mvc_export_table_wrap( Client cntxt, Mal
tpe = BATdescriptor(tpeId);
len = BATdescriptor(lenId);
scale = BATdescriptor(scaleId);
-   if( msg || tbl == NULL || atr == NULL || tpe == NULL || len == NULL || 
scale == NULL)
+   if( tbl == NULL || atr == NULL || tpe == NULL || len == NULL || scale 
== NULL)
goto wrapup_result_set1;
/* mimick the old rsColumn approach; */
itertbl = bat_iterator(tbl);
@@ -2047,6 +2047,9 @@ mvc_export_table_wrap( Client cntxt, Mal
if( b)
BBPunfix(bid);
}
+   if ( msg )
+   goto wrapup_result_set1;
+
/* now select the file channel */
if ( strcmp(filename,"stdout") == 0 )
s= cntxt->fdout;
@@ -2190,6 +2193,7 @@ mvc_export_row_wrap( Client cntxt, MalBl
l = strlen((char *) R);
rsep = GDKmalloc(l + 1);
if(rsep == 0){
+   GDKfree(tsep);
msg = createException(SQL, "sql.resultSet", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
goto wrapup_result_set;
}
@@ -2198,6 +2202,8 @@ mvc_export_row_wrap( Client cntxt, MalBl
l = strlen((char *) S);
ssep = GDKmalloc(l + 1);
if(ssep == 0){
+   GDKfree(tsep);
+   GDKfree(rsep);
msg = createException(SQL, "sql.resultSet", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
goto wrapup_result_set;
}
@@ -2206,6 +2212,9 @@ mvc_export_row_wrap( Client cntxt, MalBl
l = strlen((char *) N);
ns = GDKmalloc(l + 1);
if(ns == 0){
+   GDKfree(tsep);
+   GDKfree(rsep);
+   GDKfree(ssep);
msg = createException(SQL, "sql.resultSet", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
goto wrapup_result_set;
}
@@ -3514,10 +3523,13 @@ sql_querylog_catalog(Client cntxt, MalBl
 {
int i;
BAT *t[8];
+   str msg;
 
(void) cntxt;
(void) mb;
-   QLOGcatalog(t);
+   msg = QLOGcatalog(t);
+   if( msg != MAL_SUCCEED)
+   return msg;
for (i = 0; i < 8; i++) 
if( t[i]){
bat id = t[i]->batCacheid;
@@ -3534,10 +3546,13 @@ sql_querylog_calls(Client cntxt, MalBlkP
 {
int i;
BAT *t[10];
+   str msg;
 
(void) cntxt;
(void) mb;
-   QLOGcalls(t);
+   msg = QLOGcalls(t);
+   if( msg != MAL_SUCCEED)
+   return msg;
for (i = 0; i < 9; i++) 
if( t[i]){
bat id = t[i]->batCacheid;
@@ -3556,8 +3571,7 @@ sql_querylog_empty(Client cntxt, MalBlkP
(void) mb;
(void) stk;
(void) pci;
-   QLOGempty(NULL);
-   return MAL_SUCCEED;
+   return QLOGempty(NULL);
 }
 
 /* str sql_rowid(oid *rid, ptr v, str *sname, str *tname); */
diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -796,7 +796,7 @@ SQLcreate_seq(Client cntxt, MalBlkPtr mb
 str
 SQLalter_seq(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) 
 {  mvc *sql = NULL;
-   str msg;
+   str msg = MAL_SUCCEED;
str sname = *getArgReference_str(stk, pci, 1); 
str seqname = *getArgReference_str(stk, pci, 2); 
sql_sequence *s = *(sql_sequence **) getArgReference(stk, pci, 3);
@@ -815,7 +815,7 @@ SQLalter_seq(Client cntxt, MalBlkPtr mb,
 str
 SQLdrop_seq(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) 
 {  mvc *sql = NULL;
-   str msg;
+   str msg = MAL_SUCCEED;
str sname = *getArgReference_str(stk, pci, 1); 
str name = *getArgReference_str(stk, pci, 2);
 
@@ -827,7 +827,7 @@ SQLdrop_seq(Client cntxt, MalBlkPtr mb, 
 str
 SQLcreate_schema(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) 
 {  mvc *sql = NULL;
-   str msg;
+   str msg = MAL_SUCCEED;
str sname = *getArgReference_str(stk, pci, 1); 
str name = SaveArgReference(stk, pci, 2);
int auth_id;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Just comments

2017-09-18 Thread Martin Kersten
Changeset: aa64687c0e17 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aa64687c0e17
Modified Files:
monetdb5/mal/mal_instruction.c
Branch: default
Log Message:

Just comments


diffs (12 lines):

diff --git a/monetdb5/mal/mal_instruction.c b/monetdb5/mal/mal_instruction.c
--- a/monetdb5/mal/mal_instruction.c
+++ b/monetdb5/mal/mal_instruction.c
@@ -1298,6 +1298,8 @@ pushArgument(MalBlkPtr mb, InstrPtr p, i
if (mb->maxarg < pn->maxarg)
mb->maxarg = pn->maxarg;
}
+   /* protect against the case that the instruction is malloced
+* in isolation */
if( mb->maxarg < p->maxarg)
mb->maxarg= p->maxarg;
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Merge with Jul2017 branch.

2017-09-18 Thread Sjoerd Mullender
Changeset: 149047444b76 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=149047444b76
Modified Files:
clients/mapiclient/tomograph.c
gdk/gdk_aggr.c
gdk/gdk_utils.c
Branch: default
Log Message:

Merge with Jul2017 branch.


diffs (112 lines):

diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -1355,7 +1355,7 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
BUN *restrict rems = NULL;
lng *restrict cnts = NULL;
dbl *restrict dbls;
-   BAT *bn = NULL;
+   BAT *bn = NULL, *cn = NULL;
BUN start, end;
const oid *cand = NULL, *candend = NULL;
const char *err;
@@ -1384,11 +1384,12 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
}
if (cntsp) {
lng zero = 0;
-   if ((*cntsp = BATconstant(ngrp == 0 ? 0 : min, 
TYPE_lng, , ngrp, TRANSIENT)) == NULL) {
+   if ((cn = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, 
, ngrp, TRANSIENT)) == NULL) {
GDKerror("BATgroupavg: failed to create BAT\n");
BBPreclaim(bn);
return GDK_FAIL;
}
+   *cntsp = cn;
}
*bnp = bn;
return GDK_SUCCEED;
@@ -1404,10 +1405,11 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
return GDK_FAIL;
if (cntsp) {
lng one = 1;
-   if ((*cntsp = BATconstant(ngrp == 0 ? 0 : min, 
TYPE_lng, , ngrp, TRANSIENT)) == NULL) {
+   if ((cn = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, 
, ngrp, TRANSIENT)) == NULL) {
BBPreclaim(bn);
return GDK_FAIL;
}
+   *cntsp = cn;
}
*bnp = bn;
return GDK_SUCCEED;
@@ -1430,9 +1432,9 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
break;
}
if (cntsp) {
-   if ((*cntsp = COLnew(min, TYPE_lng, ngrp, TRANSIENT)) == NULL)
+   if ((cn = COLnew(min, TYPE_lng, ngrp, TRANSIENT)) == NULL)
goto alloc_fail;
-   cnts = (lng *) Tloc(*cntsp, 0);
+   cnts = (lng *) Tloc(cn, 0);
memset(cnts, 0, ngrp * sizeof(lng));
} else {
cnts = GDKzalloc(ngrp * sizeof(lng));
@@ -1476,8 +1478,8 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
break;
default:
GDKfree(rems);
-   if (cntsp)
-   BBPreclaim(*cntsp);
+   if (cn)
+   BBPreclaim(cn);
else
GDKfree(cnts);
BBPunfix(bn->batCacheid);
@@ -1486,15 +1488,16 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
return GDK_FAIL;
}
GDKfree(rems);
-   if (cntsp == NULL)
+   if (cn == NULL)
GDKfree(cnts);
else {
-   BATsetcount(*cntsp, ngrp);
-   (*cntsp)->tkey = BATcount(*cntsp) <= 1;
-   (*cntsp)->tsorted = BATcount(*cntsp) <= 1;
-   (*cntsp)->trevsorted = BATcount(*cntsp) <= 1;
-   (*cntsp)->tnil = 0;
-   (*cntsp)->tnonil = 1;
+   BATsetcount(cn, ngrp);
+   cn->tkey = BATcount(cn) <= 1;
+   cn->tsorted = BATcount(cn) <= 1;
+   cn->trevsorted = BATcount(cn) <= 1;
+   cn->tnil = 0;
+   cn->tnonil = 1;
+   *cntsp = cn;
}
BATsetcount(bn, ngrp);
bn->tkey = BATcount(bn) <= 1;
@@ -1511,6 +1514,7 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
GDKfree(rems);
if (cntsp) {
BBPreclaim(*cntsp);
+   *cntsp = NULL;
} else if (cnts) {
GDKfree(cnts);
}
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -979,12 +979,8 @@ doGDKaddbuf(const char *prefix, const ch
}
*dst = '\0';
} else {
-   /* construct format string because the format string
-* must start with ! */
-   char format[32];
-
-   snprintf(format, sizeof(format), "%s%%.*s%s", prefix ? prefix : 
"", suffix ? suffix : "");
-   THRprintf(GDKout, format, (int) messagelen, message);
+   THRprintf(GDKout, "%s%.*s%s", prefix ? prefix : "",
+ (int) messagelen, message, suffix ? suffix : "");
}
 }
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2017 - Fix an old thinko and use a constant string a...

2017-09-18 Thread Sjoerd Mullender
Changeset: c47e8f94d083 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c47e8f94d083
Modified Files:
gdk/gdk_utils.c
Branch: Jul2017
Log Message:

Fix an old thinko and use a constant string as format string.


diffs (18 lines):

diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -979,12 +979,8 @@ doGDKaddbuf(const char *prefix, const ch
}
*dst = '\0';
} else {
-   /* construct format string because the format string
-* must start with ! */
-   char format[32];
-
-   snprintf(format, sizeof(format), "%s%%.*s%s", prefix ? prefix : 
"", suffix ? suffix : "");
-   THRprintf(GDKout, format, (int) messagelen, message);
+   THRprintf(GDKout, "%s%.*s%s", prefix ? prefix : "",
+ (int) messagelen, message, suffix ? suffix : "");
}
 }
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2017 - Simplify code, and only use constant strings ...

2017-09-18 Thread Sjoerd Mullender
Changeset: edb31e432865 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=edb31e432865
Modified Files:
clients/mapiclient/tomograph.c
Branch: Jul2017
Log Message:

Simplify code, and only use constant strings as fprintf formats.
(grafted from 976a4b688e4f1c0c123df6b16208737d90670070)


diffs (70 lines):

diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c
--- a/clients/mapiclient/tomograph.c
+++ b/clients/mapiclient/tomograph.c
@@ -954,49 +954,23 @@ showio(void)
 static void
 fprintf_time(FILE *f, lng time)
 {
-   int TME = TME_DD|TME_HH|TME_MM|TME_SS|TME_MS|TME_US;
-   int tail = 0;
-   const char *fmt = NULL;
-
-   if (TME & TME_DD && (tail || time >= US_DD)) {
-   fmt = LLFMT"%s";
-   fprintf(f, fmt, time / US_DD, " d ");
-   time %= US_DD;
-   TME &= TME_HH;
-   tail = 1;
-   }
-   if (TME & TME_HH && (tail || time >= US_HH)) {
-   fmt = tail ? "%02d%s" : "%d%s";
-   fprintf(f, fmt, (int) (time / US_HH), " h ");
-   time %= US_HH;
-   TME &= TME_MM;
-   tail = 1;
-   }
-   if (TME & TME_MM && (tail || time >= US_MM)) {
-   fmt = tail ? "%02d%s" : "%d%s";
-   fprintf(f, fmt, (int) (time / US_MM), " m ");
-   time %= US_MM;
-   TME &= TME_SS;
-   tail = 1;
-   }
-   if (TME & TME_SS && (tail || time >= US_SS)) {
-   fmt = tail ? "%02d%s" : "%d%s";
-   fprintf(f, fmt, (int) (time / US_SS), (TME & TME_MS) ? "." : " 
s ");
-   time %= US_SS;
-   TME &= TME_MS;
-   tail = 1;
-   }
-   if (TME & TME_MS && (tail || time >= US_MS)) {
-   fmt = tail ? "%03d%s" : "%d%s";
-   fprintf(f, fmt, (int) (time / US_MS), (TME & TME_US) ? "." : " 
s ");
-   time %= US_MS;
-   TME &= TME_US;
-   tail = 1;
-   }
-   if (TME & TME_US) {
-   fmt = tail ? "%03d%s" : "%d%s";
-   fprintf(f, fmt, (int) time, tail ? " ms " : " us ");
-   }
+   if (time >= US_DD)
+   fprintf(f, LLFMT " d %02d h ", time / US_DD,
+   (int) ((time % US_DD) / US_HH));
+   else if (time >= US_HH)
+   fprintf(f, "%d h %02d m ", (int) (time / US_HH),
+   (int) ((time % US_HH) / US_MM));
+   else if (time >= US_MM)
+   fprintf(f, "%d m %02d s ", (int) (time / US_MM),
+   (int) ((time % US_MM) / US_SS));
+   else if (time >= US_SS)
+   fprintf(f, "%d.%03d s ", (int) (time / US_SS),
+   (int) ((time % US_SS) / US_MS));
+   else if (time >= US_MS)
+   fprintf(f, "%d.%03d ms ", (int) (time / US_MS),
+   (int) ((time % US_MS)));
+   else
+   fprintf(f, "%d us ", (int) time);
 }
 
 /* produce a legenda image for the color map */
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2017 - Use an extra variable for convenience.

2017-09-18 Thread Sjoerd Mullender
Changeset: 5d787ca83a77 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5d787ca83a77
Modified Files:
gdk/gdk_aggr.c
Branch: Jul2017
Log Message:

Use an extra variable for convenience.


diffs (94 lines):

diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -1355,7 +1355,7 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
BUN *restrict rems = NULL;
lng *restrict cnts = NULL;
dbl *restrict dbls;
-   BAT *bn = NULL;
+   BAT *bn = NULL, *cn = NULL;
BUN start, end;
const oid *cand = NULL, *candend = NULL;
const char *err;
@@ -1384,11 +1384,12 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
}
if (cntsp) {
lng zero = 0;
-   if ((*cntsp = BATconstant(ngrp == 0 ? 0 : min, 
TYPE_lng, , ngrp, TRANSIENT)) == NULL) {
+   if ((cn = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, 
, ngrp, TRANSIENT)) == NULL) {
GDKerror("BATgroupavg: failed to create BAT\n");
BBPreclaim(bn);
return GDK_FAIL;
}
+   *cntsp = cn;
}
*bnp = bn;
return GDK_SUCCEED;
@@ -1404,10 +1405,11 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
return GDK_FAIL;
if (cntsp) {
lng one = 1;
-   if ((*cntsp = BATconstant(ngrp == 0 ? 0 : min, 
TYPE_lng, , ngrp, TRANSIENT)) == NULL) {
+   if ((cn = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, 
, ngrp, TRANSIENT)) == NULL) {
BBPreclaim(bn);
return GDK_FAIL;
}
+   *cntsp = cn;
}
*bnp = bn;
return GDK_SUCCEED;
@@ -1430,9 +1432,9 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
break;
}
if (cntsp) {
-   if ((*cntsp = COLnew(min, TYPE_lng, ngrp, TRANSIENT)) == NULL)
+   if ((cn = COLnew(min, TYPE_lng, ngrp, TRANSIENT)) == NULL)
goto alloc_fail;
-   cnts = (lng *) Tloc(*cntsp, 0);
+   cnts = (lng *) Tloc(cn, 0);
memset(cnts, 0, ngrp * sizeof(lng));
} else {
cnts = GDKzalloc(ngrp * sizeof(lng));
@@ -1476,8 +1478,8 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
break;
default:
GDKfree(rems);
-   if (cntsp)
-   BBPreclaim(*cntsp);
+   if (cn)
+   BBPreclaim(cn);
else
GDKfree(cnts);
BBPunfix(bn->batCacheid);
@@ -1486,15 +1488,16 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
return GDK_FAIL;
}
GDKfree(rems);
-   if (cntsp == NULL)
+   if (cn == NULL)
GDKfree(cnts);
else {
-   BATsetcount(*cntsp, ngrp);
-   (*cntsp)->tkey = BATcount(*cntsp) <= 1;
-   (*cntsp)->tsorted = BATcount(*cntsp) <= 1;
-   (*cntsp)->trevsorted = BATcount(*cntsp) <= 1;
-   (*cntsp)->tnil = 0;
-   (*cntsp)->tnonil = 1;
+   BATsetcount(cn, ngrp);
+   cn->tkey = BATcount(cn) <= 1;
+   cn->tsorted = BATcount(cn) <= 1;
+   cn->trevsorted = BATcount(cn) <= 1;
+   cn->tnil = 0;
+   cn->tnonil = 1;
+   *cntsp = cn;
}
BATsetcount(bn, ngrp);
bn->tkey = BATcount(bn) <= 1;
@@ -1511,6 +1514,7 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
GDKfree(rems);
if (cntsp) {
BBPreclaim(*cntsp);
+   *cntsp = NULL;
} else if (cnts) {
GDKfree(cnts);
}
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Simplify code, and only use constant strings ...

2017-09-18 Thread Sjoerd Mullender
Changeset: 976a4b688e4f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=976a4b688e4f
Modified Files:
clients/mapiclient/tomograph.c
Branch: default
Log Message:

Simplify code, and only use constant strings as fprintf formats.


diffs (70 lines):

diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c
--- a/clients/mapiclient/tomograph.c
+++ b/clients/mapiclient/tomograph.c
@@ -953,49 +953,23 @@ showio(void)
 static void
 fprintf_time(FILE *f, lng time)
 {
-   int TME = TME_DD|TME_HH|TME_MM|TME_SS|TME_MS|TME_US;
-   int tail = 0;
-   const char *fmt = NULL;
-
-   if (TME & TME_DD && (tail || time >= US_DD)) {
-   fmt = LLFMT"%s";
-   fprintf(f, fmt, time / US_DD, " d ");
-   time %= US_DD;
-   TME &= TME_HH;
-   tail = 1;
-   }
-   if (TME & TME_HH && (tail || time >= US_HH)) {
-   fmt = tail ? "%02d%s" : "%d%s";
-   fprintf(f, fmt, (int) (time / US_HH), " h ");
-   time %= US_HH;
-   TME &= TME_MM;
-   tail = 1;
-   }
-   if (TME & TME_MM && (tail || time >= US_MM)) {
-   fmt = tail ? "%02d%s" : "%d%s";
-   fprintf(f, fmt, (int) (time / US_MM), " m ");
-   time %= US_MM;
-   TME &= TME_SS;
-   tail = 1;
-   }
-   if (TME & TME_SS && (tail || time >= US_SS)) {
-   fmt = tail ? "%02d%s" : "%d%s";
-   fprintf(f, fmt, (int) (time / US_SS), (TME & TME_MS) ? "." : " 
s ");
-   time %= US_SS;
-   TME &= TME_MS;
-   tail = 1;
-   }
-   if (TME & TME_MS && (tail || time >= US_MS)) {
-   fmt = tail ? "%03d%s" : "%d%s";
-   fprintf(f, fmt, (int) (time / US_MS), (TME & TME_US) ? "." : " 
s ");
-   time %= US_MS;
-   TME &= TME_US;
-   tail = 1;
-   }
-   if (TME & TME_US) {
-   fmt = tail ? "%03d%s" : "%d%s";
-   fprintf(f, fmt, (int) time, tail ? " ms " : " us ");
-   }
+   if (time >= US_DD)
+   fprintf(f, LLFMT " d %02d h ", time / US_DD,
+   (int) ((time % US_DD) / US_HH));
+   else if (time >= US_HH)
+   fprintf(f, "%d h %02d m ", (int) (time / US_HH),
+   (int) ((time % US_HH) / US_MM));
+   else if (time >= US_MM)
+   fprintf(f, "%d m %02d s ", (int) (time / US_MM),
+   (int) ((time % US_MM) / US_SS));
+   else if (time >= US_SS)
+   fprintf(f, "%d.%03d s ", (int) (time / US_SS),
+   (int) ((time % US_SS) / US_MS));
+   else if (time >= US_MS)
+   fprintf(f, "%d.%03d ms ", (int) (time / US_MS),
+   (int) ((time % US_MS)));
+   else
+   fprintf(f, "%d us ", (int) time);
 }
 
 /* produce a legenda image for the color map */
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: compressedcandidates - Merge with default

2017-09-18 Thread Martin Kersten
Changeset: 6cfbe1090e26 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6cfbe1090e26
Added Files:
sql/jdbc/tests/Tests/Bug_PrepStmtSetString_6382.SQL.bat
sql/jdbc/tests/Tests/Bug_PrepStmtSetString_6382.SQL.sh
sql/jdbc/tests/Tests/Bug_PrepStmtSetString_6382.stable.err
sql/jdbc/tests/Tests/Bug_PrepStmtSetString_6382.stable.out
sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.sql
sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.err
sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.out
sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.sql
sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.err
sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.out
sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.err
sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out

sql/test/BugTracker-2017/Tests/udf_crash_subquery_scalar_paramters.Bug-6399.sql

sql/test/BugTracker-2017/Tests/udf_crash_subquery_scalar_paramters.Bug-6399.stable.err

sql/test/BugTracker-2017/Tests/udf_crash_subquery_scalar_paramters.Bug-6399.stable.out
sql/test/Tests/constant-not-in.sql
sql/test/Tests/constant-not-in.stable.err
sql/test/Tests/constant-not-in.stable.out

sql/test/bugs/Tests/unicode_varchar-bug-sf-1041324_JdbcClient.stable.out.Windows
Modified Files:
NT/monetdb_config.h.in
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
clients/mapiclient/ReadlineTools.c
clients/mapiclient/eventparser.c
clients/mapiclient/mclient.c
clients/mapiclient/mhelp.c
clients/mapiclient/tomograph.c
clients/mapilib/mapi.c
clients/odbc/driver/ODBCConvert.c
clients/odbc/driver/ODBCUtil.c
common/options/monet_options.c
common/stream/stream.c
common/utils/mutils.c
common/utils/strptime.c
configure.ag
gdk/ChangeLog
gdk/gdk.h
gdk/gdk_aggr.c
gdk/gdk_atoms.c
gdk/gdk_atoms.h
gdk/gdk_bat.c
gdk/gdk_batop.c
gdk/gdk_bbp.c
gdk/gdk_calc.c
gdk/gdk_firstn.c
gdk/gdk_heap.c
gdk/gdk_logger.c
gdk/gdk_orderidx.c
gdk/gdk_select.c
gdk/gdk_storage.c
gdk/gdk_utils.c
gdk/gdk_value.c
geom/lib/libgeom.c
geom/lib/libgeom.h
geom/monetdb5/geom.c
geom/monetdb5/geom.h
geom/monetdb5/geomBulk.c
monetdb5/mal/Tests/tst1200.malC
monetdb5/mal/Tests/tst1200.stable.out
monetdb5/mal/Tests/tst1203.malC
monetdb5/mal/Tests/tst1203.stable.out
monetdb5/mal/Tests/tst1205.malC
monetdb5/mal/mal.h
monetdb5/mal/mal_atom.c
monetdb5/mal/mal_atom.h
monetdb5/mal/mal_authorize.c
monetdb5/mal/mal_client.c
monetdb5/mal/mal_client.h
monetdb5/mal/mal_debugger.c
monetdb5/mal/mal_exception.c
monetdb5/mal/mal_instruction.c
monetdb5/mal/mal_instruction.h
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_listing.c
monetdb5/mal/mal_module.c
monetdb5/mal/mal_parser.c
monetdb5/mal/mal_profiler.c
monetdb5/mal/mal_readline.c
monetdb5/mal/mal_scenario.c
monetdb5/mal/mal_session.c
monetdb5/mal/mal_type.c
monetdb5/modules/atoms/Tests/inet01.stable.out
monetdb5/modules/atoms/Tests/json04.stable.out
monetdb5/modules/atoms/blob.c
monetdb5/modules/atoms/blob.h
monetdb5/modules/atoms/color.c
monetdb5/modules/atoms/color.h
monetdb5/modules/atoms/identifier.c
monetdb5/modules/atoms/inet.c
monetdb5/modules/atoms/json.c
monetdb5/modules/atoms/json.h
monetdb5/modules/atoms/mtime.c
monetdb5/modules/atoms/mtime.h
monetdb5/modules/atoms/str.c
monetdb5/modules/atoms/url.c
monetdb5/modules/atoms/url.h
monetdb5/modules/atoms/uuid.c
monetdb5/modules/atoms/xml.c
monetdb5/modules/atoms/xml.h
monetdb5/modules/kernel/algebra.c
monetdb5/modules/kernel/bat5.c
monetdb5/modules/kernel/batcolor.c
monetdb5/modules/kernel/mmath.h
monetdb5/modules/mal/inspect.c
monetdb5/modules/mal/mal_io.c
monetdb5/modules/mal/mal_mapi.c
monetdb5/modules/mal/mdb.c
monetdb5/modules/mal/oltp.c
monetdb5/modules/mal/remote.c
monetdb5/modules/mal/tablet.c
monetdb5/modules/mal/tablet.h
monetdb5/modules/mal/txtsim.c
monetdb5/modules/mal/wlc.c
monetdb5/optimizer/opt_evaluate.c
monetdb5/optimizer/opt_json.c
monetdb5/optimizer/opt_macro.c
monetdb5/optimizer/opt_mergetable.c

MonetDB: compressedcandidates - Framework for bit-candidate lists

2017-09-18 Thread Martin Kersten
Changeset: 49ed353f273d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=49ed353f273d
Added Files:
monetdb5/modules/mal/bitcandidates.c
monetdb5/modules/mal/bitcandidates.h
monetdb5/modules/mal/bitcandidates.mal
monetdb5/optimizer/Tests/BCLexample.malC
monetdb5/optimizer/opt_bitcandidates.c
monetdb5/optimizer/opt_bitcandidates.h
Branch: compressedcandidates
Log Message:

Framework for bit-candidate lists
The (de-)compress of candidates framework. Next step is to
actually compress them.


diffs (233 lines):

diff --git a/monetdb5/modules/mal/bitcandidates.c 
b/monetdb5/modules/mal/bitcandidates.c
new file mode 100644
--- /dev/null
+++ b/monetdb5/modules/mal/bitcandidates.c
@@ -0,0 +1,43 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
+ */
+
+#include "monetdb_config.h"
+#include "bitcandidates.h"
+#include "mal.h"
+#include "mal_instruction.h"
+#include "mal_interpreter.h"
+
+str
+BCLcompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+bat *ret = getArgReference_bat(stk,pci,0);
+bat *val = getArgReference_bat(stk,pci,1);
+   BAT *b;
+(void) cntxt;
+(void) mb;
+   b = BATdescriptor(*val);
+   if( b == NULL)
+   throw(MAL,"compress",INTERNAL_BAT_ACCESS);
+BBPkeepref(*ret = *val);
+   return MAL_SUCCEED;
+}
+
+str
+BCLdecompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+bat *ret = getArgReference_bat(stk,pci,0);
+bat *val = getArgReference_bat(stk,pci,1);
+   BAT *b;
+(void) cntxt;
+(void) mb;
+   b = BATdescriptor(*val);
+   if( b == NULL)
+   throw(MAL,"decompress",INTERNAL_BAT_ACCESS);
+BBPkeepref(*ret = *val);
+   return MAL_SUCCEED;
+}
diff --git a/monetdb5/modules/mal/bitcandidates.h 
b/monetdb5/modules/mal/bitcandidates.h
new file mode 100644
--- /dev/null
+++ b/monetdb5/modules/mal/bitcandidates.h
@@ -0,0 +1,17 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
+ */
+
+#ifndef _BITCANDIDATES_
+#define _BITCANDIDATES_
+#include "mal.h"
+#include "mal_client.h"
+#include "mal_interpreter.h"
+
+mal_export str BCLcompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
+mal_export str BCLdecompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+#endif
diff --git a/monetdb5/modules/mal/bitcandidates.mal 
b/monetdb5/modules/mal/bitcandidates.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/modules/mal/bitcandidates.mal
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
+
+module candidates;
+
+pattern compress(b:bat[:oid]):bat[:oid]
+address BCLcompress
+comment "Compress the bat into a bitvector";
+
+pattern decompress(b:bat[:oid]):bat[:oid]
+address BCLdecompress
+comment "Compress the bat into a bitvector";
diff --git a/monetdb5/optimizer/Tests/BCLexample.malC 
b/monetdb5/optimizer/Tests/BCLexample.malC
new file mode 100644
--- /dev/null
+++ b/monetdb5/optimizer/Tests/BCLexample.malC
@@ -0,0 +1,8 @@
+function f();
+ a := bat.new(:int);
+ C_2:= algebra.select(a,nil:bat[:oid], 0,10,true,true,false);
+ C_3:= algebra.select(a, C_2, 0,10,true,true,false);
+ io.print(C_2);
+end f;
+optimizer.bitcandidates("user","f");
+mdb.list("user","f");
diff --git a/monetdb5/optimizer/opt_bitcandidates.c 
b/monetdb5/optimizer/opt_bitcandidates.c
new file mode 100644
--- /dev/null
+++ b/monetdb5/optimizer/opt_bitcandidates.c
@@ -0,0 +1,102 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
+ */
+
+/*
+ * Use bit compressed candidate lists.
+ */
+
+#include "monetdb_config.h"
+#include "mal_instruction.h"
+#include "opt_bitcandidates.h"
+
+str
+OPTbitcandidatesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci)
+{
+   int i, j, k, actions =0, limit=0, slimit=0;
+   InstrPtr *old, p,q;
+   int *alias = 0;
+   lng usec = GDKusec();
+   char buf[256];
+
+   (void) cntxt;
+   (void) stk;
+   (void) pci;
+
+   limit = mb->stop;
+   slimit = mb->ssize;
+   old = mb->stmt;
+
+   // first check number of 

MonetDB: compressedcandidates - A new branch

2017-09-18 Thread Martin Kersten
Changeset: 98dd19184f5d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=98dd19184f5d
Modified Files:
monetdb5/modules/mal/Makefile.ag
monetdb5/modules/mal/mal_init.mal
monetdb5/optimizer/Makefile.ag
monetdb5/optimizer/Tests/All
monetdb5/optimizer/opt_pipes.c
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_prelude.h
monetdb5/optimizer/opt_wrapper.c
monetdb5/optimizer/optimizer.mal
sql/test/Tests/setoptimizer.stable.out
Branch: compressedcandidates
Log Message:

A new branch


diffs (204 lines):

diff --git a/monetdb5/modules/mal/Makefile.ag b/monetdb5/modules/mal/Makefile.ag
--- a/monetdb5/modules/mal/Makefile.ag
+++ b/monetdb5/modules/mal/Makefile.ag
@@ -20,6 +20,7 @@ lib_mal = {
SOURCES = \
batExtensions.c batExtensions.h \
bbp.c bbp.h \
+   bitcandidates.c bitcandidates.h \
clients.c clients.h \
factories.c factories.h \
groupby.c groupby.h \
@@ -55,7 +56,7 @@ lib_mal = {
 headers_mal = {
HEADERS = mal
DIR = libdir/monetdb5
-   SOURCES = language.mal mal_init.mal bbp.mal \
+   SOURCES = language.mal mal_init.mal bbp.mal bitcandidates.mal \
profiler.mal batExtensions.mal orderidx.mal \
inspect.mal manual.mal mal_io.mal mkey.mal manifold.mal \
iterator.mal clients.mal \
diff --git a/monetdb5/modules/mal/mal_init.mal 
b/monetdb5/modules/mal/mal_init.mal
--- a/monetdb5/modules/mal/mal_init.mal
+++ b/monetdb5/modules/mal/mal_init.mal
@@ -88,6 +88,7 @@ include txtsim;
 include tokenizer;
 
 include mal_mapi;
+include bitcandidates;
 include oltp;
 include wlc;
 
diff --git a/monetdb5/optimizer/Makefile.ag b/monetdb5/optimizer/Makefile.ag
--- a/monetdb5/optimizer/Makefile.ag
+++ b/monetdb5/optimizer/Makefile.ag
@@ -21,6 +21,7 @@ lib_optimizer = {
opt_aliases.c opt_aliases.h \
opt_coercion.c opt_coercion.h \
opt_commonTerms.c opt_commonTerms.h \
+   opt_bitcandidates.c opt_bitcandidates.h \
opt_candidates.c opt_candidates.h \
opt_constants.c opt_constants.h \
opt_costModel.c opt_costModel.h \
diff --git a/monetdb5/optimizer/Tests/All b/monetdb5/optimizer/Tests/All
--- a/monetdb5/optimizer/Tests/All
+++ b/monetdb5/optimizer/Tests/All
@@ -70,6 +70,7 @@ GCexample01
 CXexample
 JPexample
 Mexample
+BCLexample
 
 THREADS>=2?dataflow
 THREADS>=2?dataflow3
diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c
--- a/monetdb5/optimizer/opt_pipes.c
+++ b/monetdb5/optimizer/opt_pipes.c
@@ -89,6 +89,7 @@ static struct PIPELINES {
 "optimizer.generator();"
 "optimizer.profiler();"
 "optimizer.candidates();"
+"optimizer.bitcandidates();"
 //  "optimizer.jit();" awaiting the new batcalc api
 //  "optimizer.oltp();"awaiting the autocommit front-end changes
 "optimizer.wlc();"
diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c
--- a/monetdb5/optimizer/opt_prelude.c
+++ b/monetdb5/optimizer/opt_prelude.c
@@ -69,6 +69,7 @@ str emptybindidxRef;
 str bpmRef;
 str bstreamRef;
 str calcRef;
+str candidatesRef;
 str catalogRef;
 str clear_tableRef;
 str closeRef;
@@ -76,6 +77,7 @@ str columnRef;
 str columnBindRef;
 str commitRef;
 str connectRef;
+str compressRef;
 str countRef;
 str subcountRef;
 str copyRef;
@@ -98,6 +100,7 @@ str create_functionRef;
 str create_triggerRef;
 str dataflowRef;
 str dblRef;
+str decompressRef;
 str defineRef;
 str deleteRef;
 str differenceRef;
@@ -358,6 +361,7 @@ void optimizerInit(void)
bpmRef = putName("bpm");
bstreamRef = putName("bstream");
calcRef = putName("calc");
+   candidatesRef = putName("candidates");
catalogRef = putName("catalog");
clear_tableRef = putName("clear_table");
closeRef = putName("close");
@@ -365,6 +369,7 @@ void optimizerInit(void)
columnBindRef = putName("columnBind");
commitRef = putName("commit");
connectRef = putName("connect");
+   compressRef = putName("compress");
countRef = putName("count");
subcountRef = putName("subcount");
copyRef = putName("copy");
@@ -388,6 +393,7 @@ void optimizerInit(void)
dateRef = putName("date");
dataflowRef = putName("dataflow");
dblRef = putName("dbl");
+   decompressRef = putName("decompress");
defineRef = putName("define");
deleteRef = putName("delete");
differenceRef = putName("difference");
diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h
--- a/monetdb5/optimizer/opt_prelude.h
+++ b/monetdb5/optimizer/opt_prelude.h
@@ -67,6 +67,7 @@ mal_exportstr emptybindidxRef;
 mal_export  str bpmRef;
 mal_export  str bstreamRef;
 mal_export  str calcRef;
+mal_export  str 

MonetDB: data-vaults - Merge with default

2017-09-18 Thread Panagiotis Koutsourakis
Changeset: 54b74c40f2f9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=54b74c40f2f9
Added Files:
sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.sql
sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.err
sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.out
sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.sql
sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.err
sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.out
sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.err
sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out

sql/test/bugs/Tests/unicode_varchar-bug-sf-1041324_JdbcClient.stable.out.Windows
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
clients/mapiclient/ReadlineTools.c
clients/mapiclient/eventparser.c
clients/mapiclient/mhelp.c
clients/mapiclient/tomograph.c
clients/mapilib/mapi.c
clients/odbc/driver/ODBCConvert.c
clients/odbc/driver/ODBCUtil.c
common/options/monet_options.c
common/utils/mutils.c
common/utils/strptime.c
configure.ag
gdk/ChangeLog
gdk/gdk.h
gdk/gdk_atoms.c
gdk/gdk_atoms.h
gdk/gdk_bat.c
gdk/gdk_calc.c
gdk/gdk_select.c
gdk/gdk_value.c
geom/monetdb5/geom.c
monetdb5/mal/mal_client.c
monetdb5/mal/mal_debugger.c
monetdb5/mal/mal_instruction.c
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_listing.c
monetdb5/mal/mal_parser.c
monetdb5/mal/mal_profiler.c
monetdb5/mal/mal_readline.c
monetdb5/mal/mal_type.c
monetdb5/modules/atoms/blob.c
monetdb5/modules/atoms/color.c
monetdb5/modules/atoms/inet.c
monetdb5/modules/atoms/json.c
monetdb5/modules/atoms/mtime.c
monetdb5/modules/atoms/str.c
monetdb5/modules/atoms/url.c
monetdb5/modules/atoms/uuid.c
monetdb5/modules/atoms/xml.c
monetdb5/modules/kernel/algebra.c
monetdb5/modules/mal/inspect.c
monetdb5/modules/mal/mal_io.c
monetdb5/modules/mal/mal_mapi.c
monetdb5/modules/mal/mdb.c
monetdb5/modules/mal/remote.c
monetdb5/modules/mal/tablet.c
monetdb5/modules/mal/txtsim.c
monetdb5/modules/mal/wlc.c
monetdb5/optimizer/opt_projectionpath.c
monetdb5/optimizer/opt_remoteQueries.c
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.h
sql/backends/monet5/sql.mal
sql/backends/monet5/sql_cast.c
sql/backends/monet5/sql_execute.c
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_result.c
sql/backends/monet5/sql_statement.c
sql/backends/monet5/sql_statistics.c
sql/backends/monet5/vaults/bam/bam_export.c
sql/backends/monet5/vaults/shp/shp.c
sql/benchmarks/tpch/fileleak/Tests/leaks.stable.out
sql/benchmarks/tpch/fileleak/Tests/leaks.stable.out.Windows
sql/common/sql_string.c
sql/include/sql_relation.h
sql/jdbc/tests/Tests/Test_CisValid.stable.out
sql/server/rel_dump.c
sql/server/rel_exp.c
sql/server/rel_optimizer.c
sql/server/rel_updates.c
sql/server/sql_atom.c
sql/server/sql_decimal.c
sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
sql/test/BugTracker-2017/Tests/All
sql/test/BugTracker-2017/Tests/sqllitelogistest_case.Bug-6335.sql
testing/difflib.c
testing/helpers.h
Branch: data-vaults
Log Message:

Merge with default


diffs (truncated from 4576 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -8366,19 +8366,15 @@ Ready.
 [ "sql",   "dec_round","command sql.dec_round(v:int, r:int):int ", 
"int_dec_round_wrap;",  "round off the value v to nearests multiple of r"   
]
 [ "sql",   "dec_round","command sql.dec_round(v:lng, r:lng):lng ", 
"lng_dec_round_wrap;",  "round off the value v to nearests multiple of r"   
]
 [ "sql",   "dec_round","command sql.dec_round(v:sht, r:sht):sht ", 
"sht_dec_round_wrap;",  "round off the value v to nearests multiple of r"   
]
-[ "sql",   "declaredTable","pattern 
sql.declaredTable(name:str):int ", "mvc_declared_table_wrap;", "Prepare 
a declared table"  ]
 [ "sql",   "delete",   "pattern sql.delete(mvc:int, sname:str, 
tname:str, b:any):int ",

monetdb-java: embedded - Preparing new release

2017-09-18 Thread Pedro Ferreira
Changeset: 0f95fee3cf29 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=0f95fee3cf29
Modified Files:
build.properties
Branch: embedded
Log Message:

Preparing new release


diffs (21 lines):

diff --git a/build.properties b/build.properties
--- a/build.properties
+++ b/build.properties
@@ -19,7 +19,7 @@ MCL_MINOR=14
 # major release number
 JDBC_MAJOR=2
 # minor release number
-JDBC_MINOR=31
+JDBC_MINOR=32
 # an additional identifying string
 JDBC_VER_SUFFIX=Liberica
 # the default port to connect on, if no port given when using SQL
@@ -31,6 +31,6 @@ JDBC_DEF_PORT=5
 ##
 
 # should we compile with debugging symbols
-enable_debug=true
+enable_debug=false
 # should we optimize the build, preferably not for debugging
-enable_optimize=false
+enable_optimize=true
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


monetdb-java: embedded - Fixed identation and in-memory option f...

2017-09-18 Thread Pedro Ferreira
Changeset: 477c4de0eda2 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=477c4de0eda2
Modified Files:
pom.xml
src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in
src/main/java/nl/cwi/monetdb/mcl/connection/ControlCommands.java
src/main/java/nl/cwi/monetdb/mcl/connection/IMonetDBLanguage.java
src/main/java/nl/cwi/monetdb/mcl/connection/SenderThread.java

src/main/java/nl/cwi/monetdb/mcl/connection/helpers/BufferReallocator.java
src/main/java/nl/cwi/monetdb/mcl/connection/helpers/ChannelSecurity.java

src/main/java/nl/cwi/monetdb/mcl/connection/helpers/GregorianCalendarParser.java
src/main/java/nl/cwi/monetdb/mcl/connection/helpers/TimestampHelper.java
src/main/java/nl/cwi/monetdb/mcl/connection/mapi/AbstractSocket.java
src/main/java/nl/cwi/monetdb/mcl/connection/mapi/MapiConnection.java
src/main/java/nl/cwi/monetdb/mcl/connection/mapi/MapiLanguage.java
src/main/java/nl/cwi/monetdb/mcl/connection/mapi/OldMapiSocket.java
src/main/java/nl/cwi/monetdb/mcl/protocol/AbstractProtocol.java
src/main/java/nl/cwi/monetdb/mcl/protocol/ServerResponses.java
src/main/java/nl/cwi/monetdb/mcl/protocol/StarterHeaders.java
src/main/java/nl/cwi/monetdb/mcl/protocol/TableResultHeaders.java

src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiDataBlockResponse.java
src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiProtocol.java

src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiServerResponseParser.java

src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiStartOfHeaderParser.java

src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiTableHeaderParser.java

src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiTupleLineParser.java

src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiTupleLineParserHelper.java

src/main/java/nl/cwi/monetdb/mcl/responses/AbstractDataBlockResponse.java
src/main/java/nl/cwi/monetdb/mcl/responses/AutoCommitResponse.java
src/main/java/nl/cwi/monetdb/mcl/responses/IIncompleteResponse.java
src/main/java/nl/cwi/monetdb/mcl/responses/IResponse.java
src/main/java/nl/cwi/monetdb/mcl/responses/ResultSetResponse.java
src/main/java/nl/cwi/monetdb/mcl/responses/SchemaResponse.java
src/main/java/nl/cwi/monetdb/mcl/responses/UpdateResponse.java
Branch: embedded
Log Message:

Fixed identation and in-memory option for the embedded connection


diffs (truncated from 7816 to 300 lines):

diff --git a/pom.xml b/pom.xml
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 
 monetdb
 monetdb-jdbc-new
-2.31
+2.32
 MonetDB JDBC new
 MonetDB Adapted JDBC driver for embedded 
connection
 https://www.monetdb.org
diff --git a/src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in 
b/src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in
--- a/src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in
+++ b/src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in
@@ -69,7 +69,7 @@ public final class MonetDriver implement
/** MonetDB default port to connect to */
private static final String PORT = "@JDBC_DEF_PORT@";
 
-private static Class embeddedConnectionClass = null;
+   private static Class embeddedConnectionClass = null;
 
// initialize this class: register it at the DriverManager
// Chapter 9.2 from Sun JDBC 3.0 specification
@@ -348,59 +348,59 @@ public final class MonetDriver implement
throw new SQLException("Invalid URL: it does not start 
with: " + MONETURL, "08M26");
 
if(!url.startsWith("jdbc:monetdb:embedded:")) {
-   // url should be of style jdbc:monetdb:///
-isEmbedded = false;
-URI uri;
-try {
-uri = new URI(url.substring(5));
-} catch (URISyntaxException e) {
-throw new SQLException(e.toString(), "08M26");
-}
+   // url should be of style 
jdbc:monetdb:///
+   isEmbedded = false;
+   URI uri;
+   try {
+   uri = new URI(url.substring(5));
+   } catch (URISyntaxException e) {
+   throw new SQLException(e.toString(), "08M26");
+   }
 
-String uri_host = uri.getHost();
-if (uri_host == null)
-throw new SQLException("Invalid URL: no hostname given or 
unparsable in '" + url + "'", "08M26");
-info.put("host", uri_host);
+   String uri_host = uri.getHost();
+   if (uri_host == null)
+   throw new SQLException("Invalid URL: no 
hostname given or unparsable in '" + url + "'", "08M26");
+   

MonetDB: default - Error checking.

2017-09-18 Thread Sjoerd Mullender
Changeset: 6c3e7b40e3ee for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6c3e7b40e3ee
Modified Files:
monetdb5/modules/mal/wlc.c
Branch: default
Log Message:

Error checking.


diffs (12 lines):

diff --git a/monetdb5/modules/mal/wlc.c b/monetdb5/modules/mal/wlc.c
--- a/monetdb5/modules/mal/wlc.c
+++ b/monetdb5/modules/mal/wlc.c
@@ -673,6 +673,8 @@ WLCdelete(Client cntxt, MalBlkPtr mb, Ma
tpe= getArgType(mb,pci,3);
if (isaBatType(tpe) ){
b= BATdescriptor(bid);
+   if (b == NULL)
+   throw(MAL, "wlc.delete", RUNTIME_OBJECT_MISSING); 
o = b->tseqbase;
last = o + BATcount(b);
if( b->ttype == TYPE_void){
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Merge with Jul2017 branch.

2017-09-18 Thread Sjoerd Mullender
Changeset: fefd216dc972 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fefd216dc972
Modified Files:
configure.ag
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_parser.c
monetdb5/modules/atoms/json.c
monetdb5/modules/atoms/str.c
monetdb5/modules/atoms/url.c
sql/backends/monet5/rel_bin.c
Branch: default
Log Message:

Merge with Jul2017 branch.


diffs (truncated from 527 to 300 lines):

diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -627,7 +627,7 @@ AS_VAR_IF([enable_strict], [yes], [
MCHECK_ADD_FLAG([-Wduplicated-branches])
MCHECK_ADD_FLAG([-Wlogical-op])
MCHECK_ADD_FLAG([-Wrestrict])
-   MCHECK_ADD_FLAG([-Wnull-dereference])
+dnlMCHECK_ADD_FLAG([-Wnull-dereference])
MCHECK_ADD_FLAG([-Wjump-misses-init])
 dnlMCHECK_ADD_FLAG([-Wshadow])
MCHECK_ADD_FLAG([-Wformat=2])
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -816,8 +816,10 @@ str runMALsequence(Client cntxt, MalBlkP
continue;
}
b = 
BATdescriptor(stk->stk[getArg(pci, i)].val.bval);
-   BATassertProps(b);
-   BBPunfix(b->batCacheid);
+   if (b) {
+   BATassertProps(b);
+   BBPunfix(b->batCacheid);
+   }
}
}
}
diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c
--- a/monetdb5/mal/mal_parser.c
+++ b/monetdb5/mal/mal_parser.c
@@ -39,7 +39,7 @@ lastline(Client cntxt)
 str s = CURRENT(cntxt);
 if (NL(*s))
 s++;
-while (s && s > cntxt->fdin->buf && !NL(*s))
+while (s > cntxt->fdin->buf && !NL(*s))
 s--;
 if (NL(*s))
 s++;
diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c
--- a/monetdb5/modules/atoms/json.c
+++ b/monetdb5/modules/atoms/json.c
@@ -28,12 +28,14 @@
break;  
\
} while (0)
 
-#define hex(J) 
\
-   do {
\
-   if ((*(J) >='0' && *(J) <='9') ||   \
-   (*(J) >='a' && *(J) <='f') ||   \
-   (*(J) >='A' && *(J) <='F')) \
-   (J)++;  
\
+#define hex(J) 
\
+   do {
\
+   if ((*(J) >='0' && *(J) <='9') ||   
\
+   (*(J) >='a' && *(J) <='f') ||   
\
+   (*(J) >='A' && *(J) <='F')) 
\
+   (J)++;  
\
+   else
\
+   throw(MAL, "json.parser", "illegal escape char");   
\
} while (0)
 
 #define CHECK_JSON(jt) 
\
@@ -57,24 +59,22 @@ int TYPE_json;
 
 /* Internal constructors. */
 static int jsonhint = 8;
-static JSON *JSONparse(const char *j, int silent);
+static JSON *JSONparse(const char *j);
 
 static JSON *
-JSONnewtree(int size)
+JSONnewtree(void)
 {
JSON *js;
 
-   if (size == 0)
-   size = jsonhint;
js = (JSON *) GDKzalloc(sizeof(JSON));
if (js == NULL)
return NULL;
-   js->elm = (JSONterm *) GDKzalloc(sizeof(JSONterm) * size);
+   js->elm = (JSONterm *) GDKzalloc(sizeof(JSONterm) * jsonhint);
if (js->elm == NULL) {
GDKfree(js);
return NULL;
}
-   js->size = size;
+   js->size = jsonhint;
return js;
 }
 
@@ -104,6 +104,7 @@ JSONfree(JSON *c)
 {
if (c == 0)
return;
+   freeException(c->error);
GDKfree(c->elm);
GDKfree(c);
 }
@@ -125,7 

MonetDB: Jul2017 - Removed some logically dead code; properly fr...

2017-09-18 Thread Sjoerd Mullender
Changeset: 8097a49ff5af for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8097a49ff5af
Modified Files:
monetdb5/modules/atoms/json.c
Branch: Jul2017
Log Message:

Removed some logically dead code; properly free error.


diffs (truncated from 448 to 300 lines):

diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c
--- a/monetdb5/modules/atoms/json.c
+++ b/monetdb5/modules/atoms/json.c
@@ -28,12 +28,14 @@
break;  
\
} while (0)
 
-#define hex(J) 
\
-   do {
\
-   if ((*(J) >='0' && *(J) <='9') ||   \
-   (*(J) >='a' && *(J) <='f') ||   \
-   (*(J) >='A' && *(J) <='F')) \
-   (J)++;  
\
+#define hex(J) 
\
+   do {
\
+   if ((*(J) >='0' && *(J) <='9') ||   
\
+   (*(J) >='a' && *(J) <='f') ||   
\
+   (*(J) >='A' && *(J) <='F')) 
\
+   (J)++;  
\
+   else
\
+   throw(MAL, "json.parser", "illegal escape char");   
\
} while (0)
 
 #define CHECK_JSON(jt) 
\
@@ -56,24 +58,22 @@ int TYPE_json;
 
 /* Internal constructors. */
 static int jsonhint = 8;
-static JSON *JSONparse(char *j, int silent);
+static JSON *JSONparse(char *j);
 
 static JSON *
-JSONnewtree(int size)
+JSONnewtree(void)
 {
JSON *js;
 
-   if (size == 0)
-   size = jsonhint;
js = (JSON *) GDKzalloc(sizeof(JSON));
if (js == NULL)
return NULL;
-   js->elm = (JSONterm *) GDKzalloc(sizeof(JSONterm) * size);
+   js->elm = (JSONterm *) GDKzalloc(sizeof(JSONterm) * jsonhint);
if (js->elm == NULL) {
GDKfree(js);
return NULL;
}
-   js->size = size;
+   js->size = jsonhint;
return js;
 }
 
@@ -103,6 +103,7 @@ JSONfree(JSON *c)
 {
if (c == 0)
return;
+   freeException(c->error);
GDKfree(c->elm);
GDKfree(c);
 }
@@ -111,7 +112,7 @@ int
 JSONfromString(str src, int *len, json *j)
 {
ssize_t slen = (ssize_t) strlen(src);
-   JSON *jt = JSONparse(src, FALSE);
+   JSON *jt = JSONparse(src);
 
if (*j)
GDKfree(*j);
@@ -259,7 +260,7 @@ JSONdumpInternal(JSON *jt, int depth)
 str
 JSONdump(void *ret, json *val)
 {
-   JSON *jt = JSONparse(*val, FALSE);
+   JSON *jt = JSONparse(*val);
 
CHECK_JSON(jt);
(void) ret;
@@ -288,7 +289,7 @@ JSONjson2str(str *ret, json *j)
 str
 JSONstr2json(json *ret, str *j)
 {
-   JSON *jt = JSONparse(*j, FALSE);
+   JSON *jt = JSONparse(*j);
 
CHECK_JSON(jt);
JSONfree(jt);
@@ -300,12 +301,11 @@ JSONstr2json(json *ret, str *j)
 str
 JSONisvalid(bit *ret, json *j)
 {
-   JSON *jt = JSONparse(*j, FALSE);
+   JSON *jt = JSONparse(*j);
 
if (jt == NULL)
throw(MAL, "json.isvalid", MAL_MALLOC_FAIL);
*ret = jt->error == MAL_SUCCEED;
-   GDKfree(jt->error);
JSONfree(jt);
return MAL_SUCCEED;
 }
@@ -371,11 +371,13 @@ JSONappend(JSON *jt, int idx, int nxt)
 }
 
 /*
- * The JSON filter operation takes a path expression which is purposely kept 
simple,
- * It provides step (.), multistep (..) and indexed ([nr]) access to the JSON 
elements.
- * A wildcard * can be used as placeholder for a step identifier.
+ * The JSON filter operation takes a path expression which is
+ * purposely kept simple, It provides step (.), multistep (..) and
+ * indexed ([nr]) access to the JSON elements.  A wildcard * can be
+ * used as placeholder for a step identifier.
  *
- * A path expression is always validated upfront and can only be applied to 
valid json strings.
+ * A path expression is always validated upfront and can only be
+ * applied to valid json strings.
  * Path samples:
  * .store.book
  * .store.book[0]
@@ -641,7 +643,7 @@ JSONfilterInternal(json *ret, json *js, 
throw(MAL,"JSONfilterInternal",MAL_MALLOC_FAIL);
return MAL_SUCCEED;
   

MonetDB: Jul2017 - Fixed some errors found by -Wnull-dereference.

2017-09-18 Thread Sjoerd Mullender
Changeset: 21bd40b73654 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=21bd40b73654
Modified Files:
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_parser.c
monetdb5/modules/atoms/str.c
monetdb5/modules/atoms/url.c
Branch: Jul2017
Log Message:

Fixed some errors found by -Wnull-dereference.


diffs (55 lines):

diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -830,8 +830,10 @@ str runMALsequence(Client cntxt, MalBlkP
continue;
}
b = 
BATdescriptor(stk->stk[getArg(pci, i)].val.bval);
-   BATassertProps(b);
-   BBPunfix(b->batCacheid);
+   if (b) {
+   BATassertProps(b);
+   BBPunfix(b->batCacheid);
+   }
}
}
}
diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c
--- a/monetdb5/mal/mal_parser.c
+++ b/monetdb5/mal/mal_parser.c
@@ -322,7 +322,7 @@ lastline(Client cntxt)
str s = CURRENT(cntxt);
if (NL(*s))
s++;
-   while (s && s > cntxt->fdin->buf && !NL(*s))
+   while (s > cntxt->fdin->buf && !NL(*s))
s--;
if (NL(*s))
s++;
diff --git a/monetdb5/modules/atoms/str.c b/monetdb5/modules/atoms/str.c
--- a/monetdb5/modules/atoms/str.c
+++ b/monetdb5/modules/atoms/str.c
@@ -1716,7 +1716,7 @@ STRWChrAt(int *res, const str *arg1, con
return MAL_SUCCEED;
}
s = UTF8_strtail(s, *at);
-   if (*s == 0) {
+   if (s == NULL || *s == 0) {
*res = int_nil;
return MAL_SUCCEED;
}
diff --git a/monetdb5/modules/atoms/url.c b/monetdb5/modules/atoms/url.c
--- a/monetdb5/modules/atoms/url.c
+++ b/monetdb5/modules/atoms/url.c
@@ -114,9 +114,9 @@ skip_authority(const char *uri, const ch
if (passp)
*passp = NULL;
} else {
-   if (*userp)
+   if (userp)
*userp = user;
-   if (*passp)
+   if (passp)
*passp = pass;
}
if (portp)
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2017 - Disable -Wnull-dereference: it generates erro...

2017-09-18 Thread Sjoerd Mullender
Changeset: a60de9ce6de3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a60de9ce6de3
Modified Files:
configure.ag
Branch: Jul2017
Log Message:

Disable -Wnull-dereference: it generates errors that I cannot currently explain.


diffs (12 lines):

diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -627,7 +627,7 @@ AS_VAR_IF([enable_strict], [yes], [
MCHECK_ADD_FLAG([-Wduplicated-branches])
MCHECK_ADD_FLAG([-Wlogical-op])
MCHECK_ADD_FLAG([-Wrestrict])
-   MCHECK_ADD_FLAG([-Wnull-dereference])
+dnlMCHECK_ADD_FLAG([-Wnull-dereference])
MCHECK_ADD_FLAG([-Wjump-misses-init])
 dnlMCHECK_ADD_FLAG([-Wshadow])
MCHECK_ADD_FLAG([-Wformat=2])
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2017 - Enable a bunch of extra compiler warnings.

2017-09-18 Thread Sjoerd Mullender
Changeset: d6a79b79ee19 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d6a79b79ee19
Modified Files:
configure.ag
monetdb5/modules/atoms/mtime.c
sql/backends/monet5/rel_bin.c
sql/backends/monet5/vaults/shp/shp.c
sql/server/rel_exp.c
Branch: Jul2017
Log Message:

Enable a bunch of extra compiler warnings.
-Wshadow is not enabled since there are currently too many problems.


diffs (143 lines):

diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -623,6 +623,14 @@ AS_VAR_IF([enable_strict], [yes], [
MCHECK_ADD_FLAG([-Wjump-misses-init])
MCHECK_ADD_FLAG([-Wmissing-include-dirs])
MCHECK_ADD_FLAG([-Wlogical-op])
+   MCHECK_ADD_FLAG([-Wduplicated-cond])
+   MCHECK_ADD_FLAG([-Wduplicated-branches])
+   MCHECK_ADD_FLAG([-Wlogical-op])
+   MCHECK_ADD_FLAG([-Wrestrict])
+   MCHECK_ADD_FLAG([-Wnull-dereference])
+   MCHECK_ADD_FLAG([-Wjump-misses-init])
+dnlMCHECK_ADD_FLAG([-Wshadow])
+   MCHECK_ADD_FLAG([-Wformat=2])
 
# With clang 2.8, 3.3, 5.0 (no other tested) and gcc < 4.5
# (tested 3.4.6, 4.2.1, 4.3.2, 4.4.4, 4.4.5, 4.5.1, 4.5.2),
diff --git a/monetdb5/modules/atoms/mtime.c b/monetdb5/modules/atoms/mtime.c
--- a/monetdb5/modules/atoms/mtime.c
+++ b/monetdb5/modules/atoms/mtime.c
@@ -2340,11 +2340,7 @@ MTIMEdate_sub_sec_interval_wrap(date *re
*ret = date_nil;
return MAL_SUCCEED;
}
-   if (*sec >= 0)
-   delta = -(int) (*sec / 86400);
-   else
-   delta = (int) (-*sec / 86400);
-
+   delta = -(int) (*sec / 86400);  /* / truncates toward zero */
return MTIMEdate_adddays(ret, t, );
 }
 
@@ -2357,11 +2353,7 @@ MTIMEdate_sub_msec_interval_lng_wrap(dat
*ret = date_nil;
return MAL_SUCCEED;
}
-   if (*msec > 0)
-   delta = -(int) (*msec / 8640);
-   else
-   delta = (int) (-*msec / 8640);
-
+   delta = -(int) (*msec / 8640);  /* / truncates toward zero */
return MTIMEdate_adddays(ret, t, );
 }
 
@@ -2374,11 +2366,7 @@ MTIMEdate_add_sec_interval_wrap(date *re
*ret = date_nil;
return MAL_SUCCEED;
}
-   if (*sec >= 0)
-   delta = (int) (*sec / 86400);
-   else
-   delta = -(int) (-*sec / 86400);
-
+   delta = (int) (*sec / 86400);   /* / truncates toward zero */
return MTIMEdate_adddays(ret, t, );
 }
 
@@ -2391,11 +2379,7 @@ MTIMEdate_add_msec_interval_lng_wrap(dat
*ret = date_nil;
return MAL_SUCCEED;
}
-   if (*msec > 0)
-   delta = (int) (*msec / 8640);
-   else
-   delta = -(int) (-*msec / 8640);
-
+   delta = (int) (*msec / 8640);   /* / truncates toward zero */
return MTIMEdate_adddays(ret, t, );
 }
 
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -1659,10 +1659,7 @@ releqjoin( backend *be, list *l1, list *
sql_subfunc *f = NULL;
stmt * cmp;
 
-   if (cmp_op == cmp_equal) 
-   f = sql_bind_func(sql->sa, sql->session->schema, "=", 
tail_type(le), tail_type(le), F_FUNC);
-   else 
-   f = sql_bind_func(sql->sa, sql->session->schema, "=", 
tail_type(le), tail_type(le), F_FUNC);
+   f = sql_bind_func(sql->sa, sql->session->schema, "=", 
tail_type(le), tail_type(le), F_FUNC);
assert(f);
 
cmp = stmt_binop(be, le, re, f);
diff --git a/sql/backends/monet5/vaults/shp/shp.c 
b/sql/backends/monet5/vaults/shp/shp.c
--- a/sql/backends/monet5/vaults/shp/shp.c
+++ b/sql/backends/monet5/vaults/shp/shp.c
@@ -272,8 +272,10 @@ SHPattach(Client cntxt, MalBlkPtr mb, Ma
sprintf(temp_buf + strlen(temp_buf), "\"%s\" INT, ", 
nameToLowerCase);
} else if (strcmp(field_definitions[i].fieldType, "Real") == 0) 
{
sprintf(temp_buf + strlen(temp_buf), "\"%s\" FLOAT, ", 
nameToLowerCase);
+#if 0
} else if (strcmp(field_definitions[i].fieldType, "Date") == 0) 
{
sprintf(temp_buf + strlen(temp_buf), "\"%s\" STRING, ", 
nameToLowerCase);
+#endif
} else 
sprintf(temp_buf + strlen(temp_buf), "\"%s\" STRING, ", 
nameToLowerCase);
GDKfree(nameToLowerCase);
@@ -451,11 +453,13 @@ SHPimportFile(Client cntxt, MalBlkPtr mb
msg = createException(MAL, "shp.import", 
MAL_MALLOC_FAIL);
goto unfree4;
}
+#if 0
} else if 

MonetDB: default - Merge with Jul2017 branch.

2017-09-18 Thread Sjoerd Mullender
Changeset: 34304387fcc2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=34304387fcc2
Added Files:
sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.sql
sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.err
sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.out
sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.sql
sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.err
sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.out
sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.err
sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out

sql/test/bugs/Tests/unicode_varchar-bug-sf-1041324_JdbcClient.stable.out.Windows
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
monetdb5/modules/mal/tablet.c
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.h
sql/backends/monet5/sql.mal
sql/backends/monet5/sql_statement.c
sql/benchmarks/tpch/fileleak/Tests/leaks.stable.out
sql/benchmarks/tpch/fileleak/Tests/leaks.stable.out.Windows
sql/include/sql_relation.h
sql/jdbc/tests/Tests/Test_CisValid.stable.out
sql/server/rel_optimizer.c
sql/server/rel_updates.c
sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
sql/test/BugTracker-2017/Tests/All
sql/test/BugTracker-2017/Tests/sqllitelogistest_case.Bug-6335.sql
Branch: default
Log Message:

Merge with Jul2017 branch.


diffs (truncated from 1502 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -8335,19 +8335,15 @@ Ready.
 [ "sql",   "dec_round","command sql.dec_round(v:int, r:int):int ", 
"int_dec_round_wrap;",  "round off the value v to nearests multiple of r"   
]
 [ "sql",   "dec_round","command sql.dec_round(v:lng, r:lng):lng ", 
"lng_dec_round_wrap;",  "round off the value v to nearests multiple of r"   
]
 [ "sql",   "dec_round","command sql.dec_round(v:sht, r:sht):sht ", 
"sht_dec_round_wrap;",  "round off the value v to nearests multiple of r"   
]
-[ "sql",   "declaredTable","pattern 
sql.declaredTable(name:str):int ", "mvc_declared_table_wrap;", "Prepare 
a declared table"  ]
 [ "sql",   "delete",   "pattern sql.delete(mvc:int, sname:str, 
tname:str, b:any):int ","mvc_delete_wrap;", "Delete a row from a 
table. Returns sequence number for order dependece."   ]
 [ "sql",   "delta","command sql.delta(col:bat[:any_3], 
uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ", "DELTAbat2;",   "Return 
column bat with delta's applied."   ]
 [ "sql",   "delta","command sql.delta(col:bat[:any_3], 
uid:bat[:oid], uval:bat[:any_3], ins:bat[:any_3]):bat[:any_3] ",
"DELTAbat;","Return column bat with delta's applied."   ]
 [ "sql",   "dense_rank",   "pattern sql.dense_rank(b:any_1, p:bit, 
o:bit):int ",   "SQLdense_rank;",   "return the densely ranked groups"  
]
 [ "sql",   "diff", "pattern sql.diff(b:any_1):bit ",   "SQLdiff;", 
"return true if cur != prev row"]
 [ "sql",   "diff", "pattern sql.diff(p:bit, b:any_1):bit ",
"SQLdiff;", "return true if cur != prev row"]
-[ "sql",   "dropDeclaredTable","pattern 
sql.dropDeclaredTable(name:str):void ","mvc_drop_declared_table_wrap;", 
   "drop a declared table" ]
-[ "sql",   "dropDeclaredTables",   "pattern 
sql.dropDeclaredTables(nr:int):void ", "mvc_drop_declared_tables_wrap;",   
"drop top n declared tables"]
 [ "sql",   "drop_func_upgrade_oct2014","pattern 
sql.drop_func_upgrade_oct2014(id:int):int ",   "UPGdrop_func;","Drop 
the function identified by id, needed for the Oct2014 upgrade"]
 [ "sql",   "drop_hash","pattern sql.drop_hash(sch:str, tbl:str):void 
","SQLdrop_hash;","Drop hash indices for the given table" ]
 [ "sql",   "droporderindex",   "pattern sql.droporderindex(sch:str, 
tbl:str, col:str):void ",  "sql_droporderindex;",  "Drop the order index on a 
column"  ]
-[ "sql",   "dtColumn", "pattern sql.dtColumn(rs:int, tname:str, 
name:str, typename:str, digits:int, scale:int):void ", 
"mvc_declared_table_column_wrap;",  ""  ]
 [ "sql",   "dump_cache",   "pattern sql.dump_cache() (query:bat[:str], 
count:bat[:int]) ", "dump_cache;",  "dump the content of the query cache"   ]
 [ "sql",   "dump_opt_stats",   "pattern sql.dump_opt_stats() 
(rewrite:bat[:str], count:bat[:int]) ",