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