Changeset: 385c734bf137 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=385c734bf137
Modified Files:
        sql/include/sql_catalog.h
        sql/server/rel_prop.h
        sql/server/rel_select.c
Branch: DVframework
Log Message:

plan reordering: setting a new rel property for actual data tables.


diffs (58 lines):

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
@@ -434,7 +434,8 @@ typedef enum table_types {
        tt_merge_table = 3,     /* multiple tables form one table */
        tt_stream = 4,          /* stream */
        tt_remote = 5,          /* stored on a remote server */
-       tt_replica_table = 6    /* multiple replica of the same table */
+       tt_replica_table = 6,   /* multiple replica of the same table */
+       tt_actual_data_table = 7        /* dvf: a table that is never filled in 
*/
 } table_types;
 
 #define isTable(x)       (x->type==tt_table)
@@ -444,7 +445,8 @@ typedef enum table_types {
 #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 isActualDataTable(x) (x->type==tt_actual_data_table)
+#define isKindOfTable(x)  (isTable(x) || isMergeTable(x) || isRemote(x) || 
isReplicaTable(x) || isActualDataTable(x))
 
 typedef struct sql_table {
        sql_base base;
diff --git a/sql/server/rel_prop.h b/sql/server/rel_prop.h
--- a/sql/server/rel_prop.h
+++ b/sql/server/rel_prop.h
@@ -34,6 +34,7 @@ typedef struct prop {
 #define PROP_HASHCOL   4       /* could use hash idx */
 #define PROP_FETCH     5       /* fetchjoin */
 #define PROP_REMOTE     6      /* uri for remote execution */
+#define PROP_ACTUAL_DATA_NEEDED 7      /* should be joined last */
 #define PROP_USED      10      /* number of times exp is used */
 
 extern prop * prop_create( sql_allocator *sa, int kind, prop *pre );
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -443,6 +443,7 @@ rel_basetable(mvc *sql, sql_table *t, ch
        sql_allocator *sa = sql->sa;
        sql_rel *rel = rel_create(sa);
        char *tname = t->base.name;
+       str actual_data_str = "data";
 
        assert(atname);
        rel->l = t;
@@ -450,6 +451,12 @@ rel_basetable(mvc *sql, sql_table *t, ch
        rel->op = op_basetable;
        rel->exps = new_exp_list(sa);
 
+       if(strstr(tname, actual_data_str) != NULL) 
+       {
+               rel->p = prop_create(sa, PROP_ACTUAL_DATA_NEEDED, rel->p);
+       }
+               
+       
        for (cn = t->columns.set->h; cn; cn = cn->next) {
                sql_column *c = cn->data;
                sql_exp *e = exp_alias(sa, atname, c->base.name, tname, 
c->base.name, &c->type, CARD_MULTI, c->null, 0);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to