Changeset: b4f90020ff3f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b4f90020ff3f
Modified Files:
configure.ag
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql_execute.c
sql/backends/monet5/sql_gencode.c
sql/common/sql_types.c
sql/common/sql_types.h
sql/server/rel_select.c
sql/server/rel_unnest.c
sql/server/sql_partition.c
sql/storage/bat/bat_storage.c
sql/storage/sql_storage.h
sql/storage/store.c
sql/test/BugTracker-2010/Tests/prepare_stmt.Bug-2533.Bug-2534.stable.err
sql/test/BugTracker/Tests/bind_with_cast.SF-1720934.stable.err
sql/test/subquery/Tests/subquery3.sql
sql/test/subquery/Tests/subquery3.stable.err
sql/test/subquery/Tests/subquery3.stable.out
Branch: default
Log Message:
Merged with linear-hashing
diffs (truncated from 1068 to 300 lines):
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -1147,7 +1147,7 @@ AS_VAR_IF([have_bz2], [no], [], [
[AC_SUBST([PKG_BZIP2], [bzip2])])
AS_VAR_IF([have_bz2], [yes],
[AC_DEFINE([HAVE_LIBBZ2], 1, [Define if you have the bz2
library])])])
-AM_CONDITIONAL([HAVE_LIBBZ2], [test x"$have_libbz2" != xno])
+AM_CONDITIONAL([HAVE_LIBBZ2], [test x"$have_bz2" != xno])
@@ -1556,12 +1556,12 @@ AC_ARG_WITH([lzma],
[include lzma support (default=yes)])],
[have_lzma=$withval])
AS_VAR_IF([have_lzma], [no], [], [
- PKG_CHECK_MODULES([liblzma], [liblzma], [have_liblzma=yes],
[have_liblzma=no; why_not_liblzma="(liblzma not found, install xz-libs and
xz-devel)"])
- AS_VAR_IF([have_liblzma], [yes], [
+ PKG_CHECK_MODULES([liblzma], [liblzma], [have_lzma=yes], [have_lzma=no;
why_not_liblzma="(liblzma not found, install xz-libs and xz-devel)"])
+ AS_VAR_IF([have_lzma], [yes], [
AC_SUBST([PKG_LIBLZMA], [liblzma])])
- AS_VAR_IF([have_liblzma], [yes], [
+ AS_VAR_IF([have_lzma], [yes], [
AC_DEFINE([HAVE_LIBLZMA], 1, [Define if you have the lzma
library])])])
-AM_CONDITIONAL([HAVE_LIBLZMA], [test x"$have_liblzma" != xno])
+AM_CONDITIONAL([HAVE_LIBLZMA], [test x"$have_lzma" != xno])
org_have_valgrind=no
have_valgrind=$org_have_valgrind
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
@@ -1694,10 +1694,11 @@ rel2bin_table(backend *be, sql_rel *rel,
nme = number2name(name, sizeof(name), ++sql->remote);
l = rel2bin_args(be, rel->l, sa_list(sql->sa));
- if(!l)
+ if (!l)
return NULL;
sub = stmt_list(be, l);
- sub = stmt_func(be, sub, sa_strdup(sql->sa, nme), rel->l, 0);
+ if (!(sub = stmt_func(be, sub, sa_strdup(sql->sa, nme), rel->l,
0)))
+ return NULL;
fr = rel->l;
l = sa_list(sql->sa);
for(i = 0, n = rel->exps->h; n; n = n->next, i++ ) {
diff --git a/sql/backends/monet5/sql_execute.c
b/sql/backends/monet5/sql_execute.c
--- a/sql/backends/monet5/sql_execute.c
+++ b/sql/backends/monet5/sql_execute.c
@@ -953,7 +953,7 @@ RAstatement2(Client cntxt, MalBlkPtr mb,
if (rel)
rel = sql_processrelation(m, rel, 0);
if (!rel || monet5_create_relational_function(m, *mod, *nme, rel, NULL,
ops, 0) < 0)
- throw(SQL, "sql.register", SQLSTATE(42000) "Cannot register
%s", buf);
+ throw(SQL, "sql.register", SQLSTATE(42000) "Cannot register %s:
%s", buf, m->errstr);
rel_destroy(rel);
sqlcleanup(m, 0);
return msg;
diff --git a/sql/backends/monet5/sql_gencode.c
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -145,15 +145,19 @@ static int
backup = c->curprg;
curPrg = c->curprg = newFunction(putName(mod), putName(name),
FUNCTIONsymbol);
- if( curPrg == NULL)
+ if( curPrg == NULL) {
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
+ }
curBlk = c->curprg->def;
curInstr = getInstrPtr(curBlk, 0);
curInstr = relational_func_create_result(m, curBlk, curInstr, r);
- if( curInstr == NULL)
+ if( curInstr == NULL) {
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
+ }
setVarUDFtype(curBlk, 0);
/* ops */
@@ -235,6 +239,7 @@ static int
c->curprg->def->errors = msg;
}
if (c->curprg->def->errors) {
+ sql_error(m, 003, SQLSTATE(42000) "Internal error while
compiling statement: %s", c->curprg->def->errors);
freeSymbol(curPrg);
res = -1;
}
@@ -252,17 +257,14 @@ rel2str( mvc *sql, sql_rel *rel)
char *res = NULL;
b = buffer_create(1024);
- if(b == NULL) {
- goto cleanup;
- }
- s = buffer_wastream(b, "rel_dump");
- if(s == NULL) {
+ if(b == NULL)
goto cleanup;
- }
+ s = buffer_wastream(b, "rel_dump");
+ if(s == NULL)
+ goto cleanup;
refs = sa_list(sql->sa);
- if (!refs) {
+ if (!refs)
goto cleanup;
- }
rel_print_refs(sql, s, rel, 0, refs, 0);
rel_print_(sql, s, rel, 0, refs, 0);
@@ -292,25 +294,31 @@ static int
char *lname;
sql_rel *r = rel;
- if(local_tbl == NULL)
+ if (local_tbl == NULL) {
+ sql_error(m, 003, SQLSTATE(42000) "Missing property on the
input relation");
return -1;
+ }
lname = GDKstrdup(name);
- if(lname == NULL)
+ if (lname == NULL) {
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
+ }
if (is_topn(r->op))
r = r->l;
if (!is_project(r->op))
r = rel_project(m->sa, r, rel_projections(m, r, NULL, 1, 1));
lret = SA_NEW_ARRAY(m->sa, int, list_length(r->exps));
- if(lret == NULL) {
+ if (lret == NULL) {
GDKfree(lname);
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
rret = SA_NEW_ARRAY(m->sa, int, list_length(r->exps));
- if(rret == NULL) {
+ if (rret == NULL) {
GDKfree(lname);
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
@@ -319,6 +327,7 @@ static int
c->curprg = newFunction(putName(mod), putName(name), FUNCTIONsymbol);
if( c->curprg == NULL) {
GDKfree(lname);
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
lname[0] = 'l';
@@ -328,6 +337,7 @@ static int
curInstr = relational_func_create_result(m, curBlk, curInstr, rel);
if( curInstr == NULL) {
GDKfree(lname);
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
setVarUDFtype(curBlk, 0);
@@ -396,12 +406,14 @@ static int
char *s, *buf = GDKmalloc(len);
if (!buf) {
GDKfree(lname);
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
s = rel2str(m, rel);
if (!s) {
GDKfree(lname);
GDKfree(buf);
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
o = newFcnCall(curBlk, remoteRef, putRef);
@@ -438,6 +450,7 @@ static int
GDKfree(buf);
} else {
GDKfree(lname);
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
}
@@ -451,6 +464,7 @@ static int
if (lsupervisor_session == NULL || rsupervisor_session == NULL)
{
GDKfree(lsupervisor_session);
GDKfree(rsupervisor_session);
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
@@ -458,6 +472,7 @@ static int
if (rworker_plan_uuid == NULL) {
GDKfree(rsupervisor_session);
GDKfree(lsupervisor_session);
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
str lworker_plan_uuid = GDKstrdup(rworker_plan_uuid);
@@ -465,6 +480,7 @@ static int
free(rworker_plan_uuid);
GDKfree(lsupervisor_session);
GDKfree(rsupervisor_session);
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
@@ -577,8 +593,10 @@ static int
// (str) chkProgram(c->usermodule, c->curprg->def);
if (!c->curprg->def->errors)
c->curprg->def->errors = SQLoptimizeFunction(c, c->curprg->def);
- if (c->curprg->def->errors)
+ if (c->curprg->def->errors) {
+ sql_error(m, 003, SQLSTATE(42000) "Internal error while
compiling statement: %s", c->curprg->def->errors);
res = -1;
+ }
if (backup)
c->curprg = backup;
GDKfree(lname); /* make sure stub is called */
@@ -608,6 +626,7 @@ sql_relation2stmt(backend *be, sql_rel *
stmt *s = NULL;
if (!r) {
+ sql_error(c, 003, SQLSTATE(42000) "Missing relation to convert
into statements");
return NULL;
} else {
if (c->emode == m_plan) {
@@ -622,7 +641,7 @@ sql_relation2stmt(backend *be, sql_rel *
int
backend_dumpstmt(backend *be, MalBlkPtr mb, sql_rel *r, int top, int add_end,
const char *query)
{
- mvc *c = be->mvc;
+ mvc *m = be->mvc;
InstrPtr q, querylog = NULL;
int old_mv = be->mvc_var;
MalBlkPtr old_mb = be->mb;
@@ -636,6 +655,7 @@ backend_dumpstmt(backend *be, MalBlkPtr
querylog = q = newStmt(mb, querylogRef, defineRef);
if (q == NULL) {
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
setVarType(mb, getArg(q, 0), TYPE_void);
@@ -643,6 +663,7 @@ backend_dumpstmt(backend *be, MalBlkPtr
q = pushStr(mb, q, query);
q = pushStr(mb, q, getSQLoptimizer(be->mvc));
if (q == NULL) {
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
@@ -662,8 +683,10 @@ backend_dumpstmt(backend *be, MalBlkPtr
/* announce the transaction mode */
q = newStmt(mb, sqlRef, "mvc");
- if (q == NULL)
+ if (q == NULL) {
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
+ }
be->mvc_var = getDestVar(q);
be->mb = mb;
s = sql_relation2stmt(be, r);
@@ -675,16 +698,20 @@ backend_dumpstmt(backend *be, MalBlkPtr
be->mvc_var = old_mv;
be->mb = old_mb;
- if (top && !be->depth && (c->type == Q_SCHEMA || c->type == Q_TRANS)) {
+ if (top && !be->depth && (m->type == Q_SCHEMA || m->type == Q_TRANS)) {
q = newStmt(mb, sqlRef, exportOperationRef);
- if (q == NULL)
+ if (q == NULL) {
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
+ }
}
/* generate a dummy return assignment for functions */
if (getArgType(mb, getInstrPtr(mb, 0), 0) != TYPE_void &&
getInstrPtr(mb, mb->stop - 1)->barrier != RETURNsymbol) {
q = newAssignment(mb);
- if (q == NULL)
+ if (q == NULL) {
+ sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
+ }
getArg(q, 0) = getArg(getInstrPtr(mb, 0), 0);
q->barrier = RETURNsymbol;
}
@@ -713,8 +740,10 @@ backend_callinline(backend *be, Client c
int varid = 0;
curInstr = newAssignment(curBlk);
- if (curInstr == NULL)
+ if (curInstr == NULL) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list