Changeset: 4fb5b9fd5212 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4fb5b9fd5212
Branch: default
Log Message:

merge


diffs (70 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -637,7 +637,7 @@
 [ "bat",       "getRole",      "command bat.getRole(X_0:bat[:any_1]):str ",    
"BKCgetRole;",  "Returns the rolename of the head column of a BAT."     ]
 [ "bat",       "getSequenceBase",      "command 
bat.getSequenceBase(X_0:bat[:any_1]):oid ",    "BKCgetSequenceBase;",  "Get the 
sequence base for the void column of a BAT."   ]
 [ "bat",       "getSize",      "command bat.getSize(X_0:bat[:any_1]):lng ",    
"BKCgetSize;",  "Calculate the actual size of the BAT descriptor, heaps, hashes 
and imprint indices in bytes\nrounded to the memory page size (see 
bbp.getPageSize())." ]
-[ "bat",       "getVHeapSize", "command bat.getVHeapSize(X_0:bat[:any_1]):lng 
",       "BKCgetVHeapSize;",     "Calculate the vheap size for string bats"     
 ]
+[ "bat",       "getVHeapSize", "command bat.getVHeapSize(X_0:bat[:any_1]):lng 
",       "BKCgetVHeapSize;",     "Calculate the vheap size for varsized bats"   
 ]
 [ "bat",       "getorderidx",  "pattern 
bat.getorderidx(X_0:bat[:any_1]):bat[:oid] ",  "OIDXgetorderidx;",     "Return 
the order index if it exists"   ]
 [ "bat",       "hasorderidx",  "pattern bat.hasorderidx(X_0:bat[:any_1]):bit 
",        "OIDXhasorderidx;",     "Return true if order index exists"     ]
 [ "bat",       "imprints",     "command bat.imprints(X_0:bat[:bte]):void ",    
"CMDBATimprints;",      ""      ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -750,7 +750,7 @@
 [ "bat",       "getRole",      "command bat.getRole(X_0:bat[:any_1]):str ",    
"BKCgetRole;",  "Returns the rolename of the head column of a BAT."     ]
 [ "bat",       "getSequenceBase",      "command 
bat.getSequenceBase(X_0:bat[:any_1]):oid ",    "BKCgetSequenceBase;",  "Get the 
sequence base for the void column of a BAT."   ]
 [ "bat",       "getSize",      "command bat.getSize(X_0:bat[:any_1]):lng ",    
"BKCgetSize;",  "Calculate the actual size of the BAT descriptor, heaps, hashes 
and imprint indices in bytes\nrounded to the memory page size (see 
bbp.getPageSize())." ]
-[ "bat",       "getVHeapSize", "command bat.getVHeapSize(X_0:bat[:any_1]):lng 
",       "BKCgetVHeapSize;",     "Calculate the vheap size for string bats"     
 ]
+[ "bat",       "getVHeapSize", "command bat.getVHeapSize(X_0:bat[:any_1]):lng 
",       "BKCgetVHeapSize;",     "Calculate the vheap size for varsized bats"   
 ]
 [ "bat",       "getorderidx",  "pattern 
bat.getorderidx(X_0:bat[:any_1]):bat[:oid] ",  "OIDXgetorderidx;",     "Return 
the order index if it exists"   ]
 [ "bat",       "hasorderidx",  "pattern bat.hasorderidx(X_0:bat[:any_1]):bit 
",        "OIDXhasorderidx;",     "Return true if order index exists"     ]
 [ "bat",       "imprints",     "command bat.imprints(X_0:bat[:bte]):void ",    
"CMDBATimprints;",      ""      ]
diff --git a/monetdb5/modules/kernel/bat5.c b/monetdb5/modules/kernel/bat5.c
--- a/monetdb5/modules/kernel/bat5.c
+++ b/monetdb5/modules/kernel/bat5.c
@@ -618,9 +618,11 @@ BKCgetVHeapSize(lng *tot, const bat *bid
        if ((b = BATdescriptor(*bid)) == NULL) {
                throw(MAL, "bat.getVHeapSize", SQLSTATE(HY002) 
RUNTIME_OBJECT_MISSING);
        }
-       int _tpe= ATOMstorage((b)->ttype);
-       if (_tpe >= TYPE_str) {
-               size += b->tvheap->size;
+       if (ATOMvarsized(b->ttype)) {
+               MT_lock_set(&b->theaplock);
+               if (b->tvheap)
+                       size += b->tvheap->size;
+               MT_lock_unset(&b->theaplock);
        }
 
        *tot = size;
@@ -1251,7 +1253,7 @@ mel_func bat5_init_funcs[] = {
  command("bat", "densebat", BKCdensebat, false, "Creates a new [void,void] BAT 
of size 'sz'.", args(1,2, batarg("",oid),arg("sz",lng))),
  command("bat", "info", BKCinfo, false, "Produce a table containing 
information about a BAT in [attribute,value] format. \nIt contains all 
properties of the BAT record. ", args(2,3, 
batarg("",str),batarg("",str),batargany("b",1))),
  command("bat", "getSize", BKCgetSize, false, "Calculate the actual size of 
the BAT descriptor, heaps, hashes and imprint indices in bytes\nrounded to the 
memory page size (see bbp.getPageSize()).", args(1,2, 
arg("",lng),batargany("b",1))),
- command("bat", "getVHeapSize", BKCgetVHeapSize, false, "Calculate the vheap 
size for string bats", args(1,2, arg("",lng),batargany("b",1))),
+ command("bat", "getVHeapSize", BKCgetVHeapSize, false, "Calculate the vheap 
size for varsized bats", args(1,2, arg("",lng),batargany("b",1))),
  command("bat", "getCapacity", BKCgetCapacity, false, "Returns the current 
allocation size (in max number of elements) of a BAT.", args(1,2, 
arg("",lng),batargany("b",1))),
  command("bat", "getColumnType", BKCgetColumnType, false, "Returns the type of 
the tail column of a BAT, as an integer type number.", args(1,2, 
arg("",str),batargany("b",1))),
  command("bat", "getRole", BKCgetRole, false, "Returns the rolename of the 
head column of a BAT.", args(1,2, arg("",str),batargany("bid",1))),
diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -4219,6 +4219,15 @@ sql_update_default(Client c, mvc *sql, c
                                        "drop function sys.reverse(string);\n"
                                        "drop all function sys.fuse;\n");
 
+       /* 26_sysmon.sql */
+       pos += snprintf(buf + pos, bufsize - pos,
+                                       "create procedure sys.vacuum(sname 
string, tname string, cname string)\n"
+                                       "       external name sql.vacuum;\n"
+                                       "create procedure sys.vacuum(sname 
string, tname string, cname string, interval int)\n"
+                                       "       external name sql.vacuum;\n"
+                                       "create procedure sys.stop_vacuum(sname 
string, tname string, cname string)\n"
+                                       "       external name 
sql.stop_vacuum;\n");
+
        assert(pos < bufsize);
        printf("Running database upgrade commands:\n%s\n", buf);
        err = SQLstatementIntern(c, buf, "update", true, false, NULL);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to