[prev in list] [next in list] [prev in thread] [next in thread] 

List:       monetdb-checkins
Subject:    MonetDB: default - Merge with Oct2014 branch.
From:       Sjoerd Mullender <commits () monetdb ! org>
Date:       2015-01-28 15:23:40
Message-ID: hg.365833289ca9.1422458620.6315528441665844383 () monetdb2 ! cwi-incubator ! nl
[Download RAW message or body]

Changeset: 365833289ca9 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=365833289ca9
Added Files:
	sql/test/BugTracker-2015/Tests/acidity2-fail.Bug-3635.SQL.py
Modified Files:
	clients/Tests/All
	sql/storage/bat/bat_storage.c
	sql/storage/store.c
	sql/test/BugTracker-2015/Tests/All
	testing/Mtest.py.in
Branch: default
Log Message:

Merge with Oct2014 branch.


diffs (170 lines):

diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -3,7 +3,7 @@ HAVE_CFITSIO&HAVE_GEOM&HAVE_GSL&HAVE_LIB
 HAVE_CFITSIO&HAVE_GEOM&!HAVE_GSL&!HAVE_LIBR&!HAVE_SAMTOOLS&!HAVE_SPHINXCLIENT&!ENABLE_DATACELL?MAL-signatures_fits_geom
                
 !HAVE_CFITSIO&HAVE_GEOM&!HAVE_GSL&!HAVE_LIBR&!HAVE_SAMTOOLS&!HAVE_SPHINXCLIENT&!ENABLE_DATACELL?MAL-signatures_geom
                
 !HAVE_CFITSIO&!HAVE_GEOM&!HAVE_GSL&!HAVE_LIBR&!HAVE_SAMTOOLS&!HAVE_SPHINXCLIENT&!ENABLE_DATACELL?MAL-signatures_none
                
-HAVE_GEOM&HAVE_GSL&HAVE_SAMTOOLS&!ENABLE_DATACELL?SQL-dump_all
+HAVE_GEOM&HAVE_GSL&HAVE_SAMTOOLS&!ENABLE_DATACELL&!BITS32?SQL-dump_all
 HAVE_GEOM&!HAVE_GSL&!HAVE_SAMTOOLS&!ENABLE_DATACELL?SQL-dump_geom
-!HAVE_GEOM&!HAVE_GSL&!HAVE_SAMTOOLS&!ENABLE_DATACELL?SQL-dump_none
+!HAVE_GEOM&!HAVE_GSL&!HAVE_SAMTOOLS&!ENABLE_DATACELL&!BITS32?SQL-dump_none
 MERCURIAL?malcheck
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -1407,7 +1407,10 @@ empty_col(sql_column *c)
 	assert(c->data && c->base.allocated && bat->bid == 0);
 	bat->bid = bat->ibid;
 	bat->ibid = e_bat(type);
-	bat->ibase = BATcount(BBPquickdesc(bat->bid, 0));
+	bat->ibase = 0;
+	bat->cnt = BATcount(BBPquickdesc(bat->bid, 0));
+	bat->ucnt = 0;
+
 	if (bat->bid == bat->ibid)
 		bat->bid = copyBat(bat->ibid, type, 0);
 
@@ -1439,7 +1442,10 @@ empty_idx(sql_idx *i)
 	assert(i->data && i->base.allocated && bat->bid == 0);
 	bat->bid = bat->ibid;
 	bat->ibid = e_bat(type);
