Changeset: ad811e3ef997 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ad811e3ef997
Modified Files:
        sql/backends/monet5/sql_arrays.c
        sql/backends/monet5/sql_cast_impl_up_to_int.h
Branch: arrays
Log Message:

fixed some bugs cause while adapting to new structires


diffs (171 lines):

diff --git a/sql/backends/monet5/sql_arrays.c b/sql/backends/monet5/sql_arrays.c
--- a/sql/backends/monet5/sql_arrays.c
+++ b/sql/backends/monet5/sql_arrays.c
@@ -2,90 +2,70 @@
 #include "sql_arrays.h"
 #include "sql.h"
 
-#define generaliseDimension_analytic(dim) \
-({ \
-    gdk_analytic_dimension *resDim = 
GDKmalloc(sizeof(gdk_analytic_dimension)); \
-    atom_cast(dim->min, &dim->type); \
-    atom_cast(dim->step, &dim->type); \
-    atom_cast(dim->max, &dim->type); \
-    switch(dim->type.type->localtype) { \
-        case TYPE_bte: \
-                       resDim = createAnalyticDimension_bte(dim->dimnr, 
dim->min->data.val.btval, dim->max->data.val.btval, dim->step->data.val.btval);\
-            break; \
-        case TYPE_sht: \
-                       resDim = createAnalyticDimension_sht(dim->dimnr, 
dim->min->data.val.shval, dim->max->data.val.shval, dim->step->data.val.shval); 
\
-            break; \
-        case TYPE_int: \
-                       resDim = createAnalyticDimension_int(dim->dimnr, 
dim->min->data.val.ival, dim->max->data.val.ival, dim->step->data.val.ival); \
-            break; \
-        case TYPE_wrd: \
-                       resDim = createAnalyticDimension_wrd(dim->dimnr, 
dim->min->data.val.wval, dim->max->data.val.wval, dim->step->data.val.wval); \
-            break; \
-        case TYPE_oid: \
-                       resDim = createAnalyticDimension_oid(dim->dimnr, 
dim->min->data.val.oval, dim->max->data.val.oval, dim->step->data.val.oval); \
-            break; \
-        case TYPE_lng: \
-                       resDim = createAnalyticDimension_lng(dim->dimnr, 
dim->min->data.val.lval, dim->max->data.val.lval, dim->step->data.val.lval); \
-            break; \
-        case TYPE_dbl: \
-                       resDim = createAnalyticDimension_dbl(dim->dimnr, 
dim->min->data.val.dval, dim->max->data.val.dval, dim->step->data.val.dval); \
-            break; \
-        case TYPE_flt: \
-                       resDim = createAnalyticDimension_flt(dim->dimnr, 
dim->min->data.val.fval, dim->max->data.val.fval, dim->step->data.val.fval); \
-               break; \
-               default: \
-                       fprintf(stderr, "generaliseDimension: type not 
found\n"); \
-                       resDim = NULL; \
-    } \
-    resDim; \
-})
+static gdk_analytic_dimension* generaliseDimension_analytic(sql_dimension 
*dim) {
+    atom_cast(dim->min, &dim->type);
+    atom_cast(dim->step, &dim->type);
+    atom_cast(dim->max, &dim->type);
+    switch(dim->type.type->localtype) {
+        case TYPE_bte:
+                       return createAnalyticDimension_bte(dim->dimnr, 
dim->min->data.val.btval, dim->max->data.val.btval, dim->step->data.val.btval);
+        case TYPE_sht:
+                       return createAnalyticDimension_sht(dim->dimnr, 
dim->min->data.val.shval, dim->max->data.val.shval, dim->step->data.val.shval);
+        case TYPE_int:
+                       return createAnalyticDimension_int(dim->dimnr, 
dim->min->data.val.ival, dim->max->data.val.ival, dim->step->data.val.ival);
+        case TYPE_wrd:
+                       return createAnalyticDimension_wrd(dim->dimnr, 
dim->min->data.val.wval, dim->max->data.val.wval, dim->step->data.val.wval);
+        case TYPE_oid:
+                       return createAnalyticDimension_oid(dim->dimnr, 
dim->min->data.val.oval, dim->max->data.val.oval, dim->step->data.val.oval);
+        case TYPE_lng:
+                       return createAnalyticDimension_lng(dim->dimnr, 
dim->min->data.val.lval, dim->max->data.val.lval, dim->step->data.val.lval);
+        case TYPE_dbl:
+                       return createAnalyticDimension_dbl(dim->dimnr, 
dim->min->data.val.dval, dim->max->data.val.dval, dim->step->data.val.dval);
+        case TYPE_flt:
+                       return createAnalyticDimension_flt(dim->dimnr, 
dim->min->data.val.fval, dim->max->data.val.fval, dim->step->data.val.fval);
+               default:
+                       fprintf(stderr, "generaliseDimension_analytic: type not 
found\n");
+                       return NULL; \
+    } 
+    return NULL;
+}
 
-#define generaliseDimension(dim) \
-({ \
-    gdk_dimension *resDim = GDKmalloc(sizeof(gdk_dimension)); \
-    atom_cast(dim->min, &dim->type); \
-    atom_cast(dim->step, &dim->type); \
-    atom_cast(dim->max, &dim->type); \
-    switch(dim->type.type->localtype) { \
-        case TYPE_bte: \
-                       resDim = createDimension_bte(dim->dimnr, 0, 
dim->min->data.val.btval, dim->max->data.val.btval, dim->step->data.val.btval);\
-            break; \
-        case TYPE_sht: \
-                       resDim = createDimension_sht(dim->dimnr, 0, 
dim->min->data.val.shval, dim->max->data.val.shval, dim->step->data.val.shval); 
\
-            break; \
-        case TYPE_int: \
-                       resDim = createDimension_int(dim->dimnr, 0, 
dim->min->data.val.ival, dim->max->data.val.ival, dim->step->data.val.ival); \
-            break; \
-        case TYPE_wrd: \
-                       resDim = createDimension_wrd(dim->dimnr, 0, 
dim->min->data.val.wval, dim->max->data.val.wval, dim->step->data.val.wval); \
-            break; \
-        case TYPE_oid: \
-                       resDim = createDimension_oid(dim->dimnr, 0, 
dim->min->data.val.oval, dim->max->data.val.oval, dim->step->data.val.oval); \
-            break; \
-        case TYPE_lng: \
-                       resDim = createDimension_lng(dim->dimnr, 0, 
dim->min->data.val.lval, dim->max->data.val.lval, dim->step->data.val.lval); \
-            break; \
-        case TYPE_dbl: \
-                       resDim = createDimension_dbl(dim->dimnr, 0, 
dim->min->data.val.dval, dim->max->data.val.dval, dim->step->data.val.dval); \
-            break; \
-        case TYPE_flt: \
-                       resDim = createDimension_flt(dim->dimnr, 0, 
dim->min->data.val.fval, dim->max->data.val.fval, dim->step->data.val.fval); \
-               break; \
-               default: \
-                       fprintf(stderr, "generaliseDimension: type not 
found\n"); \
-                       resDim = NULL; \
-    } \
-    resDim; \
-})
+static gdk_dimension* generaliseDimension(sql_dimension *dim)  {
+    atom_cast(dim->min, &dim->type);
+    atom_cast(dim->step, &dim->type);
+    atom_cast(dim->max, &dim->type);
+    switch(dim->type.type->localtype) {
+        case TYPE_bte:
+                       return createDimension_bte(dim->min->data.val.btval, 
dim->max->data.val.btval, dim->step->data.val.btval);
+        case TYPE_sht:
+                       return createDimension_sht(dim->min->data.val.shval, 
dim->max->data.val.shval, dim->step->data.val.shval); 
+        case TYPE_int:
+                       return createDimension_int(dim->min->data.val.ival, 
dim->max->data.val.ival, dim->step->data.val.ival);
+        case TYPE_wrd:
+                       return createDimension_wrd(dim->min->data.val.wval, 
dim->max->data.val.wval, dim->step->data.val.wval);
+        case TYPE_oid:
+                       return createDimension_oid(dim->min->data.val.oval, 
dim->max->data.val.oval, dim->step->data.val.oval);
+        case TYPE_lng:
+                       return createDimension_lng(dim->min->data.val.lval, 
dim->max->data.val.lval, dim->step->data.val.lval);
+        case TYPE_dbl:
+                       return createDimension_dbl(dim->min->data.val.dval, 
dim->max->data.val.dval, dim->step->data.val.dval);
+        case TYPE_flt:
+                       return createDimension_flt(dim->min->data.val.fval, 
dim->max->data.val.fval, dim->step->data.val.fval);
+               default:
+                       fprintf(stderr, "generaliseDimension: type not 
found\n");
+                       return NULL;
+    }
+       return NULL;
+}
 
-static ptr get_array(sql_table *t) {
+static gdk_array* get_array(sql_table *t) {
        gdk_array *array = arrayNew(t->dimensions.set->cnt);
        node *n;
-       int i;
+       unsigned short i;
 
        for(i=0, n=t->dimensions.set->h; n; n=n->next, i++) {
                sql_dimension *dim_sql = (sql_dimension*)n->data;
-               array->dimSizes[i] = generaliseDimension(dim_sql);
+               array->dims[i] = generaliseDimension(dim_sql);
        }
        
        return array;
@@ -119,7 +99,7 @@ str mvc_bind_array_dimension(Client cntx
                throw(SQL, "sql.bind_array_dimension", "unable to find 
%s.%s(%s)", *sname, *tname, *dname);
 
 
-       *dim_res = generaliseDimension_analytic(dim)    
+       *dim_res = generaliseDimension_analytic(dim);   
        *dims_res = get_array(t);
 
        return MAL_SUCCEED;
diff --git a/sql/backends/monet5/sql_cast_impl_up_to_int.h 
b/sql/backends/monet5/sql_cast_impl_up_to_int.h
--- a/sql/backends/monet5/sql_cast_impl_up_to_int.h
+++ b/sql/backends/monet5/sql_cast_impl_up_to_int.h
@@ -206,7 +206,6 @@ FUN(bat,TP1,_num2dec_,TP2) (int *res, co
                        break;
                BUNins(dst, BUNhead(bi, p), &r, FALSE);
        }
-       BATsetArray(dst, b->batArray);
        BBPkeepref(*res = dst->batCacheid);
        BBPunfix(b->batCacheid);
        return msg;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to