MonetDB: Oct2020 - One more sqlancer crash :( I can't undertand ...
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...
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.
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...
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...
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
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...
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...
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
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
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
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
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
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
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,