Changeset: e16fec7772f5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e16fec7772f5
Modified Files:
sql/backends/monet5/rel_bin.c
sql/server/rel_exp.c
sql/server/rel_optimizer.c
sql/server/rel_psm.c
sql/server/rel_rel.c
sql/server/rel_updates.c
Branch: Nov2019
Log Message:
Don't do exp_name == 'L', to test for labels, has it can give false positives.
Also use sizeof to determine the size of the buffer for cleaner code
diffs (166 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -645,7 +645,7 @@ exp_bin(backend *be, sql_exp *e, stmt *l
}
if (cond_execution) {
/* var_x = nil; */
- nme = number2name(name, 16, ++sql->label);
+ nme = number2name(name, sizeof(name), ++sql->label);
(void)stmt_var(be, nme, exp_subtype(e), 1, 2);
/* if_barrier ... */
cond_execution = stmt_cond(be, cond_execution, NULL, 0,
0);
@@ -1674,7 +1674,7 @@ rel2bin_table(backend *be, sql_rel *rel,
char name[16], *nme;
sql_rel *fr;
- nme = number2name(name, 16, ++sql->remote);
+ nme = number2name(name, sizeof(name), ++sql->remote);
l = rel2bin_args(be, rel->l, sa_list(sql->sa));
if(!l)
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -516,7 +516,7 @@ exp_alias(sql_allocator *sa, const char
}
sql_exp *
-exp_alias_or_copy( mvc *sql, const char *tname, const char *cname, sql_rel
*orel, sql_exp *old)
+exp_alias_or_copy(mvc *sql, const char *tname, const char *cname, sql_rel
*orel, sql_exp *old)
{
sql_exp *ne = NULL;
@@ -526,12 +526,12 @@ exp_alias_or_copy( mvc *sql, const char
if (!tname && old->type == e_column)
tname = old->l;
- if (!cname && exp_name(old) && exp_name(old)[0] == 'L') {
+ if (!cname && exp_name(old) && has_label(old)) {
ne = exp_column(sql->sa, exp_relname(old), exp_name(old),
exp_subtype(old), orel?orel->card:CARD_ATOM, has_nil(old), is_intern(old));
return exp_propagate(sql->sa, ne, old);
} else if (!cname) {
char name[16], *nme;
- nme = number2name(name, 16, ++sql->label);
+ nme = number2name(name, sizeof(name), ++sql->label);
exp_setname(sql->sa, old, nme, nme);
ne = exp_column(sql->sa, exp_relname(old), exp_name(old),
exp_subtype(old), orel?orel->card:CARD_ATOM, has_nil(old), is_intern(old));
@@ -701,7 +701,7 @@ exp_setrelname(sql_allocator *sa, sql_ex
{
char name[16], *nme;
- nme = number2name(name, 16, nr);
+ nme = number2name(name, sizeof(name), nr);
e->alias.label = 0;
e->alias.rname = sa_strdup(sa, nme);
}
@@ -711,7 +711,7 @@ make_label(sql_allocator *sa, int nr)
{
char name[16], *nme;
- nme = number2name(name, 16, nr);
+ nme = number2name(name, sizeof(name), nr);
return sa_strdup(sa, nme);
}
@@ -1880,7 +1880,7 @@ is_identity( sql_exp *e, sql_rel *r)
sql_exp *re = NULL;
if (e->l)
re = exps_bind_column2(r->exps, e->l, e->r);
- if (!re && ((char*)e->r)[0] == 'L')
+ if (!re && has_label(e))
re = exps_bind_column(r->exps, e->r, NULL);
if (re)
return is_identity(re, r->l);
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -8330,13 +8330,13 @@ rel_dicttable(mvc *sql, sql_column *c, c
ie = exp_indexcol(sql, e, tname, c->base.name, de, 1);
nr = ++sql->label;
- nme = sa_strdup(sql->sa, number2name(name, 16, nr));
+ nme = sa_strdup(sql->sa, number2name(name, sizeof(name), nr));
exp_setname(sql->sa, ie, nme, nme);
append(rel->exps, ie);
ie = exp_stringscol(sql, e, tname, c->base.name);
nr = ++sql->label;
- nme = sa_strdup(sql->sa, number2name(name, 16, nr));
+ nme = sa_strdup(sql->sa, number2name(name, sizeof(name), nr));
exp_setname(sql->sa, ie, nme, nme);
append(rel->exps, ie);
e->p = prop_create(sql->sa, PROP_HASHCOL, e->p);
@@ -8369,7 +8369,7 @@ rel_add_dicts(int *changes, mvc *sql, sq
char name[16], *nme;
sql_rel *vt = rel_dicttable(sql, c,
rname, de);
- nme = sa_strdup(sql->sa,
number2name(name, 16, nr));
+ nme = sa_strdup(sql->sa,
number2name(name, sizeof(name), nr));
if (!vcols)
vcols = sa_list(sql->sa);
append(vcols, vt);
diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c
--- a/sql/server/rel_psm.c
+++ b/sql/server/rel_psm.c
@@ -485,7 +485,7 @@ rel_psm_return( sql_query *query, sql_su
char name[16];
if (!cname)
- cname = sa_strdup(sql->sa, number2name(name,
16, ++sql->label));
+ cname = sa_strdup(sql->sa, number2name(name,
sizeof(name), ++sql->label));
if (!isproject)
e = exp_ref(sql->sa, e);
e = rel_check_type(sql, &ce->type, oexps_rel, e,
type_equal);
diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -509,7 +509,7 @@ rel_label( mvc *sql, sql_rel *r, int all
char tname[16], *tnme;
char cname[16], *cnme = NULL;
- tnme = number2name(tname, 16, nr);
+ tnme = number2name(tname, sizeof(tname), nr);
if (!is_project(r->op)) {
r = rel_project(sql->sa, r, rel_projections(sql, r, NULL, 1,
1));
set_processed(r);
@@ -524,7 +524,7 @@ rel_label( mvc *sql, sql_rel *r, int all
if (!e->freevar) {
if (all) {
nr = ++sql->label;
- cnme = number2name(cname, 16, nr);
+ cnme = number2name(cname,
sizeof(cname), nr);
}
exp_setname(sql->sa, e, tnme, cnme );
}
@@ -539,7 +539,7 @@ rel_label( mvc *sql, sql_rel *r, int all
for (; ne; ne = ne->next) {
if (all) {
nr = ++sql->label;
- cnme = number2name(cname, 16, nr);
+ cnme = number2name(cname, sizeof(cname), nr);
}
exp_setname(sql->sa, ne->data, tnme, cnme );
}
@@ -664,7 +664,7 @@ rel_groupby_add_aggr(mvc *sql, sql_rel *
if ((m=exps_find_match_exp(rel->exps, e)) == NULL) {
if (!exp_name(e)) {
- nme = number2name(name, 16, ++sql->label);
+ nme = number2name(name, sizeof(name), ++sql->label);
exp_setname(sql->sa, e, nme, nme);
}
append(rel->exps, e);
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
@@ -757,7 +757,7 @@ static sql_rel *
rel_update_join_idx(mvc *sql, const char* alias, sql_idx *i, sql_rel *updates)
{
int nr = ++sql->label;
- char name[16], *nme = number2name(name, 16, nr);
+ char name[16], *nme = number2name(name, sizeof(name), nr);
char *iname = sa_strconcat( sql->sa, "%", i->base.name);
int need_nulls = 0;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list