Changeset: 647d588e7f4a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=647d588e7f4a
Modified Files:
        sql/server/rel_select.c
        sql/storage/bat/bat_logger.c
        sql/storage/store.c
Branch: default
Log Message:

added upgrade for new functions_type column


diffs (97 lines):

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
@@ -2161,13 +2161,18 @@ rel_compare_exp_(mvc *sql, sql_rel *rel,
                if (ls->card == rs->card && !rs2)  /* bin compare op */
                        return rel_select(sql->sa, rel, e);
 
+               if (/*is_semi(rel->op) ||*/ is_outerjoin(rel->op)) {
+                       rel_join_add_exp(sql->sa, rel, e);
+                       return rel;
+               }
                /* push select into the given relation */
                return rel_push_select(sql->sa, rel, L, e);
        } else { /* join */
-               if (is_semi(rel->op)) {
+               if (is_semi(rel->op) || is_outerjoin(rel->op)) {
                        rel_join_add_exp(sql->sa, rel, e);
                        return rel;
                }
+               /* push join into the given relation */
                return rel_push_join(sql->sa, rel, L, R, e);
        }
 }
diff --git a/sql/storage/bat/bat_logger.c b/sql/storage/bat/bat_logger.c
--- a/sql/storage/bat/bat_logger.c
+++ b/sql/storage/bat/bat_logger.c
@@ -29,6 +29,7 @@ bl_preversion( int oldversion, int newve
 #define CATALOG_FEB2010 50000
 #define CATALOG_OCT2010 51000
 #define CATALOG_APR2011 51100
+#define CATALOG_AUG2011 51101
 
        (void)newversion;
        if (oldversion == CATALOG_OCT2010) {
@@ -39,6 +40,10 @@ bl_preversion( int oldversion, int newve
                catalog_version = oldversion;
                return 0;
        }
+       if (oldversion == CATALOG_AUG2011) {
+               catalog_version = oldversion;
+               return 0;
+       }
        return -1;
 }
 
@@ -198,6 +203,37 @@ bl_postversion( void *lg)
                bat_destroy(tname);
                bat_destroy(sname);
        }
+
+       if (catalog_version == CATALOG_AUG2011) {
+               char *s = "sys", n[64];
+               BUN i;
+               BAT *b, *b1;
+
+               while (s) {
+                       b = temp_descriptor(logger_find_bat(lg, N(n, NULL, s, 
"functions_aggr")));
+                       if (!b)
+                               return;
+                       b1 = BATnew(TYPE_void, TYPE_int, BATcount(b));
+                       if (!b1)
+                               return;
+                       BATseqbase(b1, b->hseqbase);
+                       for (i=0;i<BATcount(b); i++) {
+                               bit aggr = *(bit*)Tloc(b, i);
+                               int func = aggr?F_AGGR:F_FUNC;
+                               BUNappend(b1, &func, TRUE);
+                       }
+                       b1 = BATsetaccess(b1, BAT_READ);
+                       logger_del_bat(lg, b->batCacheid);
+                       logger_add_bat(lg, b1, N(n, NULL, s, "functions_type"));
+                       bat_destroy(b);
+                       bat_destroy(b1);
+
+                       if (strcmp(s, "sys") == 0)
+                               s = "tmp";
+                       else
+                               s = NULL;
+               }
+       }
 }
 
 static int 
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -33,8 +33,8 @@
 #include <restrict/restrict_table.h>
 #include <restrict/restrict_logger.h>
 
-/* version 05.11.01 of catalog */
-#define CATALOG_VERSION 51101
+/* version 05.20.00 of catalog */
+#define CATALOG_VERSION 52000
 int catalog_version = 0;
 
 static MT_Lock bs_lock;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to