Changeset: 15df16e19816 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=15df16e19816
Modified Files:
sql/backends/monet5/sql_user.c
sql/server/rel_optimizer.c
sql/server/rel_optimizer.h
sql/server/rel_rel.c
sql/server/rel_rel.h
Branch: default
Log Message:
more moving around of code...
diffs (161 lines):
diff --git a/sql/backends/monet5/sql_user.c b/sql/backends/monet5/sql_user.c
--- a/sql/backends/monet5/sql_user.c
+++ b/sql/backends/monet5/sql_user.c
@@ -18,7 +18,9 @@
#include "monetdb_config.h"
#include "sql_user.h"
#include "sql_mvc.h"
+#include "sql_privileges.h"
#include "bat5.h"
+#include "mal_interpreter.h"
#include "mal_authorize.h"
#include "mal_recycle.h"
#include "mcrypt.h"
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
@@ -5380,7 +5380,6 @@ rel_mark_used(mvc *sql, sql_rel *rel, in
}
static sql_rel * rel_dce_sub(mvc *sql, sql_rel *rel);
-static sql_rel * rel_dce(mvc *sql, sql_rel *rel);
static sql_rel *
rel_remove_unused(mvc *sql, sql_rel *rel)
@@ -5654,7 +5653,7 @@ rel_add_projects(mvc *sql, sql_rel *rel)
return rel;
}
-static sql_rel *
+sql_rel *
rel_dce(mvc *sql, sql_rel *rel)
{
rel = rel_add_projects(sql, rel);
@@ -6908,10 +6907,12 @@ rel_merge_table_rewrite(int *changes, mv
int skip = 0, j;
/* do not include empty partitions */
+ /*
if ((nrel || nt->next) &&
pt && isTable(pt) && pt->access ==
TABLE_READONLY && !store_funcs.count_col(sql->session->tr,
pt->columns.set->h->data, 1)){
continue;
}
+ */
MT_lock_set(&prel->exps->ht_lock);
prel->exps->ht = NULL;
@@ -7334,48 +7335,6 @@ rel_apply_rename(mvc *sql, sql_rel *rel)
return rel;
}
-static sql_rel *
-_rel_add_identity(mvc *sql, sql_rel *rel, sql_exp **exp)
-{
- list *exps = rel_projections(sql, rel, NULL, 1, 1);
- sql_exp *e;
-
- if (list_length(exps) == 0) {
- *exp = NULL;
- return rel;
- }
- rel = rel_project(sql->sa, rel, rel_projections(sql, rel, NULL, 1, 1));
- //e = rel_unop_(sql, rel->exps->h->data, NULL, "identity", card_value);
- e = rel->exps->h->data;
- e = exp_unop(sql->sa, e, sql_bind_func(sql->sa, NULL, "identity",
exp_subtype(e), NULL, F_FUNC));
- e->p = prop_create(sql->sa, PROP_HASHCOL, e->p);
- *exp = exp_label(sql->sa, e, ++sql->label);
- rel_project_add_exp(sql, rel, e);
- return rel;
-}
-
-static sql_exp *
-exps_find_identity(list *exps)
-{
- node *n;
-
- for (n=exps->h; n; n = n->next) {
- sql_exp *e = n->data;
-
- if (is_identity(e, NULL))
- return e;
- }
- return NULL;
-}
-
-static sql_rel *
-rel_add_identity(mvc *sql, sql_rel *rel, sql_exp **exp)
-{
- if (rel && is_project(rel->op) && (*exp =
exps_find_identity(rel->exps)) != NULL)
- return rel;
- return _rel_add_identity(sql, rel, exp);
-}
-
static int
exps_from_rel( list *exps, sql_rel *rel )
{
diff --git a/sql/server/rel_optimizer.h b/sql/server/rel_optimizer.h
--- a/sql/server/rel_optimizer.h
+++ b/sql/server/rel_optimizer.h
@@ -18,4 +18,6 @@ extern int exp_joins_rels(sql_exp *e, li
extern void *name_find_column( sql_rel *rel, char *rname, char *name, int pnr,
sql_rel **bt );
+extern sql_rel * rel_dce(mvc *sql, sql_rel *rel);
+
#endif /*_REL_OPTIMIZER_H_*/
diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -1077,3 +1077,43 @@ rel_ddl_table_get(sql_rel *r)
return NULL;
}
+static sql_exp *
+exps_find_identity(list *exps)
+{
+ node *n;
+
+ for (n=exps->h; n; n = n->next) {
+ sql_exp *e = n->data;
+
+ if (is_identity(e, NULL))
+ return e;
+ }
+ return NULL;
+}
+
+static sql_rel *
+_rel_add_identity(mvc *sql, sql_rel *rel, sql_exp **exp)
+{
+ list *exps = rel_projections(sql, rel, NULL, 1, 1);
+ sql_exp *e;
+
+ if (list_length(exps) == 0) {
+ *exp = NULL;
+ return rel;
+ }
+ rel = rel_project(sql->sa, rel, rel_projections(sql, rel, NULL, 1, 1));
+ e = rel->exps->h->data;
+ e = exp_unop(sql->sa, e, sql_bind_func(sql->sa, NULL, "identity",
exp_subtype(e), NULL, F_FUNC));
+ e->p = prop_create(sql->sa, PROP_HASHCOL, e->p);
+ *exp = exp_label(sql->sa, e, ++sql->label);
+ rel_project_add_exp(sql, rel, e);
+ return rel;
+}
+
+sql_rel *
+rel_add_identity(mvc *sql, sql_rel *rel, sql_exp **exp)
+{
+ if (rel && is_project(rel->op) && (*exp =
exps_find_identity(rel->exps)) != NULL)
+ return rel;
+ return _rel_add_identity(sql, rel, exp);
+}
diff --git a/sql/server/rel_rel.h b/sql/server/rel_rel.h
--- a/sql/server/rel_rel.h
+++ b/sql/server/rel_rel.h
@@ -70,4 +70,5 @@ extern sql_rel *rel_or(mvc *sql, sql_rel
extern sql_table *rel_ddl_table_get(sql_rel *r);
+extern sql_rel *rel_add_identity(mvc *sql, sql_rel *rel, sql_exp **exp);
#endif /* _REL_REL_H_ */
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list