Changeset: 81e1ddf890dd for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=81e1ddf890dd
Modified Files:
sql/src/server/sql_mvc.mx
sql/src/storage/bat/bat_logger.mx
sql/src/storage/sql_storage.h
sql/src/storage/store.mx
Branch: Jun2010
Log Message:
make sure we rewrite the view queries for old db's (Feb2010)
diffs (120 lines):
diff -r dddadfc3d040 -r 81e1ddf890dd sql/src/server/sql_mvc.mx
--- a/sql/src/server/sql_mvc.mx Sat Jun 05 13:15:25 2010 +0200
+++ b/sql/src/server/sql_mvc.mx Sat Jun 05 13:34:41 2010 +0200
@@ -287,7 +287,7 @@
fprintf(stderr, "!mvc_init: unable to create system tables\n");
return -1;
}
- if (first) {
+ if (first || catalog_version) {
sql_schema *s;
sql_table *t;
mvc *m = mvc_create(0, stk, 0, NULL, NULL);
@@ -300,6 +300,13 @@
s = m->session->schema = mvc_bind_schema(m, "sys");
assert(m->session->schema != NULL);
+ if (catalog_version) {
+ t = mvc_bind_table(m, s, "tables");
+ mvc_drop_table(m, s, t, 0);
+ t = mvc_bind_table(m, s, "columns");
+ mvc_drop_table(m, s, t, 0);
+ }
+
t = mvc_create_view(m, s, "tables", SQL_PERSIST, "SELECT * FROM
(SELECT p.*, 0 AS \"temporary\" FROM \"sys\".\"_tables\" AS p UNION ALL SELECT
t.*, 1 AS \"temporary\" FROM \"tmp\".\"_tables\" AS t) AS tables where
tables.type < 2;", 1);
mvc_create_column_(m, t, "id", "int", 32);
mvc_create_column_(m, t, "name", "varchar", 1024);
@@ -323,8 +330,10 @@
mvc_create_column_(m, t, "number", "int", 32);
mvc_create_column_(m, t, "storage_type", "int", 32);
- sql_create_env(m, s);
- sql_create_privileges(m, s);
+ if (!catalog_version) {
+ sql_create_env(m, s);
+ sql_create_privileges(m, s);
+ }
s = m->session->schema = mvc_bind_schema(m, "tmp");
assert(m->session->schema != NULL);
diff -r dddadfc3d040 -r 81e1ddf890dd sql/src/storage/bat/bat_logger.mx
--- a/sql/src/storage/bat/bat_logger.mx Sat Jun 05 13:15:25 2010 +0200
+++ b/sql/src/storage/bat/bat_logger.mx Sat Jun 05 13:34:41 2010 +0200
@@ -35,8 +35,6 @@
logger *bat_logger = NULL;
-static int catalog_version = 0;
-
static int
bl_preversion( int oldversion, int newversion)
{
@@ -66,7 +64,6 @@
memset(Tloc(b,BUNfirst(b)), 0, sizeof(bit)*BATcount(o));
BATsetcount(b, BATcount(o));
logger_add_bat(lg, b, "sys__tables_readonly");
- //log_bat_persists(lg, b, "sys__tables_readonly");
bat_destroy(o);
bat_destroy(b);
@@ -77,7 +74,6 @@
memset(Tloc(b,BUNfirst(b)), 0, sizeof(int)*BATcount(o));
BATsetcount(b, BATcount(o));
logger_add_bat(lg, b, "sys__columns_storage");
- //log_bat_persists(lg, b, "sys__columns_storage");
bat_destroy(o);
bat_destroy(b);
@@ -88,7 +84,6 @@
memset(Tloc(b,BUNfirst(b)), 0, sizeof(bit)*BATcount(o));
BATsetcount(b, BATcount(o));
logger_add_bat(lg, b, "tmp__tables_readonly");
- //log_bat_persists(lg, b, "tmp__tables_readonly");
bat_destroy(o);
bat_destroy(b);
@@ -99,7 +94,6 @@
memset(Tloc(b,BUNfirst(b)), 0, sizeof(int)*BATcount(o));
BATsetcount(b, BATcount(o));
logger_add_bat(lg, b, "tmp__columns_storage");
- //log_bat_persists(lg, b, "tmp__columns_storage");
bat_destroy(o);
bat_destroy(b);
@@ -108,11 +102,11 @@
}
static int
-bl_create(char *logdir, char *dbname, int catalog_version)
+bl_create(char *logdir, char *dbname, int cat_version)
{
if (bat_logger)
return LOG_ERR;
- bat_logger = logger_create(0, "sql", logdir, dbname, catalog_version,
NULL, bl_preversion, bl_postversion);
+ bat_logger = logger_create(0, "sql", logdir, dbname, cat_version, NULL,
bl_preversion, bl_postversion);
if (bat_logger)
return LOG_OK;
return LOG_ERR;
diff -r dddadfc3d040 -r 81e1ddf890dd sql/src/storage/sql_storage.h
--- a/sql/src/storage/sql_storage.h Sat Jun 05 13:15:25 2010 +0200
+++ b/sql/src/storage/sql_storage.h Sat Jun 05 13:34:41 2010 +0200
@@ -34,6 +34,8 @@
strcmp((x)->base.name, dt_schema) == 0)
#define isDeclaredTable(x) ((x)->persistence==SQL_DECLARED_TABLE)
+extern int catalog_version;
+
typedef enum store_type {
store_bat, /* delta bats, ie multi user read/write */
store_su, /* single user, read/write */
diff -r dddadfc3d040 -r 81e1ddf890dd sql/src/storage/store.mx
--- a/sql/src/storage/store.mx Sat Jun 05 13:15:25 2010 +0200
+++ b/sql/src/storage/store.mx Sat Jun 05 13:34:41 2010 +0200
@@ -38,6 +38,7 @@
/* version 05.10.00 of catalog */
#define CATALOG_VERSION 51000
+int catalog_version = 0;
static MT_Lock bs_lock;
static int store_oid = 0;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list