Changeset: 7846403e0c78 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7846403e0c78 Branch: mtest Log Message:
merged diffs (truncated from 1797 to 300 lines): diff --git a/clients/mapiclient/ReadlineTools.c b/clients/mapiclient/ReadlineTools.c --- a/clients/mapiclient/ReadlineTools.c +++ b/clients/mapiclient/ReadlineTools.c @@ -88,7 +88,7 @@ sql_tablename_generator(const char *text static char * sql_command_generator(const char *text, int state) { - static int idx, len; + static size_t idx, len; const char *name; if (!state) { @@ -303,20 +303,43 @@ readline_show_error(const char *msg) { #define BUFFER_SIZE 1024 #endif +#ifdef WIN32 +#define unlink _unlink +#endif + static int invoke_editor(int cnt, int key) { - char template[] = "/tmp/mclient_temp_XXXXXX"; char editor_command[BUFFER_SIZE]; char *read_buff = NULL; char *editor = NULL; FILE *fp; size_t content_len; size_t read_bytes, idx; +#ifdef WIN32 + char *mytemp; + char template[] = "mclient_temp_XXXXXX"; +#else + int mytemp; + char template[] = "/tmp/mclient_temp_XXXXXX"; +#endif (void) cnt; (void) key; - if ((fp = fdopen(mkstemp(template), "r+")) == NULL) { +#ifdef WIN32 + if ((mytemp = _mktemp(template)) == NULL) { +#else + if ((mytemp = mkstemp(template)) == 0) { +#endif + readline_show_error("invoke_editor: Cannot create temp file\n"); + goto bailout; + } + +#ifdef WIN32 + if ((fp = fopen(mytemp, "r+")) == NULL) { +#else + if ((fp = fdopen(mytemp, "r+")) == NULL) { +#endif // Notify the user that we cannot create temp file readline_show_error("invoke_editor: Cannot create temp file\n"); goto bailout; @@ -367,7 +390,7 @@ invoke_editor(int cnt, int key) { } rl_replace_line(read_buff, 0); - rl_point = idx + 1; // place the point one character after the end of the string + rl_point = (int)(idx + 1); // place the point one character after the end of the string free(read_buff); } else { diff --git a/gdk/gdk_analytic_func.c b/gdk/gdk_analytic_func.c --- a/gdk/gdk_analytic_func.c +++ b/gdk/gdk_analytic_func.c @@ -1004,7 +1004,7 @@ minmaxvarsized##IMP: \ gdk_return \ GDKanalytical##OP(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tpe, int frame_type) \ { \ - bool has_nils = false; \ + bool has_nils = false, last = false; \ oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s ? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL, \ *levels_offset = NULL, tree_capacity = 0, nlevels = 0; \ bit *np = p ? Tloc(p, 0) : NULL, *op = o ? Tloc(o, 0) : NULL; \ @@ -1013,7 +1013,6 @@ GDKanalytical##OP(BAT *r, BAT *p, BAT *o int (*atomcmp)(const void *, const void *) = ATOMcompare(tpe); \ void *segment_tree = NULL; \ gdk_return res = GDK_SUCCEED; \ - bool last = false ; \ \ if (cnt > 0) { \ switch (frame_type) { \ @@ -1352,11 +1351,10 @@ GDKanalyticalcount(BAT *r, BAT *p, BAT * const void *restrict nil = ATOMnilptr(tpe); int (*cmp) (const void *, const void *) = ATOMcompare(tpe); const void *restrict bheap = Tloc(b, 0); - bool count_all = !ignore_nils || b->tnonil; + bool count_all = !ignore_nils || b->tnonil, last = false; BATiter bpi = bat_iterator(b); void *segment_tree = NULL; gdk_return res = GDK_SUCCEED; - bool last = false; if (cnt > 0) { switch (frame_type) { @@ -1659,43 +1657,17 @@ sum##TPE1##TPE2##IMP: \ } \ } while (0) -static gdk_return /* This is a workaround for a MSVC compiler bug at build engine version 16.7.0+b89cb5fde Will test again after the next release */ -GDKanalyticalsumothers(BAT *r, BAT *p, bit *np, BAT *b, oid *restrict start, oid *restrict end, int tp1, int tp2) +gdk_return +GDKanalyticalsum(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tp1, int tp2, int frame_type) { - bool has_nils = false; - oid i = 0, j = 0, k = 0, cnt = BATcount(b), *levels_offset = NULL, tree_capacity = 0, nlevels = 0; + bool has_nils = false, last = false; + oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s ? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL, + *levels_offset = NULL, tree_capacity = 0, nlevels = 0; + bit *np = p ? Tloc(p, 0) : NULL, *op = o ? Tloc(o, 0) : NULL; int abort_on_error = 1; BUN nils = 0; void *segment_tree = NULL; gdk_return res = GDK_SUCCEED; - bool last = false; - - ANALYTICAL_SUM_BRANCHES(OTHERS); - - BATsetcount(r, cnt); - r->tnonil = !has_nils; - r->tnil = has_nils; - goto cleanup; /* all these gotos seem confusing but it cleans up the ending of the operator */ -calc_overflow: - GDKerror("22003!overflow in calculation.\n"); - res = GDK_FAIL; -cleanup: - GDKfree(segment_tree); - return res; -nosupport: - GDKerror("42000!type combination (sum(%s)->%s) not supported.\n", ATOMname(tp1), ATOMname(tp2)); - return GDK_FAIL; -} - -gdk_return -GDKanalyticalsum(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tp1, int tp2, int frame_type) -{ - bool has_nils = false; - oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s ? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL; - bit *np = p ? Tloc(p, 0) : NULL, *op = o ? Tloc(o, 0) : NULL; - int abort_on_error = 1; - BUN nils = 0; - bool last = false; if (cnt > 0) { switch (frame_type) { @@ -1712,7 +1684,7 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *o, ANALYTICAL_SUM_BRANCHES(CURRENT_ROW); } break; default: { - return GDKanalyticalsumothers(r, p, np, b, start, end, tp1, tp2); + ANALYTICAL_SUM_BRANCHES(OTHERS); } } } @@ -1720,16 +1692,20 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *o, BATsetcount(r, cnt); r->tnonil = !has_nils; r->tnil = has_nils; - return GDK_SUCCEED; - bailout: + goto cleanup; /* all these gotos seem confusing but it cleans up the ending of the operator */ +bailout: GDKerror("42000!error while calculating floating-point sum\n"); - return GDK_FAIL; - nosupport: + res = GDK_FAIL; + goto cleanup; +calc_overflow: + GDKerror("22003!overflow in calculation.\n"); + res = GDK_FAIL; +cleanup: + GDKfree(segment_tree); + return res; +nosupport: GDKerror("42000!type combination (sum(%s)->%s) not supported.\n", ATOMname(tp1), ATOMname(tp2)); return GDK_FAIL; - calc_overflow: - GDKerror("22003!overflow in calculation.\n"); - return GDK_FAIL; } /* product on integers */ @@ -2193,7 +2169,7 @@ prod##TPE1##TPE2##IMP: \ gdk_return GDKanalyticalprod(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tp1, int tp2, int frame_type) { - bool has_nils = false; + bool has_nils = false, last = false; oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s ? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL, *levels_offset = NULL, tree_capacity = 0, nlevels = 0; bit *np = p ? Tloc(p, 0) : NULL, *op = o ? Tloc(o, 0) : NULL; @@ -2201,7 +2177,6 @@ GDKanalyticalprod(BAT *r, BAT *p, BAT *o BUN nils = 0; void *segment_tree = NULL; gdk_return res = GDK_SUCCEED; - bool last = false; if (cnt > 0) { switch (frame_type) { @@ -2580,7 +2555,7 @@ avg_num_deltas(hge) gdk_return GDKanalyticalavg(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tpe, int frame_type) { - bool has_nils = false; + bool has_nils = false, last = false; oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s ? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL, *levels_offset = NULL, tree_capacity = 0, nlevels = 0; lng n = 0, rr = 0; @@ -2590,7 +2565,6 @@ GDKanalyticalavg(BAT *r, BAT *p, BAT *o, BUN nils = 0; void *segment_tree = NULL; gdk_return res = GDK_SUCCEED; - bool last = false; #ifdef HAVE_HGE hge sum = 0; #else @@ -2831,14 +2805,13 @@ avg_int_deltas(hge) gdk_return GDKanalyticalavginteger(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tpe, int frame_type) { - bool has_nils = false; + bool has_nils = false, last = false; oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s ? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL, *levels_offset = NULL, tree_capacity = 0, nlevels = 0; lng rem = 0, ncnt = 0; bit *np = p ? Tloc(p, 0) : NULL, *op = o ? Tloc(o, 0) : NULL; void *segment_tree = NULL; gdk_return res = GDK_SUCCEED; - bool last = false; if (cnt > 0) { switch (frame_type) { @@ -3081,7 +3054,7 @@ statistics##TPE##IMP: \ gdk_return \ GDKanalytical_##NAME(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tpe, int frame_type) \ { \ - bool has_nils = false; \ + bool has_nils = false, last = false; \ oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b), *restrict start = s ? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL, \ *levels_offset = NULL, tree_capacity = 0, nlevels = 0; \ lng n = 0; \ @@ -3089,7 +3062,6 @@ GDKanalytical_##NAME(BAT *r, BAT *p, BAT dbl *restrict rb = (dbl *) Tloc(r, 0), mean = 0, m2 = 0, delta; \ void *segment_tree = NULL; \ gdk_return res = GDK_SUCCEED; \ - bool last = false; \ \ if (cnt > 0) { \ switch (frame_type) { \ @@ -3288,7 +3260,7 @@ typedef struct covariance_deltas { gdk_return \ GDKanalytical_##NAME(BAT *r, BAT *p, BAT *o, BAT *b1, BAT *b2, BAT *s, BAT *e, int tpe, int frame_type) \ { \ - bool has_nils = false; \ + bool has_nils = false, last = false; \ oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b1), *restrict start = s ? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL, \ *levels_offset = NULL, tree_capacity = 0, nlevels = 0; \ lng n = 0; \ @@ -3296,7 +3268,6 @@ GDKanalytical_##NAME(BAT *r, BAT *p, BAT dbl *restrict rb = (dbl *) Tloc(r, 0), mean1 = 0, mean2 = 0, m2 = 0, delta1, delta2; \ void *segment_tree = NULL; \ gdk_return res = GDK_SUCCEED; \ - bool last = false; \ \ if (cnt > 0) { \ switch (frame_type) { \ @@ -3527,7 +3498,7 @@ typedef struct correlation_deltas { gdk_return GDKanalytical_correlation(BAT *r, BAT *p, BAT *o, BAT *b1, BAT *b2, BAT *s, BAT *e, int tpe, int frame_type) { - bool has_nils = false; + bool has_nils = false, last = false; oid i = 0, j = 0, k = 0, l = 0, cnt = BATcount(b1), *restrict start = s ? (oid*)Tloc(s, 0) : NULL, *restrict end = e ? (oid*)Tloc(e, 0) : NULL, *levels_offset = NULL, tree_capacity = 0, nlevels = 0; lng n = 0; @@ -3535,7 +3506,6 @@ GDKanalytical_correlation(BAT *r, BAT *p dbl *restrict rb = (dbl *) Tloc(r, 0), mean1 = 0, mean2 = 0, up = 0, down1 = 0, down2 = 0, delta1, delta2, aux, rr; void *segment_tree = NULL; gdk_return res = GDK_SUCCEED; - bool last = false; if (cnt > 0) { switch (frame_type) { 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 @@ -8931,8 +8931,13 @@ rel_merge_table_rewrite(visitor *v, sql_ if (!next->semantics && ((lval && lval->isnull) || (hval && hval->isnull))) { skip = 1; /* NULL values don't match, skip them */ } else if (!next->semantics) { - if (next->flag == cmp_equal || hval != lval) { - skip |= next->anti ? exp_range_overlap(cmin, cmax, lval, hval, false, false) != 0 : exp_range_overlap(cmin, cmax, lval, hval, false, false) == 0; + if (next->flag == cmp_equal) { + skip |= next->anti ? exp_range_overlap(cmin, cmax, lval, hval, false, false) != 0 : + exp_range_overlap(cmin, cmax, lval, hval, false, false) == 0; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list