MonetDB: default - Extended a test and approve

2019-10-27 Thread Martin Kersten
Changeset: 3608d0c21b1d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3608d0c21b1d
Modified Files:
monetdb5/modules/mal/Tests/mat.malC
monetdb5/modules/mal/Tests/mat.stable.out
Branch: default
Log Message:

Extended a test and approve


diffs (43 lines):

diff --git a/monetdb5/modules/mal/Tests/mat.malC 
b/monetdb5/modules/mal/Tests/mat.malC
--- a/monetdb5/modules/mal/Tests/mat.malC
+++ b/monetdb5/modules/mal/Tests/mat.malC
@@ -1,2 +1,8 @@
 i:= mat.pack(1,2,3);
 io.print(i);
+f:= mat.pack(1.0,2.0,3.0);
+io.print(f);
+s:= mat.pack("a","b","c");
+io.print(s);
+b:= mat.pack(true,false,true);
+io.print(b);
diff --git a/monetdb5/modules/mal/Tests/mat.stable.out 
b/monetdb5/modules/mal/Tests/mat.stable.out
--- a/monetdb5/modules/mal/Tests/mat.stable.out
+++ b/monetdb5/modules/mal/Tests/mat.stable.out
@@ -33,6 +33,27 @@ stdout of test 'mat` in directory 'monet
 [ 0@0, 1  ]
 [ 1@0, 2  ]
 [ 2@0, 3  ]
+#--#
+# ht  # name
+# void flt  # type
+#--#
+[ 0@0, 1   ]
+[ 1@0, 2   ]
+[ 2@0, 3   ]
+#--#
+# ht  # name
+# void str  # type
+#--#
+[ 0@0, "a" ]
+[ 1@0, "b" ]
+[ 2@0, "c" ]
+#--#
+# ht  # name
+# void bit  # type
+#--#
+[ 0@0, true]
+[ 1@0, false   ]
+[ 2@0, true]
 
 # 00:24:10 >  
 # 00:24:10 >  Done.
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Added missing signatures.

2019-10-27 Thread Martin Kersten
Changeset: 8b109284e67b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8b109284e67b
Modified Files:
sql/backends/monet5/sql_upgrades.c
sql/scripts/26_sysmon.sql
Branch: default
Log Message:

Added missing signatures.


diffs (37 lines):

diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -2357,7 +2357,15 @@ sql_update_default(Client c, mvc *sql, c
"external name sql.sysmon_queue;\n"
"grant execute on function sys.queue to public;\n"
"create view sys.queue as select * from sys.queue();\n"
-   "grant select on sys.queue to public;\n");
+   "grant select on sys.queue to public;\n"
+
+   "create procedure sys.pause(tag tinyint)\n"
+   "external name sql.sysmon_pause;\n"
+   "create procedure sys.resume(tag tinyint)\n"
+   "external name sql.sysmon_resume;\n"
+   "create procedure sys.stop(tag tinyint)\n"
+   "external name sql.sysmon_stop;\n"
+   );
 
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where schema_id 
= (select id from sys.schemas where name = 'sys')"
diff --git a/sql/scripts/26_sysmon.sql b/sql/scripts/26_sysmon.sql
--- a/sql/scripts/26_sysmon.sql
+++ b/sql/scripts/26_sysmon.sql
@@ -26,6 +26,13 @@ create view sys.queue as select * from s
 grant select on sys.queue to public;
 
 -- operations to manipulate the state of havoc queries
+create procedure sys.pause(tag tinyint)
+external name sql.sysmon_pause;
+create procedure sys.resume(tag tinyint)
+external name sql.sysmon_resume;
+create procedure sys.stop(tag tinyint)
+external name sql.sysmon_stop;
+
 create procedure sys.pause(tag int)
 external name sql.sysmon_pause;
 create procedure sys.resume(tag int)
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: sq2 - small output changes

2019-10-27 Thread Niels Nes
Changeset: a1afcd80db71 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a1afcd80db71
Modified Files:
sql/test/subquery/Tests/correlated.sql
sql/test/subquery/Tests/correlated.stable.out
sql/test/subquery/Tests/subquery.stable.out
Branch: sq2
Log Message:

small output changes


diffs (114 lines):

