Changeset: 424e39d077fd for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=424e39d077fd Modified Files: sql/include/sql_catalog.h sql/server/rel_propagate.c sql/storage/sql_catalog.c sql/storage/store.c Branch: Jun2020 Log Message:
Find children tables by id in the parent diffs (71 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 @@ -727,7 +727,7 @@ extern sql_idx *sql_trans_find_idx(sql_t extern sql_column *find_sql_column(sql_table *t, const char *cname); -extern sql_part *find_sql_part(sql_table *t, const char *tname); +extern sql_part *find_sql_part_id(sql_table *t, sqlid id); extern sql_table *find_sql_table(sql_schema *s, const char *tname); extern sql_table *find_sql_table_id(sql_schema *s, sqlid id); diff --git a/sql/server/rel_propagate.c b/sql/server/rel_propagate.c --- a/sql/server/rel_propagate.c +++ b/sql/server/rel_propagate.c @@ -275,7 +275,7 @@ propagate_validation_to_upper_tables(sql mvc *sql = query->sql; sql->caching = 0; for (sql_table *prev = mt, *it = prev->p ; it && prev ; prev = it, it = it->p) { - sql_part *spt = find_sql_part(it, prev->base.name); + sql_part *spt = find_sql_part_id(it, prev->base.id); if (spt) { if (isRangePartitionTable(it)) { int tpe = spt->tpe.type->localtype; @@ -922,7 +922,7 @@ rel_subtable_insert(sql_query *query, sq { mvc *sql = query->sql; sql_table *upper = t->p; //is part of a partition table and not been used yet - sql_part *pt = find_sql_part(upper, t->base.name); + sql_part *pt = find_sql_part_id(upper, t->base.id); sql_rel *anti_dup = rel_create_common_relation(sql, rel, upper), *left = rel->l; sql_exp *anti_exp = NULL, *anti_le = rel_generate_anti_insert_expression(sql, &anti_dup, upper), *aggr = NULL, *exception = NULL, *anti_nils = NULL; diff --git a/sql/storage/sql_catalog.c b/sql/storage/sql_catalog.c --- a/sql/storage/sql_catalog.c +++ b/sql/storage/sql_catalog.c @@ -221,9 +221,11 @@ find_sql_column(sql_table *t, const char } sql_part * -find_sql_part(sql_table *t, const char *tname) +find_sql_part_id(sql_table *t, sqlid id) { - return _cs_find_name(&t->members, tname); + node *n = cs_find_id(&t->members, id); + + return n ? n->data : NULL; } sql_table * diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -5983,7 +5983,7 @@ sql_trans_add_range_partition(sql_trans p->t = mt; dup_sql_type(tr, mt->s, &tpe, &(p->tpe)); } else { - p = find_sql_part(mt, pt->base.name); + p = find_sql_part_id(mt, pt->base.id); } /* add range partition values */ @@ -6059,7 +6059,7 @@ sql_trans_add_value_partition(sql_trans dup_sql_type(tr, mt->s, &tpe, &(p->tpe)); } else { rids *rs; - p = find_sql_part(mt, pt->base.name); + p = find_sql_part_id(mt, pt->base.id); rs = table_funcs.rids_select(tr, find_sql_column(values, "table_id"), &pt->base.id, &pt->base.id, NULL); for (rid = table_funcs.rids_next(rs); !is_oid_nil(rid); rid = table_funcs.rids_next(rs)) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list