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

make sure we compare counts after the sqllogic.filter is applied


diffs (43 lines):

diff --git a/testing/sqllogictest.py b/testing/sqllogictest.py
--- a/testing/sqllogictest.py
+++ b/testing/sqllogictest.py
@@ -10,7 +10,7 @@
 # onlyif <system>
 
 # statement (ok|error)
-# query (I|T|R)+ (nosort|rowsort|valuesort)? [arg]
+# query (I|T|R)+ (nosort|rowsort|valuesort|python)? [arg]
 #       I: integer; T: text (string); R: real (decimal)
 #       nosort: do not sort
 #       rowsort: sort rows
@@ -237,7 +237,7 @@ class SQLLogic:
             if len(self.crs.description) != len(columns):
                 self.query_error(query, 'received {} columns, expected {} 
columns'.format(len(self.crs.description), len(columns)), data=data)
                 return False
-        if self.crs.rowcount * len(columns) != nresult:
+        if sorting != 'python' and self.crs.rowcount * len(columns) != nresult:
             self.query_error(query, 'received {} rows, expected {} 
rows'.format(self.crs.rowcount, nresult // len(columns)), data=data)
             return False
         if self.res is not None:
@@ -296,6 +296,21 @@ class SQLLogic:
                 except:
                     self.query_error(query, 'filter function failed')
                     err = True
+            ncols = 1
+            if (len(data)):
+                ncols = len(data[0])
+            if len(data)*ncols != nresult:
+                self.query_error(query, 'received {} rows, expected {} 
rows'.format(len(data)*ncols, nresult), data=data)
+                return False
+            for row in data:
+                for col in row:
+                    if expected is not None:
+                        if col != expected[i]:
+                            self.query_error(query, 'unexpected value; 
received "%s", expected "%s"' % (col, expected[i]), data=data)
+                            err = True
+                        i += 1
+                    m.update(bytes(col, encoding='ascii'))
+                    m.update(b'\n')
         else:
             if sorting == 'rowsort':
                 data.sort()
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to