Changeset: 8e46b6700569 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/8e46b6700569 Modified Files: clients/mapiclient/mclient.c gdk/gdk_bat.c gdk/gdk_system.c monetdb5/mal/mal_client.c monetdb5/mal/mal_listing.c monetdb5/mal/mal_profiler.c monetdb5/modules/mal/txtsim.c sql/backends/monet5/sql_scenario.c Branch: default Log Message:
Merge with Jun2023 branch. diffs (truncated from 920 to 300 lines): diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -69,7 +69,7 @@ static stream *toConsole; static stream *stdout_stream; static stream *stderr_stream; static stream *fromConsole = NULL; -static char *language = NULL; +static const char *language = NULL; static char *logfile = NULL; static char promptbuf[16]; static bool echoquery = false; @@ -2034,32 +2034,32 @@ doRequest(Mapi mid, const char *buf) return errseen; } -#define CHECK_RESULT(mid, hdl, buf, fp) \ - switch (mapi_error(mid)) { \ - case MOK: /* everything A OK */ \ - break; \ +#define CHECK_RESULT(mid, hdl, buf, fp) \ + switch (mapi_error(mid)) { \ + case MOK: /* everything A OK */ \ + break; \ case MERROR: /* some error, but try to 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); \ - if (fp) \ - close_stream(fp); \ - return 1; \ + 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); \ + if (fp) \ + close_stream(fp); \ + return 1; \ } static bool @@ -3198,12 +3198,12 @@ main(int argc, char **argv) #endif { int port = 0; - char *user = NULL; - char *passwd = NULL; - char *host = NULL; - char *command = NULL; - char *dbname = NULL; - char *output = NULL; /* output format as string */ + const char *user = NULL; + const char *passwd = NULL; + const char *host = NULL; + const char *command = NULL; + const char *dbname = NULL; + const char *output = NULL; /* output format as string */ DotMonetdb dotfile = {0}; stream *s = NULL; bool trace = false; @@ -3321,7 +3321,7 @@ main(int argc, char **argv) mode = MAL; } } else { - language = strdup("sql"); + language = "sql"; mode = SQL; } @@ -3345,9 +3345,7 @@ main(int argc, char **argv) break; case 'd': assert(optarg); - if (dbname) - free(dbname); - dbname = strdup(optarg); + dbname = optarg; break; case 'D': dump = true; @@ -3363,9 +3361,7 @@ main(int argc, char **argv) #endif case 'f': assert(optarg); - if (output != NULL) - free(output); - output = strdup(optarg); /* output format */ + output = optarg; /* output format */ break; case 'h': assert(optarg); @@ -3383,17 +3379,14 @@ main(int argc, char **argv) if (strcmp(optarg, "sql") == 0 || strcmp(optarg, "sq") == 0 || strcmp(optarg, "s") == 0) { - free(language); - language = strdup(optarg); + language = "sql"; mode = SQL; } else if (strcmp(optarg, "mal") == 0 || strcmp(optarg, "ma") == 0) { - free(language); - language = strdup("mal"); + language = "mal"; mode = MAL; } else if (strcmp(optarg, "msql") == 0) { - free(language); - language = strdup("msql"); + language = "msql"; mode = MAL; } else { mnstr_printf(stderr_stream, "language option needs to be sql or mal\n"); @@ -3417,9 +3410,7 @@ main(int argc, char **argv) break; case 'P': assert(optarg); - if (passwd) - free(passwd); - passwd = strdup(optarg); + passwd = optarg; passwd_set_as_flag = true; break; case 'r': @@ -3449,9 +3440,7 @@ main(int argc, char **argv) break; case 'u': assert(optarg); - if (user) - free(user); - user = strdup(optarg); + user = optarg; user_set_as_flag = true; break; case 'v': { @@ -3544,15 +3533,20 @@ main(int argc, char **argv) /* when config file would provide defaults */ if (user_set_as_flag) { if (passwd && !passwd_set_as_flag) { - free(passwd); passwd = NULL; } } - if (user == NULL) - user = simple_prompt("user", BUFSIZ, 1, prompt_getlogin()); - if (passwd == NULL) - passwd = simple_prompt("password", BUFSIZ, 0, NULL); + char *user_allocated = NULL; + if (user == NULL) { + user_allocated = simple_prompt("user", BUFSIZ, 1, prompt_getlogin()); + user = user_allocated; + } + char *passwd_allocated = NULL; + if (passwd == NULL) { + passwd_allocated = simple_prompt("password", BUFSIZ, 0, NULL); + passwd = passwd_allocated; + } c = 0; has_fileargs = optind != argc; @@ -3564,7 +3558,7 @@ main(int argc, char **argv) s = NULL; } if (s == NULL) { - dbname = strdup(argv[optind]); + dbname = argv[optind]; optind++; has_fileargs = optind != argc; } else { @@ -3577,14 +3571,12 @@ main(int argc, char **argv) } else { mid = mapi_mapi(host, port, user, passwd, language, dbname); } - if (user) - free(user); + free(user_allocated); + user_allocated = NULL; + free(passwd_allocated); + passwd_allocated = NULL; user = NULL; - if (passwd) - free(passwd); passwd = NULL; - if (dbname) - free(dbname); dbname = NULL; if (mid == NULL) { @@ -3600,7 +3592,6 @@ main(int argc, char **argv) setFormatter(output); if (mode == SQL) mapi_set_size_header(mid, strcmp(output, "raw") == 0); - free(output); } else { if (mode == SQL) { setFormatter("sql"); @@ -3673,12 +3664,11 @@ main(int argc, char **argv) #if !defined(_MSC_VER) && defined(HAVE_ICONV) /* no need on Windows: using wmain interface */ iconv_t cd_in; - bool free_command = false; + char *command_allocated = NULL; if (encoding != NULL && (cd_in = iconv_open("utf-8", encoding)) != (iconv_t) -1) { - char *savecommand = command; - char *from = command; + char *from = (char *) command; size_t fromlen = strlen(from); int factor = 4; size_t tolen = factor * fromlen + 1; @@ -3688,10 +3678,9 @@ main(int argc, char **argv) mnstr_printf(stderr_stream,"Malloc in main failed"); exit(2); } - free_command = true; try_again: - command = to; + command_allocated = to; if (iconv(cd_in, &from, &fromlen, &to, &tolen) == (size_t) -1) { switch (errno) { case EILSEQ: @@ -3700,11 +3689,11 @@ main(int argc, char **argv) exit(-1); case E2BIG: /* output buffer too small */ - from = savecommand; + from = (char *) command; fromlen = strlen(from); factor *= 2; tolen = factor * fromlen + 1; - free(command); + free(command_allocated); to = malloc(tolen); if (to == NULL) { mnstr_printf(stderr_stream,"Malloc in main failed"); @@ -3719,6 +3708,7 @@ main(int argc, char **argv) break; } } + command = command_allocated; *to = 0; iconv_close(cd_in); } else if (encoding) @@ -3730,8 +3720,7 @@ main(int argc, char **argv) c = doRequest(mid, command); timerEnd(); #if !defined(_MSC_VER) && defined(HAVE_ICONV) - if (free_command) - free(command); + free(command_allocated); #endif } diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -1212,10 +1212,6 @@ BUNappendmulti(BAT *b, const void *value } nunique = b->thash ? b->thash->nunique : 0; } - MT_lock_set(&b->theaplock); - b->tminpos = bi.minpos; - b->tmaxpos = bi.maxpos; - MT_lock_unset(&b->theaplock); } else { for (BUN i = 0; i < count; i++) { gdk_return rc = tfastins_nocheck(b, p, t); @@ -1231,6 +1227,8 @@ BUNappendmulti(BAT *b, const void *value nunique = b->thash ? b->thash->nunique : 0; _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org