Changeset: 449f3946b3dd for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/449f3946b3dd
Modified Files:
        sql/backends/monet5/sql.c
        sql/scripts/26_sysmon.sql
Branch: strheapvacuum
Log Message:

use old vacuum naming, but in effect just for string columns


diffs (44 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -4924,11 +4924,14 @@ SQLstr_column_vacuum(Client cntxt, MalBl
 
        if ((b = store->storage_api.bind_col(tr, c, access)) == NULL)
                throw(SQL, "sql.column_vacuum", SQLSTATE(42S22) 
"storage_api.bind_col failed for %s.%s.%s",sname, tname, cname);
-       if ((bn = COLcopy(b, b->ttype, true, b->batRole)) == NULL)
-               throw(SQL, "sql.column_vacuum", SQLSTATE(42S22) "COLcopy failed 
%s.%s.%s", sname, tname, cname);
-       if ((res = (int) store->storage_api.swap_bats(tr, c, bn)) != LOG_OK) {
-               BBPreclaim(bn);
-               throw(SQL, "sql.column_vacuum", SQLSTATE(42S22) "swap_bats call 
failed %s.%s.%s", sname, tname, cname);
+       // vacuum only string bats
+       if (ATOMstorage(b->ttype) == TYPE_str) {
+               if ((bn = COLcopy(b, b->ttype, true, b->batRole)) == NULL)
+                       throw(SQL, "sql.column_vacuum", SQLSTATE(42S22) 
"COLcopy failed %s.%s.%s", sname, tname, cname);
+               if ((res = (int) store->storage_api.swap_bats(tr, c, bn)) != 
LOG_OK) {
+                       BBPreclaim(bn);
+                       throw(SQL, "sql.column_vacuum", SQLSTATE(42S22) 
"swap_bats call failed %s.%s.%s", sname, tname, cname);
+               }
        }
        BBPunfix(b->batCacheid);
        return MAL_SUCCEED;
@@ -6015,7 +6018,7 @@ static mel_func sql_init_funcs[] = {
  pattern("batsql", "corr", SQLcorr, false, "return the correlation value of 
groups", args(1,8, 
batarg("",dbl),batarg("b",hge),arg("c",hge),argany("p",0),argany("o",0),arg("t",int),argany("s",0),argany("e",0))),
  pattern("batsql", "corr", SQLcorr, false, "return the correlation value of 
groups", args(1,8, 
batarg("",dbl),batarg("b",hge),batarg("c",hge),argany("p",0),argany("o",0),arg("t",int),argany("s",0),argany("e",0))),
 #endif
- pattern("sql", "str_column_vacuum", SQLstr_column_vacuum, false, "vacuum a 
string column", args(0,3, arg("sname",str),arg("tname",str),arg("cname",str))),
+ pattern("sql", "vacuum", SQLstr_column_vacuum, false, "vacuum a string 
column", args(0,3, arg("sname",str),arg("tname",str),arg("cname",str))),
  { .imp=NULL }
 };
 #include "mal_import.h"
diff --git a/sql/scripts/26_sysmon.sql b/sql/scripts/26_sysmon.sql
--- a/sql/scripts/26_sysmon.sql
+++ b/sql/scripts/26_sysmon.sql
@@ -49,6 +49,6 @@ returns table(
 )
 external name sysmon.user_statistics;
 
-create procedure sys.str_column_vacuum(sname string, tname string, cname 
string)
-       external name sql.str_column_vacuum;
+create procedure sys.vacuum(sname string, tname string, cname string)
+       external name sql.vacuum;
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to