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