Changeset: 7ff95319411e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/7ff95319411e
Modified Files:
sql/server/rel_distribute.c
sql/server/rel_optimize_exps.c
sql/server/rel_optimize_others.c
sql/server/rel_optimize_proj.c
sql/server/rel_optimize_sel.c
sql/server/rel_optimizer.c
sql/server/rel_optimizer_private.h
sql/server/rel_planner.c
sql/server/rel_propagate.c
sql/server/rel_propagate.h
sql/server/rel_rewriter.c
sql/server/rel_rewriter.h
sql/server/rel_unnest.c
Branch: sqloptimizer
Log Message:
Clean unused include files
diffs (293 lines):
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
@@ -7,11 +7,10 @@
*/
#include "monetdb_config.h"
-#include "rel_rel.h"
+#include "rel_optimizer_private.h"
#include "rel_basetable.h"
#include "rel_exp.h"
#include "sql_privileges.h"
-#include "rel_optimizer_private.h"
static int
has_remote_or_replica( sql_rel *rel )
diff --git a/sql/server/rel_optimize_exps.c b/sql/server/rel_optimize_exps.c
--- a/sql/server/rel_optimize_exps.c
+++ b/sql/server/rel_optimize_exps.c
@@ -7,16 +7,10 @@
*/
#include "monetdb_config.h"
-#include "rel_optimizer.h"
#include "rel_optimizer_private.h"
-#include "rel_rel.h"
-#include "rel_basetable.h"
#include "rel_select.h"
#include "rel_exp.h"
-#include "rel_prop.h"
-#include "rel_dump.h"
#include "rel_rewriter.h"
-#include "sql_mvc.h"
static inline int
str_ends_with(const char *s, const char *suffix)
diff --git a/sql/server/rel_optimize_others.c b/sql/server/rel_optimize_others.c
--- a/sql/server/rel_optimize_others.c
+++ b/sql/server/rel_optimize_others.c
@@ -7,15 +7,9 @@
*/
#include "monetdb_config.h"
-#include "rel_optimizer.h"
#include "rel_optimizer_private.h"
-#include "rel_rel.h"
-#include "rel_basetable.h"
#include "rel_exp.h"
-#include "rel_prop.h"
#include "rel_select.h"
-#include "rel_rewriter.h"
-#include "sql_mvc.h"
static void
rel_no_rename_exps( list *exps )
@@ -232,6 +226,37 @@ exp_push_down_prj(mvc *sql, sql_exp *e,
return NULL;
}
+atom *
+exp_flatten(mvc *sql, bool value_based_opt, sql_exp *e)
+{
+ if (e->type == e_atom) {
+ return value_based_opt ? exp_value(sql, e) : (atom *) e->l;
+ } else if (e->type == e_convert) {
+ atom *v = exp_flatten(sql, value_based_opt, e->l);
+
+ if (v)
+ return atom_cast(sql->sa, v, exp_subtype(e));
+ } else if (e->type == e_func) {
+ sql_subfunc *f = e->f;
+ list *l = e->l;
+ sql_arg *res = (f->func->res)?(f->func->res->h->data):NULL;
+
+ /* TODO handle date + x months */
+ if (!f->func->s && strcmp(f->func->base.name, "sql_add") == 0
&& list_length(l) == 2 && res && EC_NUMBER(res->type.type->eclass)) {
+ atom *l1 = exp_flatten(sql, value_based_opt,
l->h->data);
+ atom *l2 = exp_flatten(sql, value_based_opt,
l->h->next->data);
+ if (l1 && l2)
+ return atom_add(sql->sa, l1, l2);
+ } else if (!f->func->s && strcmp(f->func->base.name, "sql_sub")
== 0 && list_length(l) == 2 && res && EC_NUMBER(res->type.type->eclass)) {
+ atom *l1 = exp_flatten(sql, value_based_opt,
l->h->data);
+ atom *l2 = exp_flatten(sql, value_based_opt,
l->h->next->data);
+ if (l1 && l2)
+ return atom_sub(sql->sa, l1, l2);
+ }
+ }
+ return NULL;
+}
+
int
exp_range_overlap(atom *min, atom *max, atom *emin, atom *emax, bool
min_exclusive, bool max_exclusive)
{
diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -7,15 +7,11 @@
*/
#include "monetdb_config.h"
-#include "rel_optimizer.h"
#include "rel_optimizer_private.h"
-#include "rel_rel.h"
#include "rel_basetable.h"
#include "rel_exp.h"
-#include "rel_prop.h"
#include "rel_select.h"
#include "rel_rewriter.h"
-#include "sql_mvc.h"
static int
exp_is_rename(sql_exp *e)
diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c
--- a/sql/server/rel_optimize_sel.c
+++ b/sql/server/rel_optimize_sel.c
@@ -7,17 +7,11 @@
*/
#include "monetdb_config.h"
-#include "rel_optimizer.h"
#include "rel_optimizer_private.h"
-#include "rel_rel.h"
-#include "rel_basetable.h"
#include "rel_planner.h"
#include "rel_exp.h"
-#include "rel_prop.h"
#include "rel_select.h"
#include "rel_rewriter.h"
-#include "sql_mvc.h"
-
static void select_split_exps(mvc *sql, list *exps, sql_rel *rel);
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
@@ -12,13 +12,7 @@
#include "rel_rel.h"
#include "rel_basetable.h"
#include "rel_exp.h"
-#include "rel_prop.h"
-#include "rel_dump.h"
-#include "rel_select.h"
-#include "rel_planner.h"
#include "rel_propagate.h"
-#include "rel_rewriter.h"
-#include "sql_mvc.h"
#include "sql_privileges.h"
static sql_rel *
diff --git a/sql/server/rel_optimizer_private.h
b/sql/server/rel_optimizer_private.h
--- a/sql/server/rel_optimizer_private.h
+++ b/sql/server/rel_optimizer_private.h
@@ -93,6 +93,7 @@ extern sql_exp *add_exp_too_project(mvc
/* these functions are used across diferent optimizers */
extern sql_rel *rel_find_ref(sql_rel *r)
__attribute__((__visibility__("hidden")));
extern void rel_rename_exps(mvc *sql, list *exps1, list *exps2)
__attribute__((__visibility__("hidden")));
+extern atom *exp_flatten(mvc *sql, bool value_based_opt, sql_exp *e)
__attribute__((__visibility__("hidden")));
extern atom *reduce_scale(mvc *sql, atom *a)
__attribute__((__visibility__("hidden")));
extern int exp_range_overlap(atom *min, atom *max, atom *emin, atom *emax,
bool min_exclusive, bool max_exclusive)
__attribute__((__visibility__("hidden")));
extern int is_numeric_upcast(sql_exp *e)
__attribute__((__visibility__("hidden")));
diff --git a/sql/server/rel_planner.c b/sql/server/rel_planner.c
--- a/sql/server/rel_planner.c
+++ b/sql/server/rel_planner.c
@@ -12,7 +12,6 @@
#include "rel_exp.h"
#include "rel_prop.h"
#include "rel_rewriter.h"
-#include "rel_optimizer.h"
typedef struct memoitem {
const char *name;
diff --git a/sql/server/rel_propagate.c b/sql/server/rel_propagate.c
--- a/sql/server/rel_propagate.c
+++ b/sql/server/rel_propagate.c
@@ -8,14 +8,10 @@
#include "monetdb_config.h"
#include "rel_propagate.h"
-#include "rel_rel.h"
#include "rel_basetable.h"
#include "rel_exp.h"
-#include "rel_prop.h"
-#include "rel_dump.h"
#include "rel_select.h"
#include "rel_updates.h"
-#include "sql_mvc.h"
#include "sql_partition.h"
extern sql_rel *rel_list(sql_allocator *sa, sql_rel *l, sql_rel *r);
diff --git a/sql/server/rel_propagate.h b/sql/server/rel_propagate.h
--- a/sql/server/rel_propagate.h
+++ b/sql/server/rel_propagate.h
@@ -9,7 +9,6 @@
#ifndef _REL_PROPAGATE_H_
#define _REL_PROPAGATE_H_
-#include "sql_relation.h"
#include "sql_symbol.h"
#include "sql_mvc.h"
#include "sql_query.h"
diff --git a/sql/server/rel_rewriter.c b/sql/server/rel_rewriter.c
--- a/sql/server/rel_rewriter.c
+++ b/sql/server/rel_rewriter.c
@@ -8,11 +8,8 @@
#include "monetdb_config.h"
#include "rel_rewriter.h"
-#include "rel_prop.h"
-#include "rel_rel.h"
#include "rel_exp.h"
#include "rel_basetable.h"
-#include "mal_errors.h" /* for SQLSTATE() */
/* simplify expressions, such as not(not(x)) */
/* exp visitor */
@@ -242,37 +239,6 @@ rewrite_reset_used(visitor *v, sql_rel *
return rel;
}
-atom *
-exp_flatten(mvc *sql, bool value_based_opt, sql_exp *e)
-{
- if (e->type == e_atom) {
- return value_based_opt ? exp_value(sql, e) : (atom *) e->l;
- } else if (e->type == e_convert) {
- atom *v = exp_flatten(sql, value_based_opt, e->l);
-
- if (v)
- return atom_cast(sql->sa, v, exp_subtype(e));
- } else if (e->type == e_func) {
- sql_subfunc *f = e->f;
- list *l = e->l;
- sql_arg *res = (f->func->res)?(f->func->res->h->data):NULL;
-
- /* TODO handle date + x months */
- if (!f->func->s && strcmp(f->func->base.name, "sql_add") == 0
&& list_length(l) == 2 && res && EC_NUMBER(res->type.type->eclass)) {
- atom *l1 = exp_flatten(sql, value_based_opt,
l->h->data);
- atom *l2 = exp_flatten(sql, value_based_opt,
l->h->next->data);
- if (l1 && l2)
- return atom_add(sql->sa, l1, l2);
- } else if (!f->func->s && strcmp(f->func->base.name, "sql_sub")
== 0 && list_length(l) == 2 && res && EC_NUMBER(res->type.type->eclass)) {
- atom *l1 = exp_flatten(sql, value_based_opt,
l->h->data);
- atom *l2 = exp_flatten(sql, value_based_opt,
l->h->next->data);
- if (l1 && l2)
- return atom_sub(sql->sa, l1, l2);
- }
- }
- return NULL;
-}
-
int
find_member_pos(list *l, sql_table *t)
{
diff --git a/sql/server/rel_rewriter.h b/sql/server/rel_rewriter.h
--- a/sql/server/rel_rewriter.h
+++ b/sql/server/rel_rewriter.h
@@ -10,7 +10,6 @@
#define _REL_REWRITER_H_
#include "sql_relation.h"
-#include "sql_mvc.h"
#include "rel_rel.h"
#define is_ifthenelse_func(sf) (strcmp((sf)->func->base.name, "ifthenelse") ==
0)
@@ -40,8 +39,6 @@ try_remove_empty_select(visitor *v, sql_
extern sql_rel *rewrite_reset_used(visitor *v, sql_rel *rel);
-extern atom *exp_flatten(mvc *sql, bool value_based_opt, sql_exp *e);
-
extern int find_member_pos(list *l, sql_table *t);
extern sql_column *name_find_column(sql_rel *rel, const char *rname, const
char *name, int pnr, sql_rel **bt);
diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -11,15 +11,10 @@
#include "monetdb_config.h"
#include "sql_decimal.h"
#include "rel_unnest.h"
-#include "rel_optimizer.h"
-#include "rel_prop.h"
-#include "rel_rel.h"
#include "rel_basetable.h"
#include "rel_exp.h"
#include "rel_select.h"
#include "rel_rewriter.h"
-#include "sql_query.h"
-#include "mal_errors.h" /* for SQLSTATE() */
/* some unnesting steps use the 'used' flag to avoid further rewrites. List
them here, so only one reset flag iteration will be used */
#define rewrite_fix_count_used (1 << 0)
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]