Changeset: 0a09947500c8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0a09947500c8
Modified Files:
        sql/server/sql_mvc.c
        sql/server/sql_partition.c
        sql/storage/store.c
Branch: merge-partitions
Log Message:

Missing initializations


diffs (71 lines):

diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -292,7 +292,7 @@ mvc_init(int debug, store_type store, in
                if(ss->tables.set) {
                        for (node *nn = ss->tables.set->h; nn; nn = nn->next) {
                                sql_table *tt = (sql_table*) nn->data;
-                               if(isPartitionedByExpressionTable(tt)) {
+                               if(isRangePartitionTable(tt) || 
isPartitionedByExpressionTable(tt)) {
                                        char *err;
                                        if((err = initialize_sql_parts(m, tt)) 
!= NULL) {
                                                fprintf(stderr, "!mvc_init: 
unable to start partitioned table: %s.%s: %s\n",
diff --git a/sql/server/sql_partition.c b/sql/server/sql_partition.c
--- a/sql/server/sql_partition.c
+++ b/sql/server/sql_partition.c
@@ -237,7 +237,7 @@ initialize_sql_parts(mvc* sql, sql_table
        sql_subtype found;
        int localtype;
 
-       if((res = bootstrap_partition_expression(sql, mt, 0)) != NULL)
+       if(isPartitionedByExpressionTable(mt) && (res = 
bootstrap_partition_expression(sql, mt, 0)) != NULL)
                return res;
        find_partition_type(&found, mt);
        localtype = found.type->localtype;
@@ -340,6 +340,7 @@ initialize_sql_parts(mvc* sql, sql_table
                                                                          
SQLSTATE(42000) "Internal error while bootstrapping partitioned tables");
                                goto finish;
                        }
+                       pt->s->base.wtime = pt->base.wtime = 
sql->session->tr->wtime = sql->session->tr->wstime;
                        sql_trans_create_dependency(sql->session->tr, 
pt->base.id, mt->base.id, TABLE_DEPENDENCY);
                }
                mt->s->base.wtime = mt->base.wtime = sql->session->tr->wtime = 
sql->session->tr->wstime;
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -4668,7 +4668,7 @@ sql_trans_add_table(sql_trans *tr, sql_t
        p->t = pt;
        base_init(tr->sa, &p->base, pt->base.id, TR_NEW, pt->base.name);
        cs_add(&mt->members, p, TR_NEW);
-       mt->s->base.wtime = mt->base.wtime = tr->wtime = tr->wstime;
+       mt->s->base.wtime = mt->base.wtime = pt->s->base.wtime = pt->base.wtime 
= tr->wtime = tr->wstime;
        table_funcs.table_insert(tr, sysobj, &mt->base.id, p->base.name, 
&p->base.id);
        return mt;
 }
@@ -4768,7 +4768,7 @@ sql_trans_add_range_partition(sql_trans 
        /* add merge table dependency */
        sql_trans_create_dependency(tr, pt->base.id, mt->base.id, 
TABLE_DEPENDENCY);
        table_funcs.table_insert(tr, sysobj, &mt->base.id, p->base.name, 
&p->base.id);
-       mt->s->base.wtime = mt->base.wtime = tr->wtime = tr->wstime;
+       mt->s->base.wtime = mt->base.wtime = pt->s->base.wtime = pt->base.wtime 
= tr->wtime = tr->wstime;
 
        rid = table_funcs.column_find_row(tr, find_sql_column(partitions, 
"table_id"), &mt->base.id, NULL);
        assert(!is_oid_nil(rid));
@@ -4869,7 +4869,7 @@ sql_trans_add_value_partition(sql_trans 
        /* add merge table dependency */
        sql_trans_create_dependency(tr, pt->base.id, mt->base.id, 
TABLE_DEPENDENCY);
        table_funcs.table_insert(tr, sysobj, &mt->base.id, p->base.name, 
&p->base.id);
-       mt->s->base.wtime = mt->base.wtime = tr->wtime = tr->wstime;
+       mt->s->base.wtime = mt->base.wtime = pt->s->base.wtime = pt->base.wtime 
= tr->wtime = tr->wstime;
 
        return 0;
 }
@@ -4907,7 +4907,7 @@ sql_trans_del_table(sql_trans *tr, sql_t
        cs_del(&mt->members, n, pt->base.flag);
        pt->p = NULL;
        table_funcs.table_delete(tr, sysobj, obj_oid);
-       mt->s->base.wtime = mt->base.wtime = tr->wtime = tr->wstime;
+       mt->s->base.wtime = mt->base.wtime = pt->s->base.wtime = pt->base.wtime 
= tr->wtime = tr->wstime;
 
        if (drop_action == DROP_CASCADE) 
                sql_trans_drop_table(tr, mt->s, pt->base.id, drop_action);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to