Changeset: d5484d9a10f0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d5484d9a10f0
Branch: txtsim
Log Message:
Merge with default.
diffs (truncated from 824 to 300 lines):
diff --git a/.editorconfig b/.editorconfig
--- a/.editorconfig
+++ b/.editorconfig
@@ -23,3 +23,7 @@ charset = utf-8
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
+
+[{clients/{mapilib,odbc},gdk}/**.{c,h}{,.in}]
+tab_width = 8
+max_line_length = 72
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -2859,7 +2859,8 @@ doFile(Mapi mid, stream *fp, bool useins
}
} else {
setFormatter(line);
- mapi_set_size_header(mid,
strcmp(line, "raw") == 0);
+ if (mode == SQL)
+
mapi_set_size_header(mid, strcmp(line, "raw") == 0);
}
continue;
case 't':
@@ -3543,6 +3544,19 @@ main(int argc, char **argv)
mapi_setAutocommit(mid, autocommit);
if (mode == SQL && !settz)
mapi_set_time_zone(mid, 0);
+ if (output) {
+ setFormatter(output);
+ if (mode == SQL)
+ mapi_set_size_header(mid, strcmp(output, "raw") == 0);
+ free(output);
+ } else {
+ if (mode == SQL) {
+ setFormatter("sql");
+ mapi_set_size_header(mid, false);
+ } else {
+ setFormatter("raw");
+ }
+ }
if (mapi_error(mid) == MOK)
mapi_reconnect(mid); /* actually, initial connect */
@@ -3571,18 +3585,6 @@ main(int argc, char **argv)
mapi_log(mid, logfile);
mapi_trace(mid, trace);
- if (output) {
- setFormatter(output);
- mapi_set_size_header(mid, strcmp(output, "raw") == 0);
- free(output);
- } else {
- if (mode == SQL) {
- setFormatter("sql");
- } else {
- setFormatter("raw");
- mapi_set_size_header(mid, true);
- }
- }
/* give the user a welcome message with some general info */
if (!has_fileargs && command == NULL && isatty(fileno(stdin))) {
char *lang;
diff --git a/clients/mapilib/.editorconfig b/clients/mapilib/.editorconfig
deleted file mode 100644
--- a/clients/mapilib/.editorconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-[*.{c,h}]
-tab_width = 8
-max_line_length = 72
diff --git a/clients/odbc/.editorconfig b/clients/odbc/.editorconfig
deleted file mode 100644
--- a/clients/odbc/.editorconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-[*.{c,h}]
-tab_width = 8
-max_line_length = 72
diff --git a/gdk/.editorconfig b/gdk/.editorconfig
deleted file mode 100644
--- a/gdk/.editorconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-[*.{c,h}]
-tab_width = 8
-max_line_length = 72
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -683,7 +683,7 @@ BATappend2(BAT *b, BAT *n, BAT *s, bool
ALIGNapp(b, force, GDK_FAIL);
if (ATOMstorage(ATOMtype(b->ttype)) != ATOMstorage(ATOMtype(n->ttype)))
{
- GDKerror("Incompatible operands.\n");
+ GDKerror("Incompatible operands ("ALGOBATFMT" vs.
"ALGOBATFMT").\n", ALGOBATPAR(b), ALGOBATPAR(n));
return GDK_FAIL;
}
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1506,6 +1506,8 @@ BBPtrim(bool aggressive)
if (!aggressive)
flag |= BBPHOT;
for (bat bid = 1, nbat = (bat) ATOMIC_GET(&BBPsize); bid < nbat; bid++)
{
+ /* don't do this during a (sub)commit */
+ MT_lock_set(&GDKtmLock);
MT_lock_set(&GDKswapLock(bid));
BAT *b = NULL;
bool swap = false;
@@ -1531,6 +1533,7 @@ BBPtrim(bool aggressive)
GDKerror("unload failed for bat %d", bid);
n++;
}
+ MT_lock_unset(&GDKtmLock);
}
TRC_DEBUG(BAT_, "unloaded %d bats%s\n", n, aggressive ? " (also hot)" :
"");
}
diff --git a/gdk/gdk_calc_convert.c b/gdk/gdk_calc_convert.c
--- a/gdk/gdk_calc_convert.c
+++ b/gdk/gdk_calc_convert.c
@@ -489,7 +489,7 @@ convert_##TYPE##_msk(const TYPE *src, ui
oid candoff, bool *reduce) \
{ \
BUN cnt = ci->ncand / 32; \
- BUN i, j, k; \
+ BUN i, j; \
uint32_t mask; \
oid x; \
lng timeoffset = 0; \
@@ -499,14 +499,12 @@ convert_##TYPE##_msk(const TYPE *src, ui
} \
\
*reduce = true; \
- k = 0; \
if (ci->tpe == cand_dense) { \
TIMEOUT_LOOP_IDX(i, cnt, timeoffset) { \
mask = 0; \
for (j = 0; j < 32; j++) { \
x = canditer_next_dense(ci) - candoff; \
mask |= (uint32_t) (!is_##TYPE##_nil(src[x]) &&
src[x] != 0) << j; \
- k++; \
} \
dst[i] = mask; \
} \
@@ -517,7 +515,6 @@ convert_##TYPE##_msk(const TYPE *src, ui
for (j = 0; j < cnt; j++) { \
x = canditer_next_dense(ci) - candoff; \
mask |= (uint32_t) (!is_##TYPE##_nil(src[x]) &&
src[x] != 0) << j; \
- k++; \
} \
dst[i] = mask; \
} \
@@ -527,7 +524,6 @@ convert_##TYPE##_msk(const TYPE *src, ui
for (j = 0; j < 32; j++) { \
x = canditer_next(ci) - candoff; \
mask |= (uint32_t) (!is_##TYPE##_nil(src[x]) &&
src[x] != 0) << j; \
- k++; \
} \
dst[i] = mask; \
} \
@@ -538,7 +534,6 @@ convert_##TYPE##_msk(const TYPE *src, ui
for (j = 0; j < cnt; j++) { \
x = canditer_next(ci) - candoff; \
mask |= (uint32_t) (!is_##TYPE##_nil(src[x]) &&
src[x] != 0) << j; \
- k++; \
} \
dst[i] = mask; \
} \
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -755,8 +755,9 @@ la_bat_destroy(logger *lg, logaction *la
if (bid < 0)
return GDK_FAIL;
if (!bid) {
- GDKerror("la_bat_destroy failed to find bid for object %d\n",
la->cid);
- return GDK_FAIL;
+ GDKerror("la_bat_destroy failed to find bid for object %d
(issue ignored)\n", la->cid);
+ GDKclrerr();
+ return GDK_SUCCEED;
}
if (bid && log_del_bat(lg, bid) != GDK_SUCCEED)
return GDK_FAIL;
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -368,7 +368,10 @@ MSscheduleClient(str command, str challe
mnstr_printf(c->fdout, "!%s\n", s);
mnstr_flush(c->fdout, MNSTR_FLUSH_DATA);
GDKfree(s);
+ exit_streams(fin, fout);
+ GDKfree(command);
MCcloseClient(c);
+ return;
}
if (!GDKgetenv_isyes(mal_enableflag) &&
(strncasecmp("sql", lang, 3) != 0 && uid != 0))
{
diff --git a/sql/backends/monet5/UDF/capi/Tests/All
b/sql/backends/monet5/UDF/capi/Tests/All
--- a/sql/backends/monet5/UDF/capi/Tests/All
+++ b/sql/backends/monet5/UDF/capi/Tests/All
@@ -16,5 +16,5 @@ NOT_WIN32?capi13
NOT_WIN32?capi14
NOT_WIN32?capi15
NOT_WIN32?capi16
-#NOT_WIN32?capi17 no oids
+NOT_WIN32?capi17
NOT_WIN32?capi18
diff --git a/sql/backends/monet5/UDF/capi/Tests/capi17.test
b/sql/backends/monet5/UDF/capi/Tests/capi17.test
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/UDF/capi/Tests/capi17.test
@@ -0,0 +1,75 @@
+statement ok
+create or replace function my_test(stub string)
+returns string
+language c {
+ result->initialize(result, stub.count);
+ for (int i = 0; i < stub.count; i++) {
+ result->data[i] = malloc(4);
+ result->data[i][0] = 'a';
+ result->data[i][1] = 'b';
+ result->data[i][2] = 'c';
+ result->data[i][3] = '\0';
+ }
+}
+
+query T rowsort
+select my_test('');
+----
+abc
+
+statement ok
+create or replace function my_test(stub int)
+returns string
+language c {
+ result->initialize(result, stub.count);
+ for (int i = 0; i < stub.count; i++) {
+ result->data[i] = malloc(4);
+ result->data[i][0] = 'a';
+ result->data[i][1] = 'b';
+ result->data[i][2] = 'c';
+ result->data[i][3] = '\0';
+ }
+}
+
+query T rowsort
+select my_test(1);
+----
+abc
+
+statement ok
+create or replace aggregate my_test2(stub string)
+returns string
+language c {
+ result->initialize(result, aggr_group.count);
+ for (int i = 0; i < aggr_group.count; i++) {
+ result->data[i] = malloc(4);
+ result->data[i][0] = 'a';
+ result->data[i][1] = 'b';
+ result->data[i][2] = 'c';
+ result->data[i][3] = '\0';
+ }
+}
+
+query T rowsort
+select my_test2('') from sys._tables;
+----
+abc
+
+statement ok
+create or replace aggregate my_test2(stub string)
+returns string
+language c {
+ result->initialize(result, aggr_group.count);
+ for (int i = 0; i < aggr_group.count; i++) {
+ result->data[i] = malloc(4);
+ result->data[i][0] = 'a';
+ result->data[i][1] = 'b';
+ result->data[i][2] = 'c';
+ result->data[i][3] = '\0';
+ }
+};
+
+query T rowsort
+select count(*) > 1 from (select my_test2('') from sys._tables group by id) as
c
+----
+True
diff --git a/sql/backends/monet5/UDF/capi/capi.c
b/sql/backends/monet5/UDF/capi/capi.c
--- a/sql/backends/monet5/UDF/capi/capi.c
+++ b/sql/backends/monet5/UDF/capi/capi.c
@@ -201,28 +201,6 @@ static void wrapped_GDK_free(void* ptr)
return;
}
-static void *wrapped_GDK_malloc_nojump(size_t size)
-{
- if (size == 0)
- return NULL;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]