Changeset: 35c59df2d26b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=35c59df2d26b
Modified Files:
        sql/include/sql_catalog.h
        sql/storage/bat/bat_storage.c
        sql/storage/store.c
Branch: default
Log Message:

Use strcmp instead of flag checking to test a schema/table/column got renamed 
at the end of the transaction. The flag TR_RENAMED is now obsolete


diffs (124 lines):

diff --git a/sql/include/sql_catalog.h b/sql/include/sql_catalog.h
--- a/sql/include/sql_catalog.h
+++ b/sql/include/sql_catalog.h
@@ -85,9 +85,8 @@ typedef enum sql_dependency {
 #define SCALE_EQ       7       /* user defined functions need equal scales */
 #define SCALE_DIGITS_FIX 8     /* the geom module requires the types and 
functions to have the same scale and digits */
 
-/* Warning TR flags are a bitmask */
+/* Warning TR flags is a bitmask */
 #define TR_NEW 1
-#define TR_RENAMED 2
 
 #define RDONLY 0
 #define RD_INS 1
@@ -210,10 +209,6 @@ typedef struct sql_base {
 #define removeNewFlag(x)  ((x)->base.flags &= ~TR_NEW)
 #define isNew(x)          (newFlagSet((x)->base.flags))
 
-#define setRenamedFlag(x)    ((x)->base.flags |= TR_RENAMED)
-#define removeRenamedFlag(x) ((x)->base.flags &= ~TR_RENAMED)
-#define isRenamed(x)         (((x)->base.flags & TR_RENAMED) == TR_RENAMED)
-
 extern void base_init(sql_allocator *sa, sql_base * b, sqlid id, int flags, 
const char *name);
 
 typedef struct changeset {
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -2799,12 +2799,11 @@ update_table(sql_trans *tr, sql_table *f
                if (!cc->def)
                        oc->def = NULL;
 
-               if (isRenamed(cc)) { /* apply possible renaming */
+               if (strcmp(cc->base.name, oc->base.name) != 0) { /* apply 
possible renaming */
                        list_hash_delete(oc->t->columns.set, oc, NULL);
                        oc->base.name = sa_strdup(tr->parent->sa, 
cc->base.name);
                        if (!list_hash_add(oc->t->columns.set, oc, NULL))
                                ok = LOG_ERR;
-                       setRenamedFlag(oc); /* propagate the change to the 
upper transaction */
                }
 
                if (oc->base.rtime < cc->base.rtime)
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -4163,12 +4163,11 @@ rollforward_update_table(sql_trans *tr, 
                } else
                        tt->p = NULL;
 
-               if (isRenamed(ft)) { /* apply possible renaming */
+               if (strcmp(tt->base.name, ft->base.name) != 0) { /* apply 
possible renaming */
                        list_hash_delete(tt->s->tables.set, tt, NULL);
                        tt->base.name = sa_strdup(tr->parent->sa, 
ft->base.name);
                        if (!list_hash_add(tt->s->tables.set, tt, NULL))
                                ok = LOG_ERR;
-                       setRenamedFlag(tt); /* propagate the change to the 
upper transaction */
                }
        }
 
@@ -4281,12 +4280,11 @@ rollforward_update_schema(sql_trans *tr,
        if (ok == LOG_OK) /* last as it may require complex (table) types */
                ok = rollforward_changeset_updates(tr, &fs->seqs, &ts->seqs, 
&ts->base, (rfufunc) &rollforward_update_seq, (rfcfunc) 
&rollforward_create_seq, (rfdfunc) &rollforward_drop_seq, (dupfunc) &seq_dup, 
mode);
 
-       if (apply && ok == LOG_OK && isRenamed(fs)) { /* apply possible 
renaming */
+       if (apply && ok == LOG_OK && strcmp(ts->base.name, fs->base.name) != 0) 
{ /* apply possible renaming */
                list_hash_delete(tr->schemas.set, ts, NULL);
                ts->base.name = sa_strdup(tr->parent->sa, fs->base.name);
                if (!list_hash_add(tr->schemas.set, ts, NULL))
                        ok = LOG_ERR;
-               setRenamedFlag(ts); /* propagate the change to the upper 
transaction */
        }
 
        return ok;
@@ -4479,7 +4477,7 @@ reset_column(sql_trans *tr, sql_column *
                        store_funcs.destroy_col(NULL, fc);
 
                /* apply possible renaming -> transaction rollbacks or when it 
starts, inherit from the previous transaction */
-               if ((tr->status == 1 && isRenamed(fc)) || isRenamed(pfc)) {
+               if (strcmp(fc->base.name, pfc->base.name) != 0) {
                        list_hash_delete(fc->t->columns.set, fc, NULL);
                        fc->base.name = sa_strdup(tr->parent->sa, 
pfc->base.name);
                        if (!list_hash_add(fc->t->columns.set, fc, NULL))
@@ -4564,7 +4562,7 @@ reset_table(sql_trans *tr, sql_table *ft
                        ft->p = NULL;
 
                /* apply possible renaming -> transaction rollbacks or when it 
starts, inherit from the previous transaction */
-               if ((tr->status == 1 && isRenamed(ft)) || isRenamed(pft)) {
+               if (strcmp(ft->base.name, pft->base.name) != 0) {
                        list_hash_delete(ft->s->tables.set, ft, NULL);
                        ft->base.name = sa_strdup(tr->parent->sa, 
pft->base.name);
                        if (!list_hash_add(ft->s->tables.set, ft, NULL))
@@ -4628,7 +4626,7 @@ reset_schema(sql_trans *tr, sql_schema *
        if (fs->base.rtime || fs->base.wtime || tr->stime < pfs->base.wtime) {
 
                /* apply possible renaming -> transaction rollbacks or when it 
starts, inherit from the previous transaction */
-               if ((tr->status == 1 && isRenamed(fs)) || isRenamed(pfs)) {
+               if (strcmp(fs->base.name, pfs->base.name) != 0) {
                        list_hash_delete(tr->schemas.set, fs, NULL);
                        fs->base.name = sa_strdup(tr->parent->sa, 
pfs->base.name);
                        if (!list_hash_add(tr->schemas.set, fs, NULL))
@@ -5566,7 +5564,6 @@ sql_trans_rename_schema(sql_trans *tr, s
        assert(!is_oid_nil(rid));
        table_funcs.column_update_value(tr, find_sql_column(sysschema, "name"), 
rid, (void*) new_name);
 
-       setRenamedFlag(s);
        s->base.wtime = tr->wtime = tr->wstime;
        tr->schema_updates ++;
        return s;
@@ -5868,7 +5865,6 @@ sql_trans_rename_table(sql_trans *tr, sq
        assert(!is_oid_nil(rid));
        table_funcs.column_update_value(tr, find_sql_column(systable, "name"), 
rid, (void*) new_name);
 
-       setRenamedFlag(t);
        t->base.wtime = s->base.wtime = tr->wtime = tr->wstime;
        tr->schema_updates ++;
        return t;
@@ -6285,7 +6281,6 @@ sql_trans_rename_column(sql_trans *tr, s
        assert(!is_oid_nil(rid));
        table_funcs.column_update_value(tr, find_sql_column(syscolumn, "name"), 
rid, (void*) new_name);
 
-       setRenamedFlag(c);
        c->base.wtime = t->base.wtime = t->s->base.wtime = tr->wtime = 
tr->wstime;
        tr->schema_updates ++;
        return c;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to