Changeset: 84e4ae8cfdd5 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=84e4ae8cfdd5
Modified Files:
sql/backends/monet5/Tests/optimizers.stable.err
sql/backends/monet5/Tests/optimizers.stable.out
sql/backends/monet5/sql_gencode.mx
sql/backends/monet5/sql_optimizer.mx
sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
sql/benchmarks/tpch/LOCKED/Tests/02.stable.out
sql/benchmarks/tpch/LOCKED/Tests/04.stable.out
sql/benchmarks/tpch/LOCKED/Tests/17.stable.out
sql/benchmarks/tpch/Tests/01-22.stable.out
sql/benchmarks/tpch/Tests/02.stable.out
sql/benchmarks/tpch/Tests/04.stable.out
sql/benchmarks/tpch/Tests/17.stable.out
sql/benchmarks/tpch/load.sh
sql/server/rel_bin.c
sql/server/rel_dump.c
sql/server/rel_optimizer.c
sql/server/rel_prop.c
sql/server/rel_prop.h
sql/server/rel_select.c
sql/server/rel_updates.c
sql/server/sql_parser.y
sql/storage/store.c
sql/test/BugDay_2005-10-06_2.9.3/Tests/create_view_with_check_options.SF-1314951.stable.out
sql/test/BugDay_2005-10-06_2.9.3/Tests/view_on_deleted_table.SF-938583.stable.out
sql/test/BugTracker-2008/Tests/view_reply_incorrect.SF-2075097.stable.out
sql/test/BugTracker-2009/Tests/cardinality_of_expression_is_wrong.SF-2581617.stable.out
sql/test/BugTracker-2009/Tests/lookup_column_name_bug_1.SF-2654300.stable.out
sql/test/BugTracker-2009/Tests/lookup_column_name_bug_2.SF-2656762.stable.out
sql/test/BugTracker-2010/Tests/select-view-key.Bug-2673.stable.out
sql/test/BugTracker-2010/Tests/with_row_number_crash.Bug-2631.stable.out
sql/test/BugTracker-2011/Tests/merge_range_exp.Bug-2806.stable.out
sql/test/BugTracker-2011/Tests/nested_select.Bug-2801.stable.out
sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err
sql/test/BugTracker/Tests/nested_views_algebra_version.SF-1993765.stable.out
sql/test/BugTracker/Tests/variable_stack_crash.SF-1711251-2.stable.out
sql/test/BugTracker/Tests/variable_stack_crash.SF-1711251.stable.out
sql/test/BugTracker/Tests/with_only_once.SF-1720293.stable.out
sql/test/Tests/create_in_schema.stable.out
sql/test/mserver5-sql-readonly/Tests/mserver5-sql-readonly-view.stable.out
sql/test/osm/Tests/exp_name_bug.stable.out
sql/test/xquery/Tests/q01.stable.out
Branch: default
Log Message:
added joinidx based semijoin
push join through union (using joinidx)
diffs (truncated from 1582 to 300 lines):
diff --git a/sql/backends/monet5/Tests/optimizers.stable.err
b/sql/backends/monet5/Tests/optimizers.stable.err
--- a/sql/backends/monet5/Tests/optimizers.stable.err
+++ b/sql/backends/monet5/Tests/optimizers.stable.err
@@ -12,43 +12,46 @@
# 08:05:50 > Mtimeout -timeout 60 MapiClient -lsql -umonetdb -Pmonetdb
--host=gio --port=35043
# 08:05:50 >
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
+QUERY = set optimizer='';
+ERROR = !SQLException:optimizer:Optimizer '' pipeline does not exist, use
default pipe instead
+MAPI = monetdb@alf:32144
QUERY = set
optimizer='costModel,coercions,emptySet,accessmode,aliases,commonTerms,accumulators,joinPath,deadcode,reduce,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set
optimizer='coercions,emptySet,accessmode,aliases,commonTerms,accumulators,joinPath,deadcode,reduce,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set
optimizer='emptySet,accessmode,aliases,commonTerms,accumulators,joinPath,deadcode,reduce,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set
optimizer='accessmode,aliases,commonTerms,accumulators,joinPath,deadcode,reduce,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set
optimizer='aliases,commonTerms,accumulators,joinPath,deadcode,reduce,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set
optimizer='commonTerms,accumulators,joinPath,deadcode,reduce,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set optimizer='accumulators,joinPath,deadcode,reduce,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set optimizer='joinPath,deadcode,reduce,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set optimizer='deadcode,reduce,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set optimizer='reduce,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set optimizer='garbageCollector';
ERROR = !SQLException:optimizer:Optimizer 'garbageCollector' pipeline does not
exist, use default pipe instead
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set
optimizer='costModel,coercions,emptySet,accessmode,commonTerms,accumulators,joinPath,deadcode,reduce,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
-MAPI = monetdb@eir:34547
+MAPI = monetdb@alf:32144
QUERY = set
optimizer='costModel,coercions,emptySet,accessmode,commonTerms,accumulators,joinPath,deadcode,garbageCollector';
ERROR = !SQLException:optimizer: 'inline' should be the first
diff --git a/sql/backends/monet5/Tests/optimizers.stable.out
b/sql/backends/monet5/Tests/optimizers.stable.out
--- a/sql/backends/monet5/Tests/optimizers.stable.out
+++ b/sql/backends/monet5/Tests/optimizers.stable.out
@@ -61,8 +61,8 @@
% ., . # table_name
% single_value, single_value # name
% char, varchar # type
-% 23, 48 # length
-[ "optimizer <empty> test:",
"inline,remap,deadcode,multiplex,garbageCollector" ]
+% 23, 175 # length
+[ "optimizer <empty> test:",
"inline,remap,evaluate,costModel,coercions,emptySet,aliases,mitosis,mergetable,deadcode,commonTerms,joinPath,reorder,deadcode,reduce,dataflow,history,multiplex,garbageCollector"
]
#select 'done';
% . # table_name
% single_value # name
diff --git a/sql/backends/monet5/sql_gencode.mx
b/sql/backends/monet5/sql_gencode.mx
--- a/sql/backends/monet5/sql_gencode.mx
+++ b/sql/backends/monet5/sql_gencode.mx
@@ -1629,7 +1629,7 @@
char *n = (s->type==st_append_col)?appendRef:updateRef;
if (s->type == st_append_col && s->flag) { /* fake
append */
- sql->mvc_var = s->nr = r;
+ s->nr = r;
} else {
q = newStmt2(mb, sqlRef, n);
q = pushArgument(mb, q, sql->mvc_var);
@@ -1755,7 +1755,7 @@
getArg(q, 0) = sql->mvc_var=
newTmpVariable(mb,TYPE_int);
q = pushArgument(mb, q, o1);
q = pushStr(mb, q, ""); /* warning */
- s->nr = getDestVar(q);
+ sql->mvc_var = s->nr = getDestVar(q);
} break;
case st_output:
case st_export:{
@@ -2106,9 +2106,9 @@
backend_dumpstmt(be, curBlk, s);
p = newFcnCall(curBlk, "optimizer", "remap");
- typeChecker(c->nspace, curBlk, p, TRUE);
+ typeChecker(c->nspace, curBlk, p, FALSE);
p = newFcnCall(curBlk, "optimizer", "multiplex");
- typeChecker(c->nspace, curBlk, p, TRUE);
+ typeChecker(c->nspace, curBlk, p, FALSE);
optimizeMALBlock(c, curBlk);
c->curprg->def = curBlk;
}
diff --git a/sql/backends/monet5/sql_optimizer.mx
b/sql/backends/monet5/sql_optimizer.mx
--- a/sql/backends/monet5/sql_optimizer.mx
+++ b/sql/backends/monet5/sql_optimizer.mx
@@ -645,7 +645,7 @@
if (m->point_query && (strcmp(optimizers[i], "mitosis")==0 ||
strcmp(optimizers[i], "dataflow")==0))
continue;
p = newFcnCall(mb, "optimizer", optimizers[i]);
- typeChecker(c->nspace, mb, p, TRUE);
+ typeChecker(c->nspace, mb, p, FALSE);
}
}
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
@@ -59,7 +59,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 7 ]
+[ "joinidx", 6 ]
# 11:48:05 >
# 11:48:05 > Mtimeout -timeout 60 MapiClient -lsql -umonetdb -Pmonetdb
--host=localhost --port=35781
@@ -102,7 +102,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 0 ]
+[ "joinidx", 1 ]
# 11:48:05 >
# 11:48:05 > Mtimeout -timeout 60 MapiClient -lsql -umonetdb -Pmonetdb
--host=localhost --port=35781
@@ -855,7 +855,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 1 ]
+[ "joinidx", 0 ]
# 11:48:06 >
# 11:48:06 > Mtimeout -timeout 60 MapiClient -lsql -umonetdb -Pmonetdb
--host=localhost --port=35781
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/02.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/02.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/02.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/02.stable.out
@@ -37,7 +37,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 7 ]
+[ "joinidx", 6 ]
# 09:17:12 >
# 09:17:12 > Done.
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/04.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/04.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/04.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/04.stable.out
@@ -37,7 +37,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 0 ]
+[ "joinidx", 1 ]
# 09:17:13 >
# 09:17:13 > Done.
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/17.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/17.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/17.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/17.stable.out
@@ -33,7 +33,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 1 ]
+[ "joinidx", 0 ]
# 09:17:19 >
# 09:17:19 > Done.
diff --git a/sql/benchmarks/tpch/Tests/01-22.stable.out
b/sql/benchmarks/tpch/Tests/01-22.stable.out
--- a/sql/benchmarks/tpch/Tests/01-22.stable.out
+++ b/sql/benchmarks/tpch/Tests/01-22.stable.out
@@ -59,7 +59,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 7 ]
+[ "joinidx", 6 ]
# 11:48:05 >
# 11:48:05 > Mtimeout -timeout 60 MapiClient -lsql -umonetdb -Pmonetdb
--host=localhost --port=35781
@@ -102,7 +102,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 0 ]
+[ "joinidx", 1 ]
# 11:48:05 >
# 11:48:05 > Mtimeout -timeout 60 MapiClient -lsql -umonetdb -Pmonetdb
--host=localhost --port=35781
@@ -855,7 +855,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 1 ]
+[ "joinidx", 0 ]
# 11:48:06 >
# 11:48:06 > Mtimeout -timeout 60 MapiClient -lsql -umonetdb -Pmonetdb
--host=localhost --port=35781
diff --git a/sql/benchmarks/tpch/Tests/02.stable.out
b/sql/benchmarks/tpch/Tests/02.stable.out
--- a/sql/benchmarks/tpch/Tests/02.stable.out
+++ b/sql/benchmarks/tpch/Tests/02.stable.out
@@ -37,7 +37,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 7 ]
+[ "joinidx", 6 ]
# 09:17:12 >
# 09:17:12 > Done.
diff --git a/sql/benchmarks/tpch/Tests/04.stable.out
b/sql/benchmarks/tpch/Tests/04.stable.out
--- a/sql/benchmarks/tpch/Tests/04.stable.out
+++ b/sql/benchmarks/tpch/Tests/04.stable.out
@@ -37,7 +37,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 0 ]
+[ "joinidx", 1 ]
# 09:17:13 >
# 09:17:13 > Done.
diff --git a/sql/benchmarks/tpch/Tests/17.stable.out
b/sql/benchmarks/tpch/Tests/17.stable.out
--- a/sql/benchmarks/tpch/Tests/17.stable.out
+++ b/sql/benchmarks/tpch/Tests/17.stable.out
@@ -33,7 +33,7 @@
% rewrite, count # name
% clob, int # type
% 7, 1 # length
-[ "joinidx", 1 ]
+[ "joinidx", 0 ]
# 09:17:19 >
# 09:17:19 > Done.
diff --git a/sql/benchmarks/tpch/load.sh b/sql/benchmarks/tpch/load.sh
--- a/sql/benchmarks/tpch/load.sh
+++ b/sql/benchmarks/tpch/load.sh
@@ -35,8 +35,8 @@
#SF='sf-5'
dir=`echo $SF | tr '[a-z]' '[A-Z]'`
-$SQL < c.sql-dec-primary-foreign
-#$SQL < c.sql-dec
-cat load-$SF.sql$T | sed -e s+PWD+$PWD/$dir+ | $SQL
+#$SQL < c.sql-dec-primary-foreign
+$SQL < c.sql-dec
+cat load-$SF-LOCKED.sql$T | sed -e s+PWD+$PWD/$dir+ | $SQL
#cat load-$SF.sql$T | sed -e s+PWD+$PWD/$dir+
-#$SQL < alter.sql
+$SQL < alter.sql
diff --git a/sql/server/rel_bin.c b/sql/server/rel_bin.c
--- a/sql/server/rel_bin.c
+++ b/sql/server/rel_bin.c
@@ -659,6 +659,8 @@
name = column_name(sql->sa, s);
else
name = sa_strdup(sql->sa, name);
+ if (!rname && exp->type == e_column && exp->l)
+ rname = exp->l;
if (!rname)
rname = table_name(sql->sa, s);
else
@@ -1122,7 +1124,6 @@
for( en = rel->exps->h, n = sub->op4.lval->h; en && n; en =
en->next, n = n->next ) {
sql_exp *exp = en->data;
stmt *s = n->data;
- /*stmt *s = exp_bin(sql, exp, sub, NULL, NULL, NULL);*/
if (!s) {
assert(0);
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -22,6 +22,7 @@
#define TABSTOP 2
#include "rel_dump.h"
+#include "rel_prop.h"
static void
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list