Changeset: 5b9e1e371879 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5b9e1e371879
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
sql/backends/monet5/sql_rank.c
sql/storage/bat/bat_storage.c
Branch: scatter
Log Message:
improved version of new count
diffs (58 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
@@ -9243,6 +9243,7 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "corr", "pattern sql.corr(X_0:int, X_1:int, X_2:bit, X_3:bit,
X_4:int, X_5:oid, X_6:oid):dbl ", "SQLcorr;", "" ]
[ "sql", "corr", "pattern sql.corr(X_0:lng, X_1:lng, X_2:bit, X_3:bit,
X_4:int, X_5:oid, X_6:oid):dbl ", "SQLcorr;", "" ]
[ "sql", "corr", "pattern sql.corr(X_0:sht, X_1:sht, X_2:bit, X_3:bit,
X_4:int, X_5:oid, X_6:oid):dbl ", "SQLcorr;", "" ]
+[ "sql", "count", "pattern sql.count(X_0:str, X_1:str):lng ",
"SQLbasecount;", "" ]
[ "sql", "count", "pattern sql.count(X_0:any_1, X_1:bit, X_2:bit,
X_3:bit, X_4:int, X_5:oid, X_6:oid):lng ", "SQLcount;", "" ]
[ "sql", "covariance", "pattern sql.covariance(X_0:bte, X_1:bte,
X_2:bit, X_3:bit, X_4:int, X_5:oid, X_6:oid):dbl ", "SQLcovar_samp;",
"" ]
[ "sql", "covariance", "pattern sql.covariance(X_0:dbl, X_1:dbl,
X_2:bit, X_3:bit, X_4:int, X_5:oid, X_6:oid):dbl ", "SQLcovar_samp;",
"" ]
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
@@ -12547,6 +12547,7 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "corr", "pattern sql.corr(X_0:int, X_1:int, X_2:bit, X_3:bit,
X_4:int, X_5:oid, X_6:oid):dbl ", "SQLcorr;", "" ]
[ "sql", "corr", "pattern sql.corr(X_0:lng, X_1:lng, X_2:bit, X_3:bit,
X_4:int, X_5:oid, X_6:oid):dbl ", "SQLcorr;", "" ]
[ "sql", "corr", "pattern sql.corr(X_0:sht, X_1:sht, X_2:bit, X_3:bit,
X_4:int, X_5:oid, X_6:oid):dbl ", "SQLcorr;", "" ]
+[ "sql", "count", "pattern sql.count(X_0:str, X_1:str):lng ",
"SQLbasecount;", "" ]
[ "sql", "count", "pattern sql.count(X_0:any_1, X_1:bit, X_2:bit,
X_3:bit, X_4:int, X_5:oid, X_6:oid):lng ", "SQLcount;", "" ]
[ "sql", "covariance", "pattern sql.covariance(X_0:bte, X_1:bte,
X_2:bit, X_3:bit, X_4:int, X_5:oid, X_6:oid):dbl ", "SQLcovar_samp;",
"" ]
[ "sql", "covariance", "pattern sql.covariance(X_0:dbl, X_1:dbl,
X_2:bit, X_3:bit, X_4:int, X_5:oid, X_6:oid):dbl ", "SQLcovar_samp;",
"" ]
diff --git a/sql/backends/monet5/sql_rank.c b/sql/backends/monet5/sql_rank.c
--- a/sql/backends/monet5/sql_rank.c
+++ b/sql/backends/monet5/sql_rank.c
@@ -807,7 +807,7 @@ SQLanalytics_args(BAT **r, BAT **b, int
if (isaBatType(getArgType(mb, pci, 1)) && !(*b =
BATdescriptor(*getArgReference_bat(stk, pci, 1))))
throw(SQL, mod, SQLSTATE(HY005) "Cannot access column
descriptor");
if (*b && !(*r = COLnew((*b)->hseqbase, rtype ? rtype : (*b)->ttype,
BATcount(*b), TRANSIENT)))
- throw(MAL, mod, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+ throw(MAL, mod, SQLSTATE(HY013) MAL_MALLOC_FAIL);
if (isaBatType(getArgType(mb, pci, 2)) && !(*p =
BATdescriptor(*getArgReference_bat(stk, pci, 2))))
throw(SQL, mod, SQLSTATE(HY005) "Cannot access column
descriptor");
if ((*frame_type == 3 || *frame_type == 4) && isaBatType(getArgType(mb,
pci, 3)) && !(*o = BATdescriptor(*getArgReference_bat(stk, pci, 3))))
@@ -1221,7 +1221,7 @@ SQLbasecount(Client cntxt, MalBlkPtr mb,
sql_column *c = ol_first_node(t->columns)->data;
sqlstore *store = m->session->tr->store;
- *res = store->storage_api.count_col(m->session->tr, c, 0) -
store->storage_api.count_del(m->session->tr, t, 0);
+ *res = store->storage_api.count_col(m->session->tr, c, 10);
return msg;
}
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -583,6 +583,11 @@ count_col(sql_trans *tr, sql_column *c,
return count_inserts(d->segs->h, tr);
if (access == QUICK || isTempTable(c->t))
return d->segs->t?d->segs->t->end:0;
+ if (access == 10) {
+ size_t cnt = segs_end(d->segs, tr, c->t);
+ cnt -= count_deletes_in_range(d->segs->h, tr, 0, cnt);
+ return cnt;
+ }
return segs_end(d->segs, tr, c->t);
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list