Changeset: 64d1f7c54c3b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=64d1f7c54c3b
Modified Files:
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_optimizer.c
sql/backends/monet5/sql_statement.c
sql/backends/monet5/sql_statistics.c
sql/include/sql_catalog.h
sql/server/rel_distribute.c
sql/server/rel_dump.c
sql/server/rel_optimizer.c
sql/server/rel_partition.c
sql/server/rel_planner.c
sql/server/rel_psm.c
sql/server/rel_rel.c
sql/server/rel_schema.c
sql/server/rel_select.c
sql/server/rel_updates.c
sql/storage/bat/bat_storage.c
sql/storage/sql_storage.h
sql/storage/store.c
Branch: iot
Log Message:
make sure stream's are similar to tables
diffs (truncated from 1103 to 300 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
@@ -772,7 +772,7 @@ stmt_col( mvc *sql, sql_column *c, stmt
if (del)
sc->partition = del->partition;
- if (isTable(c->t) && c->t->access != TABLE_READONLY &&
+ if (isTable(c->t->type) && c->t->access != TABLE_READONLY &&
(c->base.flag != TR_NEW || c->t->base.flag != TR_NEW /* alter */) &&
(c->t->persistence == SQL_PERSIST || c->t->persistence ==
SQL_DECLARED_TABLE) && !c->t->commit_action) {
stmt *i = stmt_bat(sql->sa, c, RD_INS);
@@ -794,7 +794,7 @@ stmt_idx( mvc *sql, sql_idx *i, stmt *de
if (del)
sc->partition = del->partition;
- if (isTable(i->t) && i->t->access != TABLE_READONLY &&
+ if (isTable(i->t->type) && i->t->access != TABLE_READONLY &&
(i->base.flag != TR_NEW || i->t->base.flag != TR_NEW /* alter */) &&
(i->t->persistence == SQL_PERSIST || i->t->persistence ==
SQL_DECLARED_TABLE) && !i->t->commit_action) {
stmt *ic = stmt_idxbat(sql->sa, i, RD_INS);
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
@@ -453,7 +453,7 @@ create_table_or_view(mvc *sql, char *sna
}
}
/* also create dependencies */
- if (nt->query && isView(nt)) {
+ if (nt->query && isView(nt->type)) {
sql_rel *r = NULL;
sql->sa = sa_create();
@@ -488,7 +488,7 @@ table_has_updates(sql_trans *tr, sql_tab
if ( b == 0)
return -1;
cnt |= BATcount(b) > 0;
- if (isTable(t) && t->access != TABLE_READONLY && (t->base.flag
!= TR_NEW /* alter */ ) &&
+ if (isTable(t->type) && t->access != TABLE_READONLY &&
(t->base.flag != TR_NEW /* alter */ ) &&
t->persistence == SQL_PERSIST && !t->commit_action)
cnt |= store_funcs.count_col(tr, c, 0) > 0;
BBPunfix(b->batCacheid);
@@ -540,7 +540,7 @@ alter_table(mvc *sql, char *sname, sql_t
sql_column *c = n->data;
sql_column *nc = mvc_bind_column(sql, nt, c->base.name);
- if (c->null != nc->null && isTable(nt)) {
+ if (c->null != nc->null && isTable(nt->type)) {
mvc_null(sql, nc, c->null);
/* for non empty check for nulls */
if (c->null == 0) {
@@ -618,7 +618,7 @@ drop_table(mvc *sql, char *sname, char *
}
if (!t) {
return sql_message("42S02!DROP TABLE: no such table '%s'",
tname);
- } else if (isView(t)) {
+ } else if (isView(t->type)) {
return sql_message("42000!DROP TABLE: cannot drop VIEW '%s'",
tname);
} else if (t->system) {
return sql_message("42000!DROP TABLE: cannot drop system table
'%s'", tname);
@@ -671,7 +671,7 @@ drop_view(mvc *sql, char *sname, char *t
return sql_message("42000!DROP VIEW: access denied for %s to
schema '%s'", stack_get_string(sql, "current_user"), ss->base.name);
} else if (!t) {
return sql_message("42S02!DROP VIEW: unknown view '%s'", tname);
- } else if (!isView(t)) {
+ } else if (!isView(t->type)) {
return sql_message("42000!DROP VIEW: unable to drop view '%s':
is a table", tname);
} else if (t->system) {
return sql_message("42000!DROP VIEW: cannot drop system view
'%s'", tname);
@@ -993,7 +993,7 @@ create_trigger(mvc *sql, char *sname, ch
if (!(t = mvc_bind_table(sql, s, tname)))
return sql_message("3F000!CREATE TRIGGER: unknown table '%s'",
tname);
- if (isView(t))
+ if (isView(t->type))
return sql_message("3F000!CREATE TRIGGER: cannot create trigger
on view '%s'", tname);
tri = mvc_create_trigger(sql, t, triggername, time, orientation, event,
old_name, new_name, condition, query);
@@ -2646,7 +2646,7 @@ SQLtid(Client cntxt, MalBlkPtr mb, MalSt
nr = store_funcs.count_col(tr, c, 1);
- if (isTable(t) && t->access == TABLE_WRITABLE && (t->base.flag !=
TR_NEW /* alter */ ) &&
+ if (isTable(t->type) && t->access == TABLE_WRITABLE && (t->base.flag !=
TR_NEW /* alter */ ) &&
t->persistence == SQL_PERSIST && !t->commit_action)
inr = store_funcs.count_col(tr, c, 0);
nr -= inr;
@@ -4871,7 +4871,7 @@ sql_storage(Client cntxt, MalBlkPtr mb,
sql_table *t = (sql_table *) bt;
if( tname && strcmp(bt->name, tname) )
continue;
- if (isTable(t))
+ if (isTable(t->type))
if (t->columns.set)
for (ncol =
(t)->columns.set->h; ncol; ncol = ncol->next) {
sql_base *bc =
ncol->data;
@@ -4950,7 +4950,7 @@ sql_storage(Client cntxt, MalBlkPtr mb,
BBPunfix(bn->batCacheid);
}
- if (isTable(t))
+ if (isTable(t->type))
if (t->idxs.set)
for (ncol =
(t)->idxs.set->h; ncol; ncol = ncol->next) {
sql_base *bc =
ncol->data;
diff --git a/sql/backends/monet5/sql_gencode.c
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -1077,7 +1077,7 @@ static int
if (q == NULL)
return -1;
s->nr = getDestVar(q);
- if (t && (!isRemote(t) && !isMergeTable(t)) &&
s->partition) {
+ if (t && (!isRemote(t->type) && !isMergeTable(t->type))
&& s->partition) {
sql_trans *tr = sql->mvc->session->tr;
BUN rows = (BUN) store_funcs.count_col(tr,
t->columns.set->h->data, 1);
setRowCnt(mb,getArg(q,0),rows);
@@ -1116,7 +1116,7 @@ static int
if (s->flag != RD_INS && s->partition) {
sql_trans *tr = sql->mvc->session->tr;
- if (c && (!isRemote(c->t) &&
!isMergeTable(c->t))) {
+ if (c && (!isRemote(c->t->type) &&
!isMergeTable(c->t->type))) {
BUN rows = (BUN)
store_funcs.count_col(tr, c, 1);
setRowCnt(mb,getArg(q,0),rows);
if (t->p && 0)
@@ -1156,7 +1156,7 @@ static int
if (s->flag != RD_INS && s->partition) {
sql_trans *tr = sql->mvc->session->tr;
- if (i && (!isRemote(i->t) &&
!isMergeTable(i->t))) {
+ if (i && (!isRemote(i->t->type) &&
!isMergeTable(i->t->type))) {
BUN rows = (BUN)
store_funcs.count_idx(tr, i, 1);
setRowCnt(mb,getArg(q,0),rows);
if (t->p && 0)
diff --git a/sql/backends/monet5/sql_optimizer.c
b/sql/backends/monet5/sql_optimizer.c
--- a/sql/backends/monet5/sql_optimizer.c
+++ b/sql/backends/monet5/sql_optimizer.c
@@ -57,7 +57,7 @@ SQLgetSpace(mvc *m, MalBlkPtr mb)
t = mvc_bind_table(m, s, tname);
if( ! t ) continue;
c = mvc_bind_column(m, t, cname);
- if (c && isStream(c->t)) {
+ if (c && isStream(c->t->type)) {
setModuleId(p, basketRef);
continue;
}
@@ -79,7 +79,7 @@ SQLgetSpace(mvc *m, MalBlkPtr mb)
if (f == bindidxRef) {
sql_idx *i = mvc_bind_idx(m, s, cname);
- if (i && (!isRemote(i->t) &&
!isMergeTable(i->t) && !isStream(i->t))) {
+ if (i && (!isRemote(i->t->type) &&
!isMergeTable(i->t->type) && !isStream(i->t->type))) {
BAT *b = store_funcs.bind_idx(tr, i,
RDONLY);
if (b) {
space += getBatSpace(b);
@@ -90,14 +90,14 @@ SQLgetSpace(mvc *m, MalBlkPtr mb)
sql_table *t = mvc_bind_table(m, s, tname);
sql_column *c = mvc_bind_column(m, t, cname);
- if (c && (!isRemote(c->t) &&
!isMergeTable(c->t)) && !isStream(c->t)) {
+ if (c && (!isRemote(c->t->type) &&
!isMergeTable(c->t->type)) && !isStream(c->t->type)) {
BAT *b = store_funcs.bind_col(tr, c,
RDONLY);
if (b) {
space += getBatSpace(b);
BBPunfix(b->batCacheid);
}
}
- if( c && isStream(c->t)){
+ if( c && isStream(c->t->type)){
setModuleId(p, basketRef);
p->argc = 5;
delArgument(p,1);
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
@@ -349,7 +349,7 @@ stmt_deps(list *dep_list, stmt *s, int d
case st_append_col:
case st_update_col:
if (depend_type == COLUMN_DEPENDENCY) {
- if (isTable(s->op4.cval->t))
+ if (isTable(s->op4.cval->t->type))
dep_list =
cond_append(dep_list, &s->op4.cval->base.id);
dep_list = cond_append(dep_list,
&s->op4.cval->t->base.id);
}
diff --git a/sql/backends/monet5/sql_statistics.c
b/sql/backends/monet5/sql_statistics.c
--- a/sql/backends/monet5/sql_statistics.c
+++ b/sql/backends/monet5/sql_statistics.c
@@ -79,7 +79,7 @@ sql_analyze(Client cntxt, MalBlkPtr mb,
if (tbl && strcmp(bt->name, tbl))
continue;
tfnd = 1;
- if (isTable(t) && t->columns.set)
+ if (isTable(t->type) && t->columns.set)
for (ncol = (t)->columns.set->h; ncol;
ncol = ncol->next) {
sql_base *bc = ncol->data;
sql_column *c = (sql_column *)
ncol->data;
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
@@ -461,13 +461,14 @@ typedef enum table_types {
tt_replica_table = 6 /* multiple replica of the same table */
} table_types;
-#define isTable(x) (x->type==tt_table || x->type == tt_stream)
-#define isView(x) (x->type==tt_view)
-#define isMergeTable(x) (x->type==tt_merge_table)
-#define isStream(x) (x->type==tt_stream)
-#define isRemote(x) (x->type==tt_remote)
-#define isReplicaTable(x) (x->type==tt_replica_table)
-#define isKindOfTable(x) (isTable(x) || isMergeTable(x) || isRemote(x) ||
isReplicaTable(x))
+#define isTable(f) ((f) == tt_table || (f) == tt_stream)
+#define isView(f) ((f) == tt_view)
+#define isMergeTable(f) ((f) == tt_merge_table)
+#define isStream(f) ((f) == tt_stream)
+#define isRemote(f) ((f) == tt_remote)
+#define isReplicaTable(f) ((f) == tt_replica_table)
+#define isKindOfTable(f) (isTable(f) || isMergeTable(f) || \
+ isRemote(f) || isReplicaTable(f))
#define TABLE_WRITABLE 0
#define TABLE_READONLY 1
diff --git a/sql/server/rel_distribute.c b/sql/server/rel_distribute.c
--- a/sql/server/rel_distribute.c
+++ b/sql/server/rel_distribute.c
@@ -25,7 +25,7 @@ has_remote_or_replica( sql_rel *rel )
case op_basetable: {
sql_table *t = rel->l;
- if (t && (isReplicaTable(t) || isRemote(t)))
+ if (t && (isReplicaTable(t->type) || isRemote(t->type)))
return 1;
break;
}
@@ -84,7 +84,7 @@ rewrite_replica( mvc *sql, sql_rel *rel,
rel_destroy(rel);
/* set_remote() */
- if (remote_prop && p && isRemote(p)) {
+ if (remote_prop && p && isRemote(p->type)) {
char *uri = p->query;
prop *p = r->p = prop_create(sql->sa, PROP_REMOTE, r->p);
@@ -115,7 +115,7 @@ replica(mvc *sql, sql_rel *rel, char *ur
case op_basetable: {
sql_table *t = rel->l;
- if (t && isReplicaTable(t)) {
+ if (t && isReplicaTable(t->type)) {
node *n;
if (uri) {
@@ -123,7 +123,7 @@ replica(mvc *sql, sql_rel *rel, char *ur
for (n = t->tables.set->h; n; n = n->next) {
sql_table *p = n->data;
- if (isRemote(p) && strcmp(uri,
p->query) == 0) {
+ if (isRemote(p->type) && strcmp(uri,
p->query) == 0) {
rel = rewrite_replica(sql, rel,
t, p, 0);
break;
}
@@ -206,7 +206,7 @@ distribute(mvc *sql, sql_rel *rel)
sql_table *t = rel->l;
/* set_remote() */
- if (t && isRemote(t)) {
+ if (t && isRemote(t->type)) {
char *uri = t->query;
p = rel->p = prop_create(sql->sa, PROP_REMOTE, rel->p);
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -109,9 +109,9 @@ exp_print(mvc *sql, stream *fout, sql_ex
if (atom_type(a)->type->localtype == TYPE_ptr) {
sql_table *t = a->data.val.pval;
mnstr_printf(fout, "%s(%s)",
- isStream(t)?"stream":
- isMergeTable(t)?"merge table":
- isReplicaTable(t)?"replica
table":"table",
+ isStream(t->type)?"stream":
+ isMergeTable(t->type)?"merge table":
+ isReplicaTable(t->type)?"replica
table":"table",
t->base.name);
} else {
char *t = sql_subtype_string(atom_type(a));
@@ -327,7 +327,7 @@ rel_print_(mvc *sql, stream *fout, sql_
const char *sname = t->s?t->s->base.name:NULL;
const char *tname = t->base.name;
- if (isRemote(t)) {
+ if (isRemote(t->type)) {
const char *uri = t->query;
sname = mapiuri_schema( uri, sql->sa, sname);
@@ -335,15 +335,15 @@ rel_print_(mvc *sql, stream *fout, sql_
}
if (sname)
mnstr_printf(fout, "%s(%s.%s)",
- isStream(t)?"stream":
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list