MonetDB: Jun2020 - cleanup

2020-12-01 Thread Niels Nes
Changeset: 176a7541df64 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=176a7541df64
Modified Files:
sql/storage/bat/bat_storage.c
Branch: Jun2020
Log Message:

cleanup


diffs (32 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
@@ -2083,20 +2083,6 @@ clear_del(sql_trans *tr, sql_table *t)
 }
 
 static int
-check_deltas( sql_delta *c )
-{
-   for (sql_delta *i = c; i; i = i->next) {
-   if (!i->next)
-   break;
-   for (sql_delta *j = i->next; j; j = j->next) {
-   if (j == i)
-   return 1;
-   }
-   }
-   return 0;
-}
-
-static int
 gtr_update_delta( sql_trans *tr, sql_delta *cbat, int *changes, int id, int 
tpe)
 {
int ok = LOG_OK, cleared = 0;
@@ -2104,7 +2090,6 @@ gtr_update_delta( sql_trans *tr, sql_del
 
(void)tr;
assert(ATOMIC_GET(_nr_active)==0);
-   assert(check_deltas(cbat) == 0);
 
if (!cbat->bid) {
cleared = 1;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - cleanup old delta/dbat structures earlier

2020-10-26 Thread Niels Nes
Changeset: 8fb0eb7ed19f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8fb0eb7ed19f
Modified Files:
sql/storage/bat/bat_storage.c
Branch: Jun2020
Log Message:

cleanup old delta/dbat structures earlier
(more stable select count(*) from bbp())


diffs (166 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
@@ -327,6 +327,7 @@ delta_update_bat( sql_delta *bat, BAT *t
}
if (BATappend(ui, tids, o, true) != GDK_SUCCEED ||
BATappend(uv, updates, o, true) != GDK_SUCCEED) {
+   bat_destroy(o);
bat_destroy(ui);
bat_destroy(uv);
return LOG_ERR;
@@ -551,6 +552,7 @@ dup_delta(sql_trans *tr, sql_delta *obat
return LOG_ERR;
bat_set_access(b, BAT_READ);
bat->ibid = temp_create(b);
+   bat_destroy(b);
}
} else { /* old column */
bat->ibid = ebat_copy(bat->ibid, bat->ibase, 0);
@@ -715,8 +717,7 @@ delta_append_bat( sql_delta *bat, BAT *i
if (isVIEW(i) && b->batCacheid == VIEWtparent(i)) {
BAT *ic = COLcopy(i, i->ttype, true, TRANSIENT);
if (ic == NULL || BATappend(b, ic, NULL, true) != 
GDK_SUCCEED) {
-   if(ic)
-   bat_destroy(ic);
+   bat_destroy(ic);
bat_destroy(b);
return LOG_ERR;
}
@@ -1339,8 +1340,10 @@ log_create_delta(sql_delta *bat, char tp
bat->uvbid = e_bat(b->ttype);
if (bat->uibid == BID_NIL || bat->uvbid == BID_NIL)
res = LOG_ERR;
-   if (GDKinmemory())
+   if (GDKinmemory()) {
+   bat_destroy(b);
return res;
+   }
 
ok = logger_add_bat(bat_logger, b, bat->name, tpe, id);
if (ok == GDK_SUCCEED)
@@ -1976,8 +1979,7 @@ clear_delta(sql_trans *tr, sql_delta *ba
bat_clear(b);
BATcommit(b);
}
-   if (b)
-   bat_destroy(b);
+   bat_destroy(b);
}
if (bat->bid) {
b = temp_descriptor(bat->bid);
@@ -2001,8 +2003,7 @@ clear_delta(sql_trans *tr, sql_delta *ba
bat_clear(b);
BATcommit(b);
}
-   if (b)
-   bat_destroy(b);
+   bat_destroy(b);
}
if (bat->uvbid) {
b = temp_descriptor(bat->uvbid);
@@ -2010,8 +2011,7 @@ clear_delta(sql_trans *tr, sql_delta *ba
bat_clear(b);
BATcommit(b);
}
-   if (b)
-   bat_destroy(b);
+   bat_destroy(b);
}
bat->cleared = 1;
bat->ibase = 0;
@@ -2689,9 +2689,8 @@ static int
 update_table(sql_trans *tr, sql_table *ft, sql_table *tt)
 {
sql_trans *oldest = oldest_active_transaction();
-   sql_table *ot = NULL;
int ok = LOG_OK;
-   node *n, *m, *o = NULL;
+   node *n, *m;
 
if (ATOMIC_GET(_nr_active) == 1 || ft->base.allocated) {
if (ATOMIC_GET(_nr_active) > 1 && ft->data) { /* move 
delta */
@@ -2710,9 +2709,7 @@ update_table(sql_trans *tr, sql_table *f
}
while (b && b->wtime >= oldest->stime)
b = b->next;
-   /* find table t->base.stime */
-   ot = tr_find_table(oldest, tt);
-   if (b && ot && b->wtime < ot->base.stime) {
+   if (b && b->next) {
/* anything older can go */
delayed_destroy_dbat(b->next);
b->next = NULL;
@@ -2737,9 +2734,7 @@ update_table(sql_trans *tr, sql_table *f
ft->data = NULL;
}
}
-   if (ot)
-   o = ot->columns.set->h;
-   for (n = ft->columns.set->h, m = tt->columns.set->h; ok == LOG_OK && n 
&& m; n = n->next, m = m->next, o=(o?o->next:NULL)) {
+   for (n = ft->columns.set->h, m = tt->columns.set->h; ok == LOG_OK && n 
&& m; n = n->next, m = m->next) {
sql_column *cc = n->data; // TODO: either stick to to/from 
terminology or old/current terminology
sql_column *oc = m->data;
 
@@ -2747,7 +2742,6 @@ update_table(sql_trans *tr, sql_table *f
assert(!cc->base.wtime || oc->base.wtime < 
cc->base.wtime || (oc->base.wtime == cc->base.wtime && 

MonetDB: Jun2020 - Cleanup

2020-07-16 Thread Pedro Ferreira
Changeset: b10b0c380a1a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b10b0c380a1a
Modified Files:
sql/server/sql_atom.c
Branch: Jun2020
Log Message:

Cleanup


diffs (39 lines):

diff --git a/sql/server/sql_atom.c b/sql/server/sql_atom.c
--- a/sql/server/sql_atom.c
+++ b/sql/server/sql_atom.c
@@ -576,30 +576,21 @@ atom2sql(atom *a, int timezone)
 
switch (ec) {
case EC_TIME:
-   case EC_TIME_TZ: {
-   char *n = stpcpy(val1, "TIME");
+   case EC_TIME_TZ:
+   case EC_TIMESTAMP:
+   case EC_TIMESTAMP_TZ: {
+   char *n = stpcpy(val1, (ec == EC_TIME || ec == 
EC_TIME_TZ) ? "TIME" : "TIMESTAMP");
if (a->tpe.digits) {
char str[16];
sprintf(str, "%u", a->tpe.digits);
n = stpcpy(stpcpy(stpcpy(n, " ("), str), ")");
}
-   if (ec == EC_TIME_TZ)
+   if (ec == EC_TIME_TZ || ec == EC_TIMESTAMP_TZ)
stpcpy(n, " WITH TIME ZONE");
} break;
case EC_DATE:
strcpy(val1, "DATE");
break;
-   case EC_TIMESTAMP:
-   case EC_TIMESTAMP_TZ: {
-   char *n = stpcpy(val1, "TIMESTAMP");
-   if (a->tpe.digits) {
-   char str[16];
-   sprintf(str, "%u", a->tpe.digits);
-   n = stpcpy(stpcpy(stpcpy(n, " ("), str), ")");
-   }
-   if (ec == EC_TIMESTAMP_TZ)
-   stpcpy(n, " WITH TIME ZONE");
-   } break;
default:
assert(0);
}
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - cleanup

2020-07-06 Thread Niels Nes
Changeset: 946211cedad2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=946211cedad2
Modified Files:
sql/backends/monet5/rel_bin.c
Branch: Jun2020
Log Message:

cleanup


diffs (27 lines):

diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -1098,23 +1098,7 @@ exp_bin(backend *be, sql_exp *e, stmt *l
s = stmt_unop(be, s, a);
s->cand = cand;
}
-#if 0
-   } else if (((e->flag&3) != 3) /* both sides 
closed use between implementation */ && l->nrcols > 0 && r->nrcols > 0 && 
r2->nrcols > 0) {
-   s = stmt_uselect(be, l, r, 
range2lcompare(e->flag),
-   stmt_uselect(be, l, r2, 
range2rcompare(e->flag), sel, is_anti(e), 0), is_anti(e), 0);
-#endif
} else {
-   /* done in stmt_uselect2
-   if (sel && ((l->cand && l->nrcols) || 
(r->cand && r->nrcols) || (r2->cand && r->nrcols))) {
-   if (!l->cand && l->nrcols)
-   l = stmt_project(be, 
sel, l);
-   if (!r->cand && r->nrcols)
-   r = stmt_project(be, 
sel, r);
-   if (!r2->cand && r2->nrcols)
-   r2 = stmt_project(be, 
sel, r2);
-   sel = NULL;
-   }
-   */
if (l->nrcols == 0)
l = stmt_const(be, 
bin_first_column(be, left), l);
s = stmt_uselect2(be, l, r, r2, 
(comp_type)e->flag, sel, is_anti(e));
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - Cleanup. Removed mark_exists and mark_notexis...

2020-06-24 Thread Pedro Ferreira
Changeset: 226e2185680a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=226e2185680a
Modified Files:
sql/backends/monet5/rel_bin.c
sql/include/sql_catalog.h
sql/rel.txt
sql/server/rel_dump.c
sql/server/rel_exp.c
sql/server/rel_optimizer.c
Branch: Jun2020
Log Message:

Cleanup. Removed mark_exists and mark_notexists because they were never used. 
Cleaned equality joins only detection


diffs (158 lines):

diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -2181,7 +2181,7 @@ split_join_exps(sql_rel *rel, list *join
int left_reference = 0, right_reference = 0;
 
/* we can handle thetajoins, rangejoins and filter 
joins (like) */
-   /* ToDo how about mark_exists/not_exists and atom 
expressions? */
+   /* ToDo how about atom expressions? */
if (e->type == e_cmp) {
int flag = e->flag & ~CMP_BETWEEN;
/* check if its a select or join expression, ie 
use only expressions of one relation left and of the other right (than join) */
@@ -2231,7 +2231,7 @@ split_join_exps(sql_rel *rel, list *join
}
 }
 
-#define is_priority_exp(e) ((e)->type == e_cmp && (e)->flag == cmp_equal)
+#define is_priority_exp(e) ((e)->flag == cmp_equal)
 
 static list *
 get_equi_joins_first(mvc *sql, list *exps, int *equality_only)
@@ -2240,17 +2240,17 @@ get_equi_joins_first(mvc *sql, list *exp
 
for( node *n = exps->h; n; n = n->next ) {
sql_exp *e = n->data;
-   if (is_priority_exp(e)) {
+
+   assert(e->type == e_cmp && e->flag != cmp_in && e->flag != 
cmp_notin && e->flag != cmp_or);
+   if (is_priority_exp(e))
list_append(new_exps, e);
-   *equality_only &= (e->flag == cmp_equal);
-   }
+   *equality_only &= (e->flag == cmp_equal || e->flag == mark_in 
|| e->flag == mark_notin);
}
for( node *n = exps->h; n; n = n->next ) {
sql_exp *e = n->data;
-   if (!is_priority_exp(e)) {
+
+   if (!is_priority_exp(e))
list_append(new_exps, e);
-   *equality_only &= (e->flag == mark_in || e->flag == 
mark_notin);
-   }
}
return new_exps;
 }
@@ -2471,9 +2471,7 @@ rel2bin_join(backend *be, sql_rel *rel, 
 static int
 exp_is_mark(sql_exp *e)
 {
-   if (e->type == e_cmp &&
-   (e->flag == mark_in || e->flag == mark_notin ||
-e->flag == mark_exists || e->flag == mark_notexists))
+   if (e->type == e_cmp && (e->flag == mark_in || e->flag == mark_notin))
return 1;
return 0;
 }
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
@@ -164,15 +164,13 @@ typedef enum comp_type {
 
mark_in = 10,   /* mark joins */
mark_notin = 11,
-   mark_exists = 12,
-   mark_notexists = 13,
 
/* The followin cmp_* are only used within stmt (not sql_exp) */
-   cmp_all = 14,   /* special case for crossproducts */
-   cmp_project = 15,   /* special case for projection joins */
-   cmp_joined = 16,/* special case already joined */
-   cmp_left = 17,  /* special case equi join, keep left 
order */
-   cmp_left_project = 18   /* last step of outer join */
+   cmp_all = 12,   /* special case for crossproducts */
+   cmp_project = 13,   /* special case for projection joins */
+   cmp_joined = 14,/* special case already joined */
+   cmp_left = 15,  /* special case equi join, keep left 
order */
+   cmp_left_project = 16   /* last step of outer join */
 } comp_type;
 
 /* for ranges we keep the requirment for symmetric */
diff --git a/sql/rel.txt b/sql/rel.txt
--- a/sql/rel.txt
+++ b/sql/rel.txt
@@ -128,15 +128,13 @@ e_cmp
 
mark_in = 10,   /* mark joins */
mark_notin = 11,
-   mark_exists = 12,
-   mark_notexists = 13,
 
/* The followin cmp_* are only used within stmt (not 
sql_exp) */
-   cmp_all = 14,   /* special case for 
crossproducts */
-   cmp_project = 15,   /* special case for 
projection joins */
-   cmp_joined = 16,/* special case already 
joined */
-   cmp_left = 17,  /* special case equi 
join, keep left order */
-   cmp_left_project 

MonetDB: Jun2020 - cleanup rel2bin_join, ie first split in list ...

2020-06-14 Thread Niels Nes
Changeset: c3a8ef159903 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c3a8ef159903
Modified Files:
sql/backends/monet5/rel_bin.c
Branch: Jun2020
Log Message:

cleanup rel2bin_join, ie first split in list of join and select (+ too complex 
mal-join cases)


diffs (truncated from 303 to 300 lines):

diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -890,9 +890,9 @@ exp_bin(backend *be, sql_exp *e, stmt *l
for( n = args->h; n; n = n->next ) {
s = NULL;
if (!swapped)
-   s = exp_bin(be, n->data, left, NULL, 
grp, ext, cnt, NULL, NULL, depth+1, reduce); 
+   s = exp_bin(be, n->data, left, NULL, 
grp, ext, cnt, NULL, NULL, depth+1, 0); 
if (!s && (first || swapped)) {
-   s = exp_bin(be, n->data, right, NULL, 
grp, ext, cnt, NULL, NULL, depth+1, reduce); 
+   s = exp_bin(be, n->data, right, NULL, 
grp, ext, cnt, NULL, NULL, depth+1, 0); 
swapped = 1;
}
if (!s) 
@@ -906,7 +906,7 @@ exp_bin(backend *be, sql_exp *e, stmt *l
ops = sa_list(sql->sa);
args = e->r;
for( n = args->h; n; n = n->next ) {
-   s = exp_bin(be, n->data, (swapped || 
!right)?left:right, NULL, grp, ext, cnt, NULL, NULL, depth+1, reduce); 
+   s = exp_bin(be, n->data, (swapped || 
!right)?left:right, NULL, grp, ext, cnt, NULL, NULL, depth+1, 0); 
if (!s) 
return s;
list_append(ops, s);
@@ -1016,27 +1016,27 @@ exp_bin(backend *be, sql_exp *e, stmt *l
sql->opt_stats[0]++; 
 
if (!l) {
-   l = exp_bin(be, e->l, left, NULL, grp, ext, cnt, sel, 
NULL, depth+1, reduce);
+   l = exp_bin(be, e->l, left, NULL, grp, ext, cnt, sel, 
NULL, depth+1, 0);
swapped = 0;
}
if (!l && right) {
-   l = exp_bin(be, e->l, right, NULL, grp, ext, cnt, sel, 
NULL, depth+1, reduce);
+   l = exp_bin(be, e->l, right, NULL, grp, ext, cnt, sel, 
NULL, depth+1, 0);
swapped = 1;
}
if (swapped || !right)
-   r = exp_bin(be, re, left, NULL, grp, ext, cnt, sel, 
NULL, depth+1, reduce);
+   r = exp_bin(be, re, left, NULL, grp, ext, cnt, sel, 
NULL, depth+1, 0);
else
-   r = exp_bin(be, re, right, NULL, grp, ext, cnt, sel, 
NULL, depth+1, reduce);
+   r = exp_bin(be, re, right, NULL, grp, ext, cnt, sel, 
NULL, depth+1, 0);
if (!r && !swapped) {
-   r = exp_bin(be, re, left, NULL, grp, ext, cnt, sel, 
NULL, depth+1, reduce);
+   r = exp_bin(be, re, left, NULL, grp, ext, cnt, sel, 
NULL, depth+1, 0);
is_select = 1;
}
if (!r && swapped) {
-   r = exp_bin(be, re, right, NULL, grp, ext, cnt, sel, 
NULL, depth+1, reduce);
+   r = exp_bin(be, re, right, NULL, grp, ext, cnt, sel, 
NULL, depth+1, 0);
is_select = 1;
}
if (re2)
-   r2 = exp_bin(be, re2, left, right, grp, ext, cnt, sel, 
NULL, depth+1, reduce);
+   r2 = exp_bin(be, re2, left, right, grp, ext, cnt, sel, 
NULL, depth+1, 0);
 
if (!l || !r || (re2 && !r2)) {
TRC_ERROR(SQL_EXECUTION, "Query: '%s'\n", sql->query);
@@ -1066,7 +1066,7 @@ exp_bin(backend *be, sql_exp *e, stmt *l
}
} else {
if (r2) {
-   if (depth || !reduce || (l->nrcols == 0 && 
r->nrcols == 0 && r2->nrcols == 0)) {
+   if (!reduce || (l->nrcols == 0 && r->nrcols == 
0 && r2->nrcols == 0)) {
sql_subtype *bt = 
sql_bind_localtype("bit");
sql_subfunc *lf = 
sql_bind_func(sql->sa, sql->session->schema,

compare_func(range2lcompare(e->flag), 0),
@@ -1109,7 +1109,7 @@ exp_bin(backend *be, sql_exp *e, stmt *l
}
} else {
/* value compare or select */
-   if (depth || !reduce || 

MonetDB: Jun2020 - Cleanup layout.

2020-06-09 Thread Sjoerd Mullender
Changeset: b6ead7de4477 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b6ead7de4477
Modified Files:
gdk/gdk_hash.c
Branch: Jun2020
Log Message:

Cleanup layout.


diffs (106 lines):

diff --git a/gdk/gdk_hash.c b/gdk/gdk_hash.c
--- a/gdk/gdk_hash.c
+++ b/gdk/gdk_hash.c
@@ -35,7 +35,7 @@
 #include "gdk.h"
 #include "gdk_private.h"
 
-static int
+static uint8_t
 HASHwidth(BUN hashsize)
 {
if (hashsize <= (BUN) BUN2_NONE)
@@ -1007,51 +1007,57 @@ HASHprobe(const Hash *h, const void *v)
}
 }
 
-void
-HASHins(BAT *b, BUN i, const void *v)
+static void
+HASHins_locked(BAT *b, BUN i, const void *v)
 {
-   MT_lock_set(>batIdxLock);
Hash *h = b->thash;
if (h == NULL) {
-   /* nothing to do */
-   } else if (h == (Hash *) 1) {
-   GDKunlink(BBPselectfarm(b->batRole, b->ttype, hashheap),
- BATDIR,
- BBP_physical(b->batCacheid),
- "thash");
+   return;
+   }
+   if (h == (Hash *) 1) {
b->thash = NULL;
-   } else if ((ATOMsize(b->ttype) > 2 &&
-   HASHgrowbucket(b) != GDK_SUCCEED) ||
-  ((i + 1) * h->width > h->heaplink.size &&
-   HEAPextend(>heaplink,
-  i * h->width + GDK_mmap_pagesize,
-  true) != GDK_SUCCEED)) {
+   doHASHdestroy(b, h);
+   return;
+   }
+   if ((ATOMsize(b->ttype) > 2 &&
+HASHgrowbucket(b) != GDK_SUCCEED) ||
+   ((i + 1) * h->width > h->heaplink.size &&
+HEAPextend(>heaplink,
+   i * h->width + GDK_mmap_pagesize,
+   true) != GDK_SUCCEED)) {
b->thash = NULL;
HEAPfree(>heapbckt, true);
HEAPfree(>heaplink, true);
GDKfree(h);
-   } else {
-   h->Link = h->heaplink.base;
-   BUN c = HASHprobe(h, v);
-   h->heaplink.free += h->width;
-   BUN hb = HASHget(h, c);
-   BUN hb2;
-   BATiter bi = bat_iterator(b);
-   for (hb2 = hb;
-hb2 != HASHnil(h);
-hb2 = HASHgetlink(h, hb2)) {
-   if (ATOMcmp(h->type,
-   v,
-   BUNtail(bi, hb2)) == 0)
-   break;
-   }
-   h->nheads += hb == HASHnil(h);
-   h->nunique += hb2 == HASHnil(h);
-   HASHputlink(h, i, hb);
-   HASHput(h, c, i);
-   h->heapbckt.dirty = true;
-   h->heaplink.dirty = true;
+   return;
}
+   h->Link = h->heaplink.base;
+   BUN c = HASHprobe(h, v);
+   h->heaplink.free += h->width;
+   BUN hb = HASHget(h, c);
+   BUN hb2;
+   BATiter bi = bat_iterator(b);
+   for (hb2 = hb;
+hb2 != HASHnil(h);
+hb2 = HASHgetlink(h, hb2)) {
+   if (ATOMcmp(h->type,
+   v,
+   BUNtail(bi, hb2)) == 0)
+   break;
+   }
+   h->nheads += hb == HASHnil(h);
+   h->nunique += hb2 == HASHnil(h);
+   HASHputlink(h, i, hb);
+   HASHput(h, c, i);
+   h->heapbckt.dirty = true;
+   h->heaplink.dirty = true;
+}
+
+void
+HASHins(BAT *b, BUN i, const void *v)
+{
+   MT_lock_set(>batIdxLock);
+   HASHins_locked(b, i, v);
MT_lock_unset(>batIdxLock);
 }
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - Cleanup existing transaction before returning

2020-05-28 Thread Pedro Ferreira
Changeset: 7c286a75c046 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7c286a75c046
Modified Files:
sql/backends/monet5/sql_user.c
Branch: Jun2020
Log Message:

Cleanup existing transaction before returning


diffs (17 lines):

diff --git a/sql/backends/monet5/sql_user.c b/sql/backends/monet5/sql_user.c
--- a/sql/backends/monet5/sql_user.c
+++ b/sql/backends/monet5/sql_user.c
@@ -522,8 +522,12 @@ monet5_user_set_def_schema(mvc *m, oid u
users_schema = find_sql_column(user_info, "default_schema");
 
rid = table_funcs.column_find_row(m->session->tr, users_name, username, 
NULL);
-   if (is_oid_nil(rid))
+   if (is_oid_nil(rid)) {
+   if (m->session->tr->active && (other = mvc_rollback(m, 0, NULL, 
false)) != MAL_SUCCEED)
+   freeException(other);
+   GDKfree(username);
return NULL;
+   }
p = table_funcs.column_find_value(m->session->tr, users_schema, rid);
 
assert(p);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - Cleanup and propagate not through comparison ...

2020-05-22 Thread Pedro Ferreira
Changeset: 7e044dae5c3e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7e044dae5c3e
Modified Files:
sql/server/rel_exp.c
sql/server/rel_exp.h
sql/server/rel_select.c
sql/server/sql_parser.y
Branch: Jun2020
Log Message:

Cleanup and propagate not through comparison symbols


diffs (105 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
@@ -67,6 +67,42 @@ swap_compare( comp_type t )
 }
 
 comp_type 
+negate_compare( comp_type t )
+{
+   switch(t) {
+   case cmp_equal:
+   return cmp_notequal;
+   case cmp_notequal:
+   return cmp_equal;
+   case cmp_lt:
+   return cmp_gte;
+   case cmp_lte:
+   return cmp_gt;
+   case cmp_gte:
+   return cmp_lt;
+   case cmp_gt:
+   return cmp_lte;
+
+   case cmp_in:
+   return cmp_notin;
+   case cmp_notin:
+   return cmp_in;
+
+   case mark_in:
+   return mark_notin;
+   case mark_notin:
+   return mark_in;
+   case mark_exists:
+   return mark_notexists;
+   case mark_notexists:
+   return mark_exists;
+
+   default:
+   return t;
+   }
+}
+
+comp_type 
 range2lcompare( int r )
 {
if (r&1) {
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
@@ -25,6 +25,7 @@
 
 extern comp_type compare_str2type(const char *compare_op);
 extern comp_type swap_compare( comp_type t );
+extern comp_type negate_compare( comp_type t );
 extern comp_type range2lcompare( int r );
 extern comp_type range2rcompare( int r );
 extern int compare2range( int l, int r );
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
@@ -2243,6 +2243,14 @@ rel_in_exp(sql_query *query, sql_rel *re
case SQL_NOT: /* nested NOTs eliminate each other */ \
sc->data.sym = sc->data.sym->data.sym; \
return NEXT_CALL; \
+   case SQL_COMPARE: { \
+   dnode *cmp_n = sc->data.sym->data.lval->h; \
+   comp_type neg_cmp_type = 
negate_compare(compare_str2type(cmp_n->next->data.sval)); /* negate the 
comparator */ \
+   cmp_n->next->data.sval = sa_strdup(sql->sa, 
compare_func(neg_cmp_type, 0)); \
+   if (cmp_n->next->next->next) /* negating ANY/ALL */ \
+   cmp_n->next->next->next->data.i_val = 
cmp_n->next->next->next->data.i_val == 0 ? 1 : 0; \
+   return NEXT_CALL; \
+   } \
default: \
break; \
} 
diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y
--- a/sql/server/sql_parser.y
+++ b/sql/server/sql_parser.y
@@ -3622,24 +3622,8 @@ predicate:
  ;
 
 pred_exp:
-NOT pred_exp 
-   { $$ = $2;
-
- if ($$->token == SQL_EXISTS)
-   $$->token = SQL_NOT_EXISTS;
- else if ($$->token == SQL_NOT_EXISTS)
-   $$->token = SQL_EXISTS;
- else if ($$->token == SQL_NOT_BETWEEN)
-   $$->token = SQL_BETWEEN;
- else if ($$->token == SQL_BETWEEN)
-   $$->token = SQL_NOT_BETWEEN;
- else if ($$->token == SQL_NOT_LIKE)
-   $$->token = SQL_LIKE;
- else if ($$->token == SQL_LIKE)
-   $$->token = SQL_NOT_LIKE;
- else
-   $$ = _symbol_create_symbol(SQL_NOT, $2); }
- |   predicate { $$ = $1; }
+NOT pred_exp { $$ = _symbol_create_symbol(SQL_NOT, $2); }
+ |  predicate   { $$ = $1; }
  ;
 
 comparison_predicate:
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - Cleanup: GCC version 2 is really old.

2020-04-21 Thread Sjoerd Mullender
Changeset: 80322c98c153 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=80322c98c153
Modified Files:
common/stream/stream.h
Branch: Jun2020
Log Message:

Cleanup: GCC version 2 is really old.


diffs (23 lines):

diff --git a/common/stream/stream.h b/common/stream/stream.h
--- a/common/stream/stream.h
+++ b/common/stream/stream.h
@@ -54,18 +54,11 @@ typedef __int128_t hge;
 /* Defines to help the compiler check printf-style format arguments.
  * These defines are also in our config.h, but we repeat them here so
  * that we don't need that for this file.*/
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
+#ifndef __GNUC__
 /* This feature is available in gcc versions 2.5 and later.  */
 # ifndef __attribute__
 #  define __attribute__(Spec)  /* empty */
 # endif
-#else
-/* The __-protected variants of `format' and `printf' attributes are
- * accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
-# if !defined(__format__) && (__GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ 
< 7))
-#  define __format__ format
-#  define __printf__ printf
-# endif
 #endif
 #if !defined(_MSC_VER) && !defined(_In_z_)
 # define _In_z_
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - Cleanup some crypt stuff.

2020-04-17 Thread Sjoerd Mullender
Changeset: 3a473a6e2111 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3a473a6e2111
Modified Files:
common/utils/mcrypt.c
common/utils/mcrypt.h
configure.ag
Branch: Jun2020
Log Message:

Cleanup some crypt stuff.


diffs (200 lines):

diff --git a/common/utils/mcrypt.c b/common/utils/mcrypt.c
--- a/common/utils/mcrypt.c
+++ b/common/utils/mcrypt.c
@@ -84,7 +84,7 @@ mcrypt_getHashAlgorithms(void)
 char *
 mcrypt_MD5Sum(const char *string, size_t len)
 {
-#if !defined(HAVE_EMBEDDED)
+#ifndef HAVE_EMBEDDED
MD5_CTX c;
unsigned char md[MD5_DIGEST_LENGTH];
char *ret;
@@ -114,6 +114,7 @@ mcrypt_MD5Sum(const char *string, size_t
 }
 #endif
 
+#ifdef HAVE_SHA1_UPDATE
 /**
  * Returns a malloced string representing the hex representation of
  * the SHA-1 hash of the given string.
@@ -121,7 +122,7 @@ mcrypt_MD5Sum(const char *string, size_t
 char *
 mcrypt_SHA1Sum(const char *string, size_t len)
 {
-#if !defined(HAVE_EMBEDDED) && defined(HAVE_SHA1_UPDATE)
+#ifndef HAVE_EMBEDDED
SHA_CTX c;
unsigned char md[SHA_DIGEST_LENGTH];
char *ret;
@@ -149,7 +150,9 @@ mcrypt_SHA1Sum(const char *string, size_
return NULL;
 #endif
 }
+#endif
 
+#ifdef HAVE_SHA224_UPDATE
 /**
  * Returns a malloced string representing the hex representation of
  * the SHA-224 hash of the given string.
@@ -157,7 +160,7 @@ mcrypt_SHA1Sum(const char *string, size_
 char *
 mcrypt_SHA224Sum(const char *string, size_t len)
 {
-#if !defined(HAVE_EMBEDDED) && defined(HAVE_SHA224_UPDATE)
+#ifndef HAVE_EMBEDDED
SHA256_CTX c;
unsigned char md[SHA224_DIGEST_LENGTH];
char *ret;
@@ -188,7 +191,9 @@ mcrypt_SHA224Sum(const char *string, siz
return NULL;
 #endif
 }
+#endif
 
+#ifdef HAVE_SHA256_UPDATE
 /**
  * Returns a malloced string representing the hex representation of
  * the SHA-256 hash of the given string.
@@ -196,7 +201,7 @@ mcrypt_SHA224Sum(const char *string, siz
 char *
 mcrypt_SHA256Sum(const char *string, size_t len)
 {
-#if !defined(HAVE_EMBEDDED) && defined(HAVE_SHA256_UPDATE)
+#ifndef HAVE_EMBEDDED
SHA256_CTX c;
unsigned char md[SHA256_DIGEST_LENGTH];
char *ret;
@@ -229,7 +234,9 @@ mcrypt_SHA256Sum(const char *string, siz
return NULL;
 #endif
 }
+#endif
 
+#ifdef HAVE_SHA384_UPDATE
 /**
  * Returns a malloced string representing the hex representation of
  * the SHA-384 hash of the given string.
@@ -237,7 +244,7 @@ mcrypt_SHA256Sum(const char *string, siz
 char *
 mcrypt_SHA384Sum(const char *string, size_t len)
 {
-#if !defined(HAVE_EMBEDDED) && defined(HAVE_SHA384_UPDATE)
+#ifndef HAVE_EMBEDDED
SHA512_CTX c;
unsigned char md[SHA384_DIGEST_LENGTH];
char *ret;
@@ -274,7 +281,9 @@ mcrypt_SHA384Sum(const char *string, siz
return NULL;
 #endif
 }
+#endif
 
+#ifdef HAVE_SHA512_UPDATE
 /**
  * Returns a malloced string representing the hex representation of
  * the SHA-512 hash of the given string.
@@ -282,7 +291,7 @@ mcrypt_SHA384Sum(const char *string, siz
 char *
 mcrypt_SHA512Sum(const char *string, size_t len)
 {
-#if !defined(HAVE_EMBEDDED) && defined(HAVE_SHA512_UPDATE)
+#ifndef HAVE_EMBEDDED
SHA512_CTX c;
unsigned char md[SHA512_DIGEST_LENGTH];
char *ret;
@@ -321,11 +330,12 @@ mcrypt_SHA512Sum(const char *string, siz
 #else
(void) string;
(void) len;
-   fprintf(stderr, "No SHA512 digest function available.\n");
return NULL;
 #endif
 }
+#endif
 
+#ifdef HAVE_RIPEMD160_UPDATE
 /**
  * Returns a malloced string representing the hex representation of
  * the RIPEMD-160 hash of the given string.
@@ -333,7 +343,7 @@ mcrypt_SHA512Sum(const char *string, siz
 char *
 mcrypt_RIPEMD160Sum(const char *string, size_t len)
 {
-#if !defined(HAVE_EMBEDDED) && defined(HAVE_RIPEMD160_UPDATE)
+#ifndef HAVE_EMBEDDED
RIPEMD160_CTX c;
unsigned char md[RIPEMD160_DIGEST_LENGTH];
char *ret;
@@ -358,10 +368,10 @@ mcrypt_RIPEMD160Sum(const char *string, 
 #else
(void) string;
(void) len;
-   fprintf(stderr, "No RIPEMD160 digest function available.\n");
return NULL;
 #endif
 }
+#endif
 
 /**
  * Returns a malloced string representing the hex representation of
@@ -377,7 +387,6 @@ mcrypt_BackendSum(const char *string, si
 #else
(void) string;
(void) len;
-   fprintf(stderr, "No digest function available.\n");
return NULL;
 #endif
 }
diff --git a/common/utils/mcrypt.h b/common/utils/mcrypt.h
--- a/common/utils/mcrypt.h
+++ b/common/utils/mcrypt.h
@@ -21,13 +21,27 @@
 
 mcrypt_export const char *mcrypt_getHashAlgorithms(void)
__attribute__((__const__));
+#ifdef HAVE_MD5_UPDATE
 mcrypt_export char *mcrypt_MD5Sum(const char *string, size_t len);
+#endif
+#ifdef HAVE_SHA1_UPDATE
 mcrypt_export char *mcrypt_SHA1Sum(const char *string, size_t len);
+#endif
+#ifdef HAVE_SHA224_UPDATE
 mcrypt_export char *mcrypt_SHA224Sum(const char *string, 

MonetDB: Jun2020 - Cleanup. Find redudant relation names in the ...

2020-04-15 Thread Pedro Ferreira
Changeset: b1fc17098c61 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b1fc17098c61
Modified Files:
sql/server/rel_updates.c
Branch: Jun2020
Log Message:

Cleanup. Find redudant relation names in the from clause of updates. Also 
cleaned table aliasing in updates


diffs (151 lines):

diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c
--- a/sql/server/rel_updates.c
+++ b/sql/server/rel_updates.c
@@ -12,6 +12,7 @@
 #include "rel_select.h"
 #include "rel_rel.h"
 #include "rel_exp.h"
+#include "rel_schema.h"
 #include "sql_privileges.h"
 #include "rel_unnest.h"
 #include "rel_optimizer.h"
@@ -1104,26 +1105,22 @@ update_table(sql_query *query, dlist *qn
t = mvc_bind_table(sql, NULL, tname);
}
if (update_allowed(sql, t, tname, "UPDATE", "update", 0) != NULL) {
-   sql_rel *r = NULL, *bt = rel_basetable(sql, t, t->base.name), 
*res = bt;
+   sql_rel *r = NULL, *bt = rel_basetable(sql, t, alias ? alias : 
t->base.name), *res = bt;
 
-   if (alias) {
-   for (node *nn = res->exps->h ; nn ; nn = nn->next)
-   exp_setname(sql->sa, (sql_exp*) nn->data, 
alias, NULL); //the last parameter is optional, hence NULL
-   }
if (opt_from) {
dlist *fl = opt_from->data.lval;
-   dnode *n = NULL;
-   sql_rel *fnd = NULL;
+   list *names = list_append(new_exp_list(sql->sa), 
(char*) rel_name(bt));
 
-   for (n = fl->h; n && res; n = n->next) {
-   fnd = table_ref(query, NULL, n->data.sym, 0);
+   for (dnode *n = fl->h; n && res; n = n->next) {
+   char *nrame = NULL;
+   sql_rel *fnd = table_ref(query, NULL, 
n->data.sym, 0);
+
if (fnd) {
-   if (alias) {
-   for (node *nn = fnd->exps->h ; 
nn ; nn = nn->next) {
-   sql_exp* ee = 
(sql_exp*) nn->data;
-   if (exp_relname(ee) && 
!strcmp(exp_relname(ee), alias))
-   return 
sql_error(sql, 02, SQLSTATE(42000) "UPDATE: multiple references into table 
'%s'", alias);
-   }
+   if ((nrame = (char*) rel_name(fnd))) {
+   if (list_find(names, nrame, 
(fcmp) ))
+   return sql_error(sql, 
02, SQLSTATE(42000) "UPDATE: multiple references into table '%s'", nrame);
+   else
+   list_append(names, 
nrame);
}
res = rel_crossproduct(sql->sa, res, 
fnd, op_join);
} else
@@ -1221,16 +1218,12 @@ delete_table(sql_query *query, dlist *qn
r = rel_logical_exp(query, NULL, opt_where, sql_where);
if (r) { /* simple predicate which is not using the to 
be updated table. We add a select 
all */
-   sql_rel *l = rel_basetable(sql, t, t->base.name 
);
+   sql_rel *l = rel_basetable(sql, t, alias ? 
alias : t->base.name);
r = rel_crossproduct(sql->sa, l, r, op_join);
} else {
sql->errstr[0] = 0;
sql->session->status = status;
-   r = rel_basetable(sql, t, t->base.name );
-   if (alias) {
-   for (node *nn = r->exps->h ; nn ; nn = 
nn->next)
-   exp_setname(sql->sa, (sql_exp*) 
nn->data, alias, NULL); //the last parameter is optional, hence NULL
-   }
+   r = rel_basetable(sql, t, alias ? alias : 
t->base.name);
r = rel_logical_exp(query, r, opt_where, 
sql_where);
}
if (!r)
@@ -1271,8 +1264,6 @@ truncate_table(mvc *sql, dlist *qname, i
 #define MERGE_UPDATE_DELETE 1
 #define MERGE_INSERT2
 
-extern sql_rel *rel_list(sql_allocator *sa, sql_rel *l, sql_rel *r);
-
 static sql_rel *
 validate_merge_update_delete(mvc *sql, sql_table *t, str alias, sql_rel 
*joined_table, tokens upd_token,
 sql_rel *upd_del, 
sql_rel *bt, sql_rel *extra_selection)
@@ -1323,12 +1314,13 @@ 

MonetDB: Jun2020 - Cleanup: we do not use sharedstatedir.

2020-04-15 Thread Sjoerd Mullender
Changeset: 46dad74e2aea for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=46dad74e2aea
Modified Files:
NT/Makefile
NT/rules.msc
NT/winconfig.py
buildtools/autogen/autogen/am.py
buildtools/autogen/autogen/msc.py
testing/Mtest.py.in
Branch: Jun2020
Log Message:

Cleanup: we do not use sharedstatedir.


diffs (76 lines):

diff --git a/NT/Makefile b/NT/Makefile
--- a/NT/Makefile
+++ b/NT/Makefile
@@ -64,7 +64,6 @@ targetdirs:
if not exist "$(libexecdir)"$(MKDIR) "$(libexecdir)"
if not exist "$(datadir)"   $(MKDIR) "$(datadir)"
if not exist "$(sysconfdir)"$(MKDIR) "$(sysconfdir)"
-   if not exist "$(sharedstatedir)"$(MKDIR) "$(sharedstatedir)"
if not exist "$(localstatedir)" $(MKDIR) "$(localstatedir)"
if not exist "$(libdir)"$(MKDIR) "$(libdir)"
if not exist "$(infodir)"   $(MKDIR) "$(infodir)"
diff --git a/NT/rules.msc b/NT/rules.msc
--- a/NT/rules.msc
+++ b/NT/rules.msc
@@ -218,7 +218,6 @@ sbindir = $(exec_prefix)\sbin
 libexecdir = $(exec_prefix)\libexec
 datadir = $(prefix)\share
 sysconfdir = $(prefix)\etc
-sharedstatedir = $(prefix)\com
 localstatedir = $(prefix)\var
 libdir = $(exec_prefix)\lib
 infodir = $(prefix)\info
diff --git a/NT/winconfig.py b/NT/winconfig.py
--- a/NT/winconfig.py
+++ b/NT/winconfig.py
@@ -18,7 +18,6 @@ subs = [("@exec_prefix@", r'%prefix%'),
 ("@datadir@", r'%prefix%\share'),
 ("@datarootdir@", r'%prefix%\share'),
 ("@sysconfdir@", r'%prefix%\etc'),
-("@sharedstatedir@", r'%prefix%\com'),
 ("@localstatedir@", r'%prefix%\var'),
 ("@libdir@", r'%exec_prefix%\lib'),
 ("@infodir@", r'%prefix%\info'),
diff --git a/buildtools/autogen/autogen/am.py b/buildtools/autogen/autogen/am.py
--- a/buildtools/autogen/autogen/am.py
+++ b/buildtools/autogen/autogen/am.py
@@ -853,7 +853,7 @@ def am_translate_dir(path, am):
'libdir', 'libexecdir', 'localstatedir', 'mandir',
'oldincludedir', 'pkgbindir', 'pkgdatadir', 'pkgincludedir',
'pkglibdir', 'pkglocalstatedir', 'pkgsysconfdir', 'sbindir',
-   'sharedstatedir', 'srcdir', 'sysconfdir', 'top_builddir',
+   'srcdir', 'sysconfdir', 'top_builddir',
'top_srcdir', 'prefix'):
 dir = "$("+dir+")"
 dir = dir + rest
diff --git a/buildtools/autogen/autogen/msc.py 
b/buildtools/autogen/autogen/msc.py
--- a/buildtools/autogen/autogen/msc.py
+++ b/buildtools/autogen/autogen/msc.py
@@ -147,7 +147,7 @@ def msc_translate_dir(path, msc):
  'libdir', 'libexecdir', 'localstatedir', 'mandir',
  'oldincludedir', 'pkgbindir', 'pkgdatadir', 'pkgincludedir',
  'pkglibdir', 'pkglocalstatedir', 'pkgsysconfdir', 'sbindir',
- 'sharedstatedir', 'srcdir', 'sysconfdir', 'top_builddir',
+ 'srcdir', 'sysconfdir', 'top_builddir',
  'top_srcdir', 'prefix'):
 dir = "$("+dir+")"
 if rest:
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -156,7 +156,6 @@ def _configure(str):
 ('${datarootdir}', '@QXdatarootdir@'),
 ('${datadir}', '@QXdatadir@'),
 ('${sysconfdir}', '@QXsysconfdir@'),
-##('${sharedstatedir}', '@QXsharedstatedir@'),
 ('${localstatedir}', '@QXlocalstatedir@'),
 ('${libdir}', '@QXlibdir@'),
 ('${includedir}', '@QXincludedir@'),
@@ -169,7 +168,6 @@ def _configure(str):
 ('${Qdatarootdir}', '@QXdatarootdir@'),
 ('${Qdatadir}', '@QXdatadir@'),
 ('${Qsysconfdir}', '@QXsysconfdir@'),
-##('${Qsharedstatedir}', '@QXsharedstatedir@'),
 ('${Qlocalstatedir}', '@QXlocalstatedir@'),
 ('${Qlibdir}', '@QXlibdir@'),
 ('${Qincludedir}', '@QXincludedir@'),
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - Cleanup code.

2020-04-03 Thread Sjoerd Mullender
Changeset: f0394c6adf9e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f0394c6adf9e
Modified Files:
clients/mapiclient/mclient.c
Branch: Jun2020
Log Message:

Cleanup code.


diffs (122 lines):

diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -1987,13 +1987,12 @@ doRequest(Mapi mid, const char *buf)
return errseen;
 }
 
-#define CHECK_RESULT(mid, hdl, break_or_continue, buf, fp) \
+#define CHECK_RESULT(mid, hdl, buf, fp)\
switch (mapi_error(mid)) {  \
-   case MOK:   \
-   /* everything A OK */   \
+   case MOK:   /* everything A OK */   \
break;  \
-   case MERROR:\
-   /* some error, but try to continue */   \
+   case MERROR:/* some error, but try to continue */   \
+   case MTIMEOUT:  /* lost contact with the server */  \
if (formatter == TABLEformatter) {  \
mapi_noexplain(mid, "");\
} else {\
@@ -2006,21 +2005,8 @@ doRequest(Mapi mid, const char *buf)
} else  \
mapi_explain(mid, stderr);  \
errseen = true; \
-   break_or_continue;  \
-   case MTIMEOUT:  \
-   /* lost contact with the server */  \
-   if (formatter == TABLEformatter) {  \
-   mapi_noexplain(mid, "");\
-   } else {\
-   mapi_noexplain(mid, NULL);  \
-   }   \
-   if (hdl) {  \
-   mapi_explain_query(hdl, stderr);\
-   mapi_close_handle(hdl); \
-   hdl = NULL; \
-   } else  \
-   mapi_explain(mid, stderr);  \
-   errseen = true; \
+   if (mapi_error(mid) == MERROR)  \
+   continue; /* why not in do-while */ \
timerEnd(); \
if (buf)\
free(buf);  \
@@ -2072,12 +2058,12 @@ doFileBulk(Mapi mid, stream *fp)
timerResume();
if (hdl == NULL) {
hdl = mapi_query_prep(mid);
-   CHECK_RESULT(mid, hdl, continue, buf, fp);
+   CHECK_RESULT(mid, hdl, buf, fp);
}
 
assert(hdl != NULL);
mapi_query_part(hdl, buf, (size_t) length);
-   CHECK_RESULT(mid, hdl, continue, buf, fp);
+   CHECK_RESULT(mid, hdl, buf, fp);
 
/* if not at EOF, make sure there is a newline in the
 * buffer */
@@ -2096,14 +2082,14 @@ doFileBulk(Mapi mid, stream *fp)
(length > 0 || mapi_query_done(hdl) == MMORE))
continue;   /* get more data */
 
-   CHECK_RESULT(mid, hdl, continue, buf, fp);
+   CHECK_RESULT(mid, hdl, buf, fp);
 
rc = format_result(mid, hdl, false);
 
if (rc == MMORE && (length > 0 || mapi_query_done(hdl) != MOK))
continue;   /* get more data */
 
-   CHECK_RESULT(mid, hdl, continue, buf, fp);
+   CHECK_RESULT(mid, hdl, buf, fp);
 
mapi_close_handle(hdl);
hdl = NULL;
@@ -2610,7 +2596,7 @@ doFile(Mapi mid, stream *fp, bool useins
 
hdl = mapi_query(mid, query);
free(query);
-   CHECK_RESULT(mid, hdl, 
continue, buf, fp);
+   CHECK_RESULT(mid, hdl, buf, fp);
while (fetch_row(hdl) == 3) {
char *type = 
mapi_fetch_field(hdl, 0);
char *name = 
mapi_fetch_field(hdl, 1);
@@ -2859,7 +2845,7 @@ doFile(Mapi mid, stream *fp, bool useins
if 

MonetDB: Jun2020 - Cleanup of tracer: do more inside function, e...

2020-03-27 Thread Sjoerd Mullender
Changeset: 913260853ccb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=913260853ccb
Modified Files:
clients/Tests/exports.stable.out
gdk/gdk.h
gdk/gdk_delta.h
gdk/gdk_private.h
gdk/gdk_tracer.c
gdk/gdk_tracer.h
monetdb5/mal/mal_function.c
monetdb5/mal/mal_function.h
monetdb5/mal/mal_listing.c
monetdb5/mal/mal_listing.h
Branch: Jun2020
Log Message:

Cleanup of tracer: do more inside function, export less, use lowercase.


diffs (truncated from 658 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -217,7 +217,6 @@ BUN BUNfnd(BAT *b, const void *right);
 gdk_return BUNinplace(BAT *b, BUN p, const void *right, bool force) 
__attribute__((__warn_unused_result__));
 BAT *COLcopy(BAT *b, int tt, bool writable, role_t role);
 BAT *COLnew(oid hseq, int tltype, BUN capacity, role_t role) 
__attribute__((__warn_unused_result__));
-const char *COMPONENT_STR[];
 size_t GDK_mem_maxsize;
 size_t GDK_vm_maxsize;
 gdk_return GDKanalytical_correlation(BAT *r, BAT *b1, BAT *b2, BAT *s, BAT *e, 
int tpe);
@@ -304,8 +303,7 @@ str GDKstrndup(const char *s, size_t n) 
 void GDKsyserror(_In_z_ _Printf_format_string_ const char *format, ...) 
__attribute__((__format__(__printf__, 1, 2)));
 gdk_return GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT *log_level);
 gdk_return GDKtracer_flush_buffer(void);
-char *GDKtracer_get_timestamp(const char *fmt, char *buf, size_t sz);
-gdk_return GDKtracer_log(LOG_LEVEL level, const char *fmt, ...) 
__attribute__((__format__(__printf__, 2, 3)));
+gdk_return GDKtracer_log(const char *file, const char *func, int lineno, 
log_level_t lvl, component_t comp, const char *format, ...) 
__attribute__((__format__(__printf__, 6, 7)));
 void GDKtracer_reinit_basic(int sig);
 gdk_return GDKtracer_reset_adapter(void);
 gdk_return GDKtracer_reset_component_level(const char *comp);
@@ -335,8 +333,6 @@ size_t HEAPmemsize(Heap *h);
 size_t HEAPvmsize(Heap *h);
 void IMPSdestroy(BAT *b);
 lng IMPSimprintsize(BAT *b);
-const char *LEVEL_STR[];
-LOG_LEVEL LVL_PER_COMPONENT[];
 int MT_check_nr_cores(void);
 int MT_create_thread(MT_Id *t, void (*function)(void *), void *arg, enum 
MT_thr_detach d, const char *threadname);
 void MT_exiting_thread(void);
@@ -521,6 +517,7 @@ gdk_return logger_restart(logger *lg);
 int logger_sequence(logger *lg, int seq, lng *id);
 gdk_return logger_upgrade_bat(logger *lg, const char *name, char tpe, oid id) 
__attribute__((__warn_unused_result__));
 void logger_with_ids(logger *lg);
+log_level_t lvl_per_component[];
 void *mdlopen(const char *library, int mode);
 const char *mercurial_revision(void) __attribute__((__const__));
 int mo_add_option(opt **Set, int setlen, opt_kind kind, const char *name, 
const char *value);
@@ -2612,8 +2609,8 @@ str thetajoinRef;
 str thetaselectRef;
 str tidRef;
 str timestampRef;
-void traceFunction(COMPONENT comp, MalBlkPtr mb, MalStkPtr stk, int flg);
-void traceInstruction(COMPONENT comp, MalBlkPtr mb, MalStkPtr stk, InstrPtr p, 
int flg);
+void traceFunction(component_t comp, MalBlkPtr mb, MalStkPtr stk, int flg);
+void traceInstruction(component_t comp, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
p, int flg);
 str transactionRef;
 str transaction_abortRef;
 str transaction_beginRef;
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1646,6 +1646,7 @@ gdk_export gdk_return BATorderidx(BAT *b
 gdk_export gdk_return GDKmergeidx(BAT *b, BAT**a, int n_ar);
 gdk_export bool BATcheckorderidx(BAT *b);
 
+#include "gdk_tracer.h"
 #include "gdk_delta.h"
 #include "gdk_hash.h"
 #include "gdk_bbp.h"
diff --git a/gdk/gdk_delta.h b/gdk/gdk_delta.h
--- a/gdk/gdk_delta.h
+++ b/gdk/gdk_delta.h
@@ -9,8 +9,6 @@
 #ifndef _GDK_DELTA_H_
 #define _GDK_DELTA_H_
 
-#include "gdk_tracer.h"
-
 /*
  * We make sure here that the BUNs section of a BAT at least starts 4
  * bytes from the BUN start.  This ensures that the first data item of
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -19,7 +19,6 @@
 #define PERSISTENTIDX 1
 
 #include "gdk_system_private.h"
-#include "gdk_tracer.h"
 
 enum heaptype {
offheap,
diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c
--- a/gdk/gdk_tracer.c
+++ b/gdk/gdk_tracer.c
@@ -29,32 +29,36 @@ MT_Lock lock = MT_LOCK_INITIALIZER("GDKt
 
 static char file_name[FILENAME_MAX];
 
-static ATOMIC_TYPE CUR_ADAPTER = ATOMIC_VAR_INIT(DEFAULT_ADAPTER);
+static ATOMIC_TYPE cur_adapter = ATOMIC_VAR_INIT(DEFAULT_ADAPTER);
 
-static LOG_LEVEL CUR_FLUSH_LEVEL = DEFAULT_FLUSH_LEVEL;
+static log_level_t cur_flush_level = DEFAULT_FLUSH_LEVEL;
 
 #define GENERATE_LOG_LEVEL(COMP) DEFAULT_LOG_LEVEL,
-LOG_LEVEL LVL_PER_COMPONENT[] = {
+log_level_t lvl_per_component[] = {
FOREACH_COMP(GENERATE_LOG_LEVEL)
 };
 
-const char *ADAPTER_STR[] = {
+static 

MonetDB: Jun2020 - cleanup leak fix.

2020-03-27 Thread Niels Nes
Changeset: 1f69d764822d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1f69d764822d
Modified Files:
sql/storage/store.c
Branch: Jun2020
Log Message:

cleanup leak fix.


diffs (113 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -170,6 +170,31 @@ table_destroy(sql_table *t)
store_funcs.destroy_del(NULL, t);
 }
 
+static void
+table_cleanup(sql_table *t)
+{
+   if (t->keys.dset) {
+   list_destroy(t->keys.dset);
+   t->keys.dset = NULL;
+   }
+   if (t->idxs.dset) {
+   list_destroy(t->idxs.dset);
+   t->idxs.dset = NULL;
+   }
+   if (t->triggers.dset) {
+   list_destroy(t->triggers.dset);
+   t->triggers.dset = NULL;
+   }
+   if (t->columns.dset) {
+   list_destroy(t->columns.dset);
+   t->columns.dset = NULL;
+   }
+   if (t->members.dset) {
+   list_destroy(t->members.dset);
+   t->members.dset = NULL;
+   }
+}
+
 void
 schema_destroy(sql_schema *s)
 {
@@ -185,6 +210,26 @@ schema_destroy(sql_schema *s)
 }
 
 static void
+schema_cleanup(sql_schema *s)
+{
+   if (s->tables.set)
+   for (node *n = s->tables.set->h; n; n = n->next)
+   table_cleanup(n->data);
+   if (s->tables.dset) {
+   list_destroy(s->tables.dset);
+   s->tables.dset = NULL;
+   }
+   if (s->funcs.dset) {
+   list_destroy(s->funcs.dset);
+   s->funcs.dset = NULL;
+   }
+   if (s->types.dset) {
+   list_destroy(s->types.dset);
+   s->types.dset = NULL;
+   }
+}
+
+static void
 trans_drop_tmp(sql_trans *tr) 
 {
sql_schema *tmp;
@@ -234,6 +279,17 @@ sql_trans_destroy(sql_trans *t, bool try
 }
 
 static void
+trans_cleanup(sql_trans *t)
+{
+   for (node *m = t->schemas.set->h; m; m = m->next)
+   schema_cleanup(m->data);
+   if (t->schemas.dset) {
+   list_destroy(t->schemas.dset);
+   t->schemas.dset = NULL;
+   }
+}
+
+static void
 destroy_spare_transactions(void) 
 {
int i, s = spares;
@@ -2200,31 +2256,7 @@ store_apply_deltas(bool not_locked)
/* make sure we reset all transactions on re-activation */
gtrans->wstime = timestamp();
/* cleanup drop tables, columns and idxs first */
-   for (node *m = gtrans->schemas.set->h; m; m = m->next) { 
-   sql_schema *s = m->data;
-
-   if (s->tables.set)
-   for (node *n = s->tables.set->h; n; n = n->next) { 
-   sql_table *t = n->data; 
-
-   if (t->columns.dset) {
-   list_destroy(t->columns.dset);
-   t->columns.dset = NULL;
-   }
-   if (t->idxs.dset) {
-   list_destroy(t->idxs.dset);
-   t->idxs.dset = NULL;
-   }
-   }
-   if (s->tables.dset) {
-   list_destroy(s->tables.dset);
-   s->tables.dset = NULL;
-   }
-   }
-   if (gtrans->schemas.dset) {
-   list_destroy(gtrans->schemas.dset);
-   gtrans->schemas.dset = NULL;
-   }
+   trans_cleanup(gtrans);
 
if (store_funcs.gtrans_update)
store_funcs.gtrans_update(gtrans);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list