Changeset: 3f4c52f1c7a2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3f4c52f1c7a2
Modified Files:
sql/backends/monet5/sql.c
sql/backends/monet5/sql.mal
sql/server/rel_select.c
Branch: default
Log Message:
merged with Jul2017
diffs (72 lines):
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -2784,11 +2784,8 @@ zero_or_one(ptr ret, const bat *bid)
BATiter bi = bat_iterator(b);
p = BUNtail(bi, 0);
} else {
- char buf[BUFSIZ];
-
p = NULL;
- snprintf(buf, BUFSIZ, "21000!cardinality violation (" BUNFMT
">1)", c);
- throw(SQL, "zero_or_one", "%s", buf);
+ throw(SQL, "zero_or_one", "21000!cardinality violation, scalar
value expected");
}
_s = ATOMsize(ATOMtype(b->ttype));
if (ATOMextern(b->ttype)) {
diff --git a/sql/backends/monet5/sql.mal b/sql/backends/monet5/sql.mal
--- a/sql/backends/monet5/sql.mal
+++ b/sql/backends/monet5/sql.mal
@@ -339,10 +339,7 @@ inline function sql.subzero_or_one( b:ba
c01 := calc.not(c0);
c1 := calc.>(m,1:lng);
c11 := calc.and(c01,c1);
- ms := calc.str(m);
- msg := str.+("21000!zero_or_one: cardinality violation (", ms);
- msg1 := str.+(msg, ">1)");
- sql.assert(c11, msg1);
+ sql.assert(c11, "21000!zero_or_one: cardinality violation, scalar
expression expected");
return zero_or_one := b;
end sql.subzero_or_one;
@@ -358,10 +355,7 @@ inline function sql.all( b:bat[:any_1],
c01 := calc.not(c0);
c1 := calc.>(m,1:lng);
c11 := calc.and(c01,c1);
- ms := calc.str(m);
- msg := str.+("21000!zero_or_one: cardinality violation (", ms);
- msg1 := str.+(msg, ">1)");
- sql.assert(c11, msg1);
+ sql.assert(c11, "21000!zero_or_one: cardinality violation, scalar
expression expected ");
return all := b;
end sql.all;
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
@@ -4914,7 +4914,7 @@ rel_query(mvc *sql, sql_rel *rel, symbol
sql_rel *fnd = NULL;
for (n = fl->h; n ; n = n->next) {
- int lateral = check_is_lateral(n->data.sym);
+ int lateral = check_is_lateral(n->data.sym),
lateral_used = 0;
fnd = table_ref(sql, NULL, n->data.sym, 0);
if (!fnd && (rel || lateral) && sql->session->status !=
-ERR_AMBIGUOUS) {
@@ -4938,6 +4938,7 @@ rel_query(mvc *sql, sql_rel *rel, symbol
fnd = table_ref(sql, res, n->data.sym,
lateral);
if (fnd && is_project(fnd->op))
fnd->exps =
list_merge(fnd->exps, pre_exps, (fdup)NULL);
+ lateral_used = 1;
} else {
fnd = table_ref(sql, rel, n->data.sym,
0);
}
@@ -4946,7 +4947,7 @@ rel_query(mvc *sql, sql_rel *rel, symbol
if (!fnd)
break;
- if (res && !lateral)
+ if (res && !lateral_used)
res = rel_crossproduct(sql->sa, res, fnd,
op_join);
else
res = fnd;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list