-	bat->ibase = BATcount(BBPquickdesc(bat->bid, 0));
+	bat->ibase = 0;
+	bat->cnt = BATcount(BBPquickdesc(bat->bid, 0));
+	bat->ucnt = 0;
+
 	if (bat->bid == bat->ibid) 
 		bat->bid = copyBat(bat->ibid, type, 0);
 
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -3050,6 +3050,7 @@ reset_table(sql_trans *tr, sql_table *ft
 			store_funcs.destroy_del(NULL, ft);
 
 		ft->base.wtime = ft->base.rtime = 0;
+		ft->cleared = 0;
 		ok = reset_changeset( tr, &ft->columns, &pft->columns, &ft->base, (resetf) \
&reset_column, (dupfunc) &column_dup);  if (ok == LOG_OK)
 			ok = reset_changeset( tr, &ft->tables, &pft->tables, &ft->base, (resetf) NULL, \
                (dupfunc) &table_find);
diff --git a/sql/test/BugTracker-2015/Tests/All b/sql/test/BugTracker-2015/Tests/All
--- a/sql/test/BugTracker-2015/Tests/All
+++ b/sql/test/BugTracker-2015/Tests/All
@@ -3,3 +3,4 @@ sharp-alias.Bug-3467
 name_conflict.Bug-3650
 prepare_unop_crash.Bug-3653
 and_or_in.Bug-3655
+acidity2-fail.Bug-3635
diff --git a/sql/test/BugTracker-2015/Tests/acidity2-fail.Bug-3635.SQL.py \
b/sql/test/BugTracker-2015/Tests/acidity2-fail.Bug-3635.SQL.py new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2015/Tests/acidity2-fail.Bug-3635.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 = '127.0.0.1',
+                               port = int(os.getenv('MAPIPORT')),
+                               username = 'monetdb',
+                               password = 'monetdb',
+                               autocommit = autocommit)
+
+def query(conn, sql):
+    cur = conn.cursor()
+    cur.execute(sql)
+    r = cur.fetchall()
+    cur.close()
+    return r
+
+def run(conn, sql):
+    print sql
+    r = conn.execute(sql)
+
+# boring setup and schema creation stuff:
+c1 = connect(True)
+run(c1, 'create table foo (a int)')
+run(c1, 'insert into foo values (1),(2),(3)')
+run(c1, 'create view bar as select * from foo')
+
+c2 = connect(True)
+run(c1, 'start transaction')
+run(c1, 'delete from foo')
+run(c1, 'drop view bar')
+run(c1, 'create view bar as select * from foo')
+run(c2, 'create table baz (a int);drop table baz')
+try:
+    run(c1, 'commit')
+    print "shouldn't get here"
+except monetdb.exceptions.OperationalError:
+    print "commit failed"
+    pass
+
+run(c1, 'insert into foo values (4),(5),(6)') # SIGABRT here
+run(c1, 'drop view bar')
+run(c1, 'drop table foo')
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -3504,24 +3504,27 @@ def main(argv) :
     except monet_options.Error:
         sys.exit(1)
 
-    if len(args) == 1 and os.path.isfile(args[0]):
+    if len(args) == 1:
         head, tail = os.path.split(args[0])
-        head, tst = os.path.split(head)
-        if tst != 'Tests':
-            ErrXit("%s: not a valid test name" % args[0])
-        args = [head]
-        if tail != 'All':
-            for ext in ('_s00.malC', '_p00.malC', '_s00.mal', '_s00.sql',
-                        '_p00.sql', '.MAL.py', '.SQL.py', '.malC', '.mal',
-                        '.sql', '.py', '.R', ''):
-                if tail.endswith(ext + '.in'):
-                    args.append(tail[:-len(ext + '.in')])
-                    break
-                if tail.endswith(ext):
-                    args.append(tail[:-len(ext)])
-                    break
-            else:
+        if os.path.isfile(args[0]):
+            head, tst = os.path.split(head)
+            if tst != 'Tests':
                 ErrXit("%s: not a valid test name" % args[0])
+            args = [head]
+            if tail != 'All':
+                for ext in ('_s00.malC', '_p00.malC', '_s00.mal', '_s00.sql',
+                            '_p00.sql', '.MAL.py', '.SQL.py', '.malC', '.mal',
+                            '.sql', '.py', '.R', ''):
+                    if tail.endswith(ext + '.in'):
+                        args.append(tail[:-len(ext + '.in')])
+                        break
+                    if tail.endswith(ext):
+                        args.append(tail[:-len(ext)])
+                        break
+                else:
+                    ErrXit("%s: not a valid test name" % args[0])
+        elif head and tail and os.path.isdir(head) and tail != 'Tests' and \
os.path.isdir(os.path.join(head, 'Tests')): +            args = [head, tail]
 
     config = opts.get('config', '')
     if config:
@@ -4255,6 +4258,10 @@ if __name__ == "__main__":
             from MonetDBtesting import trace
         t = trace.Trace(trace=1, count=0, \
ignoremods=('ntpath','monet_options','Mfilter','re', 'sre_parse', 'sre_compile'))  \
t.runfunc(main, sys.argv) +    elif '--debug' in sys.argv:
+        sys.argv.remove('--debug')
+        import pdb
+        pdb.run('main(sys.argv)')
     else:
         main(sys.argv)
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic