Changeset: 4b6c683a077b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4b6c683a077b
Modified Files:
clients/Tests/exports.stable.out
configure.ag
gdk/gdk_group.c
monetdb5/mal/mal_authorize.c
monetdb5/mal/mal_authorize.h
sql/backends/monet5/embeddedclient.c.in
tools/merovingian/ChangeLog.Jan2014
tools/merovingian/client/monetdb.1
tools/merovingian/client/monetdb.c
tools/merovingian/daemon/Makefile.ag
tools/merovingian/daemon/controlrunner.c
tools/mserver/mserver5.c
Branch: int128
Log Message:
Merge with Jan2014 branch.
diffs (146 lines):
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -553,14 +553,16 @@ yes-*-*)
MCHECK_ADD_FLAG([-Wmissing-include-dirs])
MCHECK_ADD_FLAG([-Wlogical-op])
- dnl With clang 2.8 (no other tested) and gcc < 4.5 (tested
+ dnl With clang 2.8 & 3.3 (which reports as 4.2.1 with -dumpversion)
+ dnl (no other tested) and gcc < 4.5 (tested
dnl 3.4.6, 4.2.1, 4.3.2, 4.4.4, 4.4.5, 4.5.1, 4.5.2),
dnl "-Wunreachable-code" triggers numerous "will never be
dnl executed" (at least) in our stream code, mostly (if
- dnl not all) false positives, though; thus, we do not use
+ dnl not all) false positives, though, as well as in
+ dnl YACC/BISON-generated code; thus, we do not use
dnl "-Wunreachable-code" with clang 2.8 and gcc < 4.5 .
case "$CC-$gcc_ver" in
- *clang*-2.8|*gcc*-[[0-3]].*|*gcc*-4.[[0-4]].*)
+ *clang*-2.8|*clang*-3.3|*clang*-4.2.1|*gcc*-[[0-3]].*|*gcc*-4.[[0-4]].*)
;;
*)
MCHECK_ADD_FLAG([-Wunreachable-code])
diff --git a/gdk/gdk_group.c b/gdk/gdk_group.c
--- a/gdk/gdk_group.c
+++ b/gdk/gdk_group.c
@@ -525,8 +525,8 @@ BATgroup_internal(BAT **groups, BAT **ex
if (maxgrps < GROUPBATINCR)
maxgrps = GROUPBATINCR;
if (b->T->width <= 2 &&
- maxgrps > ((BUN) 1 << (8 << (b->T->width == 2 ? 1 : 0))))
- maxgrps = (BUN) 1 << (8 << (b->T->width == 2 ? 1 : 0));
+ maxgrps > ((BUN) 1 << (8 << (b->T->width == 2))))
+ maxgrps = (BUN) 1 << (8 << (b->T->width == 2));
if (extents) {
en = BATnew(TYPE_void, TYPE_oid, maxgrps);
if (en == NULL)
@@ -684,6 +684,52 @@ BATgroup_internal(BAT **groups, BAT **ex
}
GDKfree(pgrp);
+ } else if (g == NULL && ATOMstorage(b->ttype) == TYPE_bte) {
+ /* byte-sized values, use 256 entry array to keep
+ * track of doled out group ids */
+ unsigned char *bgrps = GDKmalloc(256);
+ unsigned char v, *w = (unsigned char *) Tloc(b, BUNfirst(b));
+ memset(bgrps, 0xFF, 256);
+ if (histo)
+ memset(cnts, 0, maxgrps * sizeof(wrd));
+ ngrp = 0;
+ gn->tsorted = 1;
+ for (p = 0, q = BATcount(b); p < q; p++) {
+ if ((v = bgrps[w[p]]) == 0xFF && ngrp < 256) {
+ bgrps[w[p]] = v = ngrp++;
+ if (extents)
+ exts[v] = b->hseqbase + (oid) p;
+ }
+ ngrps[p] = v;
+ if (p > 0 &&v < ngrps[p - 1])
+ gn->tsorted = 0;
+ if (histo)
+ cnts[v]++;
+ }
+ GDKfree(bgrps);
+ } else if (g == NULL && ATOMstorage(b->ttype) == TYPE_sht) {
+ /* short-sized values, use 65536 entry array to keep
+ * track of doled out group ids */
+ unsigned short *sgrps = GDKmalloc(65536 * sizeof(short));
+ unsigned short v, *w = (unsigned short *) Tloc(b, BUNfirst(b));
+ memset(sgrps, 0xFF, 65536 * sizeof(short));
+ if (histo)
+ memset(cnts, 0, maxgrps * sizeof(wrd));
+ ngrp = 0;
+ gn->tsorted = 1;
+ for (p = 0, q = BATcount(b); p < q; p++) {
+ if ((v = sgrps[w[p]]) == 0xFFFF && ngrp < 65536) {
+ sgrps[w[p]] = v = ngrp++;
+ if (extents)
+ exts[v] = b->hseqbase + (oid) p;
+ }
+ ngrps[p] = v;
+ if (p > 0 && v < ngrps[p - 1])
+ gn->tsorted = 0;
+ if (histo)
+ cnts[v]++;
+ }
+ GDKfree(sgrps);
} else if (b->T->hash) {
/* we already have a hash table on b */
ALGODEBUG fprintf(stderr, "#BATgroup(b=%s#" BUNFMT ","
diff --git a/tools/merovingian/ChangeLog.Jan2014
b/tools/merovingian/ChangeLog.Jan2014
--- a/tools/merovingian/ChangeLog.Jan2014
+++ b/tools/merovingian/ChangeLog.Jan2014
@@ -1,3 +1,6 @@
# ChangeLog file for sql/src/backends/monet5/merovingian
# This file is updated with mchangelog
+* Sun Feb 16 2014 Fabian Groffen <[email protected]>
+- monetdb destroy -f now also works on running databases
+
diff --git a/tools/merovingian/client/monetdb.1
b/tools/merovingian/client/monetdb.1
--- a/tools/merovingian/client/monetdb.1
+++ b/tools/merovingian/client/monetdb.1
@@ -82,8 +82,8 @@ command.
By default, a confirmation question is asked, however the
.I \-f
option, when provided, suppresses this question and removal is executed
-right away. Note that you cannot destroy a running database, bring it
-down first using the
+right away. Note that without this option you cannot destroy a running
+database, bring it down first using the
.B stop
command.
.IP "lock database [database ...]"
diff --git a/tools/merovingian/client/monetdb.c
b/tools/merovingian/client/monetdb.c
--- a/tools/merovingian/client/monetdb.c
+++ b/tools/merovingian/client/monetdb.c
@@ -1559,6 +1559,17 @@ command_destroy(int argc, char *argv[])
printf("aborted\n");
exit(1);
}
+ } else {
+ char *ret;
+ char *out;
+ for (stats = orig; stats != NULL; stats = stats->next) {
+ if (stats->state == SABdbRunning) {
+ ret = control_send(&out, mero_host, mero_port,
+ stats->dbname, "stop", 0,
mero_pass);
+ if (ret != NULL)
+ free(ret);
+ }
+ }
}
simple_argv_cmd(argv[0], orig, "destroy", "destroyed database", NULL);
diff --git a/tools/merovingian/daemon/controlrunner.c
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -23,6 +23,7 @@
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
+#include <sys/wait.h>
#include <netdb.h>
#include <netinet/in.h>
#include <time.h>
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list