Changeset: 8fcd59f4a03f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8fcd59f4a03f
Modified Files:
        monetdb5/mal/mal_runtime.c
        sql/test/sysmon/Tests/sys_pause_resume_stop.SQL.py
Branch: default
Log Message:

Queries that are stopped now are marked as aborted instead of finished.


diffs (100 lines):

diff --git a/monetdb5/mal/mal_runtime.c b/monetdb5/mal/mal_runtime.c
--- a/monetdb5/mal/mal_runtime.c
+++ b/monetdb5/mal/mal_runtime.c
@@ -281,7 +281,10 @@ runtimeProfileFinish(Client cntxt, MalBl
        MT_lock_set(&mal_delayLock);
        for (i = 0; i < qsize; i++) {
                if (QRYqueue[i].stk == stk) {
-                       QRYqueue[i].status = "finished";
+                       if (QRYqueue[i].status[0] == 's')
+                               QRYqueue[i].status = "aborted";
+                       else
+                               QRYqueue[i].status = "finished";
                        QRYqueue[i].finished = time(0);
                        QRYqueue[i].workers = (int) ATOMIC_GET(&mb->workers);
                        /* give the MB upperbound by addition of 1 MB */
diff --git a/sql/test/sysmon/Tests/sys_pause_resume_stop.SQL.py 
b/sql/test/sysmon/Tests/sys_pause_resume_stop.SQL.py
--- a/sql/test/sysmon/Tests/sys_pause_resume_stop.SQL.py
+++ b/sql/test/sysmon/Tests/sys_pause_resume_stop.SQL.py
@@ -10,8 +10,10 @@ db  = os.getenv('TSTDB')
 init    =   '''
             create schema s1;
             create user u1 with password \'u1\' name \'u1\' schema s1;
+            create user u2 with password \'u2\' name \'u2\' schema s1;
             create or replace function sleep(msecs int) returns int external 
name alarm.sleep;
             grant execute on function sleep(int) to u1;
+            grant execute on function sleep(int) to u2;
             '''
 
 p_proced  = '''
@@ -45,11 +47,19 @@ u1_qry  =   '''
             select sleep(2000);
             '''
 
-status  =   '''
-            select status from queue(\'ALL\') where query like \'select 
sleep%\';
+st_paused = '''
+            select status from queue(\'u1\') where query like \'select 
sleep%\' and status = \'paused\';
             '''
 
-def execute_qry():
+st_aborted = '''
+             select status from queue(\'u2\') where query like \'select 
sleep%\';
+             '''
+
+st_aborted2 = '''
+             select status from queue() where query like \'select sleep%\';
+             '''
+# and status = \'aborted\';
+def execute_qry_1():
     with SQLTestCase() as client:
         client.connect(username = 'u1', password = 'u1')
         try:
@@ -58,6 +68,16 @@ def execute_qry():
             print(e)
             exit(1)
 
+def execute_qry_2():
+    with SQLTestCase() as client:
+        client.connect(username = 'u2', password = 'u2')
+        try:
+            client.execute(u1_qry)
+            
client.execute(st_aborted2).assertSucceeded().assertDataResultMatch([('aborted',)])
+        except OperationalError as e:
+            print(e)
+            exit(1)
+
 if __name__ == '__main__':
     with SQLTestCase() as mdb:
         mdb.connect(username="monetdb", password="monetdb")
@@ -66,20 +86,20 @@ if __name__ == '__main__':
         mdb.execute(r_proced).assertSucceeded()
         mdb.execute(s_proced).assertSucceeded()
 
-        client_proc1 = mp.Process(target=execute_qry)
+        client_proc1 = mp.Process(target=execute_qry_1)
         client_proc1.start()
 
         time.sleep(1)
         mdb.execute('call pause_sleep();').assertSucceeded()
-        
mdb.execute(status).assertSucceeded().assertDataResultMatch([('paused',)])
+        
mdb.execute(st_paused).assertSucceeded().assertDataResultMatch([('paused',)])
         mdb.execute('call resume_sleep();').assertSucceeded()
         client_proc1.join()
 
-        client_proc2 = mp.Process(target=execute_qry)
+        client_proc2 = mp.Process(target=execute_qry_2)
         client_proc2.start()
         time.sleep(1)
         mdb.execute('call stop_sleep();').assertSucceeded()
-        
mdb.execute(status).assertSucceeded().assertDataResultMatch([('finished',)])
+        
mdb.execute(st_aborted).assertSucceeded().assertDataResultMatch([('stopping',)])
         client_proc2.join()
 
         mdb.execute('drop function sleep;').assertSucceeded()
@@ -87,4 +107,5 @@ if __name__ == '__main__':
         mdb.execute('drop procedure resume_sleep;').assertSucceeded()
         mdb.execute('drop procedure stop_sleep;').assertSucceeded()
         mdb.execute('drop user u1;').assertSucceeded()
+        mdb.execute('drop user u2;').assertSucceeded()
         mdb.execute('drop schema s1;').assertSucceeded()
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to