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

merged with Oct2014


diffs (63 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
@@ -194,7 +194,7 @@ exp_alias_or_copy( mvc *sql, char *tname
 
 /* return all expressions, with table name == tname */
 static list *
-rel_table_projections( mvc *sql, sql_rel *rel, char *tname )
+rel_table_projections( mvc *sql, sql_rel *rel, char *tname, int level )
 {
        list *exps;
 
@@ -214,15 +214,15 @@ rel_table_projections( mvc *sql, sql_rel
        case op_left:
        case op_right:
        case op_full:
-               exps = rel_table_projections( sql, rel->l, tname);
+               exps = rel_table_projections( sql, rel->l, tname, level+1);
                if (exps)
                        return exps;
-               return rel_table_projections( sql, rel->r, tname);
+               return rel_table_projections( sql, rel->r, tname, level+1);
        case op_apply:
        case op_semi:
        case op_anti:
        case op_select:
-               return rel_table_projections( sql, rel->l, tname);
+               return rel_table_projections( sql, rel->l, tname, level+1);
 
        case op_topn:
        case op_sample:
@@ -231,8 +231,8 @@ rel_table_projections( mvc *sql, sql_rel
        case op_except:
        case op_inter:
        case op_project:
-               if (!is_processed(rel))
-                       return rel_table_projections( sql, rel->l, tname);
+               if (!is_processed(rel) && level == 0)
+                       return rel_table_projections( sql, rel->l, tname, 
level+1);
                /* fall through */
        case op_table:
        case op_basetable:
@@ -4993,7 +4993,7 @@ rel_table_exp(mvc *sql, sql_rel **rel, s
                char *tname = column_e->data.lval->h->data.sval;
                list *exps;
        
-               if ((exps = rel_table_projections(sql, *rel, tname)) != NULL)
+               if ((exps = rel_table_projections(sql, *rel, tname, 0)) != NULL)
                        return exps;
                if (!tname)
                        return sql_error(sql, 02,
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -2304,7 +2304,7 @@ rollforward_changeset_updates(sql_trans 
        if (fs->dset) {
                for (n = fs->dset->h; ok == LOG_OK && n; n = n->next) {
                        sql_base *fb = n->data;
-                       node *tbn = cs_find_name(ts, fb->name);
+                       node *tbn = cs_find_id(ts, fb->id);
 
                        if (tbn) {
                                sql_base *tb = tbn->data;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to