From 4d280e02b03b57020119b7a5857b735eb5682cac Mon Sep 17 00:00:00 2001
From: Salvo 'LtWorf' Tomaselli <tiposchi@tiscali.it>
Date: Mon, 24 Aug 2020 18:37:55 +0200
Subject: [PATCH] Keep tests in json format

So the results are typed
---
 driver.py                                     |  2 +-
 tests_dir/a_join_a.result                     | 10 +---------
 tests_dir/a_joinf_a.result                    | 10 +---------
 tests_dir/a_joinl_a.result                    | 10 +---------
 tests_dir/a_joinr_a.result                    | 10 +---------
 tests_dir/c_not_python.result                 |  5 +----
 tests_dir/c_programmers.result                |  7 +------
 tests_dir/dates.result                        |  7 +------
 tests_dir/dates_sel.result                    |  4 +---
 tests_dir/fixed_len_name.result               | 13 +-----------
 tests_dir/full_join.result                    | 20 +------------------
 tests_dir/intersection1.result                |  3 +--
 tests_dir/intersection2.result                |  3 +--
 tests_dir/java_and_perl.result                |  4 +---
 tests_dir/join.result                         | 18 +----------------
 tests_dir/left_join.result                    | 19 +-----------------
 tests_dir/max_rating_in_age_range.result      |  3 +--
 tests_dir/maxdate.result                      |  3 +--
 tests_dir/name_age.result                     | 10 +---------
 tests_dir/older_than_boss.result              |  8 +-------
 tests_dir/par1.result                         |  2 +-
 tests_dir/par2.result                         |  2 +-
 tests_dir/par3.result                         |  2 +-
 tests_dir/par4.result                         |  2 +-
 tests_dir/people.result                       | 10 +---------
 tests_dir/people_fjoin_personroom.result      | 10 +---------
 tests_dir/people_join_personroom.result       | 10 +---------
 tests_dir/people_join_rooms.result            | 14 +------------
 ...ple_join_select_args_on_both_tables.result |  3 +--
 tests_dir/people_rename.result                | 10 +---------
 tests_dir/people_rename_select.result         |  6 +-----
 ...phones_of_people_with_personal_room.result |  3 +--
 tests_dir/php.result                          |  3 +--
 tests_dir/python_and_c.result                 |  4 +---
 tests_dir/quot1.result                        |  2 +-
 tests_dir/redoundant_union_select.result      |  3 +--
 tests_dir/right_join.result                   | 19 +-----------------
 tests_dir/select_join.result                  |  3 +--
 tests_dir/select_join_opt.result              |  4 +---
 tests_dir/select_people_join_rooms.query      |  2 +-
 tests_dir/select_people_join_rooms.result     |  6 +-----
 tests_dir/skill_of_best_person.result         |  5 +----
 tests_dir/subtraction1.result                 |  9 +--------
 tests_dir/subtraction2.result                 |  2 +-
 tests_dir/swap_fields.result                  | 10 +---------
 tests_dir/union1.result                       |  5 +----
 tests_dir/union2.result                       | 10 +---------
 tests_dir/union3.result                       | 10 +---------
 tests_dir/union4.result                       | 10 +---------
 tests_dir/union_and_select.result             |  5 +----
 tests_dir/union_join.result                   |  9 +--------
 tests_dir/union_not_select.result             |  4 +---
 tests_dir/union_or_select.result              |  4 +---
 tests_dir/union_projection.result             |  9 +--------
 tests_dir/younger.result                      |  3 +--
 55 files changed, 55 insertions(+), 329 deletions(-)

diff --git a/driver.py b/driver.py
index acdb381..19f8d06 100755
--- a/driver.py
+++ b/driver.py
@@ -239,7 +239,7 @@ def run_test(testname):
     o_result = None
 
     try:
-        result_rel = relation.Relation.load_csv('%s%s.result' % (tests_path, testname))
+        result_rel = relation.Relation.load('%s%s.result' % (tests_path, testname))
 
         query = readfile('%s%s.query' % (tests_path, testname)).strip()
         o_query = optimizer.optimize_all(query, rels)
