Changeset: 21a84486b7ad for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/21a84486b7ad
Modified Files:
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_rank.c
sql/include/sql_catalog.h
sql/server/rel_basetable.c
sql/server/rel_optimizer.c
sql/server/rel_statistics.c
sql/storage/bat/bat_storage.c
Branch: default
Log Message:
use defines or enums not random constants
diffs (144 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -7075,7 +7075,7 @@ check_for_foreign_key_references(mvc *sq
if (k->t != t && !cascade &&
isTable(t)) {
node *nnn =
ol_first_node(t->columns);
sql_column *c =
nnn->data;
- size_t n_rows =
store->storage_api.count_col(sql->session->tr, c, 10);
+ size_t n_rows =
store->storage_api.count_col(sql->session->tr, c, CNT_ACTIVE);
if (n_rows > 0) {
list_destroy(keys);
return
sql_error(sql, 02, SQLSTATE(23000) "TRUNCATE: FOREIGN KEY %s.%s depends on %s",
k->t->base.name, k->base.name, t->base.name);
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
@@ -1535,7 +1535,7 @@ mvc_delta_values(Client cntxt, MalBlkPtr
if (nrows) {
if (tname) {
deletes = (lng)
store->storage_api.count_del(m->session->tr, t, 0);
- segments = (lng)
store->storage_api.count_del(m->session->tr, t, 10);
+ segments = (lng)
store->storage_api.count_del(m->session->tr, t, CNT_ACTIVE);
if (cname) {
if ((msg=mvc_insert_delta_values(m, col1, col2,
col3, col4, col5, col6, col7, c, segments, deletes)) != NULL)
goto cleanup;
@@ -1553,7 +1553,7 @@ mvc_delta_values(Client cntxt, MalBlkPtr
t = (sql_table *)b;
if (isTable(t)) {
deletes = (lng)
store->storage_api.count_del(m->session->tr, t, 0);
- segments = (lng)
store->storage_api.count_del(m->session->tr, t, 10);
+ segments = (lng)
store->storage_api.count_del(m->session->tr, t, CNT_ACTIVE);
for (node *nn =
ol_first_node(t->columns); nn ; nn = nn->next) {
c = (sql_column*) nn->data;
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
@@ -1265,7 +1265,7 @@ SQLbasecount(Client cntxt, MalBlkPtr mb,
c = ol_first_node(t->columns)->data;
sqlstore *store = m->session->tr->store;
- *res = store->storage_api.count_col(m->session->tr, c, 10);
+ *res = store->storage_api.count_col(m->session->tr, c, CNT_ACTIVE);
return msg;
}
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
@@ -96,6 +96,8 @@ typedef enum sql_dependency {
#define QUICK 4
#define RD_EXT 5
+#define CNT_ACTIVE 10
+
/* the following list of macros are used by rel_rankop function */
#define UNBOUNDED_PRECEDING_BOUND 0
#define UNBOUNDED_FOLLOWING_BOUND 1
diff --git a/sql/server/rel_basetable.c b/sql/server/rel_basetable.c
--- a/sql/server/rel_basetable.c
+++ b/sql/server/rel_basetable.c
@@ -163,7 +163,7 @@ rel_basetable(mvc *sql, sql_table *t, co
ba->basenr = sql->nid;
sql->nid += end;
if (isTable(t) && t->s && !isDeclaredTable(t)) /* count active rows
only */
- set_count_prop(sql->sa, rel,
(BUN)store->storage_api.count_col(sql->session->tr,
ol_first_node(t->columns)->data, 10));
+ set_count_prop(sql->sa, rel,
(BUN)store->storage_api.count_col(sql->session->tr,
ol_first_node(t->columns)->data, CNT_ACTIVE));
assert(atname);
if (strcmp(atname, t->base.name) != 0)
ba->name = sa_strdup(sa, atname);
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -119,7 +119,7 @@ merge_table_prune_and_unionize(visitor *
return sql_error(v->sql, 02, SQLSTATE(42000) "%s
'%s'.'%s' should have at least one table associated",
TABLE_TYPE_DESCRIPTION(pt->type, pt->properties), pt->s->base.name,
pt->base.name);
/* Do not include empty partitions */
- if (isTable(pt) && pt->access == TABLE_READONLY &&
!store->storage_api.count_col(v->sql->session->tr,
ol_first_node(pt->columns)->data, 10)) /* count active rows only */
+ if (isTable(pt) && pt->access == TABLE_READONLY &&
!store->storage_api.count_col(v->sql->session->tr,
ol_first_node(pt->columns)->data, CNT_ACTIVE)) /* count active rows only */
continue;
for (node *n = mt_rel->exps->h; n && !skip; n = n->next) { /*
for each column of the child table */
diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -767,7 +767,7 @@ rel_get_statistics_(visitor *v, sql_rel
}
/* Set table row count. TODO? look for remote tables. Don't
look at storage for declared tables, because it won't be cleaned */
if (isTable(t) && t->s && !isDeclaredTable(t)) /* count active
rows only */
- set_count_prop(v->sql->sa, rel,
(BUN)store->storage_api.count_col(v->sql->session->tr,
ol_first_node(t->columns)->data, 10));
+ set_count_prop(v->sql->sa, rel,
(BUN)store->storage_api.count_col(v->sql->session->tr,
ol_first_node(t->columns)->data, CNT_ACTIVE));
break;
}
case op_inter:
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
@@ -634,8 +634,6 @@ count_deletes( segment *s, sql_trans *tr
return cnt;
}
-#define CNT_ACTIVE 10
-
static size_t
count_col(sql_trans *tr, sql_column *c, int access)
{
@@ -648,9 +646,9 @@ count_col(sql_trans *tr, sql_column *c,
ds = col_timestamp_delta(tr, c);
if (!d ||!ds)
return 0;
- if (access == 2)
+ if (access == RD_UPD_ID)
return ds?ds->cs.ucnt:0;
- if (access == 1)
+ if (access == RD_INS)
return count_inserts(d->segs->h, tr);
if (access == QUICK)
return d->segs->t?d->segs->t->end:0;
@@ -676,9 +674,9 @@ count_idx(sql_trans *tr, sql_idx *i, int
ds = idx_timestamp_delta(tr, i);
if (!d || !ds)
return 0;
- if (access == 2)
+ if (access == RD_UPD_ID)
return ds?ds->cs.ucnt:0;
- if (access == 1)
+ if (access == RD_INS)
return count_inserts(d->segs->h, tr);
if (access == QUICK)
return d->segs->t?d->segs->t->end:0;
@@ -2818,11 +2816,11 @@ count_del(sql_trans *tr, sql_table *t, i
d = tab_timestamp_storage(tr, t);
if (!d)
return 0;
- if (access == 2)
+ if (access == RD_UPD_ID)
return d->cs.ucnt;
- if (access == 1)
+ if (access == RD_INS)
return count_inserts(d->segs->h, tr);
- if (access == 10) /* special case for counting the number of segments */
+ if (access == CNT_ACTIVE) /* special case for counting the number of
segments */
return count_segs(d->segs->h);
return count_deletes(d->segs->h, tr);
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]