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
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to