Changeset: c8c707d17417 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c8c707d17417
Modified Files:
        testing/sqllogictest.py
Branch: mtest
Log Message:

check for rowcount in sqllogic


diffs (56 lines):

diff --git a/testing/sqllogictest.py b/testing/sqllogictest.py
--- a/testing/sqllogictest.py
+++ b/testing/sqllogictest.py
@@ -144,12 +144,12 @@ class SQLLogic:
             except pymonetdb.Error:
                 pass
 
-    def exec_statement(self, statement, expectok, err_stmt=None, 
expected_err_code=None, expected_err_msg=None):
+    def exec_statement(self, statement, expectok, err_stmt=None, 
expected_err_code=None, expected_err_msg=None, expected_rowcount=None):
         if skipidx.search(statement) is not None:
             # skip creation of ascending or descending index
             return
         try:
-            self.crs.execute(statement)
+            affected_rowcount = self.crs.execute(statement)
         except (pymonetdb.Error, ValueError) as e:
             msg = e.args[0]
             if not expectok:
@@ -169,6 +169,9 @@ class SQLLogic:
                 return
         else:
             if expectok:
+                if expected_rowcount:
+                    if expected_rowcount != affected_rowcount:
+                        self.query_error(err_stmt or statement, "statement was 
expecting to succeed with {} rows but received {} 
rows!".format(expected_rowcount, affected_rowcount))
                 return
             msg = None
         self.query_error(err_stmt or statement, expectok and "statement was 
expected to succeed but didn't" or "statement was expected to fail but didn't", 
msg)
@@ -386,9 +389,14 @@ class SQLLogic:
             elif line[0] == 'statement':
                 expected_err_code = None
                 expected_err_msg = None
+                expected_rowcount = None
                 expectok = line[1] == 'ok'
                 if len(line) > 2:
-                    expected_err_code, expected_err_msg = 
utils.parse_mapi_err_msg(line[2])
+                    if expectok:
+                        if line[2] == 'rowcount':
+                            expected_rowcount = int(line[3])
+                    else:
+                        expected_err_code, expected_err_msg = 
utils.parse_mapi_err_msg(line[2])
                 statement = []
                 self.qline = self.line + 1
                 while True:
@@ -399,9 +407,9 @@ class SQLLogic:
                 if not skipping:
                     if is_copyfrom_stmt(statement):
                         stmt, stmt_less_data = prepare_copyfrom_stmt(statement)
-                        self.exec_statement(stmt, expectok, 
err_stmt=stmt_less_data, expected_err_code=expected_err_code, 
expected_err_msg=expected_err_msg)
+                        self.exec_statement(stmt, expectok, 
err_stmt=stmt_less_data, expected_err_code=expected_err_code, 
expected_err_msg=expected_err_msg, expected_rowcount=expected_rowcount)
                     else:
-                        self.exec_statement('\n'.join(statement), expectok, 
expected_err_code=expected_err_code, expected_err_msg=expected_err_msg)
+                        self.exec_statement('\n'.join(statement), expectok, 
expected_err_code=expected_err_code, expected_err_msg=expected_err_msg, 
expected_rowcount=expected_rowcount)
             elif line[0] == 'query':
                 columns = line[1]
                 pyscript = None
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to