Changeset: 3a667a2ed241 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/3a667a2ed241 Modified Files: sql/server/rel_updates.c sql/test/astro/Tests/astro.test Branch: Jul2021 Log Message:
Set columns to be inserted or updated as used diffs (44 lines): diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c --- a/sql/server/rel_updates.c +++ b/sql/server/rel_updates.c @@ -1041,6 +1041,7 @@ update_generate_assignments(sql_query *q list_append(exps, exp_column(sql->sa, t->base.name, cname, &c->type, CARD_MULTI, 0, 0)); exp_setname(sql->sa, v, c->t->base.name, c->base.name); updates[c->colnr] = v; + rel_base_use(sql, bt, c->colnr); } } else { char *cname = assignment->h->next->data.sval; @@ -1069,6 +1070,7 @@ update_generate_assignments(sql_query *q list_append(exps, exp_column(sql->sa, t->base.name, cname, &c->type, CARD_MULTI, 0, 0)); exp_setname(sql->sa, v, c->t->base.name, c->base.name); updates[c->colnr] = v; + rel_base_use(sql, bt, c->colnr); } } r = rel_project(sql->sa, r, list_append(new_exp_list(sql->sa), exp_column(sql->sa, rname, TID, sql_bind_localtype("oid"), CARD_MULTI, 0, 1))); @@ -1331,7 +1333,11 @@ merge_into_table(sql_query *query, dlist extra_project = rel_project(sql->sa, join_rel, rel_projections(sql, joined, NULL, 1, 0)); if (!(insert = merge_generate_inserts(query, t, extra_project, sts->h->data.lval, sts->h->next->data.sym))) return NULL; - if (!(insert = rel_insert(query->sql, rel_basetable(sql, t, bt_name), insert))) + + sql_rel *ibt = rel_basetable(sql, t, bt_name); + rel_base_use_all(query->sql, ibt); + ibt = rewrite_basetable(query->sql, ibt); + if (!(insert = rel_insert(query->sql, ibt, insert))) return NULL; } else { assert(0); diff --git a/sql/test/astro/Tests/astro.test b/sql/test/astro/Tests/astro.test --- a/sql/test/astro/Tests/astro.test +++ b/sql/test/astro/Tests/astro.test @@ -65,7 +65,7 @@ plan UPDATE fluxz ) ---- update( -| table("sys"."fluxz") [ "fluxz"."%TID%" NOT NULL ] COUNT +| table("sys"."fluxz") [ "fluxz"."filter" NOT NULL, "fluxz"."f_datapoints" NOT NULL, "fluxz"."avg_flux" NOT NULL, "fluxz"."avg_fluxsq" NOT NULL, "fluxz"."avg_w" NOT NULL, "fluxz"."avg_wflux" NOT NULL, "fluxz"."avg_wfluxsq" NOT NULL, "fluxz"."avg_dec_zone_deg" NOT NULL, "fluxz"."%TID%" NOT NULL ] COUNT | project ( | | single left outer join ( | | | semijoin ( _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list