MonetDB: Oct2020 - One more sqlancer crash :( I can't undertand ...

2021-01-23 Thread Pedro Ferreira
Changeset: 955ebfbd4631 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=955ebfbd4631
Modified Files:
sql/test/SQLancer/Tests/sqlancer01.sql
Branch: Oct2020
Log Message:

One more sqlancer crash :( I can't undertand it well, haschcol property added 
to a comparison expression?


diffs (27 lines):

diff --git a/sql/test/SQLancer/Tests/sqlancer01.sql 
b/sql/test/SQLancer/Tests/sqlancer01.sql
--- a/sql/test/SQLancer/Tests/sqlancer01.sql
+++ b/sql/test/SQLancer/Tests/sqlancer01.sql
@@ -339,3 +339,23 @@ ROLLBACK;
 DROP TABLE tbl_ProductSales;
 DROP TABLE another_T;
 DROP TABLE integers;
+
+START TRANSACTION;
+CREATE TABLE "sys"."t0" ("c0" CHAR(89) NOT NULL,"c1" BOOLEAN,CONSTRAINT 
"t0_c0_pkey" PRIMARY KEY ("c0"),
+   CONSTRAINT "t0_c0_unique" UNIQUE ("c0"),CONSTRAINT "t0_c1_c0_unique" 
UNIQUE ("c1", "c0"));
+COPY 11 RECORDS INTO "sys"."t0" FROM stdin USING DELIMITERS E'\t',E'\n','"';
+"熡U"   false
+"3"NULL
+"6"NULL
+"0.6714721480805466"   NULL
+"true" true
+"OD6N綥"false
+"흷)%^Ae+c蝢"true
+"9"false
+"']iq" true
+"E"true
+"0.5036928534407451"   false
+
+update t0 set c1 = true where t0.c0 = t0.c0 and t0.c1 = t0.c1;
+update t0 set c1 = true, c0 = r'.+' where 
"isauuid"(t0.c0))and(((t0.c0)=(t0.c0)and(((t0.c1)=(t0.c1;
+ROLLBACK;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: nospare - approve some tests, now the behavour is sligh...

2021-01-23 Thread Niels Nes
Changeset: bbfdd78d5779 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bbfdd78d5779
Modified Files:
sql/test/BugTracker-2015/Tests/acidity2-fail.Bug-3635.SQL.py
sql/test/BugTracker/Tests/explain.SF-1739353.test
sql/test/Tests/hot_snapshot.py
Branch: nospare
Log Message:

approve some tests, now the behavour is slightly different but not wrong..


diffs (51 lines):

diff --git a/sql/test/BugTracker-2015/Tests/acidity2-fail.Bug-3635.SQL.py 
b/sql/test/BugTracker-2015/Tests/acidity2-fail.Bug-3635.SQL.py
--- a/sql/test/BugTracker-2015/Tests/acidity2-fail.Bug-3635.SQL.py
+++ b/sql/test/BugTracker-2015/Tests/acidity2-fail.Bug-3635.SQL.py
@@ -32,7 +32,8 @@ run(c1, 'create view bar as select * fro
 run(c2, 'create table baz (a int);drop table baz')
 try:
 run(c1, 'commit')
-print("shouldn't get here")
+#print("shouldn't get here")
+# perfectly fine changing independent parts of the schema
 except pymonetdb.IntegrityError:
 pass
 
diff --git a/sql/test/BugTracker/Tests/explain.SF-1739353.test 
b/sql/test/BugTracker/Tests/explain.SF-1739353.test
--- a/sql/test/BugTracker/Tests/explain.SF-1739353.test
+++ b/sql/test/BugTracker/Tests/explain.SF-1739353.test
@@ -13,7 +13,7 @@ 1
 sql.mvc
 1
 sql.bind
-7
+9
 sql.tid
 2
 algebra.thetaselect
@@ -21,9 +21,7 @@ 3
 sql.subdelta
 1
 sql.projectdelta
-1
-algebra.projection
-1
+2
 bat.append
 2
 bat.pack
diff --git a/sql/test/Tests/hot_snapshot.py b/sql/test/Tests/hot_snapshot.py
--- a/sql/test/Tests/hot_snapshot.py
+++ b/sql/test/Tests/hot_snapshot.py
@@ -71,7 +71,10 @@ def test_snapshot(z_extension, expected_
 autocommit=False
 )
 cur2 = conn2.cursor()
-cur2.execute("insert into foo values ('uncommitted2')")
+try:
+cur2.execute("insert into foo values ('uncommitted2')")
+except:
+pass
 
 # then conn1 creates the snapshot
 cur1.execute("call sys.hot_snapshot(%(tarname)s)", 
dict(tarname=tarname))
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: nospare - handle alter's better in concurrent cases.

2021-01-23 Thread Niels Nes
Changeset: b7dec74af2c6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b7dec74af2c6
Modified Files:
sql/storage/bat/bat_storage.c
sql/storage/bat/bat_storage.h
Branch: nospare
Log Message:

handle alter's better in concurrent cases.


diffs (43 lines):

diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -1569,6 +1569,7 @@ create_col(sql_trans *tr, sql_column *c)
if(bat->uvbid == BID_NIL)
ok = LOG_ERR;
}
+   bat->alter = 1;
} else {
BAT *b = bat_new(type, c->t->sz, PERSISTENT);
if (!b) {
@@ -1619,7 +1620,9 @@ commit_create_col_( sql_trans *tr, sql_c
delta->ts = commit_ts;
 
assert(delta->next == NULL);
-   ok = tr_merge_delta(tr, delta);
+   if (!delta->alter)
+   ok = tr_merge_delta(tr, delta);
+   delta->alter = 0;
c->base.flags = 0;
}
return ok;
@@ -1684,6 +1687,7 @@ create_idx(sql_trans *tr, sql_idx *ni)
bat->ibase = d->ibase;
bat->cnt = d->cnt;
bat->ucnt = 0;
+   bat->alter = 1;
 
if (d->uibid) {
bat->uibid = e_bat(TYPE_oid);
diff --git a/sql/storage/bat/bat_storage.h b/sql/storage/bat/bat_storage.h
--- a/sql/storage/bat/bat_storage.h
+++ b/sql/storage/bat/bat_storage.h
@@ -20,7 +20,8 @@ typedef struct sql_delta {
int ibid;   /* bat with inserts */
int uibid;  /* bat with positions of updates */
int uvbid;  /* bat with values of updates */
-   int cleared;
+   bool cleared;
+   bool alter; /* set when the delta is created for an alter 
statement */
size_t cnt; /* number of tuples (excluding the deletes) */
size_t ucnt;/* number of updates */
BAT *cached;/* cached copy, used for schema bats only */
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Oct2020 - rel_dce needs to add projections above sub-re...

2021-01-23 Thread Pedro Ferreira
Changeset: b6f86cefc00b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b6f86cefc00b
Modified Files:
sql/server/rel_optimizer.c
sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out

sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out.Windows
sql/test/SQLancer/Tests/sqlancer02.sql
sql/test/SQLancer/Tests/sqlancer02.stable.out
Branch: Oct2020
Log Message:

rel_dce needs to add projections above sub-relations of set relations. So call 
rel_add_projects recursively under modifiying relations. Also added missing 
cases for exp_used


diffs (268 lines):

diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -6770,8 +6770,32 @@ exp_used(sql_exp *e)
 {
if (e) {
e->used = 1;
-   if ((e->type == e_func || e->type == e_aggr) && e->l)
+
+   switch (e->type) {
+   case e_convert:
+   exp_used(e->l);
+   break;
+   case e_func:
+   case e_aggr:
exps_used(e->l);
+   break;
+   case e_cmp:
+   if (e->flag == cmp_or || e->flag == cmp_filter) {
+   exps_used(e->l);
+   exps_used(e->r);
+   } else if (e->flag == cmp_in || e->flag == cmp_notin) {
+   exp_used(e->l);
+   exps_used(e->r);
+   } else {
+   exp_used(e->l);
+   exp_used(e->r);
+   if (e->f)
+   exp_used(e->f);
+   }
+   break;
+   default:
+   break;
+   }
}
 }
 
@@ -6779,9 +6803,7 @@ static void
 exps_used(list *l)
 {
if (l) {
-   node *n;
-
-   for (n = l->h; n; n = n->next)
+   for (node *n = l->h; n; n = n->next)
exp_used(n->data);
}
 }
@@ -6826,7 +6848,10 @@ rel_mark_used(mvc *sql, sql_rel *rel, in
 
switch(rel->op) {
case op_basetable:
+   case op_truncate:
+   case op_insert:
break;
+
case op_table:
 
if (rel->l && rel->flag != TRIGGER_WRAPPER) {
@@ -6867,9 +6892,6 @@ rel_mark_used(mvc *sql, sql_rel *rel, in
}
break;
 
-   case op_insert:
-   case op_truncate:
-   break;
case op_ddl:
if (rel->flag == ddl_output || rel->flag == ddl_create_seq || 
rel->flag == ddl_alter_seq || rel->flag == ddl_alter_table || rel->flag == 
ddl_create_table || rel->flag == ddl_create_view) {
if (rel->l)
@@ -7241,20 +7263,17 @@ rel_add_projects(mvc *sql, sql_rel *rel)
 
switch(rel->op) {
case op_basetable:
-   case op_table:
-
+   case op_truncate:
+   return rel;
case op_insert:
case op_update:
case op_delete:
-   case op_truncate:
-   case op_ddl:
-
+   if (rel->r)
+   rel->r = rel_add_projects(sql, rel->r);
return rel;
-
case op_union:
case op_inter:
case op_except:
-
/* We can only reduce the list of expressions of an set op
 * if the projection under it can also be reduced.
 */
@@ -7273,16 +7292,15 @@ rel_add_projects(mvc *sql, sql_rel *rel)
rel->r = rel_add_projects(sql, r);
}
return rel;
-
case op_topn:
case op_sample:
case op_project:
case op_groupby:
case op_select:
-   if (rel->l)
+   case op_table:
+   if (rel->l && (rel->op != op_table || rel->flag != 
TRIGGER_WRAPPER))
rel->l = rel_add_projects(sql, rel->l);
return rel;
-
case op_join:
case op_left:
case op_right:
@@ -7294,6 +7312,17 @@ rel_add_projects(mvc *sql, sql_rel *rel)
if (rel->r)
rel->r = rel_add_projects(sql, rel->r);
return rel;
+   case op_ddl:
+   if (rel->flag == ddl_output || rel->flag == ddl_create_seq || 
rel->flag == ddl_alter_seq || rel->flag == ddl_alter_table || rel->flag == 
ddl_create_table || rel->flag == ddl_create_view) {
+   if (rel->l)
+   rel->l = rel_add_projects(sql, rel->l);
+   } else if (rel->flag == ddl_list || rel->flag == ddl_exception) 
{
+   if (rel->l)
+   rel->l = rel_add_projects(sql, rel->l);
+   if (rel->r)
+   

MonetDB: nospare - types aren't unique (we use the systemname wh...

2021-01-23 Thread Niels Nes
Changeset: 17cc416f7c3f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=17cc416f7c3f
Modified Files:
sql/include/sql_catalog.h
sql/server/sql_mvc.c
sql/server/sql_mvc.h
sql/storage/sql_catalog.c
sql/storage/store.c
Branch: nospare
Log Message:

types aren't unique (we use the systemname which could be used many times for 
different sql types)

(cleanup of some more unused functions)


diffs (139 lines):

diff --git a/sql/include/sql_catalog.h b/sql/include/sql_catalog.h
--- a/sql/include/sql_catalog.h
+++ b/sql/include/sql_catalog.h
@@ -772,11 +772,7 @@ extern sql_schema *find_sql_schema_id(sq
 extern sql_type *find_sql_type(sql_trans *tr, sql_schema * s, const char 
*tname);
 extern sql_type *sql_trans_bind_type(sql_trans *tr, sql_schema *s, const char 
*name);
 extern sql_type *sql_trans_find_type(sql_trans *tr, sql_schema *s /*optional 
*/, sqlid id);
-
-extern sql_func *find_sql_func(sql_trans *tr, sql_schema * s, const char 
*tname);
-extern sql_func *sql_trans_bind_func(sql_trans *tr, const char *name);
 extern sql_func *sql_trans_find_func(sql_trans *tr, sqlid id);
-
 extern sql_trigger *sql_trans_find_trigger(sql_trans *tr, sqlid id);
 
 extern void *sql_values_list_element_validate_and_insert(void *v1, void *v2, 
void *tpe, int* res);
diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -902,14 +902,6 @@ schema_bind_type(mvc *sql, sql_schema *s
return t;
 }
 
-sql_func *
-mvc_bind_func(mvc *sql, const char *name)
-{
-   sql_func *t = sql_trans_bind_func(sql->session->tr, name);
-   TRC_DEBUG(SQL_TRANS, "Bind function: %s\n", name);
-   return t;
-}
-
 sql_schema *
 mvc_bind_schema(mvc *m, const char *sname)
 {
diff --git a/sql/server/sql_mvc.h b/sql/server/sql_mvc.h
--- a/sql/server/sql_mvc.h
+++ b/sql/server/sql_mvc.h
@@ -185,7 +185,6 @@ extern str mvc_release(mvc *c, const cha
 
 extern sql_type *mvc_bind_type(mvc *sql, const char *name);
 extern sql_type *schema_bind_type(mvc *sql, sql_schema * s, const char *name);
-extern sql_func *mvc_bind_func(mvc *sql, const char *name);
 
 sql_export sql_schema *mvc_bind_schema(mvc *c, const char *sname);
 sql_export sql_table *mvc_bind_table(mvc *c, sql_schema *s, const char *tname);
diff --git a/sql/storage/sql_catalog.c b/sql/storage/sql_catalog.c
--- a/sql/storage/sql_catalog.c
+++ b/sql/storage/sql_catalog.c
@@ -277,7 +277,16 @@ find_sql_schema_id(sql_trans *tr, sqlid 
 sql_type *
 find_sql_type(sql_trans *tr, sql_schema *s, const char *tname)
 {
-   return (sql_type*)os_find_name(s->types, tr, tname);
+   struct os_iter oi;
+
+   os_iterator(, s->types, tr, NULL);
+   for (sql_base *b = oi_next(); b; b = oi_next()) {
+   sql_type *t = (sql_type*)b;
+
+   if (strcmp(t->sqlname, tname) == 0)
+   return t;
+   }
+   return NULL;
 }
 
 sql_type *
@@ -317,26 +326,6 @@ sql_trans_find_type(sql_trans *tr, sql_s
 }
 
 sql_func *
-find_sql_func(sql_trans *tr, sql_schema *s, const char *tname)
-{
-   return (sql_func*)os_find_name(s->funcs, tr, tname);
-}
-
-sql_func *
-sql_trans_bind_func(sql_trans *tr, const char *name)
-{
-   struct os_iter oi;
-   os_iterator(, tr->cat->schemas, tr, NULL);
-   for (sql_base *b = oi_next(); b; b = oi_next()) {
-   sql_schema *s = (sql_schema*)b;
-   sql_func *f = find_sql_func(tr, s, name);
-   if (f)
-   return f;
-   }
-   return NULL;
-}
-
-sql_func *
 sql_trans_find_func(sql_trans *tr, sqlid id)
 {
struct os_iter oi;
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -1053,7 +1053,7 @@ load_schema(sql_trans *tr, sqlid id, oid
s->owner = *(sqlid *)v; _DELETE(v);
 
s->tables = os_new(tr->sa, (destroy_fptr) _destroy, 
false, true);
-   s->types = os_new(tr->sa, (destroy_fptr) _destroy, false, 
true);
+   s->types = os_new(tr->sa, (destroy_fptr) _destroy, false, 
false);
s->funcs = os_new(tr->sa, (destroy_fptr) _destroy, false, 
false);
s->seqs = os_new(tr->sa, (destroy_fptr) _destroy, false, 
true);
s->keys = os_new(tr->sa, (destroy_fptr) _destroy, false, 
true);
@@ -1460,13 +1460,13 @@ dup_sql_type(sql_trans *tr, sql_schema *
 
if (s->base.id == nc->type->s->base.id) {
/* Current user type belongs to current schema. So 
search there for current user type. */
-   lt = find_sql_type(tr, s, nc->type->base.name);
+   lt = find_sql_type(tr, s, nc->type->sqlname);
} else {
/* Current user type belongs to another schema in the 
current transaction. Search there for current user type. */
-   lt = sql_trans_bind_type(tr, NULL, 

MonetDB: Oct2020 - New SQLancer crash :( Looking into it

2021-01-23 Thread Pedro Ferreira
Changeset: a74ef66bc54a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a74ef66bc54a
Modified Files:
sql/test/SQLancer/Tests/sqlancer02.sql
Branch: Oct2020
Log Message:

New SQLancer crash :( Looking into it


diffs (33 lines):

diff --git a/sql/test/SQLancer/Tests/sqlancer02.sql 
b/sql/test/SQLancer/Tests/sqlancer02.sql
--- a/sql/test/SQLancer/Tests/sqlancer02.sql
+++ b/sql/test/SQLancer/Tests/sqlancer02.sql
@@ -380,3 +380,29 @@ SELECT CAST(SUM(count) AS BIGINT) FROM (
 FROM v5, v8 JOIN (VALUES (0.3, 10.0),(0.5, 8.0)) AS sub0 ON true) as res;
-- 4
 ROLLBACK;
+
+START TRANSACTION;
+CREATE TABLE "sys"."t0" ("c0" INTEGER,"c1" INTEGER NOT NULL,"c3" 
DECIMAL(18,3),"c4" DOUBLE,"c5" BOOLEAN,
+   "c6" CHARACTER LARGE OBJECT,"c7" DOUBLE NOT NULL,"c8" DOUBLE,"c9" 
DECIMAL(18,3));
+COPY 5 RECORDS INTO "sys"."t0" FROM stdin USING DELIMITERS E'\t',E'\n','"';
+-15816612468   0.000   0.5757982106353843  false   "?h\t*B/"   
0.5947494687969431  6.835094360268594   0.317
+-8 3   1.000   0.46282961313792403 false   "*Cn"   
0.5643561072026775  1   0.524
+5  6   0.277   0.6299672734345518  false   "v*?g"  -1102035617 
1317540012  -2.000
+-570443752 0   0.000   2   NULL"]#퟈!Nv"
0.6681382286865544  0.5840009532283835  0.540
+-18089269809   0.646   0.2983007748066492  true"P^"
-221084136  4   0.028
+
+create view v14(vc1, vc2) as (values (0.42, 0.34));
+
+create view v12(vc1) as (values (NULL),(-49.17));
+
+create view v22(vc0, vc1, vc2) as ((select 1, 0.3, true) union all (
+select greatest(l0v12.vc1, 3.2), -9.3976294E8, true from v12 as l0v12));
+
+create view v59(vc0) as (select 1);
+
+create view v85(vc0, vc1) as ((select -9.397294E8, ifthenelse(l0v22.vc2, 7, 
-5) from v22 as l0v22
+where l0v22.vc0 < l0v22.vc0) intersect (select 1, 8));
+
+insert into t0(c5, c0, c4)(select true, 3, 1 from v14 as l0v14
+join ((select 1) except all (select 3 from v85 as l1v85)) as sub0 on case 
l0v14.vc2 when l0v14.vc1 then false end);
+ROLLBACK;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: nospare - When starting the server, add part to the sch...

2021-01-23 Thread Pedro Ferreira
Changeset: 648a75bc3e5a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=648a75bc3e5a
Modified Files:
sql/storage/store.c
Branch: nospare
Log Message:

When starting the server, add part to the schema list of parts (fixes 
mergepart23 test)


diffs (11 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -1171,6 +1171,7 @@ load_schema(sql_trans *tr, sqlid id, oid
} else if (isListPartitionTable(t)) {
load_value_partition(tr, syss, pt);
}
+   os_add(s->parts, tr, pt->base.name, >base);
}
store->table_api.rids_destroy(rs);
}
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: nospare - approved more output after introduction of ob...

2021-01-23 Thread Niels Nes
Changeset: 161c38cde92c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=161c38cde92c
Modified Files:
sql/test/bugs/Tests/groupby_having-bug-sf-947600.test
sql/test/bugs/Tests/innerjoin_multiple-bug-sf-943661.test
sql/test/bugs/Tests/select_orderby_alias-bug-sf-1024615.test
sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.test
sql/test/sys-schema/Tests/check_Not_Nullable_columns.test
Branch: nospare
Log Message:

approved more output after introduction of objects.sub column


diffs (84 lines):

diff --git a/sql/test/bugs/Tests/groupby_having-bug-sf-947600.test 
b/sql/test/bugs/Tests/groupby_having-bug-sf-947600.test
--- a/sql/test/bugs/Tests/groupby_having-bug-sf-947600.test
+++ b/sql/test/bugs/Tests/groupby_having-bug-sf-947600.test
@@ -16,7 +16,7 @@ GROUP BY a.name, b.name
 HAVING COUNT(*) >= 1
 ORDER BY a.name, b.name
 
-81 values hashing to 5464689ee8163f6aeaf4fec86753f820
+81 values hashing to 7e14c830ba404a3f20dcbfa3bea01e26
 
 statement error
 select name from tables where "type" = 10 and "system" = true
diff --git a/sql/test/bugs/Tests/innerjoin_multiple-bug-sf-943661.test 
b/sql/test/bugs/Tests/innerjoin_multiple-bug-sf-943661.test
--- a/sql/test/bugs/Tests/innerjoin_multiple-bug-sf-943661.test
+++ b/sql/test/bugs/Tests/innerjoin_multiple-bug-sf-943661.test
@@ -11,7 +11,7 @@ select schemas.name, tables.name, column
'objects', 'keys', 'modules', 'sequences')
  order by schemas.name, tables.name, columns.name
 
-195 values hashing to 06295bb9a859ce342f6a0324c4f53f3e
+201 values hashing to 31ee80043c90bf403f2837d80ebbda07
 
 query TTT rowsort
 select s.name, t.name, c.name from
@@ -26,6 +26,6 @@ select s.name, t.name, c.name from
'objects', 'keys', 'modules', 'sequences')
  order by s.name, t.name, c.name
 
-195 values hashing to 06295bb9a859ce342f6a0324c4f53f3e
+201 values hashing to 31ee80043c90bf403f2837d80ebbda07
 
 
diff --git a/sql/test/bugs/Tests/select_orderby_alias-bug-sf-1024615.test 
b/sql/test/bugs/Tests/select_orderby_alias-bug-sf-1024615.test
--- a/sql/test/bugs/Tests/select_orderby_alias-bug-sf-1024615.test
+++ b/sql/test/bugs/Tests/select_orderby_alias-bug-sf-1024615.test
@@ -1,4 +1,4 @@
-query IIITIIITIITITITTIIT rowsort
+query TIIITIITITITTIIT rowsort
 SELECT * FROM "sys"."keys" AS "keys", "sys"."objects" AS
 "objects", "sys"."tables" AS "tables",
 "sys"."schemas" AS "schemas" WHERE "keys"."id" =
@@ -8,7 +8,7 @@ AND "tables"."schema_id" = "schemas"."id
 "tables"."name" LIKE 'x'
 
 
-query IIITIIITIITITITTIIT rowsort
+query TIIITIITITITTIIT rowsort
 SELECT * FROM "sys"."keys" AS "keys", "sys"."objects" AS
 "objects", "sys"."tables" AS "tables",
 "sys"."schemas" AS "schemas" WHERE "keys"."id" =
diff --git 
a/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.test 
b/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.test
--- a/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.test
+++ b/sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.test
@@ -86,7 +86,7 @@ query ITTI rowsort
 SELECT * FROM sys.types WHERE schema_id NOT IN (SELECT id FROM sys.schemas) 
AND schema_id <> 0
 
 
-query ITI rowsort
+query ITII rowsort
 SELECT * FROM sys.objects WHERE id NOT IN (SELECT id FROM sys.ids)
 
 
diff --git a/sql/test/sys-schema/Tests/check_Not_Nullable_columns.test 
b/sql/test/sys-schema/Tests/check_Not_Nullable_columns.test
--- a/sql/test/sys-schema/Tests/check_Not_Nullable_columns.test
+++ b/sql/test/sys-schema/Tests/check_Not_Nullable_columns.test
@@ -326,15 +326,15 @@ query TII rowsort
 SELECT "action", * FROM "sys"."keys" WHERE "action" IS NULL
 
 
-query IITI rowsort
+query IITII rowsort
 SELECT "id", * FROM "sys"."objects" WHERE "id" IS NULL
 
 
-query TITI rowsort
+query TITII rowsort
 SELECT "name", * FROM "sys"."objects" WHERE "name" IS NULL
 
 
-query IITI rowsort
+query IITII rowsort
 SELECT "nr", * FROM "sys"."objects" WHERE "nr" IS NULL
 
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: nospare - output changes because of new objects.sub column

2021-01-23 Thread Niels Nes
Changeset: 8baaf0cc7426 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8baaf0cc7426
Modified Files:

sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test

sql/test/BugTracker-2018/Tests/groupby_having_orderby_count.Bug-6624.test
sql/test/BugTracker-2019/Tests/alter_table_set_schema.Bug-6701.test
Branch: nospare
Log Message:

output changes because of new objects.sub column


diffs (71 lines):

diff --git 
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
 
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
--- 
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
+++ 
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
@@ -26,6 +26,6 @@ WHERE columns.table_id = tables.id
 'objects', 'keys', 'modules', 'sequences')
 ORDER BY TABLE_SCHEM, TABLE_NAME, ORDINAL_POSITION
 
-1121 values hashing to 819cace9654bce8e750b5e69795d0f62
+1121 values hashing to 1fc5cedc3ec39c84398358ba3997b3be
 
 
diff --git 
a/sql/test/BugTracker-2018/Tests/groupby_having_orderby_count.Bug-6624.test 
b/sql/test/BugTracker-2018/Tests/groupby_having_orderby_count.Bug-6624.test
--- a/sql/test/BugTracker-2018/Tests/groupby_having_orderby_count.Bug-6624.test
+++ b/sql/test/BugTracker-2018/Tests/groupby_having_orderby_count.Bug-6624.test
@@ -6,7 +6,7 @@ query TI rowsort
 SELECT type,COUNT(id) FROM cols_6624 GROUP BY type HAVING COUNT(id)>5 ORDER BY 
COUNT(id) DESC
 
 int
-19
+20
 smallint
 6
 varchar
@@ -16,7 +16,7 @@ query TI rowsort
 SELECT type,COUNT(id) FROM cols_6624 GROUP BY type HAVING COUNT(id)>5 ORDER BY 
2 DESC
 
 int
-19
+20
 smallint
 6
 varchar
@@ -26,7 +26,7 @@ query TI rowsort
 SELECT type,COUNT(id) as cnt FROM cols_6624 GROUP BY type HAVING COUNT(id)>5 
ORDER BY cnt DESC
 
 int
-19
+20
 smallint
 6
 varchar
diff --git 
a/sql/test/BugTracker-2019/Tests/alter_table_set_schema.Bug-6701.test 
b/sql/test/BugTracker-2019/Tests/alter_table_set_schema.Bug-6701.test
--- a/sql/test/BugTracker-2019/Tests/alter_table_set_schema.Bug-6701.test
+++ b/sql/test/BugTracker-2019/Tests/alter_table_set_schema.Bug-6701.test
@@ -10,7 +10,7 @@ query IIITII rowsort
 SELECT * FROM sys.keys WHERE table_id NOT IN (SELECT id FROM sys.tables)
 
 
-query ITI rowsort
+query ITII rowsort
 SELECT * FROM sys.objects WHERE id NOT IN (SELECT id FROM sys.ids)
 
 
@@ -110,7 +110,7 @@ query IIITII rowsort
 SELECT * FROM sys.keys WHERE table_id NOT IN (SELECT id FROM sys.tables)
 
 
-query ITI rowsort
+query ITII rowsort
 SELECT * FROM sys.objects WHERE id NOT IN (SELECT id FROM sys.ids)
 
 
@@ -141,7 +141,7 @@ query IIITII rowsort
 SELECT * FROM sys.keys WHERE table_id NOT IN (SELECT id FROM sys.tables)
 
 
-query ITI rowsort
+query ITII rowsort
 SELECT * FROM sys.objects WHERE id NOT IN (SELECT id FROM sys.ids)
 
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: nospare - use return(exit code) of mz

2021-01-23 Thread Niels Nes
Changeset: a7e2a72af6ad for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a7e2a72af6ad
Modified Files:

sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test

sql/test/BugDay_2005-11-09_2.8/Tests/ORDER_BY_evaluation_error.SF-1023658.test
testing/monetdb_mtest.sh.in
Branch: nospare
Log Message:

use return(exit code) of mz
update output after addition of new 'sub' column of objects table


diffs (38 lines):

diff --git 
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
 
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
--- 
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
+++ 
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
@@ -26,6 +26,6 @@ WHERE columns.table_id = tables.id
 'objects', 'keys', 'modules', 'sequences')
 ORDER BY TABLE_SCHEM, TABLE_NAME, ORDINAL_POSITION
 
-1083 values hashing to 819cace9654bce8e750b5e69795d0f62
+1121 values hashing to 819cace9654bce8e750b5e69795d0f62
 
 
diff --git 
a/sql/test/BugDay_2005-11-09_2.8/Tests/ORDER_BY_evaluation_error.SF-1023658.test
 
b/sql/test/BugDay_2005-11-09_2.8/Tests/ORDER_BY_evaluation_error.SF-1023658.test
--- 
a/sql/test/BugDay_2005-11-09_2.8/Tests/ORDER_BY_evaluation_error.SF-1023658.test
+++ 
b/sql/test/BugDay_2005-11-09_2.8/Tests/ORDER_BY_evaluation_error.SF-1023658.test
@@ -1,4 +1,4 @@
-query IIITIIITIITITITTIIT rowsort
+query TIIITIITITITTIIT rowsort
 SELECT *
 FROM "keys", "objects", "tables", "schemas"
 WHERE "keys"."id" = "objects"."id"
@@ -8,7 +8,7 @@ WHERE "keys"."id" = "objects"."id"
   AND "keys"."type" = 0
 
 
-query IIITIIITIITITITTIIT rowsort
+query TIIITIITITITTIIT rowsort
 SELECT *
 FROM "keys", "objects", "tables", "schemas"
 WHERE "keys"."id" = "objects"."id"
diff --git a/testing/monetdb_mtest.sh.in b/testing/monetdb_mtest.sh.in
--- a/testing/monetdb_mtest.sh.in
+++ b/testing/monetdb_mtest.sh.in
@@ -8,4 +8,4 @@
 cd "@CMAKE_HOME_DIRECTORY@"
 PATH=@CMAKE_INSTALL_FULL_BINDIR@:$PATH @CMAKE_INSTALL_FULL_BINDIR@/Mz.py
 
-exit 0
+#exit 0
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: nospare - disabled some more unused code

2021-01-23 Thread Niels Nes
Changeset: 1de17bd6e532 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1de17bd6e532
Modified Files:
sql/storage/store.c
Branch: nospare
Log Message:

disabled some more unused code


diffs (12 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -2170,7 +2170,7 @@ store_manager(sqlstore *store)
for (;;) {
int res;
 
-   if (1 || !flusher_should_run(store)) {
+   if (/* DISABLES CODE */ (1) || !flusher_should_run(store)) {
if (GDKexiting())
break;
const int sleeptime = 100;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: nospare - disabled unused code

2021-01-23 Thread Niels Nes
Changeset: b5153cbe6074 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b5153cbe6074
Modified Files:
sql/storage/store.c
Branch: nospare
Log Message:

disabled unused code


diffs (22 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -1934,8 +1934,9 @@ store_needs_vacuum( sqlstore *store )
 {
//size_t max_dels = GDKdebug & FORCEMITOMASK ? 1 : 128;
 
+   (void)store;
return 0;
-
+#if 0
sql_schema *s = (sql_schema*)os_find_name(store->cat->schemas, NULL, 
"sys"); /* sys schema if first */
struct os_iter oi;
os_iterator(, s->tables, NULL, NULL);
@@ -1955,6 +1956,7 @@ store_needs_vacuum( sqlstore *store )
*/
}
return 0;
+#endif
 }
 
 static int
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: nospare - fix compliation issues

2021-01-23 Thread Niels Nes
Changeset: 64d88c93d55a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=64d88c93d55a
Modified Files:
sql/storage/store.c
Branch: nospare
Log Message:

fix compliation issues


diffs (39 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -3444,7 +3444,7 @@ sql_trans_commit(sql_trans *tr)
}
tr->localtmps.nelm = NULL;
}
-   TRC_DEBUG(SQL_STORE, "Forwarding changes (%ld, %ld) -> %ld\n", tr->tid, 
tr->ts, commit_ts);
+   TRC_DEBUG(SQL_STORE, "Forwarding changes (" ULLFMT ", " ULLFMT ") -> " 
ULLFMT "\n", tr->tid, tr->ts, commit_ts);
if (tr->changes) {
/* log changes should only be done if there is something to log 
*/
if (tr->logchanges > 0) {
@@ -5883,7 +5883,7 @@ sql_trans_begin(sql_session *s)
sql_trans *tr = s->tr;
sqlstore *store = tr->store;
 
-   TRC_DEBUG(SQL_STORE, "Enter sql_trans_begin for transaction: %ld\n", 
tr->tid);
+   TRC_DEBUG(SQL_STORE, "Enter sql_trans_begin for transaction: " ULLFMT 
"\n", tr->tid);
tr->ts = store_timestamp(store);
tr->active = 1;
s->schema = find_sql_schema(tr, s->schema_name);
@@ -5893,7 +5893,7 @@ sql_trans_begin(sql_session *s)
list_append(store->active, s);
 
s->status = 0;
-   TRC_DEBUG(SQL_STORE, "Exit sql_trans_begin for transaction: %ld\n", 
tr->tid);
+   TRC_DEBUG(SQL_STORE, "Exit sql_trans_begin for transaction: " ULLFMT 
"\n", tr->tid);
return 0;
 }
 
@@ -5901,7 +5901,7 @@ int
 sql_trans_end(sql_session *s, int commit)
 {
int ok = SQL_OK;
-   TRC_DEBUG(SQL_STORE, "End of transaction: %ld\n", s->tr->tid);
+   TRC_DEBUG(SQL_STORE, "End of transaction: " ULLFMT "\n", s->tr->tid);
if (commit) {
ok = sql_trans_commit(s->tr);
}  else {
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: nospare - merged with default

2021-01-23 Thread Niels Nes
Changeset: 66a035b83ecd for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=66a035b83ecd
Modified Files:
sql/server/rel_optimizer.c
Branch: nospare
Log Message:

merged with default


diffs (87 lines):

diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -1363,7 +1363,7 @@ can_push_func(sql_exp *e, sql_rel *rel, 
int mustl = 0, mustr = 0, mustf = 0;
sql_exp *l = e->l, *r = e->r, *f = e->f;
 
-   if (is_project(rel->op) || e->flag == cmp_or || e->flag == 
cmp_in || e->flag == cmp_notin || e->flag == cmp_filter)
+   if ((is_project(rel->op) && e->f) || e->flag == cmp_or || 
e->flag == cmp_in || e->flag == cmp_notin || e->flag == cmp_filter)
return 0;
return ((l->type == e_column || can_push_func(l, rel, )) 
&& (*must = mustl)) ||
(!f && (r->type == e_column || can_push_func(r, 
rel, )) && (*must = mustr)) ||
@@ -1398,17 +1398,20 @@ can_push_func(sql_exp *e, sql_rel *rel, 
 }
 
 static int
-exps_can_push_func(list *exps, sql_rel *rel)
-{
-   for(node *n = exps->h; n; n = n->next) {
+exps_can_push_func(list *exps, sql_rel *rel, bool *push_left, bool *push_right)
+{
+   for(node *n = exps->h; n && !*push_left && !*push_right; n = n->next) {
sql_exp *e = n->data;
-   int must = 0, mustl = 0, mustr = 0;
-
-   if (is_joinop(rel->op) && ((can_push_func(e, rel->l, ) && 
mustl) || (can_push_func(e, rel->r, ) && mustr)))
-   return 1;
-   else if (is_select(rel->op) && can_push_func(e, rel->l, ) 
&& must)
-   return 1;
-   }
+   int mustl = 0, mustr = 0;
+
+   if ((is_joinop(rel->op) || is_select(rel->op)) && 
((can_push_func(e, rel->l, ) && mustl)))
+   *push_left = true;
+   
+   if (is_joinop(rel->op) && can_push_func(e, rel->r, ) && 
mustr)
+   *push_right = true;
+   }
+   if (*push_left || *push_right)
+   return 1;
return 0;
 }
 
@@ -1522,19 +1525,20 @@ rel_push_func_down(visitor *v, sql_rel *
if ((is_select(rel->op) || is_joinop(rel->op)) && rel->l && rel->exps 
&& !(rel_is_ref(rel))) {
list *exps = rel->exps;
sql_rel *l = rel->l, *r = rel->r;
+   bool push_left = false, push_right = false;
 
/* only push down when is useful */
if ((is_select(rel->op) && list_length(rel->exps) <= 1) || 
rel_is_ref(l) || (is_joinop(rel->op) && rel_is_ref(r)))
return rel;
-   if (exps_can_push_func(exps, rel) && exps_need_push_down(exps)) 
{
+   if (exps_can_push_func(exps, rel, _left, _right) && 
exps_need_push_down(exps)) {
sql_rel *nrel, *ol = l, *or = r;
visitor nv = { .sql = v->sql, .parent = v->parent, 
.value_based_opt = v->value_based_opt, .storage_based_opt = 
v->storage_based_opt };
 
/* we need a full projection, group by's and unions 
cannot be extended
 * with more expressions */
-   if (!is_simple_project(l->op) || !l->l)
+   if (push_left && (!is_simple_project(l->op) || !l->l))
rel->l = l = rel_project(v->sql->sa, l, 
rel_projections(v->sql, l, NULL, 1, 1));
-   if (is_joinop(rel->op) && (!is_simple_project(r->op) || 
!r->l))
+   if (push_right && (!is_simple_project(r->op)|| !r->l))
rel->r = r = rel_project(v->sql->sa, r, 
rel_projections(v->sql, r, NULL, 1, 1));
nrel = rel_project(v->sql->sa, rel, 
rel_projections(v->sql, rel, NULL, 1, 1));
 
@@ -1553,14 +1557,15 @@ rel_push_func_down(visitor *v, sql_rel *
}
if (is_simple_project(rel->op) && rel->l && rel->exps) {
sql_rel *pl = rel->l;
-
-   if (is_joinop(pl->op) && exps_can_push_func(rel->exps, rel)) {
+   bool push_left = false, push_right = false;
+
+   if (is_joinop(pl->op) && exps_can_push_func(rel->exps, rel, 
_left, _right)) {
sql_rel *l = pl->l, *r = pl->r;
list *nexps = new_exp_list(v->sql->sa);
 
-   if (!is_simple_project(l->op) || !l->l)
+   if (push_left && !is_simple_project(l->op))
pl->l = l = rel_project(v->sql->sa, l, 
rel_projections(v->sql, l, NULL, 1, 1));
-   if (is_joinop(rel->op) && (!is_simple_project(r->op) || 
!r->l))
+   if (push_right && !is_simple_project(r->op))
pl->r = r = rel_project(v->sql->sa, r, 
rel_projections(v->sql, r, NULL,