Changeset: d1b446b58be9 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d1b446b58be9 Modified Files: clients/python2/monetdb/control.py clients/python2/monetdb/sql/converters.py clients/python2/monetdb/sql/cursors.py clients/python2/monetdb/sql/monetize.py clients/python2/test/capabilities.py clients/python2/test/control.py clients/python2/test/dbapi20.py clients/python3/monetdb/sql/converters.py clients/python3/monetdb/sql/cursors.py clients/python3/monetdb/sql/monetize.py clients/python3/test/capabilities.py clients/python3/test/run.sh clients/python3/test/runtests.py gdk/gdk_batop.c monetdb5/ChangeLog.Feb2013 monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out monetdb5/modules/mal/mal_mapi.c monetdb5/optimizer/opt_support.c monetdb5/optimizer/opt_wrapper.c sql/backends/monet5/UDF/Tests/udf-fuse.stable.out sql/backends/monet5/UDF/Tests/udf-reverse.stable.out sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out sql/test/mapi/Tests/python2_test_monetdb_sql.stable.err sql/test/mapi/Tests/python3_test_monetdb_sql.stable.err Branch: default Log Message:
Merge with Feb2013 branch. diffs (truncated from 630 to 300 lines): diff --git a/clients/python2/monetdb/control.py b/clients/python2/monetdb/control.py --- a/clients/python2/monetdb/control.py +++ b/clients/python2/monetdb/control.py @@ -45,6 +45,7 @@ def parse_statusline(line): return info + def isempty(result): """ raises an exception if the result is not empty""" if result != "": diff --git a/clients/python2/monetdb/sql/converters.py b/clients/python2/monetdb/sql/converters.py --- a/clients/python2/monetdb/sql/converters.py +++ b/clients/python2/monetdb/sql/converters.py @@ -50,4 +50,4 @@ class Monetizer: def convert(self, data): """ """ - return monetize.convert(data) \ No newline at end of file + return monetize.convert(data) diff --git a/clients/python2/monetdb/sql/monetize.py b/clients/python2/monetdb/sql/monetize.py --- a/clients/python2/monetdb/sql/monetize.py +++ b/clients/python2/monetdb/sql/monetize.py @@ -79,4 +79,4 @@ def convert(data): try: return mapping[type(data)](data) except KeyError: - raise ProgrammingError("type %s not supported as value" % type(data)) \ No newline at end of file + raise ProgrammingError("type %s not supported as value" % type(data)) diff --git a/clients/python2/test/capabilities.py b/clients/python2/test/capabilities.py --- a/clients/python2/test/capabilities.py +++ b/clients/python2/test/capabilities.py @@ -364,4 +364,4 @@ class DatabaseTest(unittest.TestCase): self.cursor.execute('select * from %s; select * from %s;' % (table1, table2)) result = self.cursor.fetchall() - self.assertEqual(result, [(50, 50)]) \ No newline at end of file + self.assertEqual(result, [(50, 50)]) diff --git a/clients/python2/test/control.py b/clients/python2/test/control.py --- a/clients/python2/test/control.py +++ b/clients/python2/test/control.py @@ -116,4 +116,4 @@ class TestManage(unittest.TestCase): neighbours if __name__ == '__main__': - unittest.main() \ No newline at end of file + unittest.main() diff --git a/clients/python2/test/dbapi20.py b/clients/python2/test/dbapi20.py --- a/clients/python2/test/dbapi20.py +++ b/clients/python2/test/dbapi20.py @@ -900,7 +900,6 @@ class DatabaseAPI20Test(unittest.TestCas try: cur = con.cursor() self.executeDDL1(cur) - args = {'beer': unicode('\N{latin small letter a with acute}', 'unicode-escape')} encoded = args['beer'] diff --git a/clients/python3/monetdb/sql/converters.py b/clients/python3/monetdb/sql/converters.py --- a/clients/python3/monetdb/sql/converters.py +++ b/clients/python3/monetdb/sql/converters.py @@ -50,4 +50,4 @@ class Monetizer: def convert(self, data): """ """ - return monetize.convert(data) \ No newline at end of file + return monetize.convert(data) diff --git a/clients/python3/monetdb/sql/monetize.py b/clients/python3/monetdb/sql/monetize.py --- a/clients/python3/monetdb/sql/monetize.py +++ b/clients/python3/monetdb/sql/monetize.py @@ -74,4 +74,4 @@ def convert(data): try: return mapping[type(data)](data) except KeyError: - raise ProgrammingError("type %s not supported as value" % type(data)) \ No newline at end of file + raise ProgrammingError("type %s not supported as value" % type(data)) diff --git a/clients/python3/test/capabilities.py b/clients/python3/test/capabilities.py --- a/clients/python3/test/capabilities.py +++ b/clients/python3/test/capabilities.py @@ -354,7 +354,7 @@ class DatabaseTest(unittest.TestCase): self.db_module.monetize.mapping[list] = str self.assertEqual(self.db_module.monetize.convert(t), "['list', 'test']") - def multiple_queries(self): + def test_multiple_queries(self): table1 = self.new_table_name() table2 = table1[:-1] + 'bla"' self.cursor.execute("create table %s (a int)" % table1) diff --git a/clients/python3/test/run.sh b/clients/python3/test/run.sh --- a/clients/python3/test/run.sh +++ b/clients/python3/test/run.sh @@ -7,3 +7,4 @@ export TSTPASSWORD="monetdb" export TSTDEBUG="no" nosetests ./runtests.py +nosetests ./test_control.py diff --git a/clients/python3/test/runtests.py b/clients/python3/test/runtests.py --- a/clients/python3/test/runtests.py +++ b/clients/python3/test/runtests.py @@ -95,7 +95,7 @@ if __name__ == '__main__': Test_Capabilities, Test_DBAPI20, test_pythonize.TestPythonize, - ] + ] for suite in suites: tests = unittest.TestLoader().loadTestsFromTestCase(suite) diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c --- a/gdk/gdk_batop.c +++ b/gdk/gdk_batop.c @@ -753,6 +753,7 @@ BATslice(BAT *b, BUN l, BUN h) BUN low = l; BAT *bn; BATiter bni, bi = bat_iterator(b); + oid foid; /* first oid value if oid column */ BATcheck(b, "BATslice"); if (h > BATcount(b)) @@ -808,7 +809,9 @@ BATslice(BAT *b, BUN l, BUN h) if (BATcount(bn) == 0) { bn->hdense = TRUE; BATseqbase(bn, 0); - } else if (bn->hsorted && *(oid *) BUNhloc(bni, BUNfirst(bn)) + BATcount(bn) - 1 == *(oid *) BUNhloc(bni, BUNlast(bn) - 1)) { + } else if (bn->hsorted && + (foid = *(oid *) BUNhloc(bni, BUNfirst(bn))) != oid_nil && + foid + BATcount(bn) - 1 == *(oid *) BUNhloc(bni, BUNlast(bn) - 1)) { bn->hdense = TRUE; BATseqbase(bn, *(oid *) BUNhloc(bni, BUNfirst(bn))); } @@ -820,7 +823,9 @@ BATslice(BAT *b, BUN l, BUN h) if (BATcount(bn) == 0) { bn->tdense = TRUE; BATseqbase(BATmirror(bn), 0); - } else if (bn->tsorted && *(oid *) BUNtloc(bni, BUNfirst(bn)) + BATcount(bn) - 1 == *(oid *) BUNtloc(bni, BUNlast(bn) - 1)) { + } else if (bn->tsorted && + (foid = *(oid *) BUNtloc(bni, BUNfirst(bn))) != oid_nil && + foid + BATcount(bn) - 1 == *(oid *) BUNtloc(bni, BUNlast(bn) - 1)) { bn->tdense = TRUE; BATseqbase(BATmirror(bn), *(oid *) BUNtloc(bni, BUNfirst(bn))); } diff --git a/monetdb5/ChangeLog.Feb2013 b/monetdb5/ChangeLog.Feb2013 --- a/monetdb5/ChangeLog.Feb2013 +++ b/monetdb5/ChangeLog.Feb2013 @@ -1,3 +1,6 @@ # ChangeLog file for MonetDB5 # This file is updated with Maddlog +* Tue Mar 12 2013 Sjoerd Mullender <sjo...@acm.org> +- Fixed argument parsing of mapi.reconnect() with 5 arguments. + diff --git a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out --- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out +++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out @@ -61,17 +61,17 @@ Ready. % .explain # table_name % mal # name % clob # type -% 178 # length +% 153 # length function user.s2_1{autoCommit=true}():void; -barrier X_34 := language.dataflow(); +barrier X_32 := language.dataflow(); X_2 := sql.mvc(); - (X_5:bat[:oid,:int] ,X_6:bat[:oid,:int] ,X_7:bat[:oid,:int] ) := sql.copy_from("sys":str,"ttt":str,"|":str,"\\n":str,nil:str,"null":str,"/:\\tmp/xyz":str,-1:lng,0:lng,0:int); -exit X_34; - X_9 := sql.append(X_2,"sys","ttt","a",X_5); - X_11 := sql.append(X_9,"sys","ttt","b",X_6); - X_15 := sql.append(X_11,"sys","ttt","c",X_7); - X_16 := aggr.count(X_7); - sql.affectedRows(X_15,X_16,""); + (X_13:bat[:oid,:int] ,X_14:bat[:oid,:int] ,X_15:bat[:oid,:int] ) := sql.copy_from("sys","ttt","|","\\n",nil:str,"null","/:\\tmp/xyz",-1:lng,0:lng,0); +exit X_32; + X_17 := sql.append(X_2,"sys","ttt","a",X_13); + X_19 := sql.append(X_17,"sys","ttt","b",X_14); + X_23 := sql.append(X_19,"sys","ttt","c",X_15); + X_24 := aggr.count(X_15); + sql.affectedRows(X_23,X_24,""); end s2_1; # optimizer.mitosis() # optimizer.dataflow() @@ -91,17 +91,17 @@ end s2_1; % .explain # table_name % mal # name % clob # type -% 178 # length +% 153 # length function user.s5_1{autoCommit=true}():void; -barrier X_35 := language.dataflow(); +barrier X_33 := language.dataflow(); X_2 := sql.mvc(); - (X_5:bat[:oid,:int] ,X_6:bat[:oid,:int] ,X_7:bat[:oid,:int] ) := sql.copy_from("sys":str,"ttt":str,"|":str,"\\n":str,nil:str,"null":str,"/:\\tmp/xyz":str,-1:lng,0:lng,0:int); -exit X_35; - X_9 := sql.append(X_2,"sys","ttt","a",X_5); - X_11 := sql.append(X_9,"sys","ttt","b",X_6); - X_16 := aggr.count(X_7); - X_15 := sql.append(X_11,"sys","ttt","c",X_7); - sql.affectedRows(X_15,X_16,""); + (X_13:bat[:oid,:int] ,X_14:bat[:oid,:int] ,X_15:bat[:oid,:int] ) := sql.copy_from("sys","ttt","|","\\n",nil:str,"null","/:\\tmp/xyz",-1:lng,0:lng,0); +exit X_33; + X_17 := sql.append(X_2,"sys","ttt","a",X_13); + X_19 := sql.append(X_17,"sys","ttt","b",X_14); + X_24 := aggr.count(X_15); + X_23 := sql.append(X_19,"sys","ttt","c",X_15); + sql.affectedRows(X_23,X_24,""); end s5_1; # optimizer.mitosis() # optimizer.dataflow() diff --git a/monetdb5/modules/mal/mal_mapi.c b/monetdb5/modules/mal/mal_mapi.c --- a/monetdb5/modules/mal/mal_mapi.c +++ b/monetdb5/modules/mal/mal_mapi.c @@ -851,9 +851,9 @@ SERVERreconnectWithoutAlias(Client cntxt int *key =(int*) getArgReference(stk,pci,0); str *host = (str*) getArgReference(stk,pci,1); int *port = (int*) getArgReference(stk,pci,2); - str *username = (str*) getArgReference(stk,pci,4); - str *password= (str*) getArgReference(stk,pci,5); - str *lang = (str*) getArgReference(stk,pci,6); + str *username = (str*) getArgReference(stk,pci,3); + str *password= (str*) getArgReference(stk,pci,4); + str *lang = (str*) getArgReference(stk,pci,5); int i; str msg=MAL_SUCCEED, nme= "anonymous"; diff --git a/monetdb5/optimizer/opt_support.c b/monetdb5/optimizer/opt_support.c --- a/monetdb5/optimizer/opt_support.c +++ b/monetdb5/optimizer/opt_support.c @@ -144,7 +144,7 @@ struct OPTcatalog { {"groups", 0, 0, 0, DEBUG_OPT_GROUPS}, {"aliases", 0, 0, 0, DEBUG_OPT_ALIASES}, {"cluster", 0, 0, 0, DEBUG_OPT_CLUSTER}, -{"coercion", 0, 0, 0, DEBUG_OPT_COERCION}, +{"coercions", 0, 0, 0, DEBUG_OPT_COERCION}, {"commonTerms", 0, 0, 0, DEBUG_OPT_COMMONTERMS}, {"compress", 0, 0, 0, DEBUG_OPT_COMPRESS}, {"constants", 0, 0, 0, DEBUG_OPT_CONSTANTS}, diff --git a/monetdb5/optimizer/opt_wrapper.c b/monetdb5/optimizer/opt_wrapper.c --- a/monetdb5/optimizer/opt_wrapper.c +++ b/monetdb5/optimizer/opt_wrapper.c @@ -84,7 +84,7 @@ struct{ {"aliases", &OPTaliasesImplementation}, {"centipede", &OPTcentipedeImplementation}, {"cluster", &OPTclusterImplementation}, - {"coercion", &OPTcoercionImplementation}, + {"coercions", &OPTcoercionImplementation}, {"commonTerms", &OPTcommonTermsImplementation}, {"compression", &OPTcompressionImplementation}, {"costModel", &OPTcostModelImplementation}, diff --git a/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out b/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out --- a/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out +++ b/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out @@ -27,10 +27,10 @@ Ready. % .explain # table_name % mal # name % clob # type -% 76 # length +% 72 # length function user.s0_1{autoCommit=true}(A0:bte,A1:bte):void; X_4 := udf.fuse(A0,A1); - sql.exportValue(1,".","fuse_single_value":str,"smallint",16,0,6,X_4,""); + sql.exportValue(1,".","fuse_single_value","smallint",16,0,6,X_4,""); end s0_1; # optimizer.mitosis() # optimizer.dataflow() @@ -44,10 +44,10 @@ end s0_1; % .explain # table_name % mal # name % clob # type -% 71 # length +% 67 # length function user.s1_1{autoCommit=true}(A0:sht,A1:sht):void; X_4 := udf.fuse(A0,A1); - sql.exportValue(1,".","fuse_single_value":str,"int",32,0,6,X_4,""); + sql.exportValue(1,".","fuse_single_value","int",32,0,6,X_4,""); end s1_1; #select fuse(1000,2000); % . # table_name @@ -59,10 +59,10 @@ end s1_1; % .explain # table_name % mal # name % clob # type -% 74 # length +% 70 # length function user.s2_1{autoCommit=true}(A0:int,A1:int):void; X_4 := udf.fuse(A0,A1); - sql.exportValue(1,".","fuse_single_value":str,"bigint",64,0,6,X_4,""); + sql.exportValue(1,".","fuse_single_value","bigint",64,0,6,X_4,""); end s2_1; #select fuse(1000000,2000000); % . # table_name diff --git a/sql/backends/monet5/UDF/Tests/udf-reverse.stable.out b/sql/backends/monet5/UDF/Tests/udf-reverse.stable.out --- a/sql/backends/monet5/UDF/Tests/udf-reverse.stable.out +++ b/sql/backends/monet5/UDF/Tests/udf-reverse.stable.out @@ -48,10 +48,10 @@ Ready. _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list