Changeset: d36c48c97c35 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d36c48c97c35 Modified Files: MonetDB5/src/optimizer/opt_mergetable.mx MonetDB5/src/optimizer/opt_prelude.mx MonetDB5/src/optimizer/opt_support.mx sql/src/test/BugTracker-2008/Tests/insert-null-byte.SF-2233581.SQL.bat sql/src/test/BugTracker-2008/Tests/insert-null-byte.SF-2233581.SQL.sh sql/src/test/BugTracker-2009/Tests/dumping_tables.SF-2776908.SQL.bat sql/src/test/BugTracker-2009/Tests/dumping_tables.SF-2776908.SQL.sh sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/alter-table-restart-crash.SF-2975018-1.sql sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/alter-table-restart-crash.SF-2975018-1.stable.err sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/alter-table-restart-crash.SF-2975018-1.stable.out sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/alter-table-restart-crash.SF-2975018-2.sql sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/alter-table-restart-crash.SF-2975018-2.stable.err sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/alter-table-restart-crash.SF-2975018-2.stable.out sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975022/Tests/alter-table-restart-crash.SF-2975022-1.sql sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975022/Tests/alter-table-restart-crash.SF-2975022-1.stable.err sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975022/Tests/alter-table-restart-crash.SF-2975022-1.stable.out sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975022/Tests/alter-table-restart-crash.SF-2975022-2.sql sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975022/Tests/alter-table-restart-crash.SF-2975022-2.stable.err sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975022/Tests/alter-table-restart-crash.SF-2975022-2.stable.out sql/src/test/Tests/like_tests.SQL.bat sql/src/test/Tests/like_tests.SQL.sh sql/src/test/Tests/null-byte-hang.SQL.bat sql/src/test/Tests/null-byte-hang.SQL.sh sql/src/test/Tests/zones2.SQL.bat sql/src/test/Tests/zones2.SQL.sh Branch: default Log Message:
Merge with Jun2010 branch. diffs (truncated from 1630 to 300 lines): diff -r ef962eacc773 -r d36c48c97c35 MonetDB5/src/optimizer/opt_mergetable.mx --- a/MonetDB5/src/optimizer/opt_mergetable.mx Tue Aug 17 12:22:41 2010 +0200 +++ b/MonetDB5/src/optimizer/opt_mergetable.mx Tue Aug 17 15:16:43 2010 +0200 @@ -771,7 +771,6 @@ return mtop; } - /* join, also handles the case that mat[m].mm is set, ie that we have the extend available. */ @@ -1618,7 +1617,11 @@ @c /* only handle simple joins, ie not range/band joins */ - if (match > 0 && match <= 2 && isMatJoinOp(p)) { + /* For range/band joins (argc == 4), the propagation of oids + is different, ie result-head equals head-1st arg, + result-tail equals head-2nd/3rd arg */ + + if (match > 0 && match <= 2 && isMatJoinOp(p) && p->argc == 3) { m = isMATalias(getArg(p,1), mat, mtop); n = isMATalias(getArg(p,2), mat, mtop); if ((m = mat_join(mb, p, mat, mtop, m, n)) < 0) @@ -1742,9 +1745,16 @@ getModuleId(p) == aggrRef || (getModuleId(p) == algebraRef && (getFunctionId(p) == sortTailRef || - getFunctionId(p) == sortReverseTailRef)))) { + getFunctionId(p) == sortReverseTailRef)) || + (getModuleId(p) == pqueueRef && + (getFunctionId(p) == topn_minRef || + getFunctionId(p) == topn_maxRef)))) { error++; goto fail; + /* For order (and order related topn) + we need a similar 2 phase model as used for group + by + */ } @- The slice operation can also be piggy backed onto the mat.pack using it diff -r ef962eacc773 -r d36c48c97c35 MonetDB5/src/optimizer/opt_prelude.mx --- a/MonetDB5/src/optimizer/opt_prelude.mx Tue Aug 17 12:22:41 2010 +0200 +++ b/MonetDB5/src/optimizer/opt_prelude.mx Tue Aug 17 15:16:43 2010 +0200 @@ -129,7 +129,7 @@ opt_export str newRef; opt_export str oidRef; opt_export str octopusRef; -opt_export str openRef; +opt_export str openRef; opt_export str optimizerRef; opt_export str packRef; opt_export str pack2Ref; @@ -142,6 +142,7 @@ opt_export str preludeRef; opt_export str prodRef; opt_export str postludeRef; +opt_export str pqueueRef; opt_export str profilerRef; opt_export str projectRef; opt_export str putRef; @@ -183,6 +184,8 @@ opt_export str sumRef; opt_export str sunionRef; opt_export str takeRef; +opt_export str topn_minRef; +opt_export str topn_maxRef; opt_export str tuniqueRef; opt_export str tarantulaRef; opt_export str not_uniqueRef; @@ -344,6 +347,7 @@ str preludeRef; str prodRef; str postludeRef; +str pqueueRef; str profilerRef; str projectRef; str putRef; @@ -386,6 +390,8 @@ str sunionRef; str takeRef; str tarantulaRef; +str topn_minRef; +str topn_maxRef; str tuniqueRef; str not_uniqueRef; str unionRef; @@ -543,6 +549,7 @@ prodRef = putName("product",7); profilerRef = putName("profiler",8); postludeRef = putName("postlude",8); + pqueueRef = putName("pqueue",6); projectRef = putName("project",7); putRef = putName("put",3); queryRef = putName("query",5); @@ -584,6 +591,8 @@ sunionRef= putName("sunion",6); takeRef= putName("take",5); tarantulaRef = putName("tarantula",9); + topn_minRef= putName("topn_min",8); + topn_maxRef= putName("topn_max",8); tuniqueRef = putName("tunique",7); not_uniqueRef= putName("not_unique",10); unionRef= putName("union",5); diff -r ef962eacc773 -r d36c48c97c35 MonetDB5/src/optimizer/opt_support.mx --- a/MonetDB5/src/optimizer/opt_support.mx Tue Aug 17 12:22:41 2010 +0200 +++ b/MonetDB5/src/optimizer/opt_support.mx Tue Aug 17 15:16:43 2010 +0200 @@ -1419,7 +1419,8 @@ // getFunctionId(p) == antijoinRef || is not mat save getFunctionId(p) == leftjoinRef || getFunctionId(p) == thetajoinRef || - getFunctionId(p) == bandjoinRef)); + getFunctionId(p) == bandjoinRef) + ); } int isFragmentGroup(InstrPtr p){ diff -r ef962eacc773 -r d36c48c97c35 sql/src/test/BugTracker-2008/Tests/insert-null-byte.SF-2233581.SQL.bat --- a/sql/src/test/BugTracker-2008/Tests/insert-null-byte.SF-2233581.SQL.bat Tue Aug 17 12:22:41 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -%SQL_CLIENT% "%TSTSRCDIR%/../insert-null-byte.sql" diff -r ef962eacc773 -r d36c48c97c35 sql/src/test/BugTracker-2008/Tests/insert-null-byte.SF-2233581.SQL.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sql/src/test/BugTracker-2008/Tests/insert-null-byte.SF-2233581.SQL.py Tue Aug 17 15:16:43 2010 +0200 @@ -0,0 +1,8 @@ +import os +from MonetDBtesting import process + +c = process.client('sql', + stdin = open(os.path.join(os.getenv('TSTSRCDIR'), + os.path.pardir, + 'insert-null-byte.sql'))) +c.communicate() diff -r ef962eacc773 -r d36c48c97c35 sql/src/test/BugTracker-2008/Tests/insert-null-byte.SF-2233581.SQL.sh --- a/sql/src/test/BugTracker-2008/Tests/insert-null-byte.SF-2233581.SQL.sh Tue Aug 17 12:22:41 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -$SQL_CLIENT $TSTSRCDIR/../insert-null-byte.sql diff -r ef962eacc773 -r d36c48c97c35 sql/src/test/BugTracker-2009/Tests/dumping_tables.SF-2776908.SQL.bat --- a/sql/src/test/BugTracker-2009/Tests/dumping_tables.SF-2776908.SQL.bat Tue Aug 17 12:22:41 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -...@echo on -...@prompt # $t $g - - %SQL_CLIENT% -i < %TSTSRCDIR%/../dumping_tables.SF-2776908.sql diff -r ef962eacc773 -r d36c48c97c35 sql/src/test/BugTracker-2009/Tests/dumping_tables.SF-2776908.SQL.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sql/src/test/BugTracker-2009/Tests/dumping_tables.SF-2776908.SQL.py Tue Aug 17 15:16:43 2010 +0200 @@ -0,0 +1,9 @@ +import os +from MonetDBtesting import process + +c = process.client('sql', + stdin = open(os.path.join(os.getenv('TSTSRCDIR'), + os.path.pardir, + 'dumping_tables.SF-2776908.sql')), + log = True) +c.communicate() diff -r ef962eacc773 -r d36c48c97c35 sql/src/test/BugTracker-2009/Tests/dumping_tables.SF-2776908.SQL.sh --- a/sql/src/test/BugTracker-2009/Tests/dumping_tables.SF-2776908.SQL.sh Tue Aug 17 12:22:41 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -#!/bin/sh - -Mlog -x "$SQL_CLIENT -i < $TSTSRCDIR/../dumping_tables.SF-2776908.sql" diff -r ef962eacc773 -r d36c48c97c35 sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/All --- a/sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/All Tue Aug 17 12:22:41 2010 +0200 +++ b/sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/All Tue Aug 17 15:16:43 2010 +0200 @@ -1,4 +1,4 @@ # this test causes the database to get into a state that the server # cannot recover from -alter-table-restart-crash.SF-2975018-1 -alter-table-restart-crash.SF-2975018-2 +t-1 +t-2 diff -r ef962eacc773 -r d36c48c97c35 sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/alter-table-restart-crash.SF-2975018-1.sql --- a/sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/alter-table-restart-crash.SF-2975018-1.sql Tue Aug 17 12:22:41 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ --- --- Setup two test tables, one that references the other. --- - -CREATE TABLE "sf2975018t1" ( -"id" int NOT NULL, -CONSTRAINT "sf2975018t1_id_pkey" PRIMARY KEY ("id") -); - -CREATE TABLE "sf2975018t2" ( -"id" int NOT NULL, -"sf2975018t1_id" int NOT NULL, -CONSTRAINT "sf2975018t2_id_pkey" PRIMARY KEY ("id"), -CONSTRAINT "sf2975018t2_sf2975018t1_id_fkey" FOREIGN KEY ("sf2975018t1_id") REFERENCES "sf2975018t1" ("id") -); -CREATE INDEX "sf2975018t2_sf2975018t1_id" ON "sf2975018t2" ("sf2975018t1_id"); - --- --- Drop fkey constraint and index --- - -DROP INDEX "sf2975018t2_sf2975018t1_id"; -ALTER TABLE "sf2975018t2" DROP CONSTRAINT sf2975018t2_sf2975018t1_id_fkey; - --- --- Drop fkey column that links tables. --- - -ALTER TABLE "sf2975018t2" DROP COLUMN sf2975018t1_id; diff -r ef962eacc773 -r d36c48c97c35 sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/alter-table-restart-crash.SF-2975018-1.stable.err --- a/sql/src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018/Tests/alter-table-restart-crash.SF-2975018-1.stable.err Tue Aug 17 12:22:41 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -stderr of test 'alter-table-restart-crash.SF-2975018-1` in directory 'src/test/BugTracker-2010/alter-table-restart-crash.SF-2975018` itself: - - -# 15:39:20 > -# 15:39:20 > mserver5 "--config=/ufs/sjoerd/Monet-stable/etc/monetdb5.conf" --debug=10 --set gdk_nr_threads=0 --set "monet_mod_path=/ufs/sjoerd/Monet-stable/lib64/MonetDB5:/ufs/sjoerd/Monet-stable/lib64/MonetDB5/lib:/ufs/sjoerd/Monet-stable/lib64/MonetDB5/bin" --set "gdk_dbfarm=/ufs/sjoerd/Monet-stable/var/MonetDB5/dbfarm" --set mapi_open=true --set xrpc_open=true --set mapi_port=34848 --set xrpc_port=40752 --set monet_prompt= --trace "--dbname=mTests_src_test_BugTracker-2010" --set mal_listing=0 "--dbinit= include sql;" ; echo ; echo Over.. -# 15:39:20 > - -# builtin opt gdk_arch = 64bitx86_64-unknown-linux-gnu -# builtin opt gdk_version = 1.36.4 -# builtin opt prefix = /ufs/sjoerd/Monet-stable -# builtin opt exec_prefix = ${prefix} -# builtin opt gdk_dbname = tst -# builtin opt gdk_dbfarm = ${prefix}/var/MonetDB -# builtin opt gdk_debug = 8 -# builtin opt gdk_alloc_map = yes -# builtin opt gdk_vmtrim = yes -# builtin opt monet_admin = adm -# builtin opt monet_prompt = > -# builtin opt monet_welcome = yes -# builtin opt monet_mod_path = ${prefix}/lib64/MonetDB -# builtin opt monet_daemon = yes -# builtin opt host = localhost -# builtin opt mapi_port = 50000 -# builtin opt mapi_noheaders = no -# builtin opt mapi_debug = 0 -# builtin opt mapi_clients = 2 -# builtin opt sql_debug = 0 -# builtin opt standoff_ns = http://monetdb.cwi.nl/standoff -# builtin opt standoff_start = start -# builtin opt standoff_end = end -# config opt prefix = /ufs/sjoerd/Monet-stable -# config opt config = ${prefix}/etc/monetdb5.conf -# config opt prefix = /ufs/sjoerd/Monet-stable -# config opt exec_prefix = ${prefix} -# config opt gdk_dbfarm = ${prefix}/var/MonetDB5/dbfarm -# config opt gdk_dbname = demo -# config opt gdk_alloc_map = no -# config opt gdk_embedded = no -# config opt gdk_debug = 0 -# config opt monet_mod_path = ${prefix}/lib64/MonetDB5:${prefix}/lib64/MonetDB5/lib:${prefix}/lib64/MonetDB5/bin -# config opt monet_daemon = no -# config opt monet_welcome = yes -# config opt mero_msglog = ${prefix}/var/log/MonetDB/merovingian.log -# config opt mero_errlog = ${prefix}/var/log/MonetDB/merovingian.log -# config opt mero_pidfile = ${prefix}/var/run/MonetDB/merovingian.pid -# config opt mero_controlport = 50001 -# config opt mal_init = ${prefix}/lib64/MonetDB5/mal_init.mal -# config opt mal_listing = 2 -# config opt mapi_port = 50000 -# config opt mapi_autosense = false -# config opt mapi_open = false -# config opt sql_optimizer = default_pipe -# config opt default_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,mitosis,mergetable,deadcode,commonTerms,joinPath,reorder,deadcode,reduce,garbageCollector,dataflow,history,multiplex -# config opt nov2009_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,constants,commonTerms,joinPath,deadcode,reduce,garbageCollector,dataflow,history,multiplex -# config opt replication_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,constants,commonTerms,joinPath,deadcode,reduce,garbageCollector,dataflow,history,replication,multiplex -# config opt accumulator_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,constants,commonTerms,joinPath,deadcode,reduce,accumulators,garbageCollector,dataflow,history,multiplex -# config opt recycler_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,deadcode,constants,commonTerms,joinPath,deadcode,recycle,reduce,garbageCollector,dataflow,history,multiplex -# config opt cracker_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,selcrack,deadcode,constants,commonTerms,joinPath,deadcode,reduce,garbageCollector,dataflow,history,multiplex -# config opt sidcrack_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,sidcrack,deadcode,constants,commonTerms,joinPath,deadcode,reduce,garbageCollector,dataflow,history,multiplex -# config opt datacell_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,deadcode,constants,commonTerms,joinPath,datacell,deadcode,reduce,garbageCollector,dataflow,history,multiplex -# config opt octopus_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,mitosis,mergetable,deadcode,constants,commonTerms,joinPath,octopus,deadcode,reduce,garbageCollector,dataflow,history,multiplex -# config opt datacyclotron_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,datacyclotron,mergetable,deadcode,constants,commonTerms,joinPath,reorder,deadcode,reduce,garbageCollector,dataflow,history,replication,multiplex -# config opt derive_pipe = inline,remap,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,constants,commonTerms,derivePath,joinPath,deadcode,reduce,garbageCollector,dataflow,history,multiplex -# config opt dictionary_pipe = inline,remap,dictionary,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,constants,commonTerms,joinPath,deadcode,reduce,garbageCollector,dataflow,history,multiplex -# cmdline opt config = /ufs/sjoerd/Monet-stable/etc/monetdb5.conf -# cmdline opt gdk_nr_threads = 0 -# cmdline opt monet_mod_path = /ufs/sjoerd/Monet-stable/lib64/MonetDB5:/ufs/sjoerd/Monet-stable/lib64/MonetDB5/lib:/ufs/sjoerd/Monet-stable/lib64/MonetDB5/bin -# cmdline opt gdk_dbfarm = /ufs/sjoerd/Monet-stable/var/MonetDB5/dbfarm -# cmdline opt mapi_open = true -# cmdline opt xrpc_open = true -# cmdline opt mapi_port = 34848 -# cmdline opt xrpc_port = 40752 -# cmdline opt monet_prompt = -# cmdline opt gdk_dbname = mTests_src_test_BugTracker-2010 -# cmdline opt mal_listing = 0 -#warning: please don't forget to set your vault key! -#(see /ufs/sjoerd/Monet-stable/etc/monetdb5.conf) - -# 15:39:21 > -# 15:39:21 > mclient -lsql -ftest -i -e --host=ottar --port=34848 -# 15:39:21 > - - -# 15:39:21 > -# 15:39:21 > Done. _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list