Changeset: 76cfe30b4d45 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/76cfe30b4d45
Modified Files:
        clients/Tests/exports.stable.out
        sql/include/sql_relation.h
        sql/server/rel_dump.c
        sql/server/rel_exp.c
        sql/server/rel_exp.h
        sql/server/rel_prop.c
        sql/server/rel_prop.h
        sql/server/rel_statistics.h
Branch: default
Log Message:

moved prop(erty) types into sql_relation.h


diffs (201 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1593,7 +1593,7 @@ str number2name(str s, int len, int i);
 sql_part *partition_find_part(sql_trans *tr, sql_table *pt, sql_part *pp);
 int pl_register(const char *name, pl_add_types_fptr add_types, pl_load_fptr 
pl_load);
 void pl_unregister(const char *name);
-prop *prop_create(allocator *sa, rel_prop kind, prop *pre);
+prop *prop_create(allocator *sa, prop_kind kind, prop *pre);
 InstrPtr pushPtr(MalBlkPtr mb, InstrPtr q, ptr val);
 void qc_delete(qc *cache, cq *q);
 cq *qc_find(qc *cache, int id);
diff --git a/sql/include/sql_relation.h b/sql/include/sql_relation.h
--- a/sql/include/sql_relation.h
+++ b/sql/include/sql_relation.h
@@ -13,6 +13,39 @@
 
 #include "sql_catalog.h"
 
+typedef enum prop_kind {
+       PROP_COUNT,     /* Number of expect rows for the relation */
+       PROP_NUNIQUES,  /* Estimated number of distinct rows for the expression 
*/
+       PROP_MIN,       /* min value if available */
+       PROP_MAX,       /* max value if available */
+       PROP_JOINIDX,   /* could use join idx */
+       PROP_HASHIDX,   /* is hash idx */
+       PROP_HASHCOL,   /* could use hash idx */
+       PROP_UKEY,              /* p = list of exps */
+       PROP_REMOTE,    /* uri for remote execution */
+       PROP_USED,      /* number of times exp is used */
+       PROP_GROUPINGS,  /* used by ROLLUP/CUBE/GROUPING SETS, value contains 
the list of sets */
+       PROP_UNNESTING  /* used by unnesting rewriter */
+} prop_kind;
+
+typedef struct prop {
+       prop_kind kind;  /* kind of property */
+       sqlid id;               /* optional id of object involved */
+       union {
+               BUN lval; /* property with simple counts */
+               dbl dval; /* property with estimate */
+               void *pval; /* property value */
+       } value;
+       struct prop *p; /* some relations may have many properties, which are 
kept in a chain list */
+} prop;
+
+/* for REMOTE prop we need to keep a list with tids and uris for the remote 
tables */
+typedef struct tid_uri {
+       sqlid id;
+       const char* uri;
+} tid_uri;
+
+
 typedef enum expression_type {
        e_atom,
        e_column,
@@ -70,7 +103,7 @@ typedef struct expression {
         used:1,        /* used for quick dead code removal */
         symmetric:1; /* compare between symmetric */
        sql_subtype     tpe;
-       void *p;        /* properties for the optimizer */
+       prop *p;        /* properties for the optimizer */
        str comment;
 } sql_exp;
 
@@ -324,7 +357,7 @@ typedef struct relation {
        uint16_t used;
        uint16_t nr_outers;
        int opt;
-       void *p;        /* properties for the optimizer, distribution */
+       prop *p;        /* properties for the optimizer, distribution */
 } sql_rel;
 
 #endif /* SQL_RELATION_H */
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
@@ -1079,7 +1079,7 @@ read_exps(mvc *sql, sql_rel *lrel, sql_r
 }
 
 static sql_exp*
-exp_read_min_or_max(mvc *sql, sql_exp *exp, char *r, int *pos, const char 
*prop_str, rel_prop kind)
+exp_read_min_or_max(mvc *sql, sql_exp *exp, char *r, int *pos, const char 
*prop_str, prop_kind kind)
 {
        atom *a;
        sql_subtype *tpe = exp_subtype(exp);
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -1787,7 +1787,7 @@ exp_is_eqjoin(sql_exp *e, void *dummy)
 }
 
 sql_exp *
-exps_find_prop(list *exps, rel_prop kind)
+exps_find_prop(list *exps, prop_kind kind)
 {
        if (list_empty(exps))
                return NULL;
diff --git a/sql/server/rel_exp.h b/sql/server/rel_exp.h
--- a/sql/server/rel_exp.h
+++ b/sql/server/rel_exp.h
@@ -191,7 +191,7 @@ extern bool exp_is_fallible(sql_exp *e);
 extern bool exps_have_fallible(list *l);
 extern bool exps_have_selfref(list *l);
 
-extern sql_exp *exps_find_prop(list *exps, rel_prop kind);
+extern sql_exp *exps_find_prop(list *exps, prop_kind kind);
 
 /* returns 0 when the relation contain the passed expression (or sub 
expressions if subexp is set) else < 0 */
 extern int rel_has_exp(sql_rel *rel, sql_exp *e, bool subexp);
diff --git a/sql/server/rel_prop.c b/sql/server/rel_prop.c
--- a/sql/server/rel_prop.c
+++ b/sql/server/rel_prop.c
@@ -15,7 +15,7 @@
 #include "sql_string.h"
 
 prop *
-prop_create( allocator *sa, rel_prop kind, prop *pre )
+prop_create( allocator *sa, prop_kind kind, prop *pre )
 {
        prop *p = SA_NEW(sa, prop);
 
@@ -70,7 +70,7 @@ prop_remove(allocator *sa, prop *plist, 
 }
 
 prop *
-find_prop(prop *p, rel_prop kind)
+find_prop(prop *p, prop_kind kind)
 {
        while(p) {
                if (p->kind == kind)
@@ -81,7 +81,7 @@ find_prop(prop *p, rel_prop kind)
 }
 
 void *
-find_prop_and_get(prop *p, rel_prop kind)
+find_prop_and_get(prop *p, prop_kind kind)
 {
        prop *found = find_prop(p, kind);
 
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
@@ -11,43 +11,11 @@
 #ifndef _REL_PROP_H_
 #define _REL_PROP_H_
 
-typedef enum rel_prop {
-       PROP_COUNT,     /* Number of expect rows for the relation */
-       PROP_NUNIQUES,  /* Estimated number of distinct rows for the expression 
*/
-       PROP_MIN,       /* min value if available */
-       PROP_MAX,       /* max value if available */
-       PROP_JOINIDX,   /* could use join idx */
-       PROP_HASHIDX,   /* is hash idx */
-       PROP_HASHCOL,   /* could use hash idx */
-       PROP_UKEY,              /* p = list of exps */
-       PROP_REMOTE,    /* uri for remote execution */
-       PROP_USED,      /* number of times exp is used */
-       PROP_GROUPINGS,  /* used by ROLLUP/CUBE/GROUPING SETS, value contains 
the list of sets */
-       PROP_UNNESTING  /* used by unnesting rewriter */
-} rel_prop;
-
-typedef struct prop {
-       rel_prop kind;  /* kind of property */
-       sqlid id;               /* optional id of object involved */
-       union {
-               BUN lval; /* property with simple counts */
-               dbl dval; /* property with estimate */
-               void *pval; /* property value */
-       } value;
-       struct prop *p; /* some relations may have many properties, which are 
kept in a chain list */
-} prop;
-
-/* for REMOTE prop we need to keep a list with tids and uris for the remote 
tables */
-typedef struct tid_uri {
-       sqlid id;
-       const char* uri;
-} tid_uri;
-
-sql_export prop * prop_create( allocator *sa, rel_prop kind, prop *pre );
+sql_export prop * prop_create( allocator *sa, prop_kind kind, prop *pre );
 extern prop * prop_copy( allocator *sa, prop *p);
 extern prop * prop_remove(allocator *sa, prop *plist, prop *p);
-extern prop * find_prop( prop *p, rel_prop kind);
-extern void * find_prop_and_get(prop *p, rel_prop kind);
+extern prop * find_prop( prop *p, prop_kind kind);
+extern void * find_prop_and_get(prop *p, prop_kind kind);
 extern const char * propkind2string( prop *p);
 extern char * propvalue2string(allocator *sa, prop *p);
 extern void free_props(allocator *sa, prop *p);
diff --git a/sql/server/rel_statistics.h b/sql/server/rel_statistics.h
--- a/sql/server/rel_statistics.h
+++ b/sql/server/rel_statistics.h
@@ -68,7 +68,7 @@ statistics_atom_min(mvc *sql, atom *v1, 
 }
 
 static inline void
-set_minmax_property(mvc *sql, sql_exp *e, rel_prop kind, atom *val)
+set_minmax_property(mvc *sql, sql_exp *e, prop_kind kind, atom *val)
 {
        if (val == NULL)
                return;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to