Changeset: 0ee21813035a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0ee21813035a
Modified Files:
        sql/backends/monet5/sql_statement.c
        sql/include/sql_catalog.h
        sql/storage/bat/bat_storage.c
        sql/storage/sql_storage.h
Branch: default
Log Message:

small improvement, ie use QUICK for some 'hint' like counts


diffs (78 lines):

diff --git a/sql/backends/monet5/sql_statement.c 
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -558,7 +558,7 @@ stmt_tid(backend *be, sql_table *t, int 
        if (t && (!isRemote(t) && !isMergeTable(t)) && partition) {
                sql_trans *tr = be->mvc->session->tr;
                sqlstore *store = tr->store;
-               BUN rows = (BUN) store->storage_api.count_col(tr, 
t->columns.set->h->data, 0);
+               BUN rows = (BUN) store->storage_api.count_col(tr, 
t->columns.set->h->data, QUICK);
                setRowCnt(mb,getArg(q,0),rows);
        }
 
@@ -625,7 +625,7 @@ stmt_bat(backend *be, sql_column *c, int
                sqlstore *store = tr->store;
 
                if (c && (!isRemote(c->t) && !isMergeTable(c->t))) {
-                       BUN rows = (BUN) store->storage_api.count_col(tr, c, 0);
+                       BUN rows = (BUN) store->storage_api.count_col(tr, c, 
QUICK);
                        setRowCnt(mb,getArg(q,0),rows);
                }
        }
@@ -679,7 +679,7 @@ stmt_idxbat(backend *be, sql_idx *i, int
                sqlstore *store = tr->store;
 
                if (i && (!isRemote(i->t) && !isMergeTable(i->t))) {
-                       BUN rows = (BUN) store->storage_api.count_idx(tr, i, 0);
+                       BUN rows = (BUN) store->storage_api.count_idx(tr, i, 
QUICK);
                        setRowCnt(mb,getArg(q,0),rows);
                }
        }
diff --git a/sql/include/sql_catalog.h b/sql/include/sql_catalog.h
--- a/sql/include/sql_catalog.h
+++ b/sql/include/sql_catalog.h
@@ -90,6 +90,7 @@ typedef enum sql_dependency {
 #define TR_NEW 1
 
 #define RDONLY 0
+#define RD_INS 1
 #define RD_UPD_ID 2
 #define RD_UPD_VAL 3
 #define QUICK  4
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
@@ -550,7 +550,7 @@ count_col(sql_trans *tr, sql_column *c, 
                return ds?ds->cs.ucnt:0;
        if (access == 1)
                return count_inserts(d->segs->h, tr);
-       if (isTempTable(c->t))
+       if (access == QUICK || isTempTable(c->t))
                return d->segs->t?d->segs->t->end:0;
        return segs_end(d->segs, tr);
 }
@@ -571,7 +571,7 @@ count_idx(sql_trans *tr, sql_idx *i, int
                return ds?ds->cs.ucnt:0;
        if (access == 1)
                return count_inserts(d->segs->h, tr);
-       if (isTempTable(i->t))
+       if (access == QUICK || isTempTable(i->t))
                return d->segs->t?d->segs->t->end:0;
        return segs_end(d->segs, tr);
 }
diff --git a/sql/storage/sql_storage.h b/sql/storage/sql_storage.h
--- a/sql/storage/sql_storage.h
+++ b/sql/storage/sql_storage.h
@@ -138,9 +138,9 @@ typedef size_t (*claim_tab_fptr) (sql_tr
 -- count number of rows in column (excluding the deletes)
 -- check for sortedness
  */
-typedef size_t (*count_del_fptr) (sql_trans *tr, sql_table *t, int upd);
-typedef size_t (*count_col_fptr) (sql_trans *tr, sql_column *c, int upd);
-typedef size_t (*count_idx_fptr) (sql_trans *tr, sql_idx *i, int upd);
+typedef size_t (*count_del_fptr) (sql_trans *tr, sql_table *t, int access);
+typedef size_t (*count_col_fptr) (sql_trans *tr, sql_column *c, int access);
+typedef size_t (*count_idx_fptr) (sql_trans *tr, sql_idx *i, int access);
 typedef size_t (*dcount_col_fptr) (sql_trans *tr, sql_column *c);
 typedef int (*prop_col_fptr) (sql_trans *tr, sql_column *c);
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to