Changeset: 331edd3a8194 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=331edd3a8194
Modified Files:
sql/backends/monet5/sql_scenario.c
sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.err
sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
Branch: Apr2012
Log Message:
fixed bug 3087, ie a chkProgram was missing
diffs (209 lines):
diff --git a/sql/backends/monet5/sql_scenario.c
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -57,6 +57,7 @@
#include "optimizer.h"
#include "opt_statistics.h"
#include "opt_prelude.h"
+#include "opt_pipes.h"
#include <unistd.h>
static int SQLinitialized = 0;
@@ -1484,20 +1485,16 @@ SQLparser(Client c)
if (m->emod & mod_debug)
SQLsetDebugger(c, m, TRUE);
if (!cachable(m, s)) {
- InstrPtr p;
- MalBlkPtr curBlk;
+ MalBlkPtr mb;
scanner_query_processed(&(m->scanner));
backend_callinline(be, c, s);
-
- curBlk = c->curprg->def;
-
- p = newFcnCall(curBlk, "optimizer", "remap");
- typeChecker(c->fdout, c->nspace, curBlk, p, FALSE);
- p = newFcnCall(curBlk, "optimizer", "multiplex");
- typeChecker(c->fdout, c->nspace, curBlk, p, FALSE);
- optimizeMALBlock(c, curBlk);
- c->curprg->def = curBlk;
+ trimMalBlk(c->curprg->def);
+ mb = c->curprg->def;
+ chkProgram(c->fdout, c->nspace, mb);
+ addOptimizerPipe(c, mb, "minimal_pipe");
+ optimizeMALBlock(c, mb);
+ c->curprg->def = mb;
} else {
/* generate a factory instantiation */
be->q = qc_insert(m->qc,
diff --git
a/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.err
b/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.err
--- a/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.err
+++ b/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.err
@@ -71,7 +71,7 @@ stderr of test 'explain_gives_crash.SF-2
# 22:45:54 > mclient -lsql -umonetdb -Pmonetdb --host=alf --port=35519
# 22:45:54 >
-MAPI = monetdb@sofia:38256
+MAPI = monetdb@niels:33385
QUERY = alter table blabla drop constraint dada;
ERROR = !ALTER TABLE: no such constraint 'dada'
diff --git
a/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
b/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
--- a/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
+++ b/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
@@ -27,88 +27,82 @@ Ready.
#~BeginVariableOutput~#
function user.main{autoCommit=nil}():void;
mdb.listMapi();
- sql.mvc();
-" calc.str(""sys"");"
- calc.ptr(140501869939024);
- calc.int(0);
-" sql.catalog(29\,X_3\,X_5\,X_7);"
- calc.int(1);
-" calc.str(""UPDATE: UNIQUE constraint 'blabla.dada' violated"");"
-" X_15:bat[:oid\,:oid] := sql.bind_dbat(X_2\,""sys""\,""blabla""\,1);"
- bat.reverse(X_15);
- calc.int(nil:int);
-" X_20:bat[:oid\,:int] := sql.bind(X_2\,""sys""\,""blabla""\,""id""\,0);"
- algebra.selectNotNil(X_20);
-" algebra.kdifference(X_22\,X_17);"
-" (ext26\,grp24) := group.done(X_23);"
- grp24;
- bat.mirror(ext26);
-" X_28:bat[:oid\,:wrd] := aggr.count(X_26\,X_26\,X_27);"
- X_29:wrd := aggr.sum(X_28);
- calc.isnil(X_29);
- calc.wrd(0:wrd);
-" calc.ifthenelse(X_30\,X_31\,X_29);"
- aggr.count(X_28);
-" calc.!=(X_34\,X_33);"
-" sql.assert(X_35\,X_13);"
+ X_2 := sql.mvc();
+" X_3 := calc.str(""sys"");"
+ X_5 := calc.ptr(140529384786912);
+ X_7 := calc.int(0);
+" sql.catalog(29,X_3,X_5,X_7);"
+" X_11:bat[:oid,:int] := sql.bind(X_2,""sys"",""blabla"",""id"",0);"
+ X_16 := algebra.selectNotNil(X_11);
+" X_17:bat[:oid,:oid] := sql.bind_dbat(X_2,""sys"",""blabla"",1);"
+ X_19 := bat.reverse(X_17);
+" X_20 := algebra.kdifference(X_16,X_19);"
+" (ext23,grp21) := group.done(X_20);"
+ X_23 := grp21;
+ X_24 := bat.mirror(ext23);
+" X_25:bat[:oid,:wrd] := aggr.count(X_23,X_23,X_24);"
+ X_26 := aggr.count(X_25);
+ X_27:wrd := aggr.sum(X_25);
+ X_28 := calc.isnil(X_27);
+ X_29 := calc.wrd(0:wrd);
+" X_31 := calc.ifthenelse(X_28,X_29,X_27);"
+" X_32 := calc.!=(X_26,X_31);"
+" X_33 := calc.str(""UPDATE: UNIQUE constraint 'blabla.dada' violated"");"
+" sql.assert(X_32,X_33);"
" sql.exportOperation("""");"
end main;
function user.main{autoCommit=nil}():void;
mdb.listMapi();
- sql.mvc();
-" calc.str(""sys"");"
- calc.ptr(140501869939024);
- calc.int(0);
-" sql.catalog(29\,X_3\,X_5\,X_7);"
- calc.int(1);
-" calc.str(""UPDATE: UNIQUE constraint 'blabla.dada' violated"");"
-" X_15:bat[:oid\,:oid] := sql.bind_dbat(X_2\,""sys""\,""blabla""\,1);"
- bat.reverse(X_15);
- calc.int(nil:int);
-" X_20:bat[:oid\,:int] := sql.bind(X_2\,""sys""\,""blabla""\,""id""\,0);"
- algebra.selectNotNil(X_20);
-" algebra.kdifference(X_22\,X_17);"
-" (ext26\,grp24) := group.done(X_23);"
- grp24;
- bat.mirror(ext26);
-" X_28:bat[:oid\,:wrd] := aggr.count(X_26\,X_26\,X_27);"
- X_29:wrd := aggr.sum(X_28);
- calc.isnil(X_29);
- calc.wrd(0:wrd);
-" calc.ifthenelse(X_30\,X_31\,X_29);"
- aggr.count(X_28);
-" calc.!=(X_34\,X_33);"
-" sql.assert(X_35\,X_13);"
+ X_2 := sql.mvc();
+" X_3 := calc.str(""sys"");"
+ X_5 := calc.ptr(140529384786912);
+ X_7 := calc.int(0);
+" sql.catalog(29,X_3,X_5,X_7);"
+" X_11:bat[:oid,:int] := sql.bind(X_2,""sys"",""blabla"",""id"",0);"
+ X_16 := algebra.selectNotNil(X_11);
+" X_17:bat[:oid,:oid] := sql.bind_dbat(X_2,""sys"",""blabla"",1);"
+ X_19 := bat.reverse(X_17);
+" X_20 := algebra.kdifference(X_16,X_19);"
+" (ext23,grp21) := group.done(X_20);"
+ X_23 := grp21;
+ X_24 := bat.mirror(ext23);
+" X_25:bat[:oid,:wrd] := aggr.count(X_23,X_23,X_24);"
+ X_26 := aggr.count(X_25);
+ X_27:wrd := aggr.sum(X_25);
+ X_28 := calc.isnil(X_27);
+ X_29 := calc.wrd(0:wrd);
+" X_31 := calc.ifthenelse(X_28,X_29,X_27);"
+" X_32 := calc.!=(X_26,X_31);"
+" X_33 := calc.str(""UPDATE: UNIQUE constraint 'blabla.dada' violated"");"
+" sql.assert(X_32,X_33);"
" sql.exportOperation("""");"
end main;
#~EndVariableOutput~#
#~BeginVariableOutput~#
function user.main{autoCommit=nil}():void;
mdb.listMapi();
- sql.mvc();
-" calc.str(""sys"");"
- calc.ptr(140501869939024);
- calc.int(0);
-" sql.catalog(29\,X_3\,X_5\,X_7);"
- calc.int(1);
-" calc.str(""UPDATE: UNIQUE constraint 'blabla.dada' violated"");"
-" X_15:bat[:oid\,:oid] := sql.bind_dbat(X_2\,""sys""\,""blabla""\,1);"
- bat.reverse(X_15);
- calc.int(nil:int);
-" X_20:bat[:oid\,:int] := sql.bind(X_2\,""sys""\,""blabla""\,""id""\,0);"
- algebra.selectNotNil(X_20);
-" algebra.kdifference(X_22\,X_17);"
-" (ext26\,grp24) := group.done(X_23);"
- grp24;
- bat.mirror(ext26);
-" X_28:bat[:oid\,:wrd] := aggr.count(X_26\,X_26\,X_27);"
- X_29:wrd := aggr.sum(X_28);
- calc.isnil(X_29);
- calc.wrd(0:wrd);
-" calc.ifthenelse(X_30\,X_31\,X_29);"
- aggr.count(X_28);
-" calc.!=(X_34\,X_33);"
-" sql.assert(X_35\,X_13);"
+ X_2 := sql.mvc();
+" X_3 := calc.str(""sys"");"
+ X_5 := calc.ptr(140529384487152);
+ X_7 := calc.int(0);
+" sql.catalog(29,X_3,X_5,X_7);"
+" X_11:bat[:oid,:int] := sql.bind(X_2,""sys"",""blabla"",""id"",0);"
+ X_16 := algebra.selectNotNil(X_11);
+" X_17:bat[:oid,:oid] := sql.bind_dbat(X_2,""sys"",""blabla"",1);"
+ X_19 := bat.reverse(X_17);
+" X_20 := algebra.kdifference(X_16,X_19);"
+" (ext23,grp21) := group.done(X_20);"
+ X_23 := grp21;
+ X_24 := bat.mirror(ext23);
+" X_25:bat[:oid,:wrd] := aggr.count(X_23,X_23,X_24);"
+ X_26 := aggr.count(X_25);
+ X_27:wrd := aggr.sum(X_25);
+ X_28 := calc.isnil(X_27);
+ X_29 := calc.wrd(0:wrd);
+" X_31 := calc.ifthenelse(X_28,X_29,X_27);"
+" X_32 := calc.!=(X_26,X_31);"
+" X_33 := calc.str(""UPDATE: UNIQUE constraint 'blabla.dada' violated"");"
+" sql.assert(X_32,X_33);"
" sql.exportOperation("""");"
end main;
#~EndVariableOutput~#
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list