diff --git a/tests_dir/a_join_a.result b/tests_dir/a_join_a.result
index 7081477..d99d273 100644
--- a/tests_dir/a_join_a.result
+++ b/tests_dir/a_join_a.result
@@ -1,9 +1 @@
-id,name,chief,age
-0,jack,0,22
-1,carl,0,20
-2,john,1,30
-3,dean,1,33
-4,eve,0,25
-5,duncan,4,30
-6,paul,4,30
-7,alia,1,28
+{"content": [[1, "carl", 0, 20], [2, "john", 1, 30], [3, "dean", 1, 33], [5, "duncan", 4, 30], [0, "jack", 0, 22], [4, "eve", 0, 25], [6, "paul", 4, 30], [7, "alia", 1, 28]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/a_joinf_a.result b/tests_dir/a_joinf_a.result
index 7081477..d99d273 100644
--- a/tests_dir/a_joinf_a.result
+++ b/tests_dir/a_joinf_a.result
@@ -1,9 +1 @@
-id,name,chief,age
-0,jack,0,22
-1,carl,0,20
-2,john,1,30
-3,dean,1,33
-4,eve,0,25
-5,duncan,4,30
-6,paul,4,30
-7,alia,1,28
+{"content": [[1, "carl", 0, 20], [2, "john", 1, 30], [3, "dean", 1, 33], [5, "duncan", 4, 30], [0, "jack", 0, 22], [4, "eve", 0, 25], [6, "paul", 4, 30], [7, "alia", 1, 28]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/a_joinl_a.result b/tests_dir/a_joinl_a.result
index 7081477..d99d273 100644
--- a/tests_dir/a_joinl_a.result
+++ b/tests_dir/a_joinl_a.result
@@ -1,9 +1 @@
-id,name,chief,age
-0,jack,0,22
-1,carl,0,20
-2,john,1,30
-3,dean,1,33
-4,eve,0,25
-5,duncan,4,30
-6,paul,4,30
-7,alia,1,28
+{"content": [[1, "carl", 0, 20], [2, "john", 1, 30], [3, "dean", 1, 33], [5, "duncan", 4, 30], [0, "jack", 0, 22], [4, "eve", 0, 25], [6, "paul", 4, 30], [7, "alia", 1, 28]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/a_joinr_a.result b/tests_dir/a_joinr_a.result
index 7081477..d99d273 100644
--- a/tests_dir/a_joinr_a.result
+++ b/tests_dir/a_joinr_a.result
@@ -1,9 +1 @@
-id,name,chief,age
-0,jack,0,22
-1,carl,0,20
-2,john,1,30
-3,dean,1,33
-4,eve,0,25
-5,duncan,4,30
-6,paul,4,30
-7,alia,1,28
+{"content": [[1, "carl", 0, 20], [2, "john", 1, 30], [3, "dean", 1, 33], [5, "duncan", 4, 30], [0, "jack", 0, 22], [4, "eve", 0, 25], [6, "paul", 4, 30], [7, "alia", 1, 28]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/c_not_python.result b/tests_dir/c_not_python.result
index 1899391..ac17b22 100644
--- a/tests_dir/c_not_python.result
+++ b/tests_dir/c_not_python.result
@@ -1,4 +1 @@
-name
-eve
-john
-duncan
+{"content": [["eve"], ["john"], ["duncan"]], "header": ["name"]}
\ No newline at end of file
diff --git a/tests_dir/c_programmers.result b/tests_dir/c_programmers.result
index 34d340e..ffb1e0f 100644
--- a/tests_dir/c_programmers.result
+++ b/tests_dir/c_programmers.result
@@ -1,6 +1 @@
-id,name,chief,age,skill
-2,john,1,30,C
-7,alia,1,28,C
-5,duncan,4,30,C
-0,jack,0,22,C
-4,eve,0,25,C
+{"content": [[5, "duncan", 4, 30, "C"], [0, "jack", 0, 22, "C"], [4, "eve", 0, 25, "C"], [2, "john", 1, 30, "C"], [7, "alia", 1, 28, "C"]], "header": ["id", "name", "chief", "age", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/dates.result b/tests_dir/dates.result
index ae3bab8..0eb7080 100644
--- a/tests_dir/dates.result
+++ b/tests_dir/dates.result
@@ -1,6 +1 @@
-"date"
-"2008-12-12"
-"2007-08-12"
-"1985-05-09"
-"1988-4-21"
-"1992-7-27"
\ No newline at end of file
+{"content": [[{"day": 12, "year": 2008, "month": 12}], [{"day": 9, "year": 1985, "month": 5}], [{"day": 21, "year": 1988, "month": 4}], [{"day": 27, "year": 1992, "month": 7}], [{"day": 12, "year": 2007, "month": 8}]], "header": ["date"]}
\ No newline at end of file
diff --git a/tests_dir/dates_sel.result b/tests_dir/dates_sel.result
index e6ff89a..79308c1 100644
--- a/tests_dir/dates_sel.result
+++ b/tests_dir/dates_sel.result
@@ -1,3 +1 @@
-date
-2008-12-12
-2007-08-12
+{"content": [[{"day": 12, "year": 2008, "month": 12}], [{"day": 12, "year": 2007, "month": 8}]], "header": ["date"]}
\ No newline at end of file
diff --git a/tests_dir/fixed_len_name.result b/tests_dir/fixed_len_name.result
index dccd9b3..9577ecd 100644
--- a/tests_dir/fixed_len_name.result
+++ b/tests_dir/fixed_len_name.result
@@ -1,12 +1 @@
-id,name,chief,age,skill
-2,john,1,30,C
-7,alia,1,28,C
-1,carl,0,20,C++
-2,john,1,30,PHP
-7,alia,1,28,Python
-3,dean,1,33,C++
-7,alia,1,28,PHP
-0,jack,0,22,Python
-1,carl,0,20,Python
-0,jack,0,22,C
-1,carl,0,20,System Admin
+{"content": [[3, "dean", 1, 33, "C++"], [2, "john", 1, 30, "PHP"], [1, "carl", 0, 20, "C++"], [1, "carl", 0, 20, "Python"], [2, "john", 1, 30, "C"], [0, "jack", 0, 22, "Python"], [7, "alia", 1, 28, "Python"], [7, "alia", 1, 28, "PHP"], [1, "carl", 0, 20, "System Admin"], [0, "jack", 0, 22, "C"], [7, "alia", 1, 28, "C"]], "header": ["id", "name", "chief", "age", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/full_join.result b/tests_dir/full_join.result
index 79fb045..436320a 100644
--- a/tests_dir/full_join.result
+++ b/tests_dir/full_join.result
@@ -1,19 +1 @@
-id,skill,name,chief,age
-4,C++,eve,0,25
-4,C,eve,0,25
-7,C,alia,1,28
-9,Java,---,---,---
-0,Python,jack,0,22
-5,C,duncan,4,30
-4,Perl,eve,0,25
-2,C,john,1,30
-1,Python,carl,0,20
-5,Perl,duncan,4,30
-6,---,paul,4,30
-2,PHP,john,1,30
-0,C,jack,0,22
-7,Python,alia,1,28
-1,System Admin,carl,0,20
-7,PHP,alia,1,28
-1,C++,carl,0,20
-3,C++,dean,1,33
+{"content": [[7, "C", "alia", 1, 28], [2, "PHP", "john", 1, 30], [4, "C++", "eve", 0, 25], [7, "Python", "alia", 1, 28], [6, null, "paul", 4, 30], [0, "Python", "jack", 0, 22], [2, "C", "john", 1, 30], [1, "Python", "carl", 0, 20], [1, "System Admin", "carl", 0, 20], [3, "C++", "dean", 1, 33], [5, "Perl", "duncan", 4, 30], [5, "C", "duncan", 4, 30], [7, "PHP", "alia", 1, 28], [1, "C++", "carl", 0, 20], [0, "C", "jack", 0, 22], [9, "Java", null, null, null], [4, "C", "eve", 0, 25], [4, "Perl", "eve", 0, 25]], "header": ["id", "skill", "name", "chief", "age"]}
diff --git a/tests_dir/intersection1.result b/tests_dir/intersection1.result
index 09dd8f0..a81c6b3 100644
--- a/tests_dir/intersection1.result
+++ b/tests_dir/intersection1.result
@@ -1,2 +1 @@
-id,name,chief,age
-4,eve,0,25
+{"content": [[4, "eve", 0, 25]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/intersection2.result b/tests_dir/intersection2.result
index 09dd8f0..a81c6b3 100644
--- a/tests_dir/intersection2.result
+++ b/tests_dir/intersection2.result
@@ -1,2 +1 @@
-id,name,chief,age
-4,eve,0,25
+{"content": [[4, "eve", 0, 25]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/java_and_perl.result b/tests_dir/java_and_perl.result
index 02755db..b7c8870 100644
--- a/tests_dir/java_and_perl.result
+++ b/tests_dir/java_and_perl.result
@@ -1,3 +1 @@
-name
-duncan
-eve
+{"content": [["eve"], ["duncan"]], "header": ["name"]}
\ No newline at end of file
diff --git a/tests_dir/join.result b/tests_dir/join.result
index 07cd4a7..e9f6d38 100644
--- a/tests_dir/join.result
+++ b/tests_dir/join.result
@@ -1,17 +1 @@
-id,name,chief,age,skill
-2,john,1,30,C
-7,alia,1,28,C
-4,eve,0,25,C++
-4,eve,0,25,C
-5,duncan,4,30,Perl
-1,carl,0,20,C++
-7,alia,1,28,PHP
-7,alia,1,28,Python
-3,dean,1,33,C++
-1,carl,0,20,Python
-2,john,1,30,PHP
-0,jack,0,22,Python
-0,jack,0,22,C
-1,carl,0,20,System Admin
-4,eve,0,25,Perl
-5,duncan,4,30,C
+{"content": [[2, "john", 1, 30, "PHP"], [5, "duncan", 4, 30, "Perl"], [2, "john", 1, 30, "C"], [4, "eve", 0, 25, "Perl"], [1, "carl", 0, 20, "System Admin"], [3, "dean", 1, 33, "C++"], [4, "eve", 0, 25, "C++"], [1, "carl", 0, 20, "C++"], [1, "carl", 0, 20, "Python"], [0, "jack", 0, 22, "Python"], [7, "alia", 1, 28, "Python"], [5, "duncan", 4, 30, "C"], [7, "alia", 1, 28, "PHP"], [4, "eve", 0, 25, "C"], [0, "jack", 0, 22, "C"], [7, "alia", 1, 28, "C"]], "header": ["id", "name", "chief", "age", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/left_join.result b/tests_dir/left_join.result
index 75b24c4..fc40eaa 100644
--- a/tests_dir/left_join.result
+++ b/tests_dir/left_join.result
@@ -1,18 +1 @@
-id,name,chief,age,skill
-2,john,1,30,C
-7,alia,1,28,C
-4,eve,0,25,C++
-6,paul,4,30,---
-5,duncan,4,30,Perl
-1,carl,0,20,C++
-7,alia,1,28,PHP
-4,eve,0,25,C
-7,alia,1,28,Python
-3,dean,1,33,C++
-1,carl,0,20,Python
-2,john,1,30,PHP
-0,jack,0,22,Python
-0,jack,0,22,C
-1,carl,0,20,System Admin
-4,eve,0,25,Perl
-5,duncan,4,30,C
+{"content": [[2, "john", 1, 30, "PHP"], [5, "duncan", 4, 30, "Perl"], [2, "john", 1, 30, "C"], [6, "paul", 4, 30, null], [4, "eve", 0, 25, "Perl"], [1, "carl", 0, 20, "System Admin"], [3, "dean", 1, 33, "C++"], [4, "eve", 0, 25, "C++"], [1, "carl", 0, 20, "C++"], [1, "carl", 0, 20, "Python"], [0, "jack", 0, 22, "Python"], [7, "alia", 1, 28, "Python"], [5, "duncan", 4, 30, "C"], [7, "alia", 1, 28, "PHP"], [4, "eve", 0, 25, "C"], [0, "jack", 0, 22, "C"], [7, "alia", 1, 28, "C"]], "header": ["id", "name", "chief", "age", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/max_rating_in_age_range.result b/tests_dir/max_rating_in_age_range.result
index 5d1f9f3..91eed6b 100644
--- a/tests_dir/max_rating_in_age_range.result
+++ b/tests_dir/max_rating_in_age_range.result
@@ -1,2 +1 @@
-id,name,chief,age,rating
-1,carl,0,20,6
+{"content": [[1, "carl", 0, 20, 6]], "header": ["id", "name", "chief", "age", "rating"]}
\ No newline at end of file
diff --git a/tests_dir/maxdate.result b/tests_dir/maxdate.result
index bde2e23..3a82e18 100644
--- a/tests_dir/maxdate.result
+++ b/tests_dir/maxdate.result
@@ -1,2 +1 @@
-date
-2008-12-12
+{"content": [[{"day": 12, "year": 2008, "month": 12}]], "header": ["date"]}
\ No newline at end of file
diff --git a/tests_dir/name_age.result b/tests_dir/name_age.result
index c9cc9bf..606e89a 100644
--- a/tests_dir/name_age.result
+++ b/tests_dir/name_age.result
@@ -1,9 +1 @@
-name,age
-eve,25
-dean,33
-carl,20
-paul,30
-john,30
-jack,22
-duncan,30
-alia,28
+{"content": [["eve", 25], ["duncan", 30], ["paul", 30], ["carl", 20], ["alia", 28], ["dean", 33], ["jack", 22], ["john", 30]], "header": ["name", "age"]}
\ No newline at end of file
diff --git a/tests_dir/older_than_boss.result b/tests_dir/older_than_boss.result
index 92af55b..555a259 100644
--- a/tests_dir/older_than_boss.result
+++ b/tests_dir/older_than_boss.result
@@ -1,7 +1 @@
-name,age,chief_name,chief_age
-dean,33,carl,20
-alia,28,carl,20
-paul,30,eve,25
-eve,25,jack,22
-john,30,carl,20
-duncan,30,eve,25
+{"content": [["dean", 33, "carl", 20], ["duncan", 30, "eve", 25], ["john", 30, "carl", 20], ["alia", 28, "carl", 20], ["eve", 25, "jack", 22], ["paul", 30, "eve", 25]], "header": ["name", "age", "chief_name", "chief_age"]}
\ No newline at end of file
diff --git a/tests_dir/par1.result b/tests_dir/par1.result
index 9d637aa..f2109d1 100644
--- a/tests_dir/par1.result
+++ b/tests_dir/par1.result
@@ -1 +1 @@
-id,name,chief,age
+{"content": [], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/par2.result b/tests_dir/par2.result
index 9d637aa..f2109d1 100644
--- a/tests_dir/par2.result
+++ b/tests_dir/par2.result
@@ -1 +1 @@
-id,name,chief,age
+{"content": [], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/par3.result b/tests_dir/par3.result
index 9d637aa..f2109d1 100644
--- a/tests_dir/par3.result
+++ b/tests_dir/par3.result
@@ -1 +1 @@
-id,name,chief,age
+{"content": [], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/par4.result b/tests_dir/par4.result
index 9d637aa..f2109d1 100644
--- a/tests_dir/par4.result
+++ b/tests_dir/par4.result
@@ -1 +1 @@
-id,name,chief,age
+{"content": [], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/people.result b/tests_dir/people.result
index 7081477..d99d273 100644
--- a/tests_dir/people.result
+++ b/tests_dir/people.result
@@ -1,9 +1 @@
-id,name,chief,age
-0,jack,0,22
-1,carl,0,20
-2,john,1,30
-3,dean,1,33
-4,eve,0,25
-5,duncan,4,30
-6,paul,4,30
-7,alia,1,28
+{"content": [[1, "carl", 0, 20], [2, "john", 1, 30], [3, "dean", 1, 33], [5, "duncan", 4, 30], [0, "jack", 0, 22], [4, "eve", 0, 25], [6, "paul", 4, 30], [7, "alia", 1, 28]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/people_fjoin_personroom.result b/tests_dir/people_fjoin_personroom.result
index 2501391..49c0aa9 100644
--- a/tests_dir/people_fjoin_personroom.result
+++ b/tests_dir/people_fjoin_personroom.result
@@ -1,9 +1 @@
-id,name,chief,age,room
-0,jack,0,22,1
-1,carl,0,20,4
-2,john,1,30,2
-3,dean,1,33,2
-4,eve,0,25,5
-5,duncan,4,30,1
-6,paul,4,30,5
-7,alia,1,28,1
+{"content": [[5, "duncan", 4, 30, 1], [4, "eve", 0, 25, 5], [0, "jack", 0, 22, 1], [2, "john", 1, 30, 2], [1, "carl", 0, 20, 4], [6, "paul", 4, 30, 5], [7, "alia", 1, 28, 1], [3, "dean", 1, 33, 2]], "header": ["id", "name", "chief", "age", "room"]}
\ No newline at end of file
diff --git a/tests_dir/people_join_personroom.result b/tests_dir/people_join_personroom.result
index 2501391..49c0aa9 100644
--- a/tests_dir/people_join_personroom.result
+++ b/tests_dir/people_join_personroom.result
@@ -1,9 +1 @@
-id,name,chief,age,room
-0,jack,0,22,1
-1,carl,0,20,4
-2,john,1,30,2
-3,dean,1,33,2
-4,eve,0,25,5
-5,duncan,4,30,1
-6,paul,4,30,5
-7,alia,1,28,1
+{"content": [[5, "duncan", 4, 30, 1], [4, "eve", 0, 25, 5], [0, "jack", 0, 22, 1], [2, "john", 1, 30, 2], [1, "carl", 0, 20, 4], [6, "paul", 4, 30, 5], [7, "alia", 1, 28, 1], [3, "dean", 1, 33, 2]], "header": ["id", "name", "chief", "age", "room"]}
\ No newline at end of file
diff --git a/tests_dir/people_join_rooms.result b/tests_dir/people_join_rooms.result
index 108efc3..1e59835 100644
--- a/tests_dir/people_join_rooms.result
+++ b/tests_dir/people_join_rooms.result
@@ -1,13 +1 @@
-id,name,chief,age,room,phone
-0,jack,0,22,1,1516
-1,carl,0,20,4,1041
-2,john,1,30,2,1617
-3,dean,1,33,2,1617
-4,eve,0,25,5,9212
-5,duncan,4,30,1,1516
-6,paul,4,30,5,9212
-7,alia,1,28,1,1516
----,---,---,---,"0","1515"
----,---,---,---,"3","1601"
----,---,---,---,"6","1424"
----,---,---,---,"7","1294"
+{"content": [[0, "jack", 0, 22, 1, 1516], [null, null, null, null, 6, 1424], [null, null, null, null, 3, 1601], [7, "alia", 1, 28, 1, 1516], [2, "john", 1, 30, 2, 1617], [3, "dean", 1, 33, 2, 1617], [5, "duncan", 4, 30, 1, 1516], [4, "eve", 0, 25, 5, 9212], [1, "carl", 0, 20, 4, 1041], [null, null, null, null, 0, 1515], [null, null, null, null, 7, 1294], [6, "paul", 4, 30, 5, 9212]], "header": ["id", "name", "chief", "age", "room", "phone"]}
diff --git a/tests_dir/people_join_select_args_on_both_tables.result b/tests_dir/people_join_select_args_on_both_tables.result
index 57c4154..5e5d414 100644
--- a/tests_dir/people_join_select_args_on_both_tables.result
+++ b/tests_dir/people_join_select_args_on_both_tables.result
@@ -1,2 +1 @@
-id,name,chief,age,skill
-0,jack,0,22,C
+{"content": [[0, "jack", 0, 22, "C"]], "header": ["id", "name", "chief", "age", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/people_rename.result b/tests_dir/people_rename.result
index 6e4a1ba..5b734ec 100644
--- a/tests_dir/people_rename.result
+++ b/tests_dir/people_rename.result
@@ -1,9 +1 @@
-id,n,chief,a
-0,jack,0,22
-1,carl,0,20
-2,john,1,30
-3,dean,1,33
-4,eve,0,25
-5,duncan,4,30
-6,paul,4,30
-7,alia,1,28
+{"content": [[1, "carl", 0, 20], [2, "john", 1, 30], [3, "dean", 1, 33], [5, "duncan", 4, 30], [0, "jack", 0, 22], [4, "eve", 0, 25], [6, "paul", 4, 30], [7, "alia", 1, 28]], "header": ["id", "n", "chief", "a"]}
\ No newline at end of file
diff --git a/tests_dir/people_rename_select.result b/tests_dir/people_rename_select.result
index 83a690c..00e30c9 100644
--- a/tests_dir/people_rename_select.result
+++ b/tests_dir/people_rename_select.result
@@ -1,5 +1 @@
-i,name,chief,age
-0,jack,0,22
-2,john,1,30
-4,eve,0,25
-6,paul,4,30
+{"content": [[4, "eve", 0, 25], [6, "paul", 4, 30], [2, "john", 1, 30], [0, "jack", 0, 22]], "header": ["i", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/phones_of_people_with_personal_room.result b/tests_dir/phones_of_people_with_personal_room.result
index ebd829a..d6d6901 100644
--- a/tests_dir/phones_of_people_with_personal_room.result
+++ b/tests_dir/phones_of_people_with_personal_room.result
@@ -1,2 +1 @@
-phone,name
-1041,carl
+{"content": [[1041, "carl"]], "header": ["phone", "name"]}
\ No newline at end of file
diff --git a/tests_dir/php.result b/tests_dir/php.result
index 15b2bff..b6d5f4d 100644
--- a/tests_dir/php.result
+++ b/tests_dir/php.result
@@ -1,2 +1 @@
-id,name,chief,age,skill
-7,alia,1,28,PHP
+{"content": [[7, "alia", 1, 28, "PHP"]], "header": ["id", "name", "chief", "age", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/python_and_c.result b/tests_dir/python_and_c.result
index 6eb3d0c..ad43f00 100644
--- a/tests_dir/python_and_c.result
+++ b/tests_dir/python_and_c.result
@@ -1,3 +1 @@
-name
-jack
-alia
+{"content": [["alia"], ["jack"]], "header": ["name"]}
\ No newline at end of file
diff --git a/tests_dir/quot1.result b/tests_dir/quot1.result
index 9d637aa..f2109d1 100644
--- a/tests_dir/quot1.result
+++ b/tests_dir/quot1.result
@@ -1 +1 @@
-id,name,chief,age
+{"content": [], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/redoundant_union_select.result b/tests_dir/redoundant_union_select.result
index 9408a8d..a575600 100644
--- a/tests_dir/redoundant_union_select.result
+++ b/tests_dir/redoundant_union_select.result
@@ -1,2 +1 @@
-id,name,chief,age
-2,john,1,30
+{"content": [[2, "john", 1, 30]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/right_join.result b/tests_dir/right_join.result
index e8ef0bd..19cbcd1 100644
--- a/tests_dir/right_join.result
+++ b/tests_dir/right_join.result
@@ -1,18 +1 @@
-id,skill,name,chief,age
-4,C++,eve,0,25
-2,C,john,1,30
-1,Python,carl,0,20
-4,C,eve,0,25
-1,C++,carl,0,20
-7,C,alia,1,28
-9,Java,---,---,---
-2,PHP,john,1,30
-0,Python,jack,0,22
-4,Perl,eve,0,25
-5,C,duncan,4,30
-7,Python,alia,1,28
-1,System Admin,carl,0,20
-5,Perl,duncan,4,30
-7,PHP,alia,1,28
-0,C,jack,0,22
-3,C++,dean,1,33
+{"content": [[7, "C", "alia", 1, 28], [2, "PHP", "john", 1, 30], [4, "C++", "eve", 0, 25], [7, "Python", "alia", 1, 28], [0, "Python", "jack", 0, 22], [2, "C", "john", 1, 30], [1, "Python", "carl", 0, 20], [1, "System Admin", "carl", 0, 20], [3, "C++", "dean", 1, 33], [5, "Perl", "duncan", 4, 30], [5, "C", "duncan", 4, 30], [7, "PHP", "alia", 1, 28], [1, "C++", "carl", 0, 20], [0, "C", "jack", 0, 22], [9, "Java", null, null, null], [4, "C", "eve", 0, 25], [4, "Perl", "eve", 0, 25]], "header": ["id", "skill", "name", "chief", "age"]}
diff --git a/tests_dir/select_join.result b/tests_dir/select_join.result
index 51a573d..ec573ee 100644
--- a/tests_dir/select_join.result
+++ b/tests_dir/select_join.result
@@ -1,2 +1 @@
-id,skill,name,chief,age
-3,C++,dean,1,33
+{"content": [[3, "C++", "dean", 1, 33]], "header": ["id", "skill", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/select_join_opt.result b/tests_dir/select_join_opt.result
index 8a76bff..8bc0c50 100644
--- a/tests_dir/select_join_opt.result
+++ b/tests_dir/select_join_opt.result
@@ -1,3 +1 @@
-id,name,chief,age,skill
-0,jack,0,22,C
-4,eve,0,25,C
+{"content": [[4, "eve", 0, 25, "C"], [0, "jack", 0, 22, "C"]], "header": ["id", "name", "chief", "age", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/select_people_join_rooms.query b/tests_dir/select_people_join_rooms.query
index 2336072..3a22f62 100644
--- a/tests_dir/select_people_join_rooms.query
+++ b/tests_dir/select_people_join_rooms.query
@@ -1 +1 @@
-σid=='---' (people⧓person_room ⧓ rooms)
+σ id is None (people⧓person_room ⧓ rooms)
diff --git a/tests_dir/select_people_join_rooms.result b/tests_dir/select_people_join_rooms.result
index 82eb158..64924d3 100644
--- a/tests_dir/select_people_join_rooms.result
+++ b/tests_dir/select_people_join_rooms.result
@@ -1,5 +1 @@
-id,name,chief,age,room,phone
----,---,---,---,"0","1515"
----,---,---,---,"3","1601"
----,---,---,---,"6","1424"
----,---,---,---,"7","1294"
+{"content": [[null, null, null, null, 0, 1515], [null, null, null, null, 7, 1294], [null, null, null, null, 3, 1601], [null, null, null, null, 6, 1424]], "header": ["id", "name", "chief", "age", "room", "phone"]}
\ No newline at end of file
diff --git a/tests_dir/skill_of_best_person.result b/tests_dir/skill_of_best_person.result
index 5d07f7d..a671f53 100644
--- a/tests_dir/skill_of_best_person.result
+++ b/tests_dir/skill_of_best_person.result
@@ -1,4 +1 @@
-name,age,skill
-eve,25,Perl
-eve,25,C
-eve,25,C++
+{"content": [["eve", 25, "C++"], ["eve", 25, "C"], ["eve", 25, "Perl"]], "header": ["name", "age", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/subtraction1.result b/tests_dir/subtraction1.result
index 6dc5c97..bd1f905 100644
--- a/tests_dir/subtraction1.result
+++ b/tests_dir/subtraction1.result
@@ -1,8 +1 @@
-id,name,chief,age
-3,dean,1,33
-6,paul,4,30
-2,john,1,30
-0,jack,0,22
-7,alia,1,28
-1,carl,0,20
-5,duncan,4,30
+{"content": [[3, "dean", 1, 33], [5, "duncan", 4, 30], [1, "carl", 0, 20], [0, "jack", 0, 22], [2, "john", 1, 30], [6, "paul", 4, 30], [7, "alia", 1, 28]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/subtraction2.result b/tests_dir/subtraction2.result
index 9d637aa..f2109d1 100644
--- a/tests_dir/subtraction2.result
+++ b/tests_dir/subtraction2.result
@@ -1 +1 @@
-id,name,chief,age
+{"content": [], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/swap_fields.result b/tests_dir/swap_fields.result
index 7081477..d99d273 100644
--- a/tests_dir/swap_fields.result
+++ b/tests_dir/swap_fields.result
@@ -1,9 +1 @@
-id,name,chief,age
-0,jack,0,22
-1,carl,0,20
-2,john,1,30
-3,dean,1,33
-4,eve,0,25
-5,duncan,4,30
-6,paul,4,30
-7,alia,1,28
+{"content": [[1, "carl", 0, 20], [2, "john", 1, 30], [3, "dean", 1, 33], [5, "duncan", 4, 30], [0, "jack", 0, 22], [4, "eve", 0, 25], [6, "paul", 4, 30], [7, "alia", 1, 28]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/union1.result b/tests_dir/union1.result
index dea402b..4d5f28e 100644
--- a/tests_dir/union1.result
+++ b/tests_dir/union1.result
@@ -1,4 +1 @@
-id,name,chief,age
-7,alia,1,28
-4,eve,0,25
-0,jack,0,22
+{"content": [[4, "eve", 0, 25], [0, "jack", 0, 22], [7, "alia", 1, 28]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/union2.result b/tests_dir/union2.result
index 0c5da4e..d99d273 100644
--- a/tests_dir/union2.result
+++ b/tests_dir/union2.result
@@ -1,9 +1 @@
-id,name,chief,age
-3,dean,1,33
-6,paul,4,30
-2,john,1,30
-0,jack,0,22
-7,alia,1,28
-1,carl,0,20
-4,eve,0,25
-5,duncan,4,30
+{"content": [[1, "carl", 0, 20], [2, "john", 1, 30], [3, "dean", 1, 33], [5, "duncan", 4, 30], [0, "jack", 0, 22], [4, "eve", 0, 25], [6, "paul", 4, 30], [7, "alia", 1, 28]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/union3.result b/tests_dir/union3.result
index 0c5da4e..d99d273 100644
--- a/tests_dir/union3.result
+++ b/tests_dir/union3.result
@@ -1,9 +1 @@
-id,name,chief,age
-3,dean,1,33
-6,paul,4,30
-2,john,1,30
-0,jack,0,22
-7,alia,1,28
-1,carl,0,20
-4,eve,0,25
-5,duncan,4,30
+{"content": [[1, "carl", 0, 20], [2, "john", 1, 30], [3, "dean", 1, 33], [5, "duncan", 4, 30], [0, "jack", 0, 22], [4, "eve", 0, 25], [6, "paul", 4, 30], [7, "alia", 1, 28]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/union4.result b/tests_dir/union4.result
index 7081477..d99d273 100644
--- a/tests_dir/union4.result
+++ b/tests_dir/union4.result
@@ -1,9 +1 @@
-id,name,chief,age
-0,jack,0,22
-1,carl,0,20
-2,john,1,30
-3,dean,1,33
-4,eve,0,25
-5,duncan,4,30
-6,paul,4,30
-7,alia,1,28
+{"content": [[1, "carl", 0, 20], [2, "john", 1, 30], [3, "dean", 1, 33], [5, "duncan", 4, 30], [0, "jack", 0, 22], [4, "eve", 0, 25], [6, "paul", 4, 30], [7, "alia", 1, 28]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/union_and_select.result b/tests_dir/union_and_select.result
index 98379d8..c79100e 100644
--- a/tests_dir/union_and_select.result
+++ b/tests_dir/union_and_select.result
@@ -1,4 +1 @@
-id,skill
-0,C
-2,C
-4,C
+{"content": [[2, "C"], [0, "C"], [4, "C"]], "header": ["id", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/union_join.result b/tests_dir/union_join.result
index df2f9b0..e28ef51 100644
--- a/tests_dir/union_join.result
+++ b/tests_dir/union_join.result
@@ -1,8 +1 @@
-id,name,chief,age,skill
-4,eve,0,25,C
-5,duncan,4,30,C
-2,john,1,30,C
-7,alia,1,28,C
-4,eve,0,25,Perl
-5,duncan,4,30,Perl
-0,jack,0,22,C
+{"content": [[4, "eve", 0, 25, "C"], [5, "duncan", 4, 30, "C"], [0, "jack", 0, 22, "C"], [5, "duncan", 4, 30, "Perl"], [2, "john", 1, 30, "C"], [7, "alia", 1, 28, "C"], [4, "eve", 0, 25, "Perl"]], "header": ["id", "name", "chief", "age", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/union_not_select.result b/tests_dir/union_not_select.result
index b92ce90..a2aff9a 100644
--- a/tests_dir/union_not_select.result
+++ b/tests_dir/union_not_select.result
@@ -1,3 +1 @@
-id,skill
-5,C
-7,C
+{"content": [[7, "C"], [5, "C"]], "header": ["id", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/union_or_select.result b/tests_dir/union_or_select.result
index 5386f2f..35201cb 100644
--- a/tests_dir/union_or_select.result
+++ b/tests_dir/union_or_select.result
@@ -1,3 +1 @@
-id,name,chief,age
-3,dean,1,33
-1,carl,0,20
+{"content": [[3, "dean", 1, 33], [1, "carl", 0, 20]], "header": ["id", "name", "chief", "age"]}
\ No newline at end of file
diff --git a/tests_dir/union_projection.result b/tests_dir/union_projection.result
index 7e0ab5d..1a1d483 100644
--- a/tests_dir/union_projection.result
+++ b/tests_dir/union_projection.result
@@ -1,8 +1 @@
-name,skill
-jack,C
-eve,Perl
-duncan,Perl
-duncan,C
-john,C
-alia,C
-eve,C
+{"content": [["jack", "C"], ["eve", "C"], ["duncan", "C"], ["alia", "C"], ["eve", "Perl"], ["duncan", "Perl"], ["john", "C"]], "header": ["name", "skill"]}
\ No newline at end of file
diff --git a/tests_dir/younger.result b/tests_dir/younger.result
index f41e0cf..6527b54 100644
--- a/tests_dir/younger.result
+++ b/tests_dir/younger.result
@@ -1,2 +1 @@
-id,age,chief,name
-1,20,0,carl
+{"content": [[1, 20, 0, "carl"]], "header": ["id", "age", "chief", "name"]}
\ No newline at end of file