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