MonetDB: 2PC - keep a 'inflight' precommit_id in the global tran...

2016-09-21 Thread Niels Nes
Changeset: 92fece8ebda9 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=92fece8ebda9
Modified Files:
sql/storage/store.c
sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py
Branch: 2PC
Log Message:

keep a 'inflight' precommit_id in the global transaction. This
is the only precommit which can continue. And during that
phase no other transactions can start a precommit.


diffs (87 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -3157,6 +3157,22 @@ rollforward_trans(sql_trans *tr, int mod
return ok;
 }
 
+/* 2PC
+ * Concurrent precommit's can currently not be handled. This because we use
+ * the per column, table, schema, transaction timestamps for the apply (in 
memory 
+ * update of all structures including the BATS). Therefor we now have a global
+ * flag indicating that a pre-commit has happend and we are waiting until
+ * the persistcommit. 
+ *
+ * Improvements over this (too) simple scheme are
+ * 1) Add a timeout after which we will again failback to allowing new
+ * pre-commits etc. Problem is we cannot ever apply the pending pre-commit.
+ *
+ * 2) Have a list of in-flight precommits, each with a non overlapping
+ * set of updated tables. This would (at least) allow for concurrent
+ * different table updates and inserts.
+ * 2PC
+ */
 static int
 validate_tables(sql_schema *s, sql_schema *os)
 {
@@ -3475,8 +3491,11 @@ sql_trans_validate(sql_trans *tr)
 {
node *n;
 
+   /* We cannot handle other outstanding precommits */
+   if (tr->parent == gtrans && gtrans->precommit_id)
+   return 0;
+
/* depends on the iso level */
-
if (tr->schema_number != store_schema_number())
return 0;
 
@@ -3574,6 +3593,8 @@ sql_trans_precommit(sql_trans *tr)
if (result == LOG_OK)
result = logger_funcs.log_tend();
tr->schema_number = store_schema_number();
+   /* Mark current precommit in flight */
+   gtrans->precommit_id = tr->precommit_id;
return (result==LOG_OK)?SQL_OK:SQL_ERR;
}
return (result==LOG_OK)?SQL_OK:SQL_ERR;
@@ -3595,8 +3616,10 @@ sql_trans_persistcommit(sql_trans *tr)
if (result == LOG_OK) {
/* Mark the transaction as globally persisted as well */
result = logger_funcs.log_persist_precommit(tr->precommit_id);
+   assert(tr->precommit_id == gtrans->precommit_id);
+   gtrans->precommit_id = 0;
}
-return (result==LOG_OK)?SQL_OK:SQL_ERR;
+   return (result==LOG_OK)?SQL_OK:SQL_ERR;
 }
 
 int
diff --git a/sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py 
b/sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py
--- a/sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py
+++ b/sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py
@@ -38,11 +38,20 @@ run(c2, 'INSERT INTO htmtest VALUES (5, 
 #run(c3, 'INSERT INTO htmtest VALUES (6, 60)')
 
 run(c2, 'CALL precommit(2)')
-run(c1, 'CALL precommit(1)')
+try:
+run(c1, 'CALL precommit(1)')
+except:
+print "precommit failed\n"
 #run(c3, 'CALL precommit(3)')
 
-run(c1, 'CALL persistcommit(1)')
+try:
+run(c1, 'CALL persistcommit(1)')
+except:
+print "persistcommit failed\n"
 run(c2, 'CALL persistcommit(2)')
 
-query(c1, 'SELECT * FROM htmtest')
+try:
+query(c1, 'SELECT * FROM htmtest')
+except:
+print "select fails on aborted transaction\n"
 query(c2, 'SELECT * FROM htmtest')
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Approved: no wrd.

2016-09-21 Thread Sjoerd Mullender
Changeset: c25581ba4a11 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c25581ba4a11
Modified Files:

sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
Branch: default
Log Message:

Approved: no wrd.


diffs (26 lines):

diff --git 
a/sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
 
b/sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
--- 
a/sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
+++ 
b/sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
@@ -87,19 +87,19 @@ Ready.
 #SELECT count(distinct "anno_mese") FROM "sys"."farmap_movimento";
 % sys.L1 # table_name
 % L1 # name
-% wrd # type
+% bigint # type
 % 1 # length
 [ 0]
 #SELECT count(distinct "articolo_id") FROM "sys"."farmap_movimento";
 % sys.L1 # table_name
 % L1 # name
-% wrd # type
+% bigint # type
 % 1 # length
 [ 0]
 #SELECT count(distinct "farmacia_id") FROM "sys"."farmap_movimento";
 % sys.L1 # table_name
 % L1 # name
-% wrd # type
+% bigint # type
 % 1 # length
 [ 0]
 #DROP TABLE "sys"."farmap_movimento";
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Change test conditionals so that tests are ru...

2016-09-21 Thread Sjoerd Mullender
Changeset: b24332ecf609 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b24332ecf609
Modified Files:
clients/Tests/All
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/SQL-dump.stable.out
clients/Tests/SQL-dump.stable.out.int128
sql/test/Tests/All
sql/test/Tests/systemfunctions.stable.out
sql/test/Tests/systemfunctions.stable.out.int128
sql/test/leaks/Tests/All
sql/test/leaks/Tests/check0.stable.out
sql/test/leaks/Tests/check0.stable.out.int128
sql/test/leaks/Tests/check1.stable.out
sql/test/leaks/Tests/check1.stable.out.int128
sql/test/leaks/Tests/check2.stable.out
sql/test/leaks/Tests/check2.stable.out.int128
sql/test/leaks/Tests/check3.stable.out
sql/test/leaks/Tests/check3.stable.out.int128
sql/test/leaks/Tests/check4.stable.out
sql/test/leaks/Tests/check4.stable.out.int128
sql/test/leaks/Tests/check5.stable.out
sql/test/leaks/Tests/check5.stable.out.int128
sql/test/leaks/Tests/drop3.stable.out
Branch: default
Log Message:

Change test conditionals so that tests are run if HAVE_LIDAR holds.


diffs (truncated from 1174 to 300 lines):

diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -1,4 +1,4 @@
 exports
-HAVE_FITS_GEOM_GSL_LIBPY_LIBR&!HAVE_LIDAR_NETCDF_SAMTOOLS_SHP_SPHINXCLIENT?MAL-signatures
-!BITS32_FITS_GEOM_GSL&!HAVE_LIDAR_NETCDF_PCRE_SHP_SAMTOOLS?SQL-dump
+HAVE_FITS_GEOM_GSL_LIBPY_LIBR_LIDAR_NETCDF_SAMTOOLS_SHP_SPHINXCLIENT?MAL-signatures
+!BITS32_FITS_GEOM_GSL_LIDAR_NETCDF_PCRE_SHP_SAMTOOLS?SQL-dump
 MERCURIAL?malcheck
diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -7850,6 +7850,10 @@ Ready.
 [ "language",  "register", "pattern 
language.register(m:str,f:str,code:str,help:str):void ",   
"CMDregisterFunction;", "Compile the code string to MAL and register it as a 
function." ]
 [ "language",  "sink", "pattern language.sink(v:any...):void ",
"MALgarbagesink;",  "Variables to be considered together when triggering 
garbage collection.\nUsed in the dataflow blocks to avoid early release of 
values."]
 [ "language",  "source",   "pattern language.source(f:str):void ", 
"CMDevalFile;", "Merge the instructions stored in the file with the current 
program."   ]
+[ "lidar", "attach",   "pattern lidar.attach(fname:str):void ",
"LIDARattach;", "Open a LIDAR file and return catalog of the table HDUs"
]
+[ "lidar", "export",   "pattern 
lidar.export(tablename:str,fname:str,type:str):void ", "LIDARexportTable;",
"Exporta LIDAR table to a LAS/LAZ file" ]
+[ "lidar", "load", "pattern lidar.load(tablename:str):void ",  
"LIDARloadTable;",  "Load a LIDAR table from an attached file"  ]
+[ "lidar", "prelude",  "command lidar.prelude():void ",
"LIDARprelude;",""  ]
 [ "lsst",  "angsep",   "command 
lsst.angsep(ra1:dbl,dec1:dbl,ra2:dbl,dec2:dbl):dbl ",  "qserv_angSep;",
"Returns the angular separation in degrees between two spherical\ncoordinate 
pairs (ra1,dec1) and (ra2,dec2)"   ]
 [ "lsst",  "ptinsphbox",   "command 
lsst.ptinsphbox(ra:dbl,dec:dbl,ra_min:dbl,dec_min:dbl,ra_max:dbl,dec_max:dbl):int
 ",   "qserv_ptInSphBox;","Returns 1 if the given spherical 
longitude/latitude box contains the given position"   ]
 [ "lsst",  "ptinsphcircle","command 
lsst.ptinsphcircle(ra:dbl,dec:dbl,ra_cen:dbl,dec_cen:dbl,radius:dbl):int ",
"qserv_ptInSphCircle;", "Returns 1 if the given spherical longitude/latitude 
circle contains the given position"]
@@ -8706,30 +8710,8 @@ Ready.
 [ "zrule", "define",   "command 
zrule.define(m:int,d:int,w:int,h:int,min:int):zrule ", "MTIMEruleDef0;",   
"Introduce a synomym timezone rule."]
 [ "zrule", "define",   "command 
zrule.define(m:int,d:str,w:int,h:int,min:int):zrule ", "MTIMEruleDef1;",   
"Introduce a synomym timezone rule."]
 [ "zrule", "define",   "command 
zrule.define(m:int,d:str,w:int,min:int):zrule ",   "MTIMEruleDef2;",   
"Introduce a synomym timezone rule."]
-pattern optimizer.emptycolumn(mod:str,fcn:str):str 
-address OPTwrapper;
-comment Evaluate empty set expressions.
 
-pattern optimizer.emptycolumn():str 
-address OPTwrapper;
-pattern 
sql.emptycolumn(mvc:int,schema:str,table:str,column:str,access:int,part_nr:int,nr_parts:int)
 (uid:bat[:oid],uval:bat[:any_1]) 
-address mvc_bind_wrap;
-pattern 
sql.emptycolumn(mvc:int,schema:str,table:str,column:str,access:int,part_nr:int,nr_parts:int):bat[:any_1]
 
-address mvc_bind_wrap;
-pattern sql.emptycolumn(mvc:int,schema:str,table:str,column:str,access:int) 

MonetDB: default - Approval after changeset 7b86ab677ca7.

2016-09-21 Thread Sjoerd Mullender
Changeset: fed0282a9df5 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fed0282a9df5
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
Branch: default
Log Message:

Approval after changeset 7b86ab677ca7.


diffs (30 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -8642,8 +8642,10 @@ Ready.
 [ "url",   "url",  "command url.url(s:str):url ",  "URLnew;",  "Create 
an URL from a string literal"   ]
 [ "url",   "url",  "command url.url(s:url):url ",  "URLnoop;", "Create 
an URL from a string literal"   ]
 [ "user",  "main", "function user.main():void;",   "", ""  ]
+[ "user",  "main", "function user.main():void;",   "", ""  ]
+[ "user",  "main", "function user.main():void;",   "", ""  ]
+[ "user",  "main", "function user.main():void;",   "", ""  ]
 [ "user",  "s2_1", "function user.s2_1():void;",   "", ""  ]
-[ "user",  "sql.init", "function user.sql.init():void;",   "", 
""  ]
 [ "uuid",  "#cmp", "command uuid.#cmp():void ","UUIDcompare;", ""  
]
 [ "uuid",  "#fromstr", "command uuid.#fromstr():void ",
"UUIDfromString;",  ""  ]
 [ "uuid",  "#hash","command uuid.#hash():void ",   "UUIDhash;",
""  ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -11012,8 +11012,10 @@ Ready.
 [ "url",   "url",  "command url.url(s:str):url ",  "URLnew;",  "Create 
an URL from a string literal"   ]
 [ "url",   "url",  "command url.url(s:url):url ",  "URLnoop;", "Create 
an URL from a string literal"   ]
 [ "user",  "main", "function user.main():void;",   "", ""  ]
+[ "user",  "main", "function user.main():void;",   "", ""  ]
+[ "user",  "main", "function user.main():void;",   "", ""  ]
+[ "user",  "main", "function user.main():void;",   "", ""  ]
 [ "user",  "s2_1", "function user.s2_1():void;",   "", ""  ]
-[ "user",  "sql.init", "function user.sql.init():void;",   "", 
""  ]
 [ "uuid",  "#cmp", "command uuid.#cmp():void ","UUIDcompare;", ""  
]
 [ "uuid",  "#fromstr", "command uuid.#fromstr():void ",
"UUIDfromString;",  ""  ]
 [ "uuid",  "#hash","command uuid.#hash():void ",   "UUIDhash;",
""  ]
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


monetdb-java: default - Use . instead of source for compatibilit...

2016-09-21 Thread Sjoerd Mullender
Changeset: f9ac0f845338 for monetdb-java
URL: http://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=f9ac0f845338
Modified Files:
Makefile
Branch: default
Log Message:

Use . instead of source for compatibility with older shells.


diffs (12 lines):

diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@ all: src/main/java/nl/cwi/monetdb/jdbc/M
cd tests; ant -f build.xml jar_jdbctests
 
 src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java: build.properties 
src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in
-   source ./build.properties; sed -e 
"s/@MCL_MAJOR@/$$MCL_MAJOR/g;s/@MCL_MINOR@/$$MCL_MINOR/g;s/@JDBC_MAJOR@/$$JDBC_MAJOR/g;s/@JDBC_MINOR@/$$JDBC_MINOR/g;s/@JDBC_VER_SUFFIX@/$$JDBC_VER_SUFFIX
 $$buildno/g;s/@JDBC_DEF_PORT@/$$JDBC_DEF_PORT/g" 
src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in > 
src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java
+   . ./build.properties; sed -e 
"s/@MCL_MAJOR@/$$MCL_MAJOR/g;s/@MCL_MINOR@/$$MCL_MINOR/g;s/@JDBC_MAJOR@/$$JDBC_MAJOR/g;s/@JDBC_MINOR@/$$JDBC_MINOR/g;s/@JDBC_VER_SUFFIX@/$$JDBC_VER_SUFFIX
 $$buildno/g;s/@JDBC_DEF_PORT@/$$JDBC_DEF_PORT/g" 
src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in > 
src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java
 
 clean:
rm -f src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - reset the default function name in MSresetCli...

2016-09-21 Thread Niels Nes
Changeset: 7b86ab677ca7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7b86ab677ca7
Modified Files:
monetdb5/mal/mal_session.c
sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
Branch: default
Log Message:

reset the default function name in MSresetClientPrg


diffs (103 lines):

diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -97,6 +97,8 @@ MSresetClientPrg(Client cntxt)
p->gc = 0;
p->retc = 1;
p->argc = 1;
+   setModuleId(p, putName("user"));
+   setFunctionId(p, putName("main"));
/* remove any MAL history */
if (mb->history) {
freeMalBlk(mb->history);
diff --git a/sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out 
b/sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
--- a/sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
+++ b/sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
@@ -73,37 +73,56 @@ end user.s6_1;
 % .explain # table_name
 % mal # name
 % clob # type
-% 93 # length
-function user.s8_1():void;
-X_34:void := querylog.define("explain select x*x from 
sf_2596114;","sequential_pipe",16);
-X_18 := bat.new(nil:str);
-X_25 := bat.append(X_18,"sys.L");
-X_20 := bat.new(nil:str);
-X_27 := bat.append(X_20,"sql_mul_x");
-X_21 := bat.new(nil:str);
-X_29 := bat.append(X_21,"double");
-X_22 := bat.new(nil:int);
-X_31 := bat.append(X_22,53);
-X_24 := bat.new(nil:int);
-X_33 := bat.append(X_24,0);
-X_13 := bat.new(nil:dbl);
-X_14:bat[:dbl] := batcalc.*(X_13,X_13);
-sql.resultSet(X_25,X_27,X_29,X_31,X_33,X_14);
-end user.s8_1;
-#inline   actions= 0 time=3 usec 
-#candidates   actions= 1 time=16 usec 
-#remapactions= 1 time=27 usec 
-#costModelactions= 1 time=13 usec 
-#coercionsactions= 0 time=2 usec 
-#evaluate actions= 0 time=3 usec 
-#emptybindactions= 0 time=4 usec 
-#pushselect   actions= 0 time=3 usec 
-#aliases  actions= 1 time=16 usec 
-#mergetable   actions= 0 time=21 usec 
-#deadcode actions= 2 time=15 usec 
-#aliases  actions= 0 time=4 usec 
-#constantsactions= 0 time=6 usec 
-#commonTerms  actions= 0 time=4 usec 
+% 55 # length
+function user.main():void;
+X_725 := bat.new(nil:str);
+X_732 := bat.append(X_725,"sys.L");
+X_727 := bat.new(nil:str);
+X_734 := bat.append(X_727,"power_x");
+X_728 := bat.new(nil:str);
+X_736 := bat.append(X_728,"double");
+X_729 := bat.new(nil:int);
+X_738 := bat.append(X_729,53);
+X_731 := bat.new(nil:int);
+X_740 := bat.append(X_731,0);
+X_718 := bat.new(nil:dbl);
+X_721:bat[:dbl] := batmmath.pow(X_718,2);
+sql.resultSet(X_732,X_734,X_736,X_738,X_740,X_721);
+end user.main;
+#inline   actions= 0 time=2 usec 
+#remapactions= 1 time=15 usec 
+#costmodelactions= 1 time=2 usec 
+#coercion actions= 1 time=8 usec 
+#evaluate actions= 0 time=5 usec 
+#emptybindactions= 5 time=21 usec 
+#aliases  actions= 1 time=8 usec 
+#mergetable   actions= 0 time=41 usec 
+#deadcode actions= 6 time=11 usec 
+#aliases  actions= 0 time=5 usec 
+#constantsactions= 0 time=8 usec 
+#commonTerms  actions= 0 time=6 usec 
+#projectionpath   actions= 0 time=5 usec 
+#reorder  actions= 1 time=29 usec 
+#deadcode actions= 0 time=7 usec 
+#reduce   actions=34 time=14 usec 
+#matpack  actions= 0 time=4 usec 
+#multiplexactions= 0 time=3 usec 
+#profiler actions= 1 time=1 usec 
+#candidates   actions= 1 time=1 usec 
+#garbagecollector actions= 1 time=13 usec 
+#totalactions= 1 time=336 usec 
+#inline   actions= 0 time=1 usec 
+#remapactions= 0 time=4 usec 
+#costmodelactions= 1 time=1 usec 
+#coercion actions= 0 time=2 usec 
+#evaluate actions= 0 time=4 usec 
+#emptybindactions= 0 time=8 usec 
+#aliases  actions= 0 time=5 usec 
+#mergetable   actions= 0 time=40 usec 
+#deadcode actions= 0 time=8 usec 
+#aliases  actions= 0 time=5 usec 
+#constantsactions= 0 time=3 usec 
+#commonTerms  actions= 0 time=5 usec 
 #projectionpath   actions= 0 time=4 usec 
 #reorder  actions= 1 time=24 usec 
 #deadcode actions= 0 time=5 usec 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - fix compilation on osx 10.12

2016-09-21 Thread Hannes Muehleisen
Changeset: 696d9567db67 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=696d9567db67
Modified Files:
configure.ag
Branch: default
Log Message:

fix compilation on osx 10.12


diffs (12 lines):

diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -2510,7 +2510,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
 #checks for library functions
 AS_CASE([$host],
-   [*-darwin1[[012345]]*], [
+   [*-darwin1[[0123456]]*], [
# OSX 10.6 (Snow Leopard) and up somehow makes
# configure believe that fdatasync exists, in
# reality however, it does not on this platform.
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: 2PC - Add test for conflicting updates

2016-09-21 Thread Panagiotis Koutsourakis
Changeset: 976fd94c269e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=976fd94c269e
Added Files:
sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py
Modified Files:
sql/test/2-phase-commit/Tests/All
Branch: 2PC
Log Message:

Add test for conflicting updates


diffs (61 lines):

diff --git a/sql/test/2-phase-commit/Tests/All 
b/sql/test/2-phase-commit/Tests/All
--- a/sql/test/2-phase-commit/Tests/All
+++ b/sql/test/2-phase-commit/Tests/All
@@ -28,3 +28,4 @@ PersistBeforePrecommit-1
 PersistBeforePrecommit-2
 PersistBeforePrecommitWithRollback-1
 PersistBeforePrecommitWithRollback-2
+TwoPrecommits
diff --git a/sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py 
b/sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/2-phase-commit/Tests/TwoPrecommits.SQL.py
@@ -0,0 +1,48 @@
+try:
+from MonetDBtesting import process
+except ImportError:
+import process
+
+import sys, time, monetdb.sql, os
+
+
+def connect(autocommit):
+return monetdb.sql.connect(database = os.getenv('TSTDB'),
+   hostname = 'localhost',
+   port = int(os.getenv('MAPIPORT')),
+   username = 'monetdb',
+   password = 'monetdb',
+   autocommit = autocommit)
+
+def query(conn, sql):
+print(sql)
+cur = conn.cursor()
+cur.execute(sql)
+r = cur.fetchall()
+cur.close()
+print(r)
+
+def run(conn, sql):
+print(sql)
+r = conn.execute(sql)
+print(r)
+
+
+c1 = connect(False)
+run(c1, 'INSERT INTO htmtest VALUES (4, 40)')
+
+c2 = connect(False)
+run(c2, 'INSERT INTO htmtest VALUES (5, 50)')
+
+#c3 = connect(False)
+#run(c3, 'INSERT INTO htmtest VALUES (6, 60)')
+
+run(c2, 'CALL precommit(2)')
+run(c1, 'CALL precommit(1)')
+#run(c3, 'CALL precommit(3)')
+
+run(c1, 'CALL persistcommit(1)')
+run(c2, 'CALL persistcommit(2)')
+
+query(c1, 'SELECT * FROM htmtest')
+query(c2, 'SELECT * FROM htmtest')
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Removed Java (JDBC) code: it's now in its own...

2016-09-21 Thread Sjoerd Mullender
Changeset: 2d91ed794054 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2d91ed794054
Removed Files:
java/ChangeLog
java/ChangeLog-Archive
java/ChangeLog.Jun2016
java/Makefile.ag
java/SQLSTATEs
java/build.properties
java/build.xml
java/example/MJDBCTest.java
java/example/PreparedExample.java
java/example/SQLImport.java
java/example/SQLcopyinto.java
java/jdbc-3_0-fr-spec.pdf
java/jdbc4.0-fr-spec.pdf
java/pom.xml
java/release.txt
java/src/main/java/nl/cwi/monetdb/client/JMonetDB.java
java/src/main/java/nl/cwi/monetdb/client/JdbcClient.java
java/src/main/java/nl/cwi/monetdb/jdbc/MonetBlob.java
java/src/main/java/nl/cwi/monetdb/jdbc/MonetClob.java
java/src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java
java/src/main/java/nl/cwi/monetdb/jdbc/MonetDataSource.java
java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java
java/src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in
java/src/main/java/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java
java/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java
java/src/main/java/nl/cwi/monetdb/jdbc/MonetSavepoint.java
java/src/main/java/nl/cwi/monetdb/jdbc/MonetStatement.java
java/src/main/java/nl/cwi/monetdb/jdbc/MonetWrapper.java
java/src/main/java/nl/cwi/monetdb/jdbc/types/INET.java
java/src/main/java/nl/cwi/monetdb/jdbc/types/URL.java
java/src/main/java/nl/cwi/monetdb/mcl/MCLException.java
java/src/main/java/nl/cwi/monetdb/mcl/io/BufferedMCLReader.java
java/src/main/java/nl/cwi/monetdb/mcl/io/BufferedMCLWriter.java
java/src/main/java/nl/cwi/monetdb/mcl/net/MapiSocket.java
java/src/main/java/nl/cwi/monetdb/mcl/parser/HeaderLineParser.java
java/src/main/java/nl/cwi/monetdb/mcl/parser/MCLParseException.java
java/src/main/java/nl/cwi/monetdb/mcl/parser/MCLParser.java
java/src/main/java/nl/cwi/monetdb/mcl/parser/StartOfHeaderParser.java
java/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java
java/src/main/java/nl/cwi/monetdb/merovingian/Control.java
java/src/main/java/nl/cwi/monetdb/merovingian/MerovingianException.java
java/src/main/java/nl/cwi/monetdb/merovingian/SabaothDB.java
java/src/main/java/nl/cwi/monetdb/util/CmdLineOpts.java
java/src/main/java/nl/cwi/monetdb/util/Exporter.java
java/src/main/java/nl/cwi/monetdb/util/Extract.java
java/src/main/java/nl/cwi/monetdb/util/OptionsException.java
java/src/main/java/nl/cwi/monetdb/util/SQLExporter.java
java/src/main/java/nl/cwi/monetdb/util/SQLRestore.java
java/src/main/java/nl/cwi/monetdb/util/XMLExporter.java
java/tests/BugConcurrent_clients_SF_1504657.java
java/tests/BugConcurrent_sequences.java
java/tests/BugDatabaseMetaData_Bug_3356.java
java/tests/BugDecimalRound_Bug_3561.java
java/tests/Makefile.ag
java/tests/Test_Cautocommit.java
java/tests/Test_Cforkbomb.java
java/tests/Test_CisValid.java
java/tests/Test_Clargequery.java
java/tests/Test_Cmanycon.java
java/tests/Test_Creplysize.java
java/tests/Test_Csavepoints.java
java/tests/Test_Csendthread.java
java/tests/Test_Ctransaction.java
java/tests/Test_Dobjects.java
java/tests/Test_FetchSize.java
java/tests/Test_Int128.java
java/tests/Test_PSgeneratedkeys.java
java/tests/Test_PSgetObject.java
java/tests/Test_PSlargeamount.java
java/tests/Test_PSlargebatchval.java
java/tests/Test_PSlargeresponse.java
java/tests/Test_PSmanycon.java
java/tests/Test_PSmetadata.java
java/tests/Test_PSsomeamount.java
java/tests/Test_PSsqldata.java
java/tests/Test_PStimedate.java
java/tests/Test_PStimezone.java
java/tests/Test_PStypes.java
java/tests/Test_Rbooleans.java
java/tests/Test_Rmetadata.java
java/tests/Test_Rpositioning.java
java/tests/Test_Rsqldata.java
java/tests/Test_Rtimedate.java
java/tests/Test_Sbatching.java
java/tests/Test_Smoreresults.java
java/tests/build.properties
java/tests/build.xml
java/tests/drop.sql
java/version.sh
Modified Files:
Makefile.ag
MonetDB.spec
NT/rules.msc
buildtools/autogen/autogen/am.py
buildtools/autogen/autogen/msc.py
buildtools/doc/HowToRelease.rst
buildtools/doc/windowsbuild.rst
configure.ag
debian/rules
testing/Mtest.py.in
Branch: default
Log Message:

Removed Java (JDBC) code: it's now in its own repository.
See http://dev.monetdb.org/hg/monetdb-java/ or
ssh://h...@dev.monetdb.org/monetdb-java/.


diffs (truncated from 27594 to 

MonetDB: default - Simplify code.

2016-09-21 Thread Sjoerd Mullender
Changeset: e6e32756ad31 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e6e32756ad31
Modified Files:
monetdb5/modules/kernel/bat5.c
Branch: default
Log Message:

Simplify code.


diffs (38 lines):

diff --git a/monetdb5/modules/kernel/bat5.c b/monetdb5/modules/kernel/bat5.c
--- a/monetdb5/modules/kernel/bat5.c
+++ b/monetdb5/modules/kernel/bat5.c
@@ -216,27 +216,18 @@ BKCmirror(bat *ret, const bat *bid)
 {
BAT *b, *bn;
 
+   *ret = 0;
if ((b = BATdescriptor(*bid)) == NULL) {
throw(MAL, "bat.mirror", RUNTIME_OBJECT_MISSING);
}
bn = BATdense(b->hseqbase, b->hseqbase, BATcount(b));
-   if (bn != NULL) {
-   if (b->batRestricted == BAT_WRITE) {
-   BAT *bn1;
-   bn1 = COLcopy(bn, bn->ttype, FALSE, TRANSIENT);
-   BBPreclaim(bn);
-   bn = bn1;
-   }
-   if (bn != NULL) {
-   *ret = bn->batCacheid;
-   BBPkeepref(*ret);
-   BBPunfix(b->batCacheid);
-   return MAL_SUCCEED;
-   }
+   BBPunfix(b->batCacheid);
+   if (bn == NULL) {
+   throw(MAL, "bat.mirror", GDK_EXCEPTION);
}
-   *ret = 0;
-   BBPunfix(b->batCacheid);
-   throw(MAL, "bat.mirror", GDK_EXCEPTION);
+   *ret = bn->batCacheid;
+   BBPkeepref(*ret);
+   return MAL_SUCCEED;
 }
 
 char *
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Updated package names.

2016-09-21 Thread Sjoerd Mullender
Changeset: 02ee5ca94354 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=02ee5ca94354
Modified Files:
debian/control
Branch: default
Log Message:

Updated package names.


diffs (14 lines):

diff --git a/debian/control b/debian/control
--- a/debian/control
+++ b/debian/control
@@ -135,8 +135,8 @@ Package: monetdb-client-testing
 Architecture: any
 Depends: ${shlibs:Depends}, libmonetdb-client-odbc (= ${source:Version}),
  monetdb5-server (= ${source:Version}),
- perl-monetdb-client (> 11.24.0),
- php-monetdb-client (> 11.24.0),
+ libdbd-monetdb-perl (>= 1.0),
+ php-monetdb (>= 1.0),
  python-monetdb (>= 1.0),
  monetdb5-sql (= ${source:Version})
 Description: MonetDB client testing tools
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list