diff --git a/sql/test/subquery/Tests/correlated.sql 
b/sql/test/subquery/Tests/correlated.sql
--- a/sql/test/subquery/Tests/correlated.sql
+++ b/sql/test/subquery/Tests/correlated.sql
@@ -586,7 +586,9 @@ SELECT i, CAST((SELECT (SELECT (SELECT (
 --318
 --NULL NULL
 
+/* BROKEN
 SELECT i, (SELECT SUM(s1.i) FROM integers s1 INNER JOIN integers s2 ON (SELECT 
i1.i+s1.i)=(SELECT i1.i+s2.i)) AS j FROM integers i1 ORDER BY i;
+*/
 --16
 --26
 --36
@@ -612,7 +614,9 @@ SELECT i, CAST((SELECT SUM(ss2.i) FROM (
 --33
 --NULL NULL
 
+/* BROKEN
 SELECT i, (SELECT SUM(s1.i) FROM integers s1 LEFT OUTER JOIN integers s2 ON 
(SELECT i1.i+s1.i)=(SELECT i1.i+s2.i)) AS j FROM integers i1 ORDER BY i;
+*/
 --16
 --26
 --36
diff --git a/sql/test/subquery/Tests/correlated.stable.out 
b/sql/test/subquery/Tests/correlated.stable.out
--- a/sql/test/subquery/Tests/correlated.stable.out
+++ b/sql/test/subquery/Tests/correlated.stable.out
@@ -698,8 +698,8 @@ stdout of test 'correlated` in directory
 [ 2,   50  ]
 [ 3,   51  ]
 #SELECT i, (SELECT row_number() OVER (ORDER BY i) FROM integers WHERE i1.i=i) 
FROM integers i1 ORDER BY i;
-% .i1, .L5 # table_name
-% i,   L5 # name
+% .i1, .L3 # table_name
+% i,   L3 # name
 % int, int # type
 % 1,   1 # length
 [ NULL,NULL]
@@ -707,8 +707,8 @@ stdout of test 'correlated` in directory
 [ 2,   1   ]
 [ 3,   1   ]
 #SELECT i1.i, (SELECT rank() OVER (ORDER BY i) FROM integers WHERE i1.i=i) 
FROM integers i1, integers i2 ORDER BY i1.i;
-% .i1, .L5 # table_name
-% i,   L5 # name
+% .i1, .L3 # table_name
+% i,   L3 # name
 % int, int # type
 % 1,   1 # length
 [ NULL,NULL]
@@ -728,8 +728,8 @@ stdout of test 'correlated` in directory
 [ 3,   1   ]
 [ 3,   1   ]
 #SELECT i1.i, (SELECT row_number() OVER (ORDER BY i) FROM integers WHERE 
i1.i=i) FROM integers i1, integers i2 ORDER BY i1.i;
-% .i1, .L5 # table_name
-% i,   L5 # name
+% .i1, .L3 # table_name
+% i,   L3 # name
 % int, int # type
 % 1,   1 # length
 [ NULL,NULL]
@@ -802,15 +802,6 @@ stdout of test 'correlated` in directory
 [ 1,   6   ]
 [ 2,   12  ]
 [ 3,   18  ]
-#SELECT i, (SELECT SUM(s1.i) FROM integers s1 INNER JOIN integers s2 ON 
(SELECT i1.i+s1.i)=(SELECT i1.i+s2.i)) AS j FROM integers i1 ORDER BY i;
-% .i1, .L4 # table_name
-% i,   j # name
-% int, hugeint # type
-% 1,   1 # length
-[ NULL,NULL]
-[ 1,   6   ]
-[ 2,   6   ]
-[ 3,   6   ]
 #SELECT i, CAST((SELECT SUM(ss1.i) FROM (SELECT i FROM integers s1 WHERE 
i>ANY(SELECT i FROM integers WHERE i<>s1.i)) ss1) AS BIGINT) AS j FROM integers 
i1 ORDER BY i;
 % .i1, . # table_name
 % i,   j # name
@@ -829,15 +820,6 @@ stdout of test 'correlated` in directory
 [ 1,   1   ]
 [ 2,   2   ]
 [ 3,   3   ]
-#SELECT i, (SELECT SUM(s1.i) FROM integers s1 LEFT OUTER JOIN integers s2 ON 
(SELECT i1.i+s1.i)=(SELECT i1.i+s2.i)) AS j FROM integers i1 ORDER BY i;
-% .i1, .L4 # table_name
-% i,   j # name
-% int, hugeint # type
-% 1,   1 # length
-[ NULL,NULL]
-[ 1,   6   ]
-[ 2,   6   ]
-[ 3,   6   ]
 #SELECT i, CAST((SELECT SUM(ss1.i)+SUM(ss2.i) FROM (SELECT i FROM integers s1 
WHERE i>ANY(SELECT i FROM integers WHERE i<>s1.i)) ss1 LEFT OUTER JOIN (SELECT 
i FROM integers s1 WHERE i=ANY(SELECT i FROM integers WHERE i=s1.i)) ss2 ON 
ss1.i=ss2.i) AS BIGINT) AS j FROM integers i1 ORDER BY i;
 % .i1, . # table_name
 % i,   j # name
diff --git a/sql/test/subquery/Tests/subquery.stable.out 
b/sql/test/subquery/Tests/subquery.stable.out
--- a/sql/test/subquery/Tests/subquery.stable.out
+++ b/sql/test/subquery/Tests/subquery.stable.out
@@ -141,7 +141,7 @@ stdout of test 'subquery` in directory '
 [ 3]
 [ NULL ]
 #SELECT (SELECT i FROM integers WHERE i=1); --1
-% sys.L1 # table_name
+% .L1 # table_name
 % L1 # name
 % int # type
 % 1 # length
@@ -296,8 +296,8 @@ stdout of test 'subquery` in directory '
 % 1 # length
 [ 1]
 #SELECT (SELECT CAST(SUM(i) AS BIGINT) FROM integers), (SELECT 42);
-% sys.L2,  . # table_name
-% L2,  single_value # name
+% .L3, . # table_name
+% L3,  single_value # name
 % bigint,  tinyint # type
 % 1,   2 # length
 [ 6,   42  ]
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: sq2 - document new use of e_func

2019-10-27 Thread Niels Nes
Changeset: 5b68cfa72f4d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5b68cfa72f4d
Modified Files:
sql/rel.txt
Branch: sq2
Log Message:

document new use of e_func


diffs (12 lines):

diff --git a/sql/rel.txt b/sql/rel.txt
--- a/sql/rel.txt
+++ b/sql/rel.txt
@@ -137,6 +137,8 @@ e_aggr
-> llist of sub expressions (args for the func and aggr)
+ optional conditional execution argument
-> ffunc / aggr
+   -> rlist of the partition by and order by expression lists 
+   (only used during AST->relations->unnesting)
 for aggr
-> flag DISTINCT and NO_NIL could be set
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: sq2 - pass rank/window functions a normal functions + l...

2019-10-27 Thread Niels Nes
Changeset: f9f30e5adfdb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f9f30e5adfdb
Modified Files:
sql/server/rel_exp.c
sql/server/rel_exp.h
sql/server/rel_rel.c
sql/server/rel_rel.h
sql/server/rel_select.c
sql/server/rel_unnest.c
Branch: sq2
Log Message:

pass rank/window functions a normal functions + list (group by expressions's, 
order by expression's).
rewrite these into projection(s) in the rel_unnest.c file/phase


diffs (truncated from 514 to 300 lines):

diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -232,6 +232,21 @@ exp_op( sql_allocator *sa, list *l, sql_
 }
 
 sql_exp * 
+exp_rank_op( sql_allocator *sa, list *l, list *gbe, list *obe, sql_subfunc *f )
+{
+   sql_exp *e = exp_create(sa, e_func);
+   if (e == NULL)
+   return NULL;
+   e->card = exps_card(l);
+   if (!l || list_length(l) == 0) 
+   e->card = CARD_ATOM; /* unop returns a single atom */
+   e->l = l;
+   e->r = append(append(sa_list(sa), gbe), obe);
+   e->f = f; 
+   return e;
+}
+
+sql_exp * 
 exp_aggr( sql_allocator *sa, list *l, sql_subaggr *a, int distinct, int 
no_nils, unsigned int card, int has_nils )
 {
sql_exp *e = exp_create(sa, e_aggr);
@@ -1704,7 +1719,7 @@ exps_bind_column( list *exps, const char
for (en = exps->h; en; en = en->next ) {
sql_exp *ce = en->data;
if (ce->alias.name && strcmp(ce->alias.name, cname) == 
0) {
-   if (e) {
+   if (e && e != ce && ce->alias.rname && 
e->alias.rname && strcmp(ce->alias.rname, e->alias.rname) != 0 ) {
if (ambiguous)
*ambiguous = 1;
return NULL;
diff --git a/sql/server/rel_exp.h b/sql/server/rel_exp.h
--- a/sql/server/rel_exp.h
+++ b/sql/server/rel_exp.h
@@ -32,6 +32,7 @@ extern sql_exp *exp_in(sql_allocator *sa
 extern sql_exp *exp_convert(sql_allocator *sa, sql_exp *exp, sql_subtype 
*fromtype, sql_subtype *totype );
 extern str number2name(str s, int len, int i);
 extern sql_exp *exp_op(sql_allocator *sa, list *l, sql_subfunc *f );
+extern sql_exp *exp_rank_op(sql_allocator *sa, list *largs, list *gbe, list 
*obe, sql_subfunc *f );
 
 #define append(l,v) list_append(l,v) 
 #define exp_unop(sa,l,f) \
diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -348,6 +348,17 @@ rel_bind_column2( mvc *sql, sql_rel *rel
return NULL;
 }
 
+sql_exp *
+rel_first_column(mvc *sql, sql_rel *r)
+{
+   list *exps = rel_projections(sql, r, NULL, 1, 1);
+
+   if (!list_empty(exps))
+   return exps->h->data;
+
+   return NULL;
+}
+
 sql_rel *
 rel_inplace_setop(sql_rel *rel, sql_rel *l, sql_rel *r, operator_type setop, 
list *exps)
 {
diff --git a/sql/server/rel_rel.h b/sql/server/rel_rel.h
--- a/sql/server/rel_rel.h
+++ b/sql/server/rel_rel.h
@@ -54,6 +54,7 @@ extern sql_rel *rel_select_copy(sql_allo
 
 extern sql_exp *rel_bind_column( mvc *sql, sql_rel *rel, const char *cname, 
int f );
 extern sql_exp *rel_bind_column2( mvc *sql, sql_rel *rel, const char *tname, 
const char *cname, int f );
+extern sql_exp *rel_first_column(mvc *sql, sql_rel *rel);
 
 extern sql_rel *rel_inplace_setop(sql_rel *rel, sql_rel *l, sql_rel *r, 
operator_type setop, list *exps);
 extern sql_rel *rel_inplace_project(sql_allocator *sa, sql_rel *rel, sql_rel 
*l, list *e);
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -5091,43 +5091,6 @@ get_window_clauses(mvc *sql, char* ident
return window_specification; //return something to say there were no 
errors
 }
 
-static sql_exp*
-opt_groupby_add_exp(mvc *sql, sql_rel *p, sql_rel *pp, sql_exp *in)
-{
-   sql_exp *found;
-
-   if (p->op == op_groupby) {
-   if (!exp_name(in))
-   exp_label(sql->sa, in, ++sql->label);
-   found = exps_find_exp( p->exps, in);
-   if (!found)
-   append(p->exps, in);
-   else
-   in = found;
-   in = exp_ref(sql->sa, in);
-   } else if (pp && pp->op == op_groupby) {
-   if (!exp_name(in))
-   exp_label(sql->sa, in, ++sql->label);
-   found = exps_find_exp( p->exps, in);
-   if (!found) {
-   sql_rel *l = p->l;
-
-   while (l && l != pp && !is_base(l->op)) {
-   if (!exps_find_exp(l->exps, in)) {
-   if (is_project(l->op))
-   append(l->exps, 
exp_copy(sql->sa, in));
-

MonetDB: default - The should not ignore the access control checks.

2019-10-27 Thread Martin Kersten
Changeset: 5cae8068dceb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5cae8068dceb
Modified Files:
geom/monetdb5/geom.c
geom/monetdb5/geom_upgrade.c
Branch: default
Log Message:

The should not ignore the access control checks.


diffs (30 lines):

diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -1598,8 +1598,8 @@ dumpGeometriesSingle(BAT *idBAT, BAT *ge
strncpy(newPath, path, pathLength);
newPath[pathLength] = '\0';
}
-   if (BUNappend(idBAT, newPath, true) != GDK_SUCCEED ||
-   BUNappend(geomBAT, singleWKB, true) != GDK_SUCCEED)
+   if (BUNappend(idBAT, newPath, false) != GDK_SUCCEED ||
+   BUNappend(geomBAT, singleWKB, false) != GDK_SUCCEED)
err = createException(MAL, "geom.Dump", SQLSTATE(38000) "Geos 
operation BUNappend failed");
 
GDKfree(newPath);
diff --git a/geom/monetdb5/geom_upgrade.c b/geom/monetdb5/geom_upgrade.c
--- a/geom/monetdb5/geom_upgrade.c
+++ b/geom/monetdb5/geom_upgrade.c
@@ -130,9 +130,9 @@ geom_catalog_upgrade(void *lg, int olddb
scale = 0;
}
 
-   if (BUNappend(cnt, type, true) != GDK_SUCCEED ||
-   BUNappend(cnd, , true) != GDK_SUCCEED ||
-   BUNappend(cns, , true) != GDK_SUCCEED) {
+   if (BUNappend(cnt, type, false) != GDK_SUCCEED ||
+   BUNappend(cnd, , false) != GDK_SUCCEED ||
+   BUNappend(cns, , false) != GDK_SUCCEED) {
BBPreclaim(cnt);
BBPreclaim(cnd);
BBPreclaim(cns);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - They should not ignore the access control che...

2019-10-27 Thread Martin Kersten
Changeset: c7c2515899de for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c7c2515899de
Modified Files:
sql/backends/monet5/vaults/fits/fits.c
sql/backends/monet5/vaults/shp/shp.c
Branch: default
Log Message:

They should not ignore the access control checks.


diffs (94 lines):

diff --git a/sql/backends/monet5/vaults/fits/fits.c 
b/sql/backends/monet5/vaults/fits/fits.c
--- a/sql/backends/monet5/vaults/fits/fits.c
+++ b/sql/backends/monet5/vaults/fits/fits.c
@@ -1026,7 +1026,7 @@ str FITSloadTable(Client cntxt, MalBlkPt
fits_read_col(fptr, tpcode[j - 1], j, i + 1, 1, 
rep[j - 1], (void *)nilptr,
  (void *)v[i]->data, , 
);
v[i]->nitems = nbytes;
-   if (BUNappend(tmp, v[i], true) != GDK_SUCCEED) {
+   if (BUNappend(tmp, v[i], false) != GDK_SUCCEED) 
{
BBPreclaim(tmp);
msg = createException(MAL, 
"fits.loadtable", SQLSTATE(HY001) MAL_MALLOC_FAIL);
GDKfree(tpcode);
@@ -1061,7 +1061,7 @@ str FITSloadTable(Client cntxt, MalBlkPt
tloadtm += GDKms() - tm0;
tm0 = GDKms();
for(k = 0; k < batch ; k++)
-   if (BUNappend(tmp, v[k], true) != 
GDK_SUCCEED) {
+   if (BUNappend(tmp, v[k], false) != 
GDK_SUCCEED) {
BBPreclaim(tmp);
msg = createException(MAL, 
"fits.loadtable", SQLSTATE(HY001) MAL_MALLOC_FAIL);
goto bailout;
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
@@ -503,19 +503,19 @@ SHPimportFile(Client cntxt, MalBlkPtr mb
hFieldDefn = OGR_FD_GetFieldDefn( featureDefn, i );
if( OGR_Fld_GetType(hFieldDefn) == OFTInteger ) {
int val = OGR_F_GetFieldAsInteger(feature, i);
-   rc = BUNappend(colsBAT[i], , true);
+   rc = BUNappend(colsBAT[i], , false);
} else if( OGR_Fld_GetType(hFieldDefn) == OFTReal ) {
double val = OGR_F_GetFieldAsDouble(feature, i);
-   rc = BUNappend(colsBAT[i], , true);
+   rc = BUNappend(colsBAT[i], , false);
} else {
-   rc = BUNappend(colsBAT[i], 
OGR_F_GetFieldAsString(feature, i), true);
+   rc = BUNappend(colsBAT[i], 
OGR_F_GetFieldAsString(feature, i), false);
}
if (rc != GDK_SUCCEED) {
msg = createException(MAL, "shp.import", 
SQLSTATE(HY001) MAL_MALLOC_FAIL);
goto unfree4;
}
}
-   if (BUNappend(colsBAT[colsNum - 2], , true) != 
GDK_SUCCEED) {
+   if (BUNappend(colsBAT[colsNum - 2], , false) != 
GDK_SUCCEED) {
msg = createException(MAL, "shp.import", 
SQLSTATE(HY001) MAL_MALLOC_FAIL);
goto unfree4;
}
@@ -529,7 +529,7 @@ SHPimportFile(Client cntxt, MalBlkPtr mb
geomWKB->len = len;
geomWKB->srid = 0; //FIXME: Add the real srid
OGR_G_ExportToWkb(geometry, wkbNDR, (unsigned char 
*)geomWKB->data);
-   rc = BUNappend(colsBAT[colsNum - 1], geomWKB, true);
+   rc = BUNappend(colsBAT[colsNum - 1], geomWKB, false);
GDKfree(geomWKB);
OGR_F_Destroy(feature);
if (rc != GDK_SUCCEED)
@@ -730,14 +730,14 @@ SHPpartialimport(Client cntxt, MalBlkPtr
hFieldDefn = OGR_FD_GetFieldDefn( featureDefn, i );
if( OGR_Fld_GetType(hFieldDefn) == OFTInteger ) {
int val = OGR_F_GetFieldAsInteger(feature, i);
-   rc = BUNappend(colsBAT[i], , true);
+   rc = BUNappend(colsBAT[i], , false);
} else if( OGR_Fld_GetType(hFieldDefn) == OFTReal ) {
double val = OGR_F_GetFieldAsDouble(feature, i);
-   rc = BUNappend(colsBAT[i], , true);
+   rc = BUNappend(colsBAT[i], , false);
} else if( OGR_Fld_GetType(hFieldDefn) == OFTString ) {
-   rc = BUNappend(colsBAT[i], 
OGR_F_GetFieldAsString(feature, i), true);
+  

MonetDB: default - They should not ignore the access control che...

2019-10-27 Thread Martin Kersten
Changeset: f73665f6e42b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f73665f6e42b
Modified Files:
monetdb5/modules/mal/manual.c
monetdb5/modules/mal/mat.c
monetdb5/modules/mal/tokenizer.c
Branch: default
Log Message:

They should not ignore the access control checks.


diffs (63 lines):

diff --git a/monetdb5/modules/mal/manual.c b/monetdb5/modules/mal/manual.c
--- a/monetdb5/modules/mal/manual.c
+++ b/monetdb5/modules/mal/manual.c
@@ -69,9 +69,9 @@ MANUALcreateOverview(Client cntxt, MalBl
}
if (BUNappend(mod, 
t->def->stmt[0]->modname, false) != GDK_SUCCEED ||
BUNappend(fcn, 
t->def->stmt[0]->fcnname, false) != GDK_SUCCEED ||
-   BUNappend(com, 
t->def->help ? t->def->help : "", true) != GDK_SUCCEED ||
-   BUNappend(sig,buf,true) 
!= GDK_SUCCEED ||
-   BUNappend(adr, tt ? tt 
: "", true) != GDK_SUCCEED) {
+   BUNappend(com, 
t->def->help ? t->def->help : "", false) != GDK_SUCCEED ||
+   
BUNappend(sig,buf,false) != GDK_SUCCEED ||
+   BUNappend(adr, tt ? tt 
: "", false) != GDK_SUCCEED) {
goto bailout;
}
}
diff --git a/monetdb5/modules/mal/mat.c b/monetdb5/modules/mal/mat.c
--- a/monetdb5/modules/mal/mat.c
+++ b/monetdb5/modules/mal/mat.c
@@ -190,11 +190,11 @@ MATpackValues(Client cntxt, MalBlkPtr mb
 
if (ATOMextern(type)) {
for(i = first; i < p->argc; i++)
-   if (BUNappend(bn, stk->stk[getArg(p,i)].val.pval, true) 
!= GDK_SUCCEED)
+   if (BUNappend(bn, stk->stk[getArg(p,i)].val.pval, 
false) != GDK_SUCCEED)
goto bailout;
} else {
for(i = first; i < p->argc; i++)
-   if (BUNappend(bn, getArgReference(stk, p, i), true) != 
GDK_SUCCEED)
+   if (BUNappend(bn, getArgReference(stk, p, i), false) != 
GDK_SUCCEED)
goto bailout;
}
ret= getArgReference_bat(stk,p,0);
diff --git a/monetdb5/modules/mal/tokenizer.c b/monetdb5/modules/mal/tokenizer.c
--- a/monetdb5/modules/mal/tokenizer.c
+++ b/monetdb5/modules/mal/tokenizer.c
@@ -337,7 +337,7 @@ TKNZRappend(oid *pos, str *s)
throw(MAL, "tokenizer.append",
OPERATION_FAILED " no more free oid's");
}
-   if (BUNappend(tokenBAT[i].val, parts[i], true) != GDK_SUCCEED) {
+   if (BUNappend(tokenBAT[i].val, parts[i], false) != GDK_SUCCEED) 
{
GDKfree(url);
throw(MAL, "tokenizer.append",
OPERATION_FAILED " could not append");
@@ -349,7 +349,7 @@ TKNZRappend(oid *pos, str *s)
BAThash(tokenBAT[i].val);
}
 
-   if (BUNappend(tokenBAT[i].idx, (ptr) & prv, true) != 
GDK_SUCCEED) {
+   if (BUNappend(tokenBAT[i].idx, (ptr) & prv, false) != 
GDK_SUCCEED) {
GDKfree(url);
throw(MAL, "tokenizer.append",
OPERATION_FAILED " could not append");
@@ -360,7 +360,7 @@ TKNZRappend(oid *pos, str *s)
 
*pos = (oid) BATcount(tokenBAT[INDEX].val);
comp = COMP(prv, depth);
-   if (BUNappend(tokenBAT[INDEX].val, , true) != GDK_SUCCEED) {
+   if (BUNappend(tokenBAT[INDEX].val, , false) != GDK_SUCCEED) {
GDKfree(url);
throw(MAL, "tokenizer.append", SQLSTATE(HY001) MAL_MALLOC_FAIL);
}
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: sq2 - small revert

2019-10-27 Thread Niels Nes
Changeset: 6673c1d1ca70 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6673c1d1ca70
Modified Files:
sql/server/rel_select.c
Branch: sq2
Log Message:

small revert


diffs (49 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -3897,7 +3897,7 @@ rel_binop(sql_query *query, sql_rel **re
mvc *sql = query->sql;
dnode *dl = se->data.lval->h;
sql_exp *l, *r;
-   sql_rel *orel = *rel, *left, *right = NULL;
+   sql_rel *orel = *rel, *left;
char *fname = qname_fname(dl->data.lval);
char *sname = qname_schema(dl->data.lval);
sql_schema *s = sql->session->schema;
@@ -3917,17 +3917,7 @@ rel_binop(sql_query *query, sql_rel **re
l = rel_project_add_exp(sql, left, l);
orel = left;
}
-   r = rel_value_exp(query, , dl->next->next->data.sym, f, iek);
-   if (!r) {
-   /* reset error */
-   sql->session->status = 0;
-   sql->errstr[0] = '\0';
-   r = rel_value_exp(query, rel, dl->next->next->data.sym, f, iek);
-   } else if (left && right) {
-   *rel = rel_crossproduct(sql->sa, left, right, 
is_sql_sel(f)?op_left:op_join);
-   } else if (right) {
-   *rel = right;
-   }
+   r = rel_value_exp(query, rel, dl->next->next->data.sym, f, iek);
if (l && *rel && exp_card(l) > CARD_AGGR && rel_find_groupby(*rel)) {
if (l && exp_relname(l) && exp_name(l))
return sql_error(sql, ERR_GROUPBY, SQLSTATE(42000) 
"SELECT: cannot use non GROUP BY column '%s.%s' in query results without an 
aggregate function", exp_relname(l), exp_name(l));
@@ -5965,7 +5955,7 @@ rel_table_exp(sql_query *query, sql_rel 
char *tname = column_e->data.lval->h->data.sval;
list *exps;

-   if ((exps = rel_table_projections(sql, *rel, tname, 0)) != NULL)
+   if ((exps = rel_table_projections(sql, *rel, tname, 0)) != NULL 
&& !list_empty(exps))
return exps;
if (!tname)
return sql_error(sql, 02,
@@ -6215,7 +6205,7 @@ rel_select_exp(sql_query *query, sql_rel
te = rel_table_exp(query, , n->data.sym);
} else 
ce = NULL;
-   if (!ce && (!te || list_empty(te))) {
+   if (!ce && !te) {
if (sql->errstr[0])
return NULL;
return sql_error(sql, 02, SQLSTATE(42000) "SELECT: 
subquery result missing");
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: sq2 - cleanup

2019-10-27 Thread Niels Nes
Changeset: 2133f3a8f48c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2133f3a8f48c
Modified Files:
monetdb5/optimizer/opt_support.c
sql/server/rel_exp.c
sql/server/rel_rel.c
sql/server/rel_select.c

sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.stable.out
Branch: sq2
Log Message:

cleanup


diffs (truncated from 735 to 300 lines):

diff --git a/monetdb5/optimizer/opt_support.c b/monetdb5/optimizer/opt_support.c
--- a/monetdb5/optimizer/opt_support.c
+++ b/monetdb5/optimizer/opt_support.c
@@ -345,7 +345,6 @@ safetyBarrier(InstrPtr p, InstrPtr q)
return FALSE;
 }
 
-
 int
 isUpdateInstruction(InstrPtr p){
if ( getModuleId(p) == sqlRef &&
@@ -364,6 +363,7 @@ isUpdateInstruction(InstrPtr p){
return TRUE;
return FALSE;
 }
+
 int
 hasSideEffects(MalBlkPtr mb, InstrPtr p, int strict)
 {
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -222,8 +222,10 @@ exp_op( sql_allocator *sa, list *l, sql_
e->card = exps_card(l);
if (!l || list_length(l) == 0) 
e->card = CARD_ATOM; /* unop returns a single atom */
+   /* 
if (f->func->side_effect)
e->card = CARD_MULTI;
+   */
e->l = l;
e->f = f; 
return e;
diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -851,9 +851,7 @@ rel_groupby(mvc *sql, sql_rel *l, list *
append(aggrs, ne);
}
}
-#if 0
 
-#endif
rel->l = l;
rel->r = groupbyexps;
rel->exps = aggrs;
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -42,14 +42,8 @@ rel_table_projections( mvc *sql, sql_rel
if (!rel)
return NULL;
 
-   if (!tname) {
-   //if ((is_project(rel->op) || rel->op == op_select || 
is_semi(rel->op)) && rel->l)
-   //if (!is_base(rel->op) && is_base(rel->op))
-   return _rel_projections(sql, rel, NULL, 1, 0, 1);
-   //else
-   //return NULL;
-   /* return rel_projections(sql, rel, NULL, 1, 0); */
-   }
+   if (!tname)
+   return _rel_projections(sql, rel, NULL, 1, 0, 1);
 
switch(rel->op) {
case op_join:
@@ -187,74 +181,6 @@ rel_find_lastexp(sql_rel *rel )
return rel->exps->t->data;
 }
 
-#if 0
-static sql_rel*
-rel_project2groupby(mvc *sql, sql_rel *g)
-{
-   if (g->op == op_project) {
-   node *en;
-   
-   reset_processed(g);
-   if (!g->exps)
-   g->exps = new_exp_list(sql->sa);
-   for (en = g->exps->h; en; en = en->next) {
-   sql_exp *e = en->data;
-
-   if (e->card > CARD_ATOM) {
-   if (e->type == e_column && e->r) {
-   return sql_error(sql, 02, 
SQLSTATE(42000) "Cannot use non GROUP BY column '%s' in query results without 
an aggregate function", (char *) e->r);
-   } else {
-   return sql_error(sql, 02, 
SQLSTATE(42000) "Cannot use non GROUP BY column in query results without an 
aggregate function");
-   }
-   }
-   }
-   g->card = CARD_ATOM; /* no groupby expressions */
-   g->op = op_groupby;
-   g->r = new_exp_list(sql->sa); /* add empty groupby column list 
*/
-   g = rel_project(sql->sa, g, rel_projections(sql, g, NULL, 1, 
1));
-   reset_processed(g);
-   return g;
-   }
-   return NULL;
-}
-
-static sql_rel*
-revert_project2groupby(sql_rel *p)
-{
-   /* change too recusive find project/groupby */
-   if (p && p->op == op_project) {
-   sql_rel *g = p->l;
-
-   if (g->op == op_groupby) {
-   sql_rel *l = g->l;
-   g->r = NULL;
-   g->op = op_project;
-   if (l)
-   g->card = l->card;
-   return g;
-   }
-   }
-   return p;
-}
-
-static void
-rel_intermediates_add_exp(mvc *sql, sql_rel *p, sql_rel *op, sql_exp *in)
-{
-   while(op && p != op) {
-   sql_rel *pp = op;
-
-   while(pp->l && pp->l != p) 
-   pp = pp->l;
-   if (pp && pp->l == p && pp->op == op_project) {
-   in = exp_ref(sql->sa, in);
-   in = rel_project_add_exp(sql, pp, in);
-   }
-   p = pp;
-   }
-}
-
-#endif
-
 static sql_rel *
 rel_orderby(mvc *sql, sql_rel *l)
 {
@@ 

MonetDB: Nov2019 - Scripts startup cleanup. Handle startup scrip...

2019-10-27 Thread Pedro Ferreira
Changeset: 4169a5a59387 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4169a5a59387
Modified Files:
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/sql_upgrades.c
sql/backends/monet5/sql_upgrades.h
sql/scripts/99_system.sql
Branch: Nov2019
Log Message:

Scripts startup cleanup. Handle startup scripts transactions at SQLinit.

Stop either database creation or upgrades whenever an error is found.


diffs (truncated from 380 to 300 lines):

diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -507,8 +507,8 @@ SQLinit(Client c)
slash_2_dir_sep(path);
fullname = MSP_locate_sqlscript(path, 1);
if (fullname) {
-   str filename = fullname;
-   str p, n, newmsg= MAL_SUCCEED;
+   str filename = fullname, p, n;
+
fprintf(stdout, "# SQL catalog created, loading sql 
scripts once\n");
do {
stream *fd = NULL;
@@ -531,31 +531,40 @@ SQLinit(Client c)
sz = getFileSize(fd);
if (sz > (size_t) 1 << 29) {
close_stream(fd);
-   newmsg = createException(MAL, 
"createdb", SQLSTATE(42000) "File %s too large to process", filename);
+   msg = createException(MAL, 
"createdb", SQLSTATE(42000) "File %s too large to process", filename);
} else {
bstream *bfd = NULL;
 
-   if((bfd = bstream_create(fd, sz 
== 0 ? (size_t) (128 * BLOCK) : sz)) == NULL) {
+   if ((bfd = bstream_create(fd, 
sz == 0 ? (size_t) (128 * BLOCK) : sz)) == NULL) {
close_stream(fd);
-   newmsg = 
createException(MAL, "createdb", SQLSTATE(HY001) MAL_MALLOC_FAIL);
+   msg = 
createException(MAL, "createdb", SQLSTATE(HY001) MAL_MALLOC_FAIL);
} else {
if (bstream_next(bfd) 
>= 0)
-   newmsg = 
SQLstatementIntern(c, >buf, "sql.init", TRUE, FALSE, NULL);
+   msg = 
SQLstatementIntern(c, >buf, "sql.init", TRUE, FALSE, NULL);
bstream_destroy(bfd);
}
}
-   if (m->sa)
-   sa_destroy(m->sa);
-   m->sa = NULL;
-   if (newmsg){
-   fprintf(stderr,"%s",newmsg);
-   freeException(newmsg);
-   }
-   }
-   } while (p);
+   } else
+   msg = createException(MAL, "createdb", 
SQLSTATE(HY001) "Couldn't open file %s", filename);
+   } while (p && msg == MAL_SUCCEED);
GDKfree(fullname);
} else
-   fprintf(stderr, "!could not read createdb.sql\n");
+   msg = createException(MAL, "createdb", SQLSTATE(HY001) 
"Could not read createdb.sql");
+
+   /* Commit after all the startup scripts have been processed */
+   assert(m->session->tr->active);
+   if (mvc_status(m) < 0 || msg)
+   other = mvc_rollback(m, 0, NULL, false);
+   else
+   other = mvc_commit(m, 0, NULL, false);
+
+   if (other && !msg) /* 'msg' variable might be set or not, as 
well as 'other'. Throw the earliest one */
+   msg = other;
+   else if (other)
+   freeException(other);
+
+   if (msg)
+   fprintf(stderr, "%s", msg);
 #endif
} else {/* handle upgrades */
if (!m->sa)
@@ -564,10 +573,10 @@ SQLinit(Client c)
msg = createException(MAL, "createdb", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
} else if (maybeupgrade) {
if ((msg = SQLtrans(m)) == MAL_SUCCEED) {
-   

MonetDB: default - Merge with Nov2019

2019-10-27 Thread Pedro Ferreira
Changeset: 804427e295f6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=804427e295f6
Modified Files:
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/sql_upgrades.c
Branch: default
Log Message:

Merge with Nov2019


diffs (206 lines):

diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -565,9 +565,11 @@ SQLinit(Client c)
} else if (maybeupgrade) {
if ((msg = SQLtrans(m)) == MAL_SUCCEED) {
SQLupgrades(c,m);
-   /* sometimes the upgrade ends in a COMMIT,
-* sometimes not */
-   if (m->session->tr->active)
+   /* Commit at the end of the upgrade */
+   assert(m->session->tr->active);
+   if (mvc_status(m) < 0)
+   msg = mvc_rollback(m, 0, NULL, false);
+   else
msg = mvc_commit(m, 0, NULL, false);
}
}
diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -248,7 +248,6 @@ sql_update_hugeint(Client c, mvc *sql, c
"update sys.functions set system = true where name = 
'filter' and schema_id = (select id from sys.schemas where name = 'json');\n");
 
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", 
prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
assert(pos < bufsize);
 
printf("Running database upgrade commands:\n%s\n", buf);
@@ -297,7 +296,6 @@ sql_update_geom(Client c, mvc *sql, int 
}
 
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", 
prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
 
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
@@ -411,7 +409,6 @@ sql_update_jul2017(Client c, const char 
res_tables_destroy(output);
 
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", 
prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
 
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
@@ -456,7 +453,6 @@ sql_update_jul2017_sp2(Client c)
"GRANT EXECUTE ON FUNCTION sys.environment() TO 
PUBLIC;\n"
"GRANT SELECT ON sys.environment TO PUBLIC;\n"
);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
err = SQLstatementIntern(c, , "update", true, 
false, NULL);
@@ -508,7 +504,6 @@ sql_update_jul2017_sp3(Client c, mvc *sq
"create trigger system_update_schemas after update on 
sys.schemas for each statement call sys_update_schemas();\n"
"create trigger system_update_tables after update on 
sys._tables for each statement call sys_update_tables();\n");
pos += snprintf(buf + pos, bufsize - pos, "set schema 
\"%s\";\n", prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
err = SQLstatementIntern(c, , "update", true, false, NULL);
@@ -545,7 +540,6 @@ sql_update_mar2018_geom(Client c, sql_ta
"update sys._tables set system = true where name = 
'geometry_columns' and schema_id in (select id from schemas where name = 
'sys');\n");
 
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", 
prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
 
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
@@ -1014,7 +1008,6 @@ sql_update_mar2018(Client c, mvc *sql, c
);
 
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", 
prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
 
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
@@ -1025,7 +1018,6 @@ sql_update_mar2018(Client c, mvc *sql, c
   "ALTER TABLE sys.function_types SET READ ONLY;\n"
   "ALTER TABLE sys.function_languages SET READ 
ONLY;\n");
pos += snprintf(buf + pos, bufsize - pos, "set schema 
\"%s\";\n", prev_schema);
-   pos += 

MonetDB: Nov2019 - Run commit statement only once at the end of ...

2019-10-27 Thread Pedro Ferreira
Changeset: f552f0c2124e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f552f0c2124e
Modified Files:
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/sql_upgrades.c
Branch: Nov2019
Log Message:

Run commit statement only once at the end of every sql upgrades.

After a commit in one of the upgrades, the next ones would run on auto-commit, 
and if a crash would happen, it would be possible to apply a fraction of the 
upgrades, and thus a corrupted database.


diffs (189 lines):

diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -565,9 +565,11 @@ SQLinit(Client c)
} else if (maybeupgrade) {
if ((msg = SQLtrans(m)) == MAL_SUCCEED) {
SQLupgrades(c,m);
-   /* sometimes the upgrade ends in a COMMIT,
-* sometimes not */
-   if (m->session->tr->active)
+   /* Commit at the end of the upgrade */
+   assert(m->session->tr->active);
+   if (mvc_status(m) < 0)
+   msg = mvc_rollback(m, 0, NULL, false);
+   else
msg = mvc_commit(m, 0, NULL, false);
}
}
diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -248,7 +248,6 @@ sql_update_hugeint(Client c, mvc *sql, c
"update sys.functions set system = true where name = 
'filter' and schema_id = (select id from sys.schemas where name = 'json');\n");
 
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", 
prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
assert(pos < bufsize);
 
printf("Running database upgrade commands:\n%s\n", buf);
@@ -297,7 +296,6 @@ sql_update_geom(Client c, mvc *sql, int 
}
 
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", 
prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
 
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
@@ -411,7 +409,6 @@ sql_update_jul2017(Client c, const char 
res_tables_destroy(output);
 
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", 
prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
 
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
@@ -456,7 +453,6 @@ sql_update_jul2017_sp2(Client c)
"GRANT EXECUTE ON FUNCTION sys.environment() TO 
PUBLIC;\n"
"GRANT SELECT ON sys.environment TO PUBLIC;\n"
);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
err = SQLstatementIntern(c, , "update", true, 
false, NULL);
@@ -508,7 +504,6 @@ sql_update_jul2017_sp3(Client c, mvc *sq
"create trigger system_update_schemas after update on 
sys.schemas for each statement call sys_update_schemas();\n"
"create trigger system_update_tables after update on 
sys._tables for each statement call sys_update_tables();\n");
pos += snprintf(buf + pos, bufsize - pos, "set schema 
\"%s\";\n", prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
err = SQLstatementIntern(c, , "update", true, false, NULL);
@@ -545,7 +540,6 @@ sql_update_mar2018_geom(Client c, sql_ta
"update sys._tables set system = true where name = 
'geometry_columns' and schema_id in (select id from schemas where name = 
'sys');\n");
 
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", 
prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
 
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
@@ -1014,7 +1008,6 @@ sql_update_mar2018(Client c, mvc *sql, c
);
 
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", 
prev_schema);
-   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
 
assert(pos < bufsize);
printf("Running database upgrade commands:\n%s\n", buf);
@@ -1025,7 +1018,6 @@ sql_update_mar2018(Client c, mvc *sql, c
   "ALTER TABLE 

MonetDB: default - Merge with Nov2019

2019-10-27 Thread Pedro Ferreira
Changeset: 1b4349e213c6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1b4349e213c6
Modified Files:
gdk/gdk_analytic_bounds.c
sql/test/BugConstraints/Tests/check_constraint.SF-1714829.stable.err
sql/test/pg_regress/Tests/alter_table.stable.err
sql/test/pg_regress/Tests/alter_table.stable.out
Branch: default
Log Message:

Merge with Nov2019


diffs (truncated from 694 to 300 lines):

diff --git a/gdk/gdk_analytic_bounds.c b/gdk/gdk_analytic_bounds.c
--- a/gdk/gdk_analytic_bounds.c
+++ b/gdk/gdk_analytic_bounds.c
@@ -94,7 +94,7 @@
do {\
lng m = k - 1;  \
for (; k < i; k++, rb++) {  \
-   TPE2 rlimit = (TPE2) LIMIT; \
+   TPE2 rlimit = LIMIT;\
TPE1 v = bp[k]; \
if (is_##TPE1##_nil(v)) {   \
for (j = k; ; j--) {\
@@ -125,7 +125,7 @@
 #define ANALYTICAL_WINDOW_BOUNDS_FIXED_GROUPS_FOLLOWING(TPE1, LIMIT, TPE2) \
do {\
for (; k < i; k++, rb++) {  \
-   TPE2 rlimit = (TPE2) LIMIT; \
+   TPE2 rlimit = LIMIT;\
TPE1 v = bp[k]; \
if (is_##TPE1##_nil(v)) {   \
for (j = k + 1; j < i; j++) {   \
@@ -168,7 +168,7 @@
}   \
} while (0)
 
-#define ANALYTICAL_WINDOW_BOUNDS_VARSIZED_RANGE_PRECEDING(LIMIT)   \
+#define ANALYTICAL_WINDOW_BOUNDS_VARSIZED_RANGE_PRECEDING(LIMIT, TPE)  \
do {\
lng m = k - 1;  \
for (; k < i; k++, rb++) {  \
@@ -188,7 +188,7 @@
next = BUNtail(bpi, (BUN) j);   \
if (atomcmp(next, nil) == 0)\
break;  \
-   if (ABSOLUTE(atomcmp(v, next)) > (int) 
LIMIT) \
+   if (ABSOLUTE((TPE) atomcmp(v, next)) > 
(TPE) LIMIT) \
break;  \
}   \
}   \
@@ -197,7 +197,7 @@
}   \
} while (0)
 
-#define ANALYTICAL_WINDOW_BOUNDS_VARSIZED_RANGE_FOLLOWING(LIMIT)   \
+#define ANALYTICAL_WINDOW_BOUNDS_VARSIZED_RANGE_FOLLOWING(LIMIT, TPE)  \
do {\
for (; k < i; k++, rb++) {  \
void *v = BUNtail(bpi, (BUN) k);\
@@ -211,7 +211,7 @@
void *next = BUNtail(bpi, (BUN) j); \
if (atomcmp(next, nil) == 0)\
break;  \
-   if (ABSOLUTE(atomcmp(v, next)) > (int) 
LIMIT) \
+   if (ABSOLUTE((TPE) atomcmp(v, next)) > 
(TPE) LIMIT) \
break;  \
}   \
}   \
@@ -219,11 +219,11 @@
}   \
} while (0)
 
-#define ANALYTICAL_WINDOW_BOUNDS_VARSIZED_GROUPS_PRECEDING(LIMIT)  \
+#define ANALYTICAL_WINDOW_BOUNDS_VARSIZED_GROUPS_PRECEDING(LIMIT, TPE) \
do {\
lng m = k - 1;  \
for (; k < i; k++, rb++) {  \
-   lng rlimit = (lng) LIMIT;   \
+   TPE rlimit = LIMIT; \
void *v = BUNtail(bpi, (BUN) k);\
if (atomcmp(v, nil) == 0) { \
for (j = k; ; j--) {\
@@ -253,10 +253,10 @@
}