diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/1/1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/1/1.1.ddl.aql
deleted file mode 100644
index e55a643..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/1/1.1.ddl.aql
+++ /dev/null
@@ -1,36 +0,0 @@
-drop dataverse test if exists;
-  
-create dataverse test;
-use dataverse test;
-
-create type AddressType as closed {
-  street: string,
-  city: string,
-  zip: string,
-  latlong: point
-}
-
-create type UserType as open {
-  name: string,
-  email: string,
-  interests: {{string}},
-  address: AddressType,
-  member_of: {{
-    {
-      sig_id: int32,
-      chapter_name: string,
-      member_since: date
-    }
-  }}
-}
-
-create external dataset User(UserType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/user.adm"),("format"="adm"));
-
-write output to nc1:"rttest/dapd_q1.adm";
-
-for $user in dataset('User')
-where some $i in $user.interests
-  satisfies $i = "movies"
-return {"name": $user.name}
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/1/1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/1/1.2.update.aql
deleted file mode 100644
index e55a643..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/1/1.2.update.aql
+++ /dev/null
@@ -1,36 +0,0 @@
-drop dataverse test if exists;
-  
-create dataverse test;
-use dataverse test;
-
-create type AddressType as closed {
-  street: string,
-  city: string,
-  zip: string,
-  latlong: point
-}
-
-create type UserType as open {
-  name: string,
-  email: string,
-  interests: {{string}},
-  address: AddressType,
-  member_of: {{
-    {
-      sig_id: int32,
-      chapter_name: string,
-      member_since: date
-    }
-  }}
-}
-
-create external dataset User(UserType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/user.adm"),("format"="adm"));
-
-write output to nc1:"rttest/dapd_q1.adm";
-
-for $user in dataset('User')
-where some $i in $user.interests
-  satisfies $i = "movies"
-return {"name": $user.name}
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/1/1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/1/1.3.query.aql
deleted file mode 100644
index e55a643..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/1/1.3.query.aql
+++ /dev/null
@@ -1,36 +0,0 @@
-drop dataverse test if exists;
-  
-create dataverse test;
-use dataverse test;
-
-create type AddressType as closed {
-  street: string,
-  city: string,
-  zip: string,
-  latlong: point
-}
-
-create type UserType as open {
-  name: string,
-  email: string,
-  interests: {{string}},
-  address: AddressType,
-  member_of: {{
-    {
-      sig_id: int32,
-      chapter_name: string,
-      member_since: date
-    }
-  }}
-}
-
-create external dataset User(UserType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/user.adm"),("format"="adm"));
-
-write output to nc1:"rttest/dapd_q1.adm";
-
-for $user in dataset('User')
-where some $i in $user.interests
-  satisfies $i = "movies"
-return {"name": $user.name}
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/2/2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/2/2.1.ddl.aql
deleted file mode 100644
index 545e31f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/2/2.1.ddl.aql
+++ /dev/null
@@ -1,52 +0,0 @@
-drop dataverse test if exists;
-  
-create dataverse test;
-use dataverse test;
-
-create type AddressType as closed {
-  street: string,
-  city: string,
-  zip: string,
-  latlong: point
-}
-
-create type EventType as closed {
-  event_id: int32, 
-  name: string,
-  location: AddressType	?,
-  organizers: {{ 
-   {
-     name: string
-   }
-  }},
-  sponsoring_sigs: [
-    {
-      sig_id: int32,
-      chapter_name: string
-    }
-  ],
-  interest_keywords: {{string}},
-  price: double?,
-  start_time: datetime,
-  end_time: datetime
-}
-
-create external dataset Event(EventType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/event.adm"),("format"="adm"));
-
-write output to nc1:"rttest/dapd_q2.adm";
-
-for $event in dataset('Event')
-for $sponsor in $event.sponsoring_sigs
-let $es := { "event": $event, "sponsor": $sponsor }
-group by $sig_id := $sponsor.sig_id with $es
-let $sig_sponsorship_count := count($es)
-let $by_chapter :=
-   for $e in $es
-   group by $chapter_name := $e.sponsor.chapter_name with $e
-   return { "chapter_name": $chapter_name, "escount" : count($e) }
-order by $sig_sponsorship_count desc
-limit 5
-return { "sig_id": $sig_id, "total_count": $sig_sponsorship_count, "chapter_breakdown": $by_chapter }
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/2/2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/2/2.2.update.aql
deleted file mode 100644
index 545e31f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/2/2.2.update.aql
+++ /dev/null
@@ -1,52 +0,0 @@
-drop dataverse test if exists;
-  
-create dataverse test;
-use dataverse test;
-
-create type AddressType as closed {
-  street: string,
-  city: string,
-  zip: string,
-  latlong: point
-}
-
-create type EventType as closed {
-  event_id: int32, 
-  name: string,
-  location: AddressType	?,
-  organizers: {{ 
-   {
-     name: string
-   }
-  }},
-  sponsoring_sigs: [
-    {
-      sig_id: int32,
-      chapter_name: string
-    }
-  ],
-  interest_keywords: {{string}},
-  price: double?,
-  start_time: datetime,
-  end_time: datetime
-}
-
-create external dataset Event(EventType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/event.adm"),("format"="adm"));
-
-write output to nc1:"rttest/dapd_q2.adm";
-
-for $event in dataset('Event')
-for $sponsor in $event.sponsoring_sigs
-let $es := { "event": $event, "sponsor": $sponsor }
-group by $sig_id := $sponsor.sig_id with $es
-let $sig_sponsorship_count := count($es)
-let $by_chapter :=
-   for $e in $es
-   group by $chapter_name := $e.sponsor.chapter_name with $e
-   return { "chapter_name": $chapter_name, "escount" : count($e) }
-order by $sig_sponsorship_count desc
-limit 5
-return { "sig_id": $sig_id, "total_count": $sig_sponsorship_count, "chapter_breakdown": $by_chapter }
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/2/2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/2/2.3.query.aql
deleted file mode 100644
index 545e31f..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/2/2.3.query.aql
+++ /dev/null
@@ -1,52 +0,0 @@
-drop dataverse test if exists;
-  
-create dataverse test;
-use dataverse test;
-
-create type AddressType as closed {
-  street: string,
-  city: string,
-  zip: string,
-  latlong: point
-}
-
-create type EventType as closed {
-  event_id: int32, 
-  name: string,
-  location: AddressType	?,
-  organizers: {{ 
-   {
-     name: string
-   }
-  }},
-  sponsoring_sigs: [
-    {
-      sig_id: int32,
-      chapter_name: string
-    }
-  ],
-  interest_keywords: {{string}},
-  price: double?,
-  start_time: datetime,
-  end_time: datetime
-}
-
-create external dataset Event(EventType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/event.adm"),("format"="adm"));
-
-write output to nc1:"rttest/dapd_q2.adm";
-
-for $event in dataset('Event')
-for $sponsor in $event.sponsoring_sigs
-let $es := { "event": $event, "sponsor": $sponsor }
-group by $sig_id := $sponsor.sig_id with $es
-let $sig_sponsorship_count := count($es)
-let $by_chapter :=
-   for $e in $es
-   group by $chapter_name := $e.sponsor.chapter_name with $e
-   return { "chapter_name": $chapter_name, "escount" : count($e) }
-order by $sig_sponsorship_count desc
-limit 5
-return { "sig_id": $sig_id, "total_count": $sig_sponsorship_count, "chapter_breakdown": $by_chapter }
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/3/3.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/3/3.1.ddl.aql
deleted file mode 100644
index 63b9119..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/3/3.1.ddl.aql
+++ /dev/null
@@ -1,47 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-create type AddressType as closed {
- street: string,
- city: string,
- zip: string,
- latlong: point2d
-}
-
-create type UserType as open{
- name: string,
- interests: {{string}},
- address: AddressType,
- member_of: {{
-  {
-    sig_id: int32,
-    chapter_name: string,
-    member_since: date
-  }
-}}
-}
-
-create dataset User(UserType)
- primary key name;
-
-load dataset User 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/user.adm"),("format"="json")) pre-sorted;
-
-write output to nc1:'rttest/dapd_q3.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('User')
-let $similar_users :=
-  for $similar_user in dataset('User')
-  where $user.name != $similar_user.name
-       and $user.interests ~= $similar_user.interests
-  let $sim := similarity-jaccard($user.interests, $similar_user.interests)
-  order by $sim desc
-  limit 10
-  return { "user_name": $similar_user.name }
-order by $user.name  
-return { "user_name" : $user.name, "similar_users" : $similar_users }
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/3/3.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/3/3.2.update.aql
deleted file mode 100644
index 63b9119..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/3/3.2.update.aql
+++ /dev/null
@@ -1,47 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-create type AddressType as closed {
- street: string,
- city: string,
- zip: string,
- latlong: point2d
-}
-
-create type UserType as open{
- name: string,
- interests: {{string}},
- address: AddressType,
- member_of: {{
-  {
-    sig_id: int32,
-    chapter_name: string,
-    member_since: date
-  }
-}}
-}
-
-create dataset User(UserType)
- primary key name;
-
-load dataset User 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/user.adm"),("format"="json")) pre-sorted;
-
-write output to nc1:'rttest/dapd_q3.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('User')
-let $similar_users :=
-  for $similar_user in dataset('User')
-  where $user.name != $similar_user.name
-       and $user.interests ~= $similar_user.interests
-  let $sim := similarity-jaccard($user.interests, $similar_user.interests)
-  order by $sim desc
-  limit 10
-  return { "user_name": $similar_user.name }
-order by $user.name  
-return { "user_name" : $user.name, "similar_users" : $similar_users }
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/3/3.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/3/3.3.query.aql
deleted file mode 100644
index 63b9119..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/3/3.3.query.aql
+++ /dev/null
@@ -1,47 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-create type AddressType as closed {
- street: string,
- city: string,
- zip: string,
- latlong: point2d
-}
-
-create type UserType as open{
- name: string,
- interests: {{string}},
- address: AddressType,
- member_of: {{
-  {
-    sig_id: int32,
-    chapter_name: string,
-    member_since: date
-  }
-}}
-}
-
-create dataset User(UserType)
- primary key name;
-
-load dataset User 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/events/tiny/user.adm"),("format"="json")) pre-sorted;
-
-write output to nc1:'rttest/dapd_q3.adm';
-
-set simthreshold '.5f';
-
-for $user in dataset('User')
-let $similar_users :=
-  for $similar_user in dataset('User')
-  where $user.name != $similar_user.name
-       and $user.interests ~= $similar_user.interests
-  let $sim := similarity-jaccard($user.interests, $similar_user.interests)
-  order by $sim desc
-  limit 10
-  return { "user_name": $similar_user.name }
-order by $user.name  
-return { "user_name" : $user.name, "similar_users" : $similar_users }
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/_01/_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/employee/_01/_01.1.ddl.aql
deleted file mode 100644
index 7c1df0f9..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/employee/_01/_01.1.ddl.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type EmpType as open {
-  id: int32, 
-  name: string,
-  address: {
-  number: int32, 
-  street: string,
-  city: string
-   },
-  age: int32?,
-  interests: {{string}}?,
-  children: [string]?
-}
-
-create external dataset Emp(EmpType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/employee.json"),("format"="adm"));
-        
-write output to nc1:"rttest/employee_q_01.adm";
-      
-for $e in dataset('Emp')
-return $e 
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/_01/_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/employee/_01/_01.2.update.aql
deleted file mode 100644
index 7c1df0f9..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/employee/_01/_01.2.update.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type EmpType as open {
-  id: int32, 
-  name: string,
-  address: {
-  number: int32, 
-  street: string,
-  city: string
-   },
-  age: int32?,
-  interests: {{string}}?,
-  children: [string]?
-}
-
-create external dataset Emp(EmpType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/employee.json"),("format"="adm"));
-        
-write output to nc1:"rttest/employee_q_01.adm";
-      
-for $e in dataset('Emp')
-return $e 
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/_01/_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/employee/_01/_01.3.query.aql
deleted file mode 100644
index 7c1df0f9..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/employee/_01/_01.3.query.aql
+++ /dev/null
@@ -1,27 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type EmpType as open {
-  id: int32, 
-  name: string,
-  address: {
-  number: int32, 
-  street: string,
-  city: string
-   },
-  age: int32?,
-  interests: {{string}}?,
-  children: [string]?
-}
-
-create external dataset Emp(EmpType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/employee.json"),("format"="adm"));
-        
-write output to nc1:"rttest/employee_q_01.adm";
-      
-for $e in dataset('Emp')
-return $e 
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/_02/_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/employee/_02/_02.1.ddl.aql
deleted file mode 100644
index 7cb1ee9..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/employee/_02/_02.1.ddl.aql
+++ /dev/null
@@ -1,28 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type EmpType as open {
-  id: int32, 
-  name: string,
-  address: {
-  number: int32, 
-  street: string,
-  city: string
-   },
-  age: int32?,
-  interests: {{string}}?,
-  children: [string]?
-}
-
-create external dataset Emp(EmpType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/employee.json"),("format"="adm"));
-        
-write output to nc1:"rttest/employee_q_02.adm";
-      
-for $e in dataset('Emp')
-let $m := [{"EmpName": $e.name, "parent_interest_1": $e.interests[?], "child1Name": $e.children[?], "child2Name": $e.children[1]}]
-return $m 
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/_02/_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/employee/_02/_02.2.update.aql
deleted file mode 100644
index 7cb1ee9..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/employee/_02/_02.2.update.aql
+++ /dev/null
@@ -1,28 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type EmpType as open {
-  id: int32, 
-  name: string,
-  address: {
-  number: int32, 
-  street: string,
-  city: string
-   },
-  age: int32?,
-  interests: {{string}}?,
-  children: [string]?
-}
-
-create external dataset Emp(EmpType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/employee.json"),("format"="adm"));
-        
-write output to nc1:"rttest/employee_q_02.adm";
-      
-for $e in dataset('Emp')
-let $m := [{"EmpName": $e.name, "parent_interest_1": $e.interests[?], "child1Name": $e.children[?], "child2Name": $e.children[1]}]
-return $m 
diff --git a/asterix-app/src/test/resources/runtimets/queries/employee/_02/_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/employee/_02/_02.3.query.aql
deleted file mode 100644
index 7cb1ee9..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/employee/_02/_02.3.query.aql
+++ /dev/null
@@ -1,28 +0,0 @@
-drop dataverse test if exists;
-
-create dataverse test;
-
-use dataverse test;
-
-create type EmpType as open {
-  id: int32, 
-  name: string,
-  address: {
-  number: int32, 
-  street: string,
-  city: string
-   },
-  age: int32?,
-  interests: {{string}}?,
-  children: [string]?
-}
-
-create external dataset Emp(EmpType) 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/nontagged/employee.json"),("format"="adm"));
-        
-write output to nc1:"rttest/employee_q_02.adm";
-      
-for $e in dataset('Emp')
-let $m := [{"EmpName": $e.name, "parent_interest_1": $e.interests[?], "child1Name": $e.children[?], "child2Name": $e.children[1]}]
-return $m 
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.1.ddl.aql
index fe0e9e5..4705cce 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.1.ddl.aql
@@ -20,8 +20,3 @@
 (("output-type-name"="TweetType"),("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("tuple-interval"="10"))
 primary key id;
 
-write output to nc1:"rttest/feeds_feeds_01.adm";
-
-for $x in dataset('Metadata.Dataset')
-where $x.DataverseName='feeds' and $x.DatasetName='TweetFeed'
-return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.2.update.aql
index fe0e9e5..e001747 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.2.update.aql
@@ -3,25 +3,4 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
-use dataverse feeds;
 
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
-
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("output-type-name"="TweetType"),("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("tuple-interval"="10"))
-primary key id;
-
-write output to nc1:"rttest/feeds_feeds_01.adm";
-
-for $x in dataset('Metadata.Dataset')
-where $x.DataverseName='feeds' and $x.DatasetName='TweetFeed'
-return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.3.query.aql
index fe0e9e5..5ee2e87 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_01/feeds_01.3.query.aql
@@ -3,24 +3,6 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
-use dataverse feeds;
-
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
-
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("output-type-name"="TweetType"),("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("tuple-interval"="10"))
-primary key id;
-
-write output to nc1:"rttest/feeds_feeds_01.adm";
 
 for $x in dataset('Metadata.Dataset')
 where $x.DataverseName='feeds' and $x.DatasetName='TweetFeed'
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.1.ddl.aql
index d72e623..0965cbd 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.1.ddl.aql
@@ -4,6 +4,7 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
+
 drop dataverse feeds if exists;
 create dataverse feeds;
 use dataverse feeds;
@@ -20,12 +21,6 @@
 using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
 (("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
 primary key id;
+  
+begin feed TweetFeed;
 
-begin feed TweetFeed; 
-
-write output to nc1:"rttest/feeds_feeds_02.adm";
-
-for $x in dataset('TweetFeed')
-return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.2.update.aql
index d72e623..a3c7fd0 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.2.update.aql
@@ -4,28 +4,5 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
-use dataverse feeds;
 
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
 
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
-primary key id;
-
-begin feed TweetFeed; 
-
-write output to nc1:"rttest/feeds_feeds_02.adm";
-
-for $x in dataset('TweetFeed')
-return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.3.query.aql
index d72e623..01ef318 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_02/feeds_02.3.query.aql
@@ -4,28 +4,8 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
+
 use dataverse feeds;
 
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
-
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
-primary key id;
-
-begin feed TweetFeed; 
-
-write output to nc1:"rttest/feeds_feeds_02.adm";
-
 for $x in dataset('TweetFeed')
 return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.1.ddl.aql
index 615ee83..488ed2f 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.1.ddl.aql
@@ -3,6 +3,7 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
+
 drop dataverse feeds if exists;
 create dataverse feeds;
 use dataverse feeds;
@@ -22,13 +23,6 @@
 create feed dataset TweetFeed(TweetType)
 using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
 (("output-type-name"="TweetType"),("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("tuple-interval"="10"))
-apply function feed_processor@1
+apply function feed_processor@1 
 primary key id;
 
-write output to nc1:"rttest/feeds_feeds_03.adm";
-
-for $x in dataset('Metadata.Dataset')
-where $x.DataverseName='feeds' and $x.DatasetName='TweetFeed'
-return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.2.update.aql
index 615ee83..e3044ef 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.2.update.aql
@@ -3,32 +3,3 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
-use dataverse feeds;
-
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
-
-create function feed_processor($x) {
-$x
-}
-
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("output-type-name"="TweetType"),("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("tuple-interval"="10"))
-apply function feed_processor@1
-primary key id;
-
-write output to nc1:"rttest/feeds_feeds_03.adm";
-
-for $x in dataset('Metadata.Dataset')
-where $x.DataverseName='feeds' and $x.DatasetName='TweetFeed'
-return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.3.query.aql
index 615ee83..1922f39 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_03/feeds_03.3.query.aql
@@ -3,32 +3,7 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
-use dataverse feeds;
-
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
-
-create function feed_processor($x) {
-$x
-}
-
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("output-type-name"="TweetType"),("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("tuple-interval"="10"))
-apply function feed_processor@1
-primary key id;
-
-write output to nc1:"rttest/feeds_feeds_03.adm";
 
 for $x in dataset('Metadata.Dataset')
 where $x.DataverseName='feeds' and $x.DatasetName='TweetFeed'
 return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.1.ddl.aql
index bea88fb..9c0e054 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.1.ddl.aql
@@ -21,12 +21,6 @@
 using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
 (("fs"="hdfs"),("hdfs"="hdfs://127.0.0.1:31888"),("path"="/asterix/obamatweets.adm"),("format"="adm"),("input-format"="text-input-format"),("output-type-name"="TweetType"),("tuple-interval"="10"))
 primary key id;
+  
+begin feed TweetFeed;
 
-begin feed TweetFeed; 
-
-write output to nc1:"rttest/feeds_feeds_04.adm";
-
-for $x in dataset('TweetFeed')
-return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.2.update.aql
index bea88fb..0b50cbb 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.2.update.aql
@@ -5,28 +5,4 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
-use dataverse feeds;
 
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
-
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("fs"="hdfs"),("hdfs"="hdfs://127.0.0.1:31888"),("path"="/asterix/obamatweets.adm"),("format"="adm"),("input-format"="text-input-format"),("output-type-name"="TweetType"),("tuple-interval"="10"))
-primary key id;
-
-begin feed TweetFeed; 
-
-write output to nc1:"rttest/feeds_feeds_04.adm";
-
-for $x in dataset('TweetFeed')
-return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.3.query.aql
index bea88fb..5146fb5 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/feeds_04/feeds_04.3.query.aql
@@ -5,28 +5,7 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
 use dataverse feeds;
 
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
-
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("fs"="hdfs"),("hdfs"="hdfs://127.0.0.1:31888"),("path"="/asterix/obamatweets.adm"),("format"="adm"),("input-format"="text-input-format"),("output-type-name"="TweetType"),("tuple-interval"="10"))
-primary key id;
-
-begin feed TweetFeed; 
-
-write output to nc1:"rttest/feeds_feeds_04.adm";
-
 for $x in dataset('TweetFeed')
 return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.1.ddl.aql
index a9f3236..39e9e08 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.1.ddl.aql
@@ -20,12 +20,6 @@
 using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
 (("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
 primary key id;
+  
+begin feed feeds.TweetFeed;
 
-begin feed feeds.TweetFeed; 
-
-write output to nc1:"rttest/feeds_issue_230_feeds.adm";
-
-for $x in dataset('TweetFeed')
-return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.2.update.aql
index a9f3236..a41302b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.2.update.aql
@@ -4,28 +4,4 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
-use dataverse feeds;
 
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
-
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
-primary key id;
-
-begin feed feeds.TweetFeed; 
-
-write output to nc1:"rttest/feeds_issue_230_feeds.adm";
-
-for $x in dataset('TweetFeed')
-return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.3.query.aql
index a9f3236..d94576b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/feeds/issue_230_feeds/issue_230_feeds.3.query.aql
@@ -4,28 +4,7 @@
  * Expected Res : Success
  * Date         : 24th Dec 2012
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
 use dataverse feeds;
 
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
-
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
-primary key id;
-
-begin feed feeds.TweetFeed; 
-
-write output to nc1:"rttest/feeds_issue_230_feeds.adm";
-
 for $x in dataset('TweetFeed')
 return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.1.ddl.aql
index 544b37c..e961f0a 100644
--- a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.1.ddl.aql
@@ -19,17 +19,7 @@
   misc: string
 }
 
-create dataset DBLPadm(DBLPType) 
+create dataset DBLPadm(DBLPType)
 primary key id
-hints(cardinality=200);
+hints(cardinality=200); 
 
-// drop dataset DBLPadm;
-load dataset DBLPadm 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter" 
-(("path"="nc1://data/dblp-small/part-00000.adm,nc1://data/dblp-small/part-00001.adm"),("format"="adm"));
-
-write output to nc1:"rttest/hints_issue_251_dataset_hint_5.adm";
-
-for $paper in dataset('DBLPadm')
-order by $paper.id
-return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.2.update.aql
index 544b37c..c2543f6 100644
--- a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.2.update.aql
@@ -7,29 +7,9 @@
 
 /* scan and print an ADM file as a dataset of closed records */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type DBLPType as closed {
-  id: int32, 
-  dblpid: string,
-  title: string,
-  authors: string,
-  misc: string
-}
-
-create dataset DBLPadm(DBLPType) 
-primary key id
-hints(cardinality=200);
-
-// drop dataset DBLPadm;
 load dataset DBLPadm 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter" 
 (("path"="nc1://data/dblp-small/part-00000.adm,nc1://data/dblp-small/part-00001.adm"),("format"="adm"));
 
-write output to nc1:"rttest/hints_issue_251_dataset_hint_5.adm";
-
-for $paper in dataset('DBLPadm')
-order by $paper.id
-return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.3.query.aql
index 544b37c..0334be7 100644
--- a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_5/issue_251_dataset_hint_5.3.query.aql
@@ -7,29 +7,8 @@
 
 /* scan and print an ADM file as a dataset of closed records */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type DBLPType as closed {
-  id: int32, 
-  dblpid: string,
-  title: string,
-  authors: string,
-  misc: string
-}
-
-create dataset DBLPadm(DBLPType) 
-primary key id
-hints(cardinality=200);
-
-// drop dataset DBLPadm;
-load dataset DBLPadm 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter" 
-(("path"="nc1://data/dblp-small/part-00000.adm,nc1://data/dblp-small/part-00001.adm"),("format"="adm"));
-
-write output to nc1:"rttest/hints_issue_251_dataset_hint_5.adm";
-
 for $paper in dataset('DBLPadm')
 order by $paper.id
 return $paper
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.1.ddl.aql
index 0b7c20d..0df8528 100644
--- a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.1.ddl.aql
@@ -5,6 +5,7 @@
 * Expected Res : Success
 * Date         : 30th Jan 2013
 */
+
 drop dataverse test if exists;
 create dataverse test;
 use dataverse test;
@@ -18,11 +19,3 @@
 (("hdfs"="hdfs://127.0.0.1:31888"),("path"="/asterix/textFileS"),("input-format"="sequence-input-format"),("format"="delimited-text"),("delimiter"="."))
 hints(cardinality=10);
 
-write output to nc1:"rttest/hints_issue_251_dataset_hint_6.adm";
-
-for $line in dataset('TextDataset')
-let $tokens := word-tokens($line.content)
-for $token in $tokens
-group by $tok := $token with $token
-order by $tok
-return { "word": $tok, "count": count($token) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.2.update.aql
index 0b7c20d..0ac9748 100644
--- a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.2.update.aql
@@ -5,24 +5,3 @@
 * Expected Res : Success
 * Date         : 30th Jan 2013
 */
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type LineType as closed {
- content: string
-};
-
-create external dataset TextDataset(LineType)
-using hdfs
-(("hdfs"="hdfs://127.0.0.1:31888"),("path"="/asterix/textFileS"),("input-format"="sequence-input-format"),("format"="delimited-text"),("delimiter"="."))
-hints(cardinality=10);
-
-write output to nc1:"rttest/hints_issue_251_dataset_hint_6.adm";
-
-for $line in dataset('TextDataset')
-let $tokens := word-tokens($line.content)
-for $token in $tokens
-group by $tok := $token with $token
-order by $tok
-return { "word": $tok, "count": count($token) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.3.query.aql
index 0b7c20d..42fe34b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_6/issue_251_dataset_hint_6.3.query.aql
@@ -5,21 +5,9 @@
 * Expected Res : Success
 * Date         : 30th Jan 2013
 */
-drop dataverse test if exists;
-create dataverse test;
+
 use dataverse test;
 
-create type LineType as closed {
- content: string
-};
-
-create external dataset TextDataset(LineType)
-using hdfs
-(("hdfs"="hdfs://127.0.0.1:31888"),("path"="/asterix/textFileS"),("input-format"="sequence-input-format"),("format"="delimited-text"),("delimiter"="."))
-hints(cardinality=10);
-
-write output to nc1:"rttest/hints_issue_251_dataset_hint_6.adm";
-
 for $line in dataset('TextDataset')
 let $tokens := word-tokens($line.content)
 for $token in $tokens
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.1.ddl.aql
index 8f4a74d..34d535e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.1.ddl.aql
@@ -22,12 +22,6 @@
 (("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
 primary key id
 hints(cardinality=200);
+  
+begin feed feeds.TweetFeed;
 
-begin feed feeds.TweetFeed; 
-
-write output to nc1:"rttest/hints_issue_251_dataset_hint_7.adm";
-
-for $x in dataset('TweetFeed')
-return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.2.update.aql
index 8f4a74d..7f4b2a3 100644
--- a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.2.update.aql
@@ -5,29 +5,4 @@
  * Expected Res : Success
  * Date         : 30th Jan 2013
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
-use dataverse feeds;
 
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
-
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
-primary key id
-hints(cardinality=200);
-
-begin feed feeds.TweetFeed; 
-
-write output to nc1:"rttest/hints_issue_251_dataset_hint_7.adm";
-
-for $x in dataset('TweetFeed')
-return $x
-
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.3.query.aql
index 8f4a74d..efa1f9c 100644
--- a/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/hints/issue_251_dataset_hint_7/issue_251_dataset_hint_7.3.query.aql
@@ -5,29 +5,9 @@
  * Expected Res : Success
  * Date         : 30th Jan 2013
  */
-drop dataverse feeds if exists;
-create dataverse feeds;
+
 use dataverse feeds;
 
-create type TweetType as closed {
-  id: string,
-  username : string,
-  location : string,
-  text : string,
-  timestamp : string
-}      
-
-create feed dataset TweetFeed(TweetType)
-using "edu.uci.ics.asterix.tools.external.data.RateControlledFileSystemBasedAdapterFactory"
-(("fs"="localfs"),("path"="nc1://data/twitter/obamatweets.adm"),("format"="adm"),("output-type-name"="TweetType"),("tuple-interval"="10"))
-primary key id
-hints(cardinality=200);
-
-begin feed feeds.TweetFeed; 
-
-write output to nc1:"rttest/hints_issue_251_dataset_hint_7.adm";
-
 for $x in dataset('TweetFeed')
 return $x
 
-drop dataverse feeds;
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.1.ddl.aql
index 2127117..0846e6e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.1.ddl.aql
@@ -13,14 +13,6 @@
 name: string
 }
 
-create dataset onektup(Schema) 
+create dataset onektup(Schema)
 primary key id;
 
-load dataset onektup 
-using localfs(("path"="nc1:///tmp/one.adm"));
-
-write output to nc1:"/tmp/foo.adm";
-
-for $l in dataset('onektup')
-return $l
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.2.update.aql
index 2127117..1c780d6 100644
--- a/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.2.update.aql
@@ -3,24 +3,8 @@
  * Expected Res : Failure
  * Date         : 16 Jan 2012
  */
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type Schema as closed{
-id: int32,
-age: int32,
-name: string
-}
-
-create dataset onektup(Schema) 
-primary key id;
-
 load dataset onektup 
 using localfs(("path"="nc1:///tmp/one.adm"));
 
-write output to nc1:"/tmp/foo.adm";
-
-for $l in dataset('onektup')
-return $l
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.3.query.aql
index 2127117..6e60c76 100644
--- a/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/load/issue14_query/issue14_query.3.query.aql
@@ -3,24 +3,8 @@
  * Expected Res : Failure
  * Date         : 16 Jan 2012
  */
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type Schema as closed{
-id: int32,
-age: int32,
-name: string
-}
-
-create dataset onektup(Schema) 
-primary key id;
-
-load dataset onektup 
-using localfs(("path"="nc1:///tmp/one.adm"));
-
-write output to nc1:"/tmp/foo.adm";
-
 for $l in dataset('onektup')
 return $l
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.1.ddl.aql
index e038aeb..70c3d0e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.1.ddl.aql
@@ -8,7 +8,6 @@
 create dataverse testdv2;
 use dataverse testdv2;
 
-
 create type AddressType as open{
   street: string,
   city: string
@@ -22,24 +21,3 @@
 
 create dataset testds(testtype) primary key id;
 
-insert into dataset testds (
-{ "id": "001", "name": "Person One", "address": {"street": "3019 DBH",  "city": "Irvine", "zip": 92697} }
-);
-
-insert into dataset testds (
-{ "id": "002", "name": "Person Two" }
-);
-
-insert into dataset testds (
-{ "id": "003", "name": "Person Three", "address": {"street": "2019 DBH",  "city": "Irvine"} }
-);
-
-insert into dataset testds (
-{ "id": "004", "name": "Person Four", "home": {"street": "2019 DBH",  "city": {"name": "Irvine", "zip": 92697} } }
-);
-
-write output to nc1:"rttest/nestrecords_nestrecord.adm";
-
-for $d in dataset("testds") 
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.2.update.aql
index e038aeb..bca3929 100644
--- a/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.2.update.aql
@@ -4,24 +4,8 @@
  * Expected Result : Success
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-
-create type AddressType as open{
-  street: string,
-  city: string
-}
-
-create type testtype as open {
-  name: string,
-  id: string,
-  address: AddressType?
-}
-
-create dataset testds(testtype) primary key id;
-
 insert into dataset testds (
 { "id": "001", "name": "Person One", "address": {"street": "3019 DBH",  "city": "Irvine", "zip": 92697} }
 );
@@ -38,8 +22,3 @@
 { "id": "004", "name": "Person Four", "home": {"street": "2019 DBH",  "city": {"name": "Irvine", "zip": 92697} } }
 );
 
-write output to nc1:"rttest/nestrecords_nestrecord.adm";
-
-for $d in dataset("testds") 
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.3.query.aql
index e038aeb..24a3cb1 100644
--- a/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/nestrecords/nestrecord/nestrecord.3.query.aql
@@ -4,42 +4,8 @@
  * Expected Result : Success
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-
-create type AddressType as open{
-  street: string,
-  city: string
-}
-
-create type testtype as open {
-  name: string,
-  id: string,
-  address: AddressType?
-}
-
-create dataset testds(testtype) primary key id;
-
-insert into dataset testds (
-{ "id": "001", "name": "Person One", "address": {"street": "3019 DBH",  "city": "Irvine", "zip": 92697} }
-);
-
-insert into dataset testds (
-{ "id": "002", "name": "Person Two" }
-);
-
-insert into dataset testds (
-{ "id": "003", "name": "Person Three", "address": {"street": "2019 DBH",  "city": "Irvine"} }
-);
-
-insert into dataset testds (
-{ "id": "004", "name": "Person Four", "home": {"street": "2019 DBH",  "city": {"name": "Irvine", "zip": 92697} } }
-);
-
-write output to nc1:"rttest/nestrecords_nestrecord.adm";
-
 for $d in dataset("testds") 
 order by $d.id
 return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-option/c2c-w-option.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-option/c2c-w-option.1.ddl.aql
deleted file mode 100644
index c5fb80c1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-option/c2c-w-option.1.ddl.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Testcase Name  : c2c-w-optional.aql
- * Description    : Insert data into target datase by doing a select on source dataset.
- *                : Here both source and target datasets are internal datasets
- *                : The schema includes one optional field named optnl_fld.
- * Success        : Yes
- * Date           : 23rd May 2012
- */
-
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type TestType as closed {
-id:int32,
-description:string,
-name:string,
-optnl_fld:string?
-}
-
-create dataset T1(TestType) primary key id;
-
-create dataset T2(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake",
-"optnl_fld":"optional data goes here"
-}
-);
-
-insert into dataset T2(for $l in dataset("T1") return $l );
-
-for $d in dataset("T2")
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-option/c2c-w-option.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-option/c2c-w-option.2.update.aql
deleted file mode 100644
index c5fb80c1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-option/c2c-w-option.2.update.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Testcase Name  : c2c-w-optional.aql
- * Description    : Insert data into target datase by doing a select on source dataset.
- *                : Here both source and target datasets are internal datasets
- *                : The schema includes one optional field named optnl_fld.
- * Success        : Yes
- * Date           : 23rd May 2012
- */
-
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type TestType as closed {
-id:int32,
-description:string,
-name:string,
-optnl_fld:string?
-}
-
-create dataset T1(TestType) primary key id;
-
-create dataset T2(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake",
-"optnl_fld":"optional data goes here"
-}
-);
-
-insert into dataset T2(for $l in dataset("T1") return $l );
-
-for $d in dataset("T2")
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-option/c2c-w-option.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-option/c2c-w-option.3.query.aql
deleted file mode 100644
index c5fb80c1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-w-option/c2c-w-option.3.query.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Testcase Name  : c2c-w-optional.aql
- * Description    : Insert data into target datase by doing a select on source dataset.
- *                : Here both source and target datasets are internal datasets
- *                : The schema includes one optional field named optnl_fld.
- * Success        : Yes
- * Date           : 23rd May 2012
- */
-
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type TestType as closed {
-id:int32,
-description:string,
-name:string,
-optnl_fld:string?
-}
-
-create dataset T1(TestType) primary key id;
-
-create dataset T2(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake",
-"optnl_fld":"optional data goes here"
-}
-);
-
-insert into dataset T2(for $l in dataset("T1") return $l );
-
-for $d in dataset("T2")
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-option/c2c-wo-option.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-option/c2c-wo-option.1.ddl.aql
deleted file mode 100644
index b31fe88..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-option/c2c-wo-option.1.ddl.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Testcase Name  : c2c-wo-optional.aql
- * Description    : Insert data into target datase by doing a select on source dataset.
- *                : Here both source and target datasets are internal datasets
- *                : The schema includes one optional field named optnl_fld.
- *                : Note that the optional field in source dataset does not hold any data.
- * Success        : Yes
- * Date           : 23rd May 2012
- */
-
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type TestType as closed {
-id:int32,
-description:string,
-name:string,
-optnl_fld:string?
-}
-
-create dataset T1(TestType) primary key id;
-
-create dataset T2(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake"
-}
-);
-
-insert into dataset T2(for $l in dataset("T1") return $l );
-
-for $d in dataset("T2")
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-option/c2c-wo-option.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-option/c2c-wo-option.2.update.aql
deleted file mode 100644
index b31fe88..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-option/c2c-wo-option.2.update.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Testcase Name  : c2c-wo-optional.aql
- * Description    : Insert data into target datase by doing a select on source dataset.
- *                : Here both source and target datasets are internal datasets
- *                : The schema includes one optional field named optnl_fld.
- *                : Note that the optional field in source dataset does not hold any data.
- * Success        : Yes
- * Date           : 23rd May 2012
- */
-
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type TestType as closed {
-id:int32,
-description:string,
-name:string,
-optnl_fld:string?
-}
-
-create dataset T1(TestType) primary key id;
-
-create dataset T2(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake"
-}
-);
-
-insert into dataset T2(for $l in dataset("T1") return $l );
-
-for $d in dataset("T2")
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-option/c2c-wo-option.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-option/c2c-wo-option.3.query.aql
deleted file mode 100644
index b31fe88..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c-wo-option/c2c-wo-option.3.query.aql
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Testcase Name  : c2c-wo-optional.aql
- * Description    : Insert data into target datase by doing a select on source dataset.
- *                : Here both source and target datasets are internal datasets
- *                : The schema includes one optional field named optnl_fld.
- *                : Note that the optional field in source dataset does not hold any data.
- * Success        : Yes
- * Date           : 23rd May 2012
- */
-
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-create type TestType as closed {
-id:int32,
-description:string,
-name:string,
-optnl_fld:string?
-}
-
-create dataset T1(TestType) primary key id;
-
-create dataset T2(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake"
-}
-);
-
-insert into dataset T2(for $l in dataset("T1") return $l );
-
-for $d in dataset("T2")
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.1.ddl.aql
index 9f923e7..d1c4720 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.1.ddl.aql
@@ -22,15 +22,3 @@
 // target dataset
 create dataset T2(TestType) primary key id;
 
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake"
-}
-);
-
-insert into dataset T2(for $l in dataset("T1") return $l );
-
-for $d in dataset("T2")
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.2.update.aql
index 9f923e7..aa6fb93 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.2.update.aql
@@ -6,22 +6,8 @@
  * Date           : 23rd May 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type TestType as closed {
-id:int32,
-description:string,
-name:string
-}
-
-// source dataset
-create dataset T1(TestType) primary key id;
-
-// target dataset
-create dataset T2(TestType) primary key id;
-
 insert into dataset T1({
 "id":1234,
 "description":"donut",
@@ -31,6 +17,3 @@
 
 insert into dataset T2(for $l in dataset("T1") return $l );
 
-for $d in dataset("T2")
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.3.query.aql
index 9f923e7..e938d42 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/c2c/c2c.3.query.aql
@@ -6,31 +6,8 @@
  * Date           : 23rd May 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type TestType as closed {
-id:int32,
-description:string,
-name:string
-}
-
-// source dataset
-create dataset T1(TestType) primary key id;
-
-// target dataset
-create dataset T2(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake"
-}
-);
-
-insert into dataset T2(for $l in dataset("T1") return $l );
-
 for $d in dataset("T2")
 order by $d.id
 return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.1.ddl.aql
index b51c1fe..c37d5e1 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.1.ddl.aql
@@ -23,17 +23,3 @@
 }
 
 create dataset T1(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake",
-"batters":[[ {"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"} ]] }
-);
-
-write output to nc1:"rttest/open-closed_heterog-list-ordered01.adm";
-
-for $d in dataset("T1") 
-order by $d.id
-return $d
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.2.update.aql
index b51c1fe..621d562 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.2.update.aql
@@ -6,24 +6,8 @@
  * Date           : 14th April 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type BatterType as {
-id:int32,
-descrpt:string
-}
-
-create type TestType as closed {
-id:int32,
-description:string,
-name:string,
-batters:[[BatterType]]
-}
-
-create dataset T1(TestType) primary key id;
-
 insert into dataset T1({
 "id":1234,
 "description":"donut",
@@ -31,9 +15,3 @@
 "batters":[[ {"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"} ]] }
 );
 
-write output to nc1:"rttest/open-closed_heterog-list-ordered01.adm";
-
-for $d in dataset("T1") 
-order by $d.id
-return $d
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.3.query.aql
index b51c1fe..3f23e35 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list-ordered01/heterog-list-ordered01.3.query.aql
@@ -6,33 +6,8 @@
  * Date           : 14th April 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type BatterType as {
-id:int32,
-descrpt:string
-}
-
-create type TestType as closed {
-id:int32,
-description:string,
-name:string,
-batters:[[BatterType]]
-}
-
-create dataset T1(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake",
-"batters":[[ {"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"} ]] }
-);
-
-write output to nc1:"rttest/open-closed_heterog-list-ordered01.adm";
-
 for $d in dataset("T1") 
 order by $d.id
 return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.1.ddl.aql
index 82823ce..dbc67fa 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.1.ddl.aql
@@ -24,16 +24,3 @@
 
 create dataset T1(TestType) primary key id;
 
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake",
-"batters":{{ {"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"} }} }
-);
-
-write output to nc1:"rttest/open-closed_heterog-list01.adm";
-
-for $d in dataset("T1") 
-order by $d.id
-return $d
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.2.update.aql
index 82823ce..5a1bd10 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.2.update.aql
@@ -6,24 +6,8 @@
  * Date           : 14th April 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type BatterType as {
-id:int32,
-descrpt:string
-}
-
-create type TestType as closed {
-id:int32,
-description:string,
-name:string,
-batters:{{BatterType}}
-}
-
-create dataset T1(TestType) primary key id;
-
 insert into dataset T1({
 "id":1234,
 "description":"donut",
@@ -31,9 +15,3 @@
 "batters":{{ {"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"} }} }
 );
 
-write output to nc1:"rttest/open-closed_heterog-list01.adm";
-
-for $d in dataset("T1") 
-order by $d.id
-return $d
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.3.query.aql
index 82823ce..3f23e35 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list01/heterog-list01.3.query.aql
@@ -6,33 +6,8 @@
  * Date           : 14th April 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type BatterType as {
-id:int32,
-descrpt:string
-}
-
-create type TestType as closed {
-id:int32,
-description:string,
-name:string,
-batters:{{BatterType}}
-}
-
-create dataset T1(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake",
-"batters":{{ {"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"} }} }
-);
-
-write output to nc1:"rttest/open-closed_heterog-list01.adm";
-
 for $d in dataset("T1") 
 order by $d.id
 return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.1.ddl.aql
index 45e4bac..6426aa3 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.1.ddl.aql
@@ -23,13 +23,3 @@
 }
 
 create dataset T1(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake",
-"batters":[[{"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"}],[{"id":349,"descrpt":"Soft"},{"id":449,"descrpt":"Vanilla"}]] }
-);
-
-for $l in dataset('T1')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.2.update.aql
index 45e4bac..98bc444 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.2.update.aql
@@ -6,24 +6,8 @@
  * Date           : 28th May 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type BatterType as {
-id:int32,
-descrpt:string
-}
-
-create type TestType as {
-id:int32,
-description:string,
-name:string,
-batters:[[BatterType]]
-}
-
-create dataset T1(TestType) primary key id;
-
 insert into dataset T1({
 "id":1234,
 "description":"donut",
@@ -31,5 +15,3 @@
 "batters":[[{"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"}],[{"id":349,"descrpt":"Soft"},{"id":449,"descrpt":"Vanilla"}]] }
 );
 
-for $l in dataset('T1')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.3.query.aql
index 45e4bac..7f7c177 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list02/heterog-list02.3.query.aql
@@ -6,30 +6,7 @@
  * Date           : 28th May 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type BatterType as {
-id:int32,
-descrpt:string
-}
-
-create type TestType as {
-id:int32,
-description:string,
-name:string,
-batters:[[BatterType]]
-}
-
-create dataset T1(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake",
-"batters":[[{"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"}],[{"id":349,"descrpt":"Soft"},{"id":449,"descrpt":"Vanilla"}]] }
-);
-
 for $l in dataset('T1')
 return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.1.ddl.aql
index 94faa44..497a358 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.1.ddl.aql
@@ -25,12 +25,3 @@
 
 create dataset T1(TestType) primary key id;
 
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake",
-"batters":[[{"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"}],[{"id":349,"descrpt":"Soft"},{"id":449,"descrpt":"Vanilla"}]] }
-);
-
-for $l in dataset('T1')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.2.update.aql
index 94faa44..427703d 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.2.update.aql
@@ -7,24 +7,8 @@
  * Date           : 28th May 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type BatterType as {
-id:int32,
-descrpt:string
-}
-
-create type TestType as {
-id:int32,
-description:string,
-name:string,
-batters:[[BatterType]]?
-}
-
-create dataset T1(TestType) primary key id;
-
 insert into dataset T1({
 "id":1234,
 "description":"donut",
@@ -32,5 +16,3 @@
 "batters":[[{"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"}],[{"id":349,"descrpt":"Soft"},{"id":449,"descrpt":"Vanilla"}]] }
 );
 
-for $l in dataset('T1')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.3.query.aql
index 94faa44..abae0ca 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/heterog-list03/heterog-list03.3.query.aql
@@ -7,30 +7,7 @@
  * Date           : 28th May 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type BatterType as {
-id:int32,
-descrpt:string
-}
-
-create type TestType as {
-id:int32,
-description:string,
-name:string,
-batters:[[BatterType]]?
-}
-
-create dataset T1(TestType) primary key id;
-
-insert into dataset T1({
-"id":1234,
-"description":"donut",
-"name":"Cake",
-"batters":[[{"id":345,"descrpt":"Regular"},{"id":445,"descrpt":"Chocolate"}],[{"id":349,"descrpt":"Soft"},{"id":449,"descrpt":"Vanilla"}]] }
-);
-
 for $l in dataset('T1')
 return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.1.ddl.aql
index 55d0497..4a4565b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.1.ddl.aql
@@ -18,11 +18,3 @@
 
 create dataset testds(testType) primary key id;
 
-
-insert into dataset testds({"id": 123, "name": "John Doe", "hobbies": {{ "scuba", "music" }} }
-);
-
-write output to nc1:"rttest/open-closed_open-closed-01.adm";
-for $l in dataset("testds") 
-order by $l.id
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.2.update.aql
index 55d0497..524ce33 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.2.update.aql
@@ -5,24 +5,7 @@
  * Date            : April 2 2012
  */
 
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type testType as{
-id : int32,
-name : string
-}
-
-create dataset testds(testType) primary key id;
-
-
 insert into dataset testds({"id": 123, "name": "John Doe", "hobbies": {{ "scuba", "music" }} }
 );
-
-write output to nc1:"rttest/open-closed_open-closed-01.adm";
-for $l in dataset("testds") 
-order by $l.id
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.3.query.aql
index 55d0497..e69d32a 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-01/open-closed-01.3.query.aql
@@ -5,24 +5,8 @@
  * Date            : April 2 2012
  */
 
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type testType as{
-id : int32,
-name : string
-}
-
-create dataset testds(testType) primary key id;
-
-
-insert into dataset testds({"id": 123, "name": "John Doe", "hobbies": {{ "scuba", "music" }} }
-);
-
-write output to nc1:"rttest/open-closed_open-closed-01.adm";
 for $l in dataset("testds") 
 order by $l.id
 return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.1.ddl.aql
index 087ca36..33ba479 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.1.ddl.aql
@@ -26,25 +26,3 @@
 
 create dataset testds02(testtype02) primary key id;
 
-insert into dataset testds02 (
-{ "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "002", "name": "Person Two", "hobbies": {{"fishing", "dance"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "003", "name": "Person Three", "hobbies": {{"hiking", "surfing"}}}
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-12.adm";
-for $d in dataset("testds01")
-order by $d.id
-return $d
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.2.update.aql
index 087ca36..0361970 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.2.update.aql
@@ -6,26 +6,8 @@
  * Date           : 27 March 2012
  */
 
-drop dataverse testdv2 if exists;
-
-create dataverse testdv2; 
-
 use dataverse testdv2;
 
-create type testtype01 as open {
-  id: string,
-  name: string
-}
-
-create type testtype02 as open {
-id : string,
-name : string
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
 insert into dataset testds02 (
 { "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
 );
@@ -43,8 +25,3 @@
 return $d
 );
 
-write output to nc1:"rttest/open-closed_open-closed-12.adm";
-for $d in dataset("testds01")
-order by $d.id
-return $d
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.3.query.aql
index 087ca36..76dd7b0 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-12/open-closed-12.3.query.aql
@@ -6,44 +6,8 @@
  * Date           : 27 March 2012
  */
 
-drop dataverse testdv2 if exists;
-
-create dataverse testdv2; 
-
 use dataverse testdv2;
 
-create type testtype01 as open {
-  id: string,
-  name: string
-}
-
-create type testtype02 as open {
-id : string,
-name : string
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
-insert into dataset testds02 (
-{ "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "002", "name": "Person Two", "hobbies": {{"fishing", "dance"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "003", "name": "Person Three", "hobbies": {{"hiking", "surfing"}}}
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-12.adm";
 for $d in dataset("testds01")
 order by $d.id
 return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.1.ddl.aql
index 7038437..3b1d16b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.1.ddl.aql
@@ -23,33 +23,3 @@
 
 create dataset testds02(testtype02) primary key id;
 
-insert into dataset testds01 (
-{ "id": "001" }
-);
-
-insert into dataset testds01 (
-{ "id": "002", "name": "John Doe" }
-);
-
-insert into dataset testds02 (
-{ "id": "003" }
-);
-
-insert into dataset testds02 (
-{ "id": "004" }
-);
-
-insert into dataset testds02 (
-{ "id": "005" }
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-14.adm";
-for $d in dataset("testds01")
-order by $d.id
-return $d
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.2.update.aql
index 7038437..110d965 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.2.update.aql
@@ -6,23 +6,8 @@
  * Date          : March 27 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as closed {
-  id: string,
-  name: string?
-}
-
-create type testtype02 as closed {
-  id: string  
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
 insert into dataset testds01 (
 { "id": "001" }
 );
@@ -48,8 +33,3 @@
 return $d
 );
 
-write output to nc1:"rttest/open-closed_open-closed-14.adm";
-for $d in dataset("testds01")
-order by $d.id
-return $d
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.3.query.aql
index 7038437..49a8459 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-14/open-closed-14.3.query.aql
@@ -6,49 +6,8 @@
  * Date          : March 27 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as closed {
-  id: string,
-  name: string?
-}
-
-create type testtype02 as closed {
-  id: string  
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
-insert into dataset testds01 (
-{ "id": "001" }
-);
-
-insert into dataset testds01 (
-{ "id": "002", "name": "John Doe" }
-);
-
-insert into dataset testds02 (
-{ "id": "003" }
-);
-
-insert into dataset testds02 (
-{ "id": "004" }
-);
-
-insert into dataset testds02 (
-{ "id": "005" }
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-14.adm";
 for $d in dataset("testds01")
 order by $d.id
 return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.1.ddl.aql
index d3547e2..d7d7cc2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.1.ddl.aql
@@ -28,25 +28,3 @@
 
 create dataset tdtst(Schema) primary key id_32; 
 
-insert into dataset tdtst(
-let $f1:=time("10:50:56:200+05:00")
-let $f2:=datetime("2011-12-31T14:00:00-10:00")
-let $f3:=point("100.0,200.0")
-return {
-"id_8":100,
-"id_16":1011,
-"id_32":23455,
-"id_64":34567,
-"fp":87.61863f,
-"name":"John",
-"dt":"03-21-1982",
-"tm": $f1,
-"dt_tm": $f2,
-"lat_lon": $f3
-}
-);
-
-write output to nc1:"rttest/open-closed_open-closed-15.adm";
-for $l in dataset('tdtst')
-return $l
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.2.update.aql
index d3547e2..6a470a1 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.2.update.aql
@@ -7,27 +7,8 @@
  * Date           : March 30th 2012
  */
 
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type Schema as closed{
-id_8: int8,
-id_16: int16,
-id_32: int32,
-id_64: int64,
-fp : float,
-name: string,
-dt: date,
-tm: time,
-dt_tm: datetime,
-lat_lon: point
-}
-
-create dataset tdtst(Schema) primary key id_32; 
-
 insert into dataset tdtst(
 let $f1:=time("10:50:56:200+05:00")
 let $f2:=datetime("2011-12-31T14:00:00-10:00")
@@ -46,7 +27,3 @@
 }
 );
 
-write output to nc1:"rttest/open-closed_open-closed-15.adm";
-for $l in dataset('tdtst')
-return $l
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.3.query.aql
index d3547e2..43cb80a 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-15/open-closed-15.3.query.aql
@@ -7,46 +7,8 @@
  * Date           : March 30th 2012
  */
 
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type Schema as closed{
-id_8: int8,
-id_16: int16,
-id_32: int32,
-id_64: int64,
-fp : float,
-name: string,
-dt: date,
-tm: time,
-dt_tm: datetime,
-lat_lon: point
-}
-
-create dataset tdtst(Schema) primary key id_32; 
-
-insert into dataset tdtst(
-let $f1:=time("10:50:56:200+05:00")
-let $f2:=datetime("2011-12-31T14:00:00-10:00")
-let $f3:=point("100.0,200.0")
-return {
-"id_8":100,
-"id_16":1011,
-"id_32":23455,
-"id_64":34567,
-"fp":87.61863f,
-"name":"John",
-"dt":"03-21-1982",
-"tm": $f1,
-"dt_tm": $f2,
-"lat_lon": $f3
-}
-);
-
-write output to nc1:"rttest/open-closed_open-closed-15.adm";
 for $l in dataset('tdtst')
 return $l
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.1.ddl.aql
index d07fce0..f77e5e2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.1.ddl.aql
@@ -8,9 +8,7 @@
  */
 
 drop dataverse test if exists;
-
 create dataverse test;
-
 use dataverse test;
 
 create type Schema as open{
@@ -27,26 +25,3 @@
 }
 
 create dataset tdtst(Schema) primary key id_32; 
-
-insert into dataset tdtst(
-let $f1:=time("10:50:56:200+05:00")
-let $f2:=datetime("2011-12-31T14:00:00-10:00")
-let $f3:=point("100.0,200.0")
-return {
-"id_8":100,
-"id_16":1011,
-"id_32":23455,
-"id_64":34567,
-"fp":87.61863f,
-"name":"John",
-"dt":"03-21-1982",
-"tm": $f1,
-"dt_tm": $f2,
-"lat_lon": $f3
-}
-);
-
-write output to nc1:"rttest/open-closed_open-closed-16.adm";
-for $l in dataset('tdtst')
-return $l
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.2.update.aql
index d07fce0..f154dda 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.2.update.aql
@@ -7,27 +7,8 @@
  * Date           : March 30th 2012
  */
 
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type Schema as open{
-id_8: int8,
-id_16: int16,
-id_32: int32,
-id_64: int64,
-fp : float,
-name: string,
-dt: date,
-tm: time,
-dt_tm: datetime,
-lat_lon: point
-}
-
-create dataset tdtst(Schema) primary key id_32; 
-
 insert into dataset tdtst(
 let $f1:=time("10:50:56:200+05:00")
 let $f2:=datetime("2011-12-31T14:00:00-10:00")
@@ -45,8 +26,3 @@
 "lat_lon": $f3
 }
 );
-
-write output to nc1:"rttest/open-closed_open-closed-16.adm";
-for $l in dataset('tdtst')
-return $l
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.3.query.aql
index d07fce0..a1a841a 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-16/open-closed-16.3.query.aql
@@ -6,47 +6,8 @@
  * Success        : Yes this test should PASS!
  * Date           : March 30th 2012
  */
-
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type Schema as open{
-id_8: int8,
-id_16: int16,
-id_32: int32,
-id_64: int64,
-fp : float,
-name: string,
-dt: date,
-tm: time,
-dt_tm: datetime,
-lat_lon: point
-}
-
-create dataset tdtst(Schema) primary key id_32; 
-
-insert into dataset tdtst(
-let $f1:=time("10:50:56:200+05:00")
-let $f2:=datetime("2011-12-31T14:00:00-10:00")
-let $f3:=point("100.0,200.0")
-return {
-"id_8":100,
-"id_16":1011,
-"id_32":23455,
-"id_64":34567,
-"fp":87.61863f,
-"name":"John",
-"dt":"03-21-1982",
-"tm": $f1,
-"dt_tm": $f2,
-"lat_lon": $f3
-}
-);
-
-write output to nc1:"rttest/open-closed_open-closed-16.adm";
 for $l in dataset('tdtst')
 return $l
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.1.ddl.aql
index da83e0f..12461e9 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.1.ddl.aql
@@ -24,25 +24,3 @@
 
 create dataset tdtst(Schema) primary key id_32; 
 
-insert into dataset tdtst(
-let $f1:=time("10:50:56:200+05:00")
-let $f2:=datetime("2011-12-31T14:00:00-10:00")
-let $f3:=point("100.0,200.0")
-return {
-"id_8":100,
-"id_16":1011,
-"id_32":23455,
-"id_64":34567,
-"fp":87.61863f,
-"name":"John",
-"dt":"03-21-1982",
-"tm": $f1,
-"dt_tm": $f2,
-"lat_lon": $f3,
-"mydata":{{"this is my additional data"}}
-}
-);
-
-write output to nc1:"rttest/open-closed_open-closed-17.adm";
-for $l in dataset('tdtst')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.2.update.aql
index da83e0f..2474e62 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.2.update.aql
@@ -5,25 +5,8 @@
  * Date           :  March 30th 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type Schema as open{
-id_8: int8,
-id_16: int16,
-id_32: int32,
-id_64: int64,
-fp : float,
-name: string,
-dt: date,
-tm: time,
-dt_tm: datetime,
-lat_lon: point
-}
-
-create dataset tdtst(Schema) primary key id_32; 
-
 insert into dataset tdtst(
 let $f1:=time("10:50:56:200+05:00")
 let $f2:=datetime("2011-12-31T14:00:00-10:00")
@@ -42,7 +25,3 @@
 "mydata":{{"this is my additional data"}}
 }
 );
-
-write output to nc1:"rttest/open-closed_open-closed-17.adm";
-for $l in dataset('tdtst')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.3.query.aql
index da83e0f..ee8c2c2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-17/open-closed-17.3.query.aql
@@ -5,44 +5,7 @@
  * Date           :  March 30th 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type Schema as open{
-id_8: int8,
-id_16: int16,
-id_32: int32,
-id_64: int64,
-fp : float,
-name: string,
-dt: date,
-tm: time,
-dt_tm: datetime,
-lat_lon: point
-}
-
-create dataset tdtst(Schema) primary key id_32; 
-
-insert into dataset tdtst(
-let $f1:=time("10:50:56:200+05:00")
-let $f2:=datetime("2011-12-31T14:00:00-10:00")
-let $f3:=point("100.0,200.0")
-return {
-"id_8":100,
-"id_16":1011,
-"id_32":23455,
-"id_64":34567,
-"fp":87.61863f,
-"name":"John",
-"dt":"03-21-1982",
-"tm": $f1,
-"dt_tm": $f2,
-"lat_lon": $f3,
-"mydata":{{"this is my additional data"}}
-}
-);
-
-write output to nc1:"rttest/open-closed_open-closed-17.adm";
 for $l in dataset('tdtst')
 return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.1.ddl.aql
index 1d93992..de32b75 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.1.ddl.aql
@@ -31,22 +31,3 @@
 }
 
 create dataset employee(Emp) primary key id;
-
-insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":202,"name":"John Smith","age":30,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":203,"name":"Roger Sanders","age":48,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":204,"name":"Raj Singh","age":37,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":206,"name":"Brett Lee","age":35,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":207,"name":"Chen Li","age":39,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":208,"name":"Mike Carey","age":42,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":209,"name":"Abdullah","age":29,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":221,"name":"Mariam","age":25,"sex":"F","dob":"1-1-82"});
-insert into dataset employee({"id":221,"name":"Mariam","age":25,"sex":"F","dob":"1-1-82","desgination":{{"dsg":"Department Manager"}}});
-
-insert into dataset dtst01({for $l in dataset('employee') return $l});
-
-write output to nc1:"rttest/open-closed_open-closed-19.adm";
-for $l in dataset('dtst01')
-retunr $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.2.update.aql
index 1d93992..9627702 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.2.update.aql
@@ -7,46 +7,7 @@
  */
 
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type TestType as open {
-id:int32
-}
-
-create dataset dtst01(TestType) primary key id;
-
-insert into dtst01({"id":137});
-insert into dtst01({"id":117});
-insert into dtst01({"id":127});
-insert into dtst01({"id":147});
-
-create type Emp as open {
-id:int32,
-name:string,
-age:int8,
-sex:string,
-dob:date
-}
-
-create dataset employee(Emp) primary key id;
-
-insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":202,"name":"John Smith","age":30,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":203,"name":"Roger Sanders","age":48,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":204,"name":"Raj Singh","age":37,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":206,"name":"Brett Lee","age":35,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":207,"name":"Chen Li","age":39,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":208,"name":"Mike Carey","age":42,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":209,"name":"Abdullah","age":29,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":221,"name":"Mariam","age":25,"sex":"F","dob":"1-1-82"});
-insert into dataset employee({"id":221,"name":"Mariam","age":25,"sex":"F","dob":"1-1-82","desgination":{{"dsg":"Department Manager"}}});
-
-insert into dataset dtst01({for $l in dataset('employee') return $l});
-
-write output to nc1:"rttest/open-closed_open-closed-19.adm";
 for $l in dataset('dtst01')
 retunr $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.3.query.aql
index 1d93992..9627702 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-19/open-closed-19.3.query.aql
@@ -7,46 +7,7 @@
  */
 
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type TestType as open {
-id:int32
-}
-
-create dataset dtst01(TestType) primary key id;
-
-insert into dtst01({"id":137});
-insert into dtst01({"id":117});
-insert into dtst01({"id":127});
-insert into dtst01({"id":147});
-
-create type Emp as open {
-id:int32,
-name:string,
-age:int8,
-sex:string,
-dob:date
-}
-
-create dataset employee(Emp) primary key id;
-
-insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":202,"name":"John Smith","age":30,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":203,"name":"Roger Sanders","age":48,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":204,"name":"Raj Singh","age":37,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":206,"name":"Brett Lee","age":35,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":207,"name":"Chen Li","age":39,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":208,"name":"Mike Carey","age":42,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":209,"name":"Abdullah","age":29,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":221,"name":"Mariam","age":25,"sex":"F","dob":"1-1-82"});
-insert into dataset employee({"id":221,"name":"Mariam","age":25,"sex":"F","dob":"1-1-82","desgination":{{"dsg":"Department Manager"}}});
-
-insert into dataset dtst01({for $l in dataset('employee') return $l});
-
-write output to nc1:"rttest/open-closed_open-closed-19.adm";
 for $l in dataset('dtst01')
 retunr $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.1.ddl.aql
index 7f1be27..9a80b41 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.1.ddl.aql
@@ -27,20 +27,3 @@
 }
 
 create dataset employee(Emp) primary key id;
-
-insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":date("1975-01-11")});
-insert into dataset employee({"id":202,"name":"John Smith","age":30,date("1982-05-23")});
-insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M"});
-insert into dataset employee({"id":203,"name":"Roger Sanders","age":48,"sex":"M","dob":date("1960-01-08")});
-insert into dataset employee({"id":204,"name":"Raj Singh","age":37,"sex":"M","dob":date("1975-01-08")});
-insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"dob":date("1969-11-02")});
-insert into dataset employee({"id":206,"name":"Brett Lee","age":35,"sex":"M","dob":date("1976-06-09")});
-insert into dataset employee({"id":207,"name":"Chen Li","age":39,"sex":"M"});
-insert into dataset employee({"id":208,"name":"Mike Carey","age":42});
-insert into dataset employee({"id":221,"name":"Mariam","age":40,"sex":"F","dob":date("1970-01-09"),"desgination":{{"dsg":"Department Manager"}}});
-
-insert into dataset dtst01(for $l in dataset('employee') return $l);
-
-write output to nc1:"rttest/open-closed_open-closed-20.adm";
-for $l in dataset('dtst01')
-return $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.2.update.aql
index 7f1be27..4e96d0b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.2.update.aql
@@ -7,27 +7,8 @@
  * Date           :  May 01 2012
  */
 
-
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type TestType as open {
-id:int32
-}
-
-create dataset dtst01(TestType) primary key id;
-
-create type Emp as open {
-id:int32,
-name:string,
-age:int8,
-sex:string?,
-dob:date?
-}
-
-create dataset employee(Emp) primary key id;
-
 insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":date("1975-01-11")});
 insert into dataset employee({"id":202,"name":"John Smith","age":30,date("1982-05-23")});
 insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M"});
@@ -41,6 +22,3 @@
 
 insert into dataset dtst01(for $l in dataset('employee') return $l);
 
-write output to nc1:"rttest/open-closed_open-closed-20.adm";
-for $l in dataset('dtst01')
-return $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.3.query.aql
index 7f1be27..17454d0 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20/open-closed-20.3.query.aql
@@ -7,40 +7,7 @@
  * Date           :  May 01 2012
  */
 
-
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type TestType as open {
-id:int32
-}
-
-create dataset dtst01(TestType) primary key id;
-
-create type Emp as open {
-id:int32,
-name:string,
-age:int8,
-sex:string?,
-dob:date?
-}
-
-create dataset employee(Emp) primary key id;
-
-insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":date("1975-01-11")});
-insert into dataset employee({"id":202,"name":"John Smith","age":30,date("1982-05-23")});
-insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M"});
-insert into dataset employee({"id":203,"name":"Roger Sanders","age":48,"sex":"M","dob":date("1960-01-08")});
-insert into dataset employee({"id":204,"name":"Raj Singh","age":37,"sex":"M","dob":date("1975-01-08")});
-insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"dob":date("1969-11-02")});
-insert into dataset employee({"id":206,"name":"Brett Lee","age":35,"sex":"M","dob":date("1976-06-09")});
-insert into dataset employee({"id":207,"name":"Chen Li","age":39,"sex":"M"});
-insert into dataset employee({"id":208,"name":"Mike Carey","age":42});
-insert into dataset employee({"id":221,"name":"Mariam","age":40,"sex":"F","dob":date("1970-01-09"),"desgination":{{"dsg":"Department Manager"}}});
-
-insert into dataset dtst01(for $l in dataset('employee') return $l);
-
-write output to nc1:"rttest/open-closed_open-closed-20.adm";
 for $l in dataset('dtst01')
 return $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.1.ddl.aql
index 3d955c8..33cb737 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.1.ddl.aql
@@ -25,19 +25,3 @@
 }
 
 create dataset employee(Emp) primary key id;
-
-insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":date("1975-01-11")});
-insert into dataset employee({"id":202,"name":"John Smith","age":30,"sex":"M","dob":date("1982-07-12")});
-insert into dataset employee({"id":203,"name":"John Wayne","age":62,"sex":"M","dob":date("1950-01-08")});
-insert into dataset employee({"id":204,"name":"Roger Sanders","age":48,"sex":"M","dob":date("1972-11-12")});
-insert into dataset employee({"id":205,"name":"Raj Singh","age":37,"sex":"M","dob":date("1978-05-06")});
-insert into dataset employee({"id":206,"name":"Mike Tyson","age":44,"sex":"M","dob":date("1965-09-03")});
-insert into dataset employee({"id":227,"name":"Mariam","age":30,"sex":"F","dob":date("1982-11-01")});
-
-insert into dataset employee({"id":228,"name":"Cathy","age":35,"sex":"F","dob":date("1976-06-11"),"desgination":{{"Department Manager"}}});
-
-insert into dataset dtst01(for $l in dataset('employee') return $l);
-
-write output to nc1:"rttest/open-closed_open-closed-21.adm";
-for $l in dataset('dtst01')
-return $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.2.update.aql
index 3d955c8..7f5abaa 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.2.update.aql
@@ -6,26 +6,8 @@
  * Date           :  29 April 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type TestType as open {
-id:int32
-}
-
-create dataset dtst01(TestType) primary key id;
-
-create type Emp as open {
-id:int32,
-name:string,
-age:int8,
-sex:string,
-dob:date
-}
-
-create dataset employee(Emp) primary key id;
-
 insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":date("1975-01-11")});
 insert into dataset employee({"id":202,"name":"John Smith","age":30,"sex":"M","dob":date("1982-07-12")});
 insert into dataset employee({"id":203,"name":"John Wayne","age":62,"sex":"M","dob":date("1950-01-08")});
@@ -38,6 +20,3 @@
 
 insert into dataset dtst01(for $l in dataset('employee') return $l);
 
-write output to nc1:"rttest/open-closed_open-closed-21.adm";
-for $l in dataset('dtst01')
-return $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.3.query.aql
index 3d955c8..5066474 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21/open-closed-21.3.query.aql
@@ -6,38 +6,7 @@
  * Date           :  29 April 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type TestType as open {
-id:int32
-}
-
-create dataset dtst01(TestType) primary key id;
-
-create type Emp as open {
-id:int32,
-name:string,
-age:int8,
-sex:string,
-dob:date
-}
-
-create dataset employee(Emp) primary key id;
-
-insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":date("1975-01-11")});
-insert into dataset employee({"id":202,"name":"John Smith","age":30,"sex":"M","dob":date("1982-07-12")});
-insert into dataset employee({"id":203,"name":"John Wayne","age":62,"sex":"M","dob":date("1950-01-08")});
-insert into dataset employee({"id":204,"name":"Roger Sanders","age":48,"sex":"M","dob":date("1972-11-12")});
-insert into dataset employee({"id":205,"name":"Raj Singh","age":37,"sex":"M","dob":date("1978-05-06")});
-insert into dataset employee({"id":206,"name":"Mike Tyson","age":44,"sex":"M","dob":date("1965-09-03")});
-insert into dataset employee({"id":227,"name":"Mariam","age":30,"sex":"F","dob":date("1982-11-01")});
-
-insert into dataset employee({"id":228,"name":"Cathy","age":35,"sex":"F","dob":date("1976-06-11"),"desgination":{{"Department Manager"}}});
-
-insert into dataset dtst01(for $l in dataset('employee') return $l);
-
-write output to nc1:"rttest/open-closed_open-closed-21.adm";
 for $l in dataset('dtst01')
 return $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.1.ddl.aql
index 0b4c31f..4f7c972 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.1.ddl.aql
@@ -21,24 +21,3 @@
 }
 
 create dataset employee(Emp) primary key id;
-
-//date("YYYY-MM-DD")
-insert into dataset employee({"id":201,"name":"John Doe","age":37,"dept":"HR","sex":"M","dob":date("1975-11-02")});
-
-insert into dataset employee({"id":202,"name":"John Smith","age":30,"dept":"Sales","sex":"M","dob":date("1982-12-12")});
-
-// all optional fields missing
-insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M"});
-
-// missing age field
-insert into dataset employee({"id":203,"name":"Roger Sanders","dept":"Technology","sex":"M","dob":date("1970-03-12")});
-
-// all optional fields missing!
-insert into dataset employee({"id":204,"name":"Raj Singh","sex":"M"});
-
-// missing dept field
-insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"sex":"M","dob":date("1970-12-22")});
-
-write output to nc1:"rttest/open-closed_open-closed-22.adm";
-for $l in dataset('employee')
-return $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.2.update.aql
index 0b4c31f..53ddcd28 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.2.update.aql
@@ -5,23 +5,8 @@
  * Date           :  30 April 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-write output to nc1:"rttest/open-closed-22.adm";
-
-create type Emp as closed {
-id:int32,
-name:string,
-age:int8?,
-dept:string?,
-sex:string,
-dob:date?
-}
-
-create dataset employee(Emp) primary key id;
-
 //date("YYYY-MM-DD")
 insert into dataset employee({"id":201,"name":"John Doe","age":37,"dept":"HR","sex":"M","dob":date("1975-11-02")});
 
@@ -39,6 +24,3 @@
 // missing dept field
 insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"sex":"M","dob":date("1970-12-22")});
 
-write output to nc1:"rttest/open-closed_open-closed-22.adm";
-for $l in dataset('employee')
-return $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.3.query.aql
index 0b4c31f..2ff0ea9 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22/open-closed-22.3.query.aql
@@ -5,40 +5,7 @@
  * Date           :  30 April 2012
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-write output to nc1:"rttest/open-closed-22.adm";
-
-create type Emp as closed {
-id:int32,
-name:string,
-age:int8?,
-dept:string?,
-sex:string,
-dob:date?
-}
-
-create dataset employee(Emp) primary key id;
-
-//date("YYYY-MM-DD")
-insert into dataset employee({"id":201,"name":"John Doe","age":37,"dept":"HR","sex":"M","dob":date("1975-11-02")});
-
-insert into dataset employee({"id":202,"name":"John Smith","age":30,"dept":"Sales","sex":"M","dob":date("1982-12-12")});
-
-// all optional fields missing
-insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M"});
-
-// missing age field
-insert into dataset employee({"id":203,"name":"Roger Sanders","dept":"Technology","sex":"M","dob":date("1970-03-12")});
-
-// all optional fields missing!
-insert into dataset employee({"id":204,"name":"Raj Singh","sex":"M"});
-
-// missing dept field
-insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"sex":"M","dob":date("1970-12-22")});
-
-write output to nc1:"rttest/open-closed_open-closed-22.adm";
 for $l in dataset('employee')
 return $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.1.ddl.aql
index 4123cf2..5156204 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.1.ddl.aql
@@ -18,9 +18,3 @@
 }
 
 create dataset testds(testType) primary key id;
-
-insert into dataset testds({"id": 32,"name": "UCI","opt_tag":{{"optional text","put any text here","and more"}}});
-
-write output to nc1:"rttest/open-closed_open-closed-24.adm";
-for $l in dataset('testds')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.2.update.aql
index 4123cf2..87f36ff 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.2.update.aql
@@ -5,22 +5,7 @@
  * Date          : 29th May 2012
  */
 
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type testType as open {
-id : int32,
-name : string,
-opt_tag : {{ string }}
-}
-
-create dataset testds(testType) primary key id;
-
 insert into dataset testds({"id": 32,"name": "UCI","opt_tag":{{"optional text","put any text here","and more"}}});
 
-write output to nc1:"rttest/open-closed_open-closed-24.adm";
-for $l in dataset('testds')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.3.query.aql
index 4123cf2..4cb3724 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-24/open-closed-24.3.query.aql
@@ -5,22 +5,7 @@
  * Date          : 29th May 2012
  */
 
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type testType as open {
-id : int32,
-name : string,
-opt_tag : {{ string }}
-}
-
-create dataset testds(testType) primary key id;
-
-insert into dataset testds({"id": 32,"name": "UCI","opt_tag":{{"optional text","put any text here","and more"}}});
-
-write output to nc1:"rttest/open-closed_open-closed-24.adm";
 for $l in dataset('testds')
 return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.1.ddl.aql
index ec0d4cd..08656e2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.1.ddl.aql
@@ -18,9 +18,3 @@
 }
 
 create dataset testds(testType) primary key id;
-
-insert into dataset testds({"id": 32,"name": "UCI","opt_tag":{{"optional text","put any text here","and more"}}});
-
-write output to nc1:"rttest/open-closed_open-closed-25.adm";
-for $l in dataset('testds')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.2.update.aql
index ec0d4cd..bed3bde 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.2.update.aql
@@ -5,22 +5,7 @@
  * Date          : 29th May 2012
  */
 
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type testType as open {
-id : int32,
-name : string,
-opt_tag : {{ string }}?
-}
-
-create dataset testds(testType) primary key id;
-
 insert into dataset testds({"id": 32,"name": "UCI","opt_tag":{{"optional text","put any text here","and more"}}});
 
-write output to nc1:"rttest/open-closed_open-closed-25.adm";
-for $l in dataset('testds')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.3.query.aql
index ec0d4cd..7638f42 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-25/open-closed-25.3.query.aql
@@ -5,22 +5,7 @@
  * Date          : 29th May 2012
  */
 
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type testType as open {
-id : int32,
-name : string,
-opt_tag : {{ string }}?
-}
-
-create dataset testds(testType) primary key id;
-
-insert into dataset testds({"id": 32,"name": "UCI","opt_tag":{{"optional text","put any text here","and more"}}});
-
-write output to nc1:"rttest/open-closed_open-closed-25.adm";
 for $l in dataset('testds')
 return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.1.ddl.aql
index 486b76e..ecceb56 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.1.ddl.aql
@@ -19,9 +19,3 @@
 }
 
 create dataset testds(testType) primary key id;
-
-insert into dataset testds({"id": 32,"name": "UCI"});
-
-write output to nc1:"rttest/open-closed_open-closed-26.adm";
-for $l in dataset('testds')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.2.update.aql
index 486b76e..a5d3435 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.2.update.aql
@@ -6,22 +6,6 @@
  * Date          : 29th May 2012
  */
 
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type testType as open {
-id : int32,
-name : string,
-opt_tag : {{ string }}?
-}
-
-create dataset testds(testType) primary key id;
-
 insert into dataset testds({"id": 32,"name": "UCI"});
-
-write output to nc1:"rttest/open-closed_open-closed-26.adm";
-for $l in dataset('testds')
-return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.3.query.aql
index 486b76e..0a5aa6b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-26/open-closed-26.3.query.aql
@@ -6,22 +6,7 @@
  * Date          : 29th May 2012
  */
 
-drop dataverse test if exists;
-
-create dataverse test;
-
 use dataverse test;
 
-create type testType as open {
-id : int32,
-name : string,
-opt_tag : {{ string }}?
-}
-
-create dataset testds(testType) primary key id;
-
-insert into dataset testds({"id": 32,"name": "UCI"});
-
-write output to nc1:"rttest/open-closed_open-closed-26.adm";
 for $l in dataset('testds')
 return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.1.ddl.aql
index acef21e..041e97e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.1.ddl.aql
@@ -23,29 +23,3 @@
 create dataset testds01(testtype01) primary key id;
 
 create dataset testds02(testtype02) primary key id;
-
-insert into dataset testds02 (
-{ "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "002", "name": "Person Two", "hobbies": {{"fishing", "dance"}}}
-);
-
-
-insert into dataset testds02 (
-{ "id": "003", "name": "Person Three", "hobbies": {{"hiking", "surfing"}}}
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-// select all hobbies where hiking is one of the hobbies
-
-write output to nc1:"rttest/open-closed_open-closed-28.adm";
-for $d in dataset('testds01')
-where every $h in $d.hobbies satisfies $h='hiking' 
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.2.update.aql
index acef21e..7e2076e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.2.update.aql
@@ -6,24 +6,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-  id: string,
-  name: string
-}
-
-create type testtype02 as open {
-id : string,
-name : string
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
 insert into dataset testds02 (
 { "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
 );
@@ -41,11 +25,3 @@
 for $d in dataset("testds02")
 return $d
 );
-
-// select all hobbies where hiking is one of the hobbies
-
-write output to nc1:"rttest/open-closed_open-closed-28.adm";
-for $d in dataset('testds01')
-where every $h in $d.hobbies satisfies $h='hiking' 
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.3.query.aql
index acef21e..919b95b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-28/open-closed-28.3.query.aql
@@ -6,45 +6,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-  id: string,
-  name: string
-}
-
-create type testtype02 as open {
-id : string,
-name : string
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
-insert into dataset testds02 (
-{ "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "002", "name": "Person Two", "hobbies": {{"fishing", "dance"}}}
-);
-
-
-insert into dataset testds02 (
-{ "id": "003", "name": "Person Three", "hobbies": {{"hiking", "surfing"}}}
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-// select all hobbies where hiking is one of the hobbies
-
-write output to nc1:"rttest/open-closed_open-closed-28.adm";
 for $d in dataset('testds01')
 where every $h in $d.hobbies satisfies $h='hiking' 
 order by $d.id
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.1.ddl.aql
index 5047342..a89abd9 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.1.ddl.aql
@@ -23,28 +23,3 @@
 create dataset testds01(testtype01) primary key id;
 
 create dataset testds02(testtype02) primary key id;
-
-insert into dataset testds02 (
-{ "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "002", "name": "Person Two", "hobbies": {{"fishing", "dance"}}}
-);
-
-
-insert into dataset testds02 (
-{ "id": "003", "name": "Person Three", "hobbies": {{"hiking", "surfing"}}}
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-// select all hobbies where hiking is one of the hobbies
-write output to nc1:"rttest/open-closed_open-closed-29.adm";
-for $d in dataset('testds01')
-where some $h in $d.hobbies satisfies $h='hiking' 
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.2.update.aql
index 5047342..6530d19 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.2.update.aql
@@ -6,24 +6,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-  id: string,
-  name: string
-}
-
-create type testtype02 as open {
-id : string,
-name : string
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
 insert into dataset testds02 (
 { "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
 );
@@ -42,9 +26,3 @@
 return $d
 );
 
-// select all hobbies where hiking is one of the hobbies
-write output to nc1:"rttest/open-closed_open-closed-29.adm";
-for $d in dataset('testds01')
-where some $h in $d.hobbies satisfies $h='hiking' 
-order by $d.id
-return $d
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.3.query.aql
index 5047342..91667a8 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-29/open-closed-29.3.query.aql
@@ -6,42 +6,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-  id: string,
-  name: string
-}
-
-create type testtype02 as open {
-id : string,
-name : string
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
-insert into dataset testds02 (
-{ "id": "001", "name": "Person One", "hobbies": {{"scuba", "music"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "002", "name": "Person Two", "hobbies": {{"fishing", "dance"}}}
-);
-
-
-insert into dataset testds02 (
-{ "id": "003", "name": "Person Three", "hobbies": {{"hiking", "surfing"}}}
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
 // select all hobbies where hiking is one of the hobbies
 write output to nc1:"rttest/open-closed_open-closed-29.adm";
 for $d in dataset('testds01')
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.1.ddl.aql
index e52be74..c7b7c4f 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.1.ddl.aql
@@ -23,27 +23,3 @@
 
 create dataset testds02(testtype02) primary key id;
 
-insert into dataset testds02 (
-{ "id": "011", "name": "John Doe", "hobbies": {{"scuba", "music"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "102", "name": "Roger Sanders", "hobbies": {{"fishing", "dance"}}}
-);
-
-
-insert into dataset testds02 (
-{ "id": "203", "name": "Phil Smith", "hobbies": {{"hiking", "surfing"}}}
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-30.adm";
-for $d in dataset('testds01')
-where every $h in $d.hobbies satisfies $h='hiking' 
-order by $d.id
-return $d.hobbies
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.2.update.aql
index e52be74..c83f467 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.2.update.aql
@@ -6,23 +6,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-  id: string
-}
-
-create type testtype02 as open {
-id : string,
-name : string
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
 insert into dataset testds02 (
 { "id": "011", "name": "John Doe", "hobbies": {{"scuba", "music"}}}
 );
@@ -41,9 +26,3 @@
 return $d
 );
 
-write output to nc1:"rttest/open-closed_open-closed-30.adm";
-for $d in dataset('testds01')
-where every $h in $d.hobbies satisfies $h='hiking' 
-order by $d.id
-return $d.hobbies
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.3.query.aql
index e52be74..644d1d8 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-30/open-closed-30.3.query.aql
@@ -6,42 +6,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-  id: string
-}
-
-create type testtype02 as open {
-id : string,
-name : string
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
-insert into dataset testds02 (
-{ "id": "011", "name": "John Doe", "hobbies": {{"scuba", "music"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "102", "name": "Roger Sanders", "hobbies": {{"fishing", "dance"}}}
-);
-
-
-insert into dataset testds02 (
-{ "id": "203", "name": "Phil Smith", "hobbies": {{"hiking", "surfing"}}}
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-30.adm";
 for $d in dataset('testds01')
 where every $h in $d.hobbies satisfies $h='hiking' 
 order by $d.id
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.1.ddl.aql
index 5d5fa33..c787988 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.1.ddl.aql
@@ -21,28 +21,3 @@
 create dataset testds01(testtype01) primary key id;
 
 create dataset testds02(testtype02) primary key id;
-
-insert into dataset testds02 (
-{ "id": "011", "name": "John Doe", "hobbies": {{"scuba", "music"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "102", "name": "Roger Sanders", "hobbies": {{"fishing", "dance"}}}
-);
-
-
-insert into dataset testds02 (
-{ "id": "203", "name": "Phil Smith", "hobbies": {{"hiking", "surfing"}}}
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-31.adm";
-for $d in dataset('testds01')
-where some $h in $d.hobbies satisfies $h='hiking' 
-order by $d.id
-return $d.hobbies
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.2.update.aql
index 5d5fa33..ee54e2e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.2.update.aql
@@ -5,23 +5,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-  id: string
-}
-
-create type testtype02 as open {
-id : string,
-name : string
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
 insert into dataset testds02 (
 { "id": "011", "name": "John Doe", "hobbies": {{"scuba", "music"}}}
 );
@@ -40,9 +25,3 @@
 return $d
 );
 
-write output to nc1:"rttest/open-closed_open-closed-31.adm";
-for $d in dataset('testds01')
-where some $h in $d.hobbies satisfies $h='hiking' 
-order by $d.id
-return $d.hobbies
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.3.query.aql
index 5d5fa33..e1412a9 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-31/open-closed-31.3.query.aql
@@ -5,42 +5,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-  id: string
-}
-
-create type testtype02 as open {
-id : string,
-name : string
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
-insert into dataset testds02 (
-{ "id": "011", "name": "John Doe", "hobbies": {{"scuba", "music"}}}
-);
-
-insert into dataset testds02 (
-{ "id": "102", "name": "Roger Sanders", "hobbies": {{"fishing", "dance"}}}
-);
-
-
-insert into dataset testds02 (
-{ "id": "203", "name": "Phil Smith", "hobbies": {{"hiking", "surfing"}}}
-);
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-31.adm";
 for $d in dataset('testds01')
 where some $h in $d.hobbies satisfies $h='hiking' 
 order by $d.id
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.1.ddl.aql
index a79c53d..a5d88df 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.1.ddl.aql
@@ -27,28 +27,3 @@
 
 create dataset testds02(testtype02) primary key id;
 
-insert into dataset testds02 (
-{ "id": "011", "name": "John Doe", "sex":"Male", "dept":"HR", "salary":80000,"interests":{{"hiking","scuba","painting","biking"}}});
-
-insert into dataset testds02 (
-{ "id": "921", "name": "John Smith", "sex":"Male", "dept":"Sales", "salary":65000,"interests":{{"gardening","biking","reading","hiking","fishing"}}});
-
-insert into dataset testds02 (
-{ "id": "959", "name": "Susan Malaika", "sex":"Female", "dept":"XML Dev", "salary":200000,"interests":{{"XML","Web Services","Cloud","X-Forms","art","travelling"}}});
-
-insert into dataset testds02 (
-{ "id": "371", "name": "Tom Sawyer", "sex":"Male", "dept":"Well Being", "salary":90000,"interests":{{"tennis","scuba","running","biking"}}});
-
-// insert into open type target dataset by doing a select on the closed type (source) internal dataset
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-32.adm";
-for $d in dataset('testds01')
-where some $h in $d.interests satisfies $h='biking' 
-order by $d.id
-return $d.interests
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.2.update.aql
index a79c53d..4c40301 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.2.update.aql
@@ -6,27 +6,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-id: string
-}
-
-create type testtype02 as closed {
-id : string,
-name : string,
-sex : string,
-dept : string,
-salary : int32,
-interests : {{string}}
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
 insert into dataset testds02 (
 { "id": "011", "name": "John Doe", "sex":"Male", "dept":"HR", "salary":80000,"interests":{{"hiking","scuba","painting","biking"}}});
 
@@ -46,9 +27,3 @@
 return $d
 );
 
-write output to nc1:"rttest/open-closed_open-closed-32.adm";
-for $d in dataset('testds01')
-where some $h in $d.interests satisfies $h='biking' 
-order by $d.id
-return $d.interests
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.3.query.aql
index a79c53d..dbf2729 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-32/open-closed-32.3.query.aql
@@ -6,47 +6,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-id: string
-}
-
-create type testtype02 as closed {
-id : string,
-name : string,
-sex : string,
-dept : string,
-salary : int32,
-interests : {{string}}
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
-insert into dataset testds02 (
-{ "id": "011", "name": "John Doe", "sex":"Male", "dept":"HR", "salary":80000,"interests":{{"hiking","scuba","painting","biking"}}});
-
-insert into dataset testds02 (
-{ "id": "921", "name": "John Smith", "sex":"Male", "dept":"Sales", "salary":65000,"interests":{{"gardening","biking","reading","hiking","fishing"}}});
-
-insert into dataset testds02 (
-{ "id": "959", "name": "Susan Malaika", "sex":"Female", "dept":"XML Dev", "salary":200000,"interests":{{"XML","Web Services","Cloud","X-Forms","art","travelling"}}});
-
-insert into dataset testds02 (
-{ "id": "371", "name": "Tom Sawyer", "sex":"Male", "dept":"Well Being", "salary":90000,"interests":{{"tennis","scuba","running","biking"}}});
-
-// insert into open type target dataset by doing a select on the closed type (source) internal dataset
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-32.adm";
 for $d in dataset('testds01')
 where some $h in $d.interests satisfies $h='biking' 
 order by $d.id
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.1.ddl.aql
index 809c93e..8de22c0 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.1.ddl.aql
@@ -28,28 +28,3 @@
 
 create dataset testds02(testtype02) primary key id;
 
-insert into dataset testds02 (
-{ "id": "011", "name": "John Doe", "sex":"Male", "dept":"HR", "salary":80000,"interests":{{"hiking","scuba","painting","biking"}}});
-
-insert into dataset testds02 (
-{ "id": "921", "name": "John Smith", "sex":"Male", "dept":"Sales", "salary":65000,"interests":{{"gardening","biking","reading","hiking","fishing"}}});
-
-insert into dataset testds02 (
-{ "id": "959", "name": "Susan Malaika", "sex":"Female", "dept":"XML Dev", "salary":200000,"interests":{{"XML","Web Services","Cloud","X-Forms","art","travelling"}}});
-
-insert into dataset testds02 (
-{ "id": "371", "name": "Tom Sawyer", "sex":"Male", "dept":"Well Being", "salary":90000,"interests":{{"tennis","scuba","running","biking"}}});
-
-// insert into open type target dataset by doing a select on the closed type (source) internal dataset
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-33.adm";
-for $d in dataset('testds01')
-where some $h in $d.interests satisfies $h='biking' 
-order by $d.id
-return $d.interests
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.2.update.aql
index 809c93e..ef41d1d 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.2.update.aql
@@ -7,27 +7,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-id: string
-}
-
-create type testtype02 as closed {
-id : string,
-name : string,
-sex : string,
-dept : string,
-salary : int32,
-interests : {{string}}?
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
 insert into dataset testds02 (
 { "id": "011", "name": "John Doe", "sex":"Male", "dept":"HR", "salary":80000,"interests":{{"hiking","scuba","painting","biking"}}});
 
@@ -47,9 +28,3 @@
 return $d
 );
 
-write output to nc1:"rttest/open-closed_open-closed-33.adm";
-for $d in dataset('testds01')
-where some $h in $d.interests satisfies $h='biking' 
-order by $d.id
-return $d.interests
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.3.query.aql
index 809c93e..93c39d4 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-33/open-closed-33.3.query.aql
@@ -7,47 +7,8 @@
  * Date           : 31st May 2012
  */
 
-drop dataverse testdv2 if exists;
-create dataverse testdv2;
 use dataverse testdv2;
 
-create type testtype01 as open {
-id: string
-}
-
-create type testtype02 as closed {
-id : string,
-name : string,
-sex : string,
-dept : string,
-salary : int32,
-interests : {{string}}?
-}
-
-create dataset testds01(testtype01) primary key id;
-
-create dataset testds02(testtype02) primary key id;
-
-insert into dataset testds02 (
-{ "id": "011", "name": "John Doe", "sex":"Male", "dept":"HR", "salary":80000,"interests":{{"hiking","scuba","painting","biking"}}});
-
-insert into dataset testds02 (
-{ "id": "921", "name": "John Smith", "sex":"Male", "dept":"Sales", "salary":65000,"interests":{{"gardening","biking","reading","hiking","fishing"}}});
-
-insert into dataset testds02 (
-{ "id": "959", "name": "Susan Malaika", "sex":"Female", "dept":"XML Dev", "salary":200000,"interests":{{"XML","Web Services","Cloud","X-Forms","art","travelling"}}});
-
-insert into dataset testds02 (
-{ "id": "371", "name": "Tom Sawyer", "sex":"Male", "dept":"Well Being", "salary":90000,"interests":{{"tennis","scuba","running","biking"}}});
-
-// insert into open type target dataset by doing a select on the closed type (source) internal dataset
-
-insert into dataset testds01(
-for $d in dataset("testds02")
-return $d
-);
-
-write output to nc1:"rttest/open-closed_open-closed-33.adm";
 for $d in dataset('testds01')
 where some $h in $d.interests satisfies $h='biking' 
 order by $d.id
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue134/uery-issue134.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue134/uery-issue134.1.ddl.aql
deleted file mode 100644
index 62a9ed8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue134/uery-issue134.1.ddl.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue134
- 				: https://code.google.com/p/asterixdb/issues/detail?id=134
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue134.adm";
-
-let $a:=true
-return {{[1,2,3,4,5],[6,5,3,8,9],[44,22,66,-1,0,99.9]}}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue134/uery-issue134.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue134/uery-issue134.2.update.aql
deleted file mode 100644
index 62a9ed8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue134/uery-issue134.2.update.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue134
- 				: https://code.google.com/p/asterixdb/issues/detail?id=134
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue134.adm";
-
-let $a:=true
-return {{[1,2,3,4,5],[6,5,3,8,9],[44,22,66,-1,0,99.9]}}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue134/uery-issue134.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue134/uery-issue134.3.query.aql
deleted file mode 100644
index 62a9ed8..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue134/uery-issue134.3.query.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue134
- 				: https://code.google.com/p/asterixdb/issues/detail?id=134
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue134.adm";
-
-let $a:=true
-return {{[1,2,3,4,5],[6,5,3,8,9],[44,22,66,-1,0,99.9]}}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue166/uery-issue166.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue166/uery-issue166.1.ddl.aql
deleted file mode 100644
index aa0d13b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue166/uery-issue166.1.ddl.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue166
- 				: https://code.google.com/p/asterixdb/issues/detail?id=166
- * Expected Res : Success
- * Date         : 26th November 2012
- */
- 
-write output to nc1:"rttest/open-closed_query-issue166.adm";
-
-let $a := [[1,2,3],[4,5,6,7]]
-return $a[1]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue166/uery-issue166.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue166/uery-issue166.2.update.aql
deleted file mode 100644
index aa0d13b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue166/uery-issue166.2.update.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue166
- 				: https://code.google.com/p/asterixdb/issues/detail?id=166
- * Expected Res : Success
- * Date         : 26th November 2012
- */
- 
-write output to nc1:"rttest/open-closed_query-issue166.adm";
-
-let $a := [[1,2,3],[4,5,6,7]]
-return $a[1]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue166/uery-issue166.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue166/uery-issue166.3.query.aql
deleted file mode 100644
index aa0d13b..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue166/uery-issue166.3.query.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue166
- 				: https://code.google.com/p/asterixdb/issues/detail?id=166
- * Expected Res : Success
- * Date         : 26th November 2012
- */
- 
-write output to nc1:"rttest/open-closed_query-issue166.adm";
-
-let $a := [[1,2,3],[4,5,6,7]]
-return $a[1]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue208/uery-issue208.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue208/uery-issue208.1.ddl.aql
deleted file mode 100644
index 2094b4a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue208/uery-issue208.1.ddl.aql
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue208
- 				: https://code.google.com/p/asterixdb/issues/detail?id=208
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-drop dataverse OpenSocialNetworkData if exists;
-create dataverse OpenSocialNetworkData;
-
-use dataverse OpenSocialNetworkData;
-
-create type TwitterUserType as open {
-screen-name: string,
-lang: string,
-friends_count: int32,
-statuses_count: int32,
-name: string,
-followers_count: int32
-}
-
-create type TweetMessageType as open {
-tweetid: string,
-tweetid-copy: string,
-send-time-copy: datetime
-}
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-load dataset TweetMessages
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/twitter/tw_messages.adm"),("format"="adm"));
-
-write output to nc1:"rttest/open-closed_query-issue208.adm"; 
-for $t in dataset('TweetMessages')
-where $t.send-time >= datetime('2005-04-13T17:17:22') and
-$t.send-time <= datetime('2011-04-13T17:18:22')
-group by $uid := $t.user.screen-name with $t
-order by $uid
-return {
-    "user": $uid,
-    "count": count($t)
-}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue208/uery-issue208.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue208/uery-issue208.2.update.aql
deleted file mode 100644
index 2094b4a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue208/uery-issue208.2.update.aql
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue208
- 				: https://code.google.com/p/asterixdb/issues/detail?id=208
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-drop dataverse OpenSocialNetworkData if exists;
-create dataverse OpenSocialNetworkData;
-
-use dataverse OpenSocialNetworkData;
-
-create type TwitterUserType as open {
-screen-name: string,
-lang: string,
-friends_count: int32,
-statuses_count: int32,
-name: string,
-followers_count: int32
-}
-
-create type TweetMessageType as open {
-tweetid: string,
-tweetid-copy: string,
-send-time-copy: datetime
-}
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-load dataset TweetMessages
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/twitter/tw_messages.adm"),("format"="adm"));
-
-write output to nc1:"rttest/open-closed_query-issue208.adm"; 
-for $t in dataset('TweetMessages')
-where $t.send-time >= datetime('2005-04-13T17:17:22') and
-$t.send-time <= datetime('2011-04-13T17:18:22')
-group by $uid := $t.user.screen-name with $t
-order by $uid
-return {
-    "user": $uid,
-    "count": count($t)
-}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue208/uery-issue208.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue208/uery-issue208.3.query.aql
deleted file mode 100644
index 2094b4a..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue208/uery-issue208.3.query.aql
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue208
- 				: https://code.google.com/p/asterixdb/issues/detail?id=208
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-drop dataverse OpenSocialNetworkData if exists;
-create dataverse OpenSocialNetworkData;
-
-use dataverse OpenSocialNetworkData;
-
-create type TwitterUserType as open {
-screen-name: string,
-lang: string,
-friends_count: int32,
-statuses_count: int32,
-name: string,
-followers_count: int32
-}
-
-create type TweetMessageType as open {
-tweetid: string,
-tweetid-copy: string,
-send-time-copy: datetime
-}
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-load dataset TweetMessages
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/twitter/tw_messages.adm"),("format"="adm"));
-
-write output to nc1:"rttest/open-closed_query-issue208.adm"; 
-for $t in dataset('TweetMessages')
-where $t.send-time >= datetime('2005-04-13T17:17:22') and
-$t.send-time <= datetime('2011-04-13T17:18:22')
-group by $uid := $t.user.screen-name with $t
-order by $uid
-return {
-    "user": $uid,
-    "count": count($t)
-}
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue236/uery-issue236.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue236/uery-issue236.1.ddl.aql
deleted file mode 100644
index 7e859af..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue236/uery-issue236.1.ddl.aql
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue236
- 				: https://code.google.com/p/asterixdb/issues/detail?id=236
- * Expected Res : Success
- * Date         : 20 Dec. 2012
- */
-
-drop dataverse SocialNetworkData if exists;
-
-create dataverse SocialNetworkData;
-use dataverse SocialNetworkData;
-
-create type TwitterUserType as open {
-screen-name: string,
-lang: string,
-friends_count: int32,
-statuses_count: int32,
-name: string,
-followers_count: int32
-}
-
-create type TweetMessageType as closed {
-tweetid: string,
-tweetid-copy: string,
-user: TwitterUserType,
-sender-location: point?,
-send-time: datetime,
-send-time-copy: datetime,
-referred-topics: {{ string }},
-message-text: string
-}
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-
-insert into dataset TweetMessages(
-{ 
-"tweetid": "1111387810", 
-"tweetid-copy": "1111387810", 
-"user": { "screen-name": "TonyNapier#786", "lang": "en", "friends_count": 4241366, 
-"statuses_count": 97, "name": "Tony Napier", "followers_count": 5984113 }, 
-"sender-location": point("29.24,78.35"), 
-"send-time": datetime("2011-11-24T14:24:51.000Z"), 
-"send-time-copy": datetime("2011-11-24T14:24:51.000Z"), 
-"referred-topics": {{ "sprint", "wireless" }}, 
-"message-text": " love sprint its wireless is mind-blowing:)" 
-});
-
-write output to nc1:"rttest/open-closed_query-issue236.adm";
-for $r in dataset('TweetMessages')
-return $r
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue236/uery-issue236.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue236/uery-issue236.2.update.aql
deleted file mode 100644
index 7e859af..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue236/uery-issue236.2.update.aql
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue236
- 				: https://code.google.com/p/asterixdb/issues/detail?id=236
- * Expected Res : Success
- * Date         : 20 Dec. 2012
- */
-
-drop dataverse SocialNetworkData if exists;
-
-create dataverse SocialNetworkData;
-use dataverse SocialNetworkData;
-
-create type TwitterUserType as open {
-screen-name: string,
-lang: string,
-friends_count: int32,
-statuses_count: int32,
-name: string,
-followers_count: int32
-}
-
-create type TweetMessageType as closed {
-tweetid: string,
-tweetid-copy: string,
-user: TwitterUserType,
-sender-location: point?,
-send-time: datetime,
-send-time-copy: datetime,
-referred-topics: {{ string }},
-message-text: string
-}
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-
-insert into dataset TweetMessages(
-{ 
-"tweetid": "1111387810", 
-"tweetid-copy": "1111387810", 
-"user": { "screen-name": "TonyNapier#786", "lang": "en", "friends_count": 4241366, 
-"statuses_count": 97, "name": "Tony Napier", "followers_count": 5984113 }, 
-"sender-location": point("29.24,78.35"), 
-"send-time": datetime("2011-11-24T14:24:51.000Z"), 
-"send-time-copy": datetime("2011-11-24T14:24:51.000Z"), 
-"referred-topics": {{ "sprint", "wireless" }}, 
-"message-text": " love sprint its wireless is mind-blowing:)" 
-});
-
-write output to nc1:"rttest/open-closed_query-issue236.adm";
-for $r in dataset('TweetMessages')
-return $r
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue236/uery-issue236.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue236/uery-issue236.3.query.aql
deleted file mode 100644
index 7e859af..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue236/uery-issue236.3.query.aql
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue236
- 				: https://code.google.com/p/asterixdb/issues/detail?id=236
- * Expected Res : Success
- * Date         : 20 Dec. 2012
- */
-
-drop dataverse SocialNetworkData if exists;
-
-create dataverse SocialNetworkData;
-use dataverse SocialNetworkData;
-
-create type TwitterUserType as open {
-screen-name: string,
-lang: string,
-friends_count: int32,
-statuses_count: int32,
-name: string,
-followers_count: int32
-}
-
-create type TweetMessageType as closed {
-tweetid: string,
-tweetid-copy: string,
-user: TwitterUserType,
-sender-location: point?,
-send-time: datetime,
-send-time-copy: datetime,
-referred-topics: {{ string }},
-message-text: string
-}
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-
-insert into dataset TweetMessages(
-{ 
-"tweetid": "1111387810", 
-"tweetid-copy": "1111387810", 
-"user": { "screen-name": "TonyNapier#786", "lang": "en", "friends_count": 4241366, 
-"statuses_count": 97, "name": "Tony Napier", "followers_count": 5984113 }, 
-"sender-location": point("29.24,78.35"), 
-"send-time": datetime("2011-11-24T14:24:51.000Z"), 
-"send-time-copy": datetime("2011-11-24T14:24:51.000Z"), 
-"referred-topics": {{ "sprint", "wireless" }}, 
-"message-text": " love sprint its wireless is mind-blowing:)" 
-});
-
-write output to nc1:"rttest/open-closed_query-issue236.adm";
-for $r in dataset('TweetMessages')
-return $r
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue29/uery-issue29.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue29/uery-issue29.1.ddl.aql
deleted file mode 100644
index 8b778ba..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue29/uery-issue29.1.ddl.aql
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue29
- 				: https://code.google.com/p/asterixdb/issues/detail?id=29
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue29.adm";
-
-let $tweets := 
-{{
-   {
-      "tweetid": "1023",
-      "user": {
-         "screen-name": "dflynn24",
-         "lang": "en",
-         "friends_count": 46,
-         "statuses_count": 987,
-         "name": "danielle flynn",
-         "followers_count": 47
-      },
-      "sender-location": "40.904177,-72.958996",
-      "send-time": "2010-02-21T11:56:02-05:00",
-      "referred-topics": {{ "verizon" }},
-      "message-text": "i need a #verizon phone like nowwwww! :("
-   },
-   {
-      "tweetid": "1024",
-      "user": {
-         "screen-name": "miriamorous",
-         "lang": "en",
-         "friends_count": 69,
-         "statuses_count": 1068,
-         "name": "Miriam Songco",
-         "followers_count": 78
-      },
-      "send-time": "2010-02-21T11:11:43-08:00",
-      "referred-topics": {{ "commercials", "verizon", "att" }},
-      "message-text": "#verizon & #att #commercials, so competitive"
-   },
-   {
-      "tweetid": "1025",
-      "user": {
-         "screen-name": "dj33",
-         "lang": "en",
-         "friends_count": 96,
-         "statuses_count": 1696,
-         "name": "Don Jango",
-         "followers_count": 22
-      },
-      "send-time": "2010-02-21T12:38:44-05:00",
-      "referred-topics": {{ "charlotte" }},
-      "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
-   },
-   {
-      "tweetid": "1026",
-      "user": {
-      "screen-name": "reallyleila",
-         "lang": "en",
-         "friends_count": 106,
-         "statuses_count": 107,
-         "name": "Leila Samii",
-         "followers_count": 52
-      },
-      "send-time": "2010-02-21T21:31:57-06:00",
-      "referred-topics": {{ "verizon", "at&t", "iphone" }},
-      "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
-   }
-}}
-return $tweets
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue29/uery-issue29.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue29/uery-issue29.2.update.aql
deleted file mode 100644
index 8b778ba..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue29/uery-issue29.2.update.aql
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue29
- 				: https://code.google.com/p/asterixdb/issues/detail?id=29
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue29.adm";
-
-let $tweets := 
-{{
-   {
-      "tweetid": "1023",
-      "user": {
-         "screen-name": "dflynn24",
-         "lang": "en",
-         "friends_count": 46,
-         "statuses_count": 987,
-         "name": "danielle flynn",
-         "followers_count": 47
-      },
-      "sender-location": "40.904177,-72.958996",
-      "send-time": "2010-02-21T11:56:02-05:00",
-      "referred-topics": {{ "verizon" }},
-      "message-text": "i need a #verizon phone like nowwwww! :("
-   },
-   {
-      "tweetid": "1024",
-      "user": {
-         "screen-name": "miriamorous",
-         "lang": "en",
-         "friends_count": 69,
-         "statuses_count": 1068,
-         "name": "Miriam Songco",
-         "followers_count": 78
-      },
-      "send-time": "2010-02-21T11:11:43-08:00",
-      "referred-topics": {{ "commercials", "verizon", "att" }},
-      "message-text": "#verizon & #att #commercials, so competitive"
-   },
-   {
-      "tweetid": "1025",
-      "user": {
-         "screen-name": "dj33",
-         "lang": "en",
-         "friends_count": 96,
-         "statuses_count": 1696,
-         "name": "Don Jango",
-         "followers_count": 22
-      },
-      "send-time": "2010-02-21T12:38:44-05:00",
-      "referred-topics": {{ "charlotte" }},
-      "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
-   },
-   {
-      "tweetid": "1026",
-      "user": {
-      "screen-name": "reallyleila",
-         "lang": "en",
-         "friends_count": 106,
-         "statuses_count": 107,
-         "name": "Leila Samii",
-         "followers_count": 52
-      },
-      "send-time": "2010-02-21T21:31:57-06:00",
-      "referred-topics": {{ "verizon", "at&t", "iphone" }},
-      "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
-   }
-}}
-return $tweets
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue29/uery-issue29.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue29/uery-issue29.3.query.aql
deleted file mode 100644
index 8b778ba..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue29/uery-issue29.3.query.aql
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue29
- 				: https://code.google.com/p/asterixdb/issues/detail?id=29
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue29.adm";
-
-let $tweets := 
-{{
-   {
-      "tweetid": "1023",
-      "user": {
-         "screen-name": "dflynn24",
-         "lang": "en",
-         "friends_count": 46,
-         "statuses_count": 987,
-         "name": "danielle flynn",
-         "followers_count": 47
-      },
-      "sender-location": "40.904177,-72.958996",
-      "send-time": "2010-02-21T11:56:02-05:00",
-      "referred-topics": {{ "verizon" }},
-      "message-text": "i need a #verizon phone like nowwwww! :("
-   },
-   {
-      "tweetid": "1024",
-      "user": {
-         "screen-name": "miriamorous",
-         "lang": "en",
-         "friends_count": 69,
-         "statuses_count": 1068,
-         "name": "Miriam Songco",
-         "followers_count": 78
-      },
-      "send-time": "2010-02-21T11:11:43-08:00",
-      "referred-topics": {{ "commercials", "verizon", "att" }},
-      "message-text": "#verizon & #att #commercials, so competitive"
-   },
-   {
-      "tweetid": "1025",
-      "user": {
-         "screen-name": "dj33",
-         "lang": "en",
-         "friends_count": 96,
-         "statuses_count": 1696,
-         "name": "Don Jango",
-         "followers_count": 22
-      },
-      "send-time": "2010-02-21T12:38:44-05:00",
-      "referred-topics": {{ "charlotte" }},
-      "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
-   },
-   {
-      "tweetid": "1026",
-      "user": {
-      "screen-name": "reallyleila",
-         "lang": "en",
-         "friends_count": 106,
-         "statuses_count": 107,
-         "name": "Leila Samii",
-         "followers_count": 52
-      },
-      "send-time": "2010-02-21T21:31:57-06:00",
-      "referred-topics": {{ "verizon", "at&t", "iphone" }},
-      "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
-   }
-}}
-return $tweets
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55-1/uery-issue55-1.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55-1/uery-issue55-1.1.ddl.aql
deleted file mode 100644
index 11b75d1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55-1/uery-issue55-1.1.ddl.aql
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue55 query 1
- 				: https://code.google.com/p/asterixdb/issues/detail?id=55
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue55-1.adm";
-
-let $l := [1.1f, 1.0f, 1.2f, 0.9, 1.3, 1, 2]
-for $i in $l
-for $j in $l
-return [$i, $j, "=", $i = $j, "<", $i < $j, "<=", $i <= $j, ">", $i > $j, ">=", $i >= $j]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55-1/uery-issue55-1.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55-1/uery-issue55-1.2.update.aql
deleted file mode 100644
index 11b75d1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55-1/uery-issue55-1.2.update.aql
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue55 query 1
- 				: https://code.google.com/p/asterixdb/issues/detail?id=55
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue55-1.adm";
-
-let $l := [1.1f, 1.0f, 1.2f, 0.9, 1.3, 1, 2]
-for $i in $l
-for $j in $l
-return [$i, $j, "=", $i = $j, "<", $i < $j, "<=", $i <= $j, ">", $i > $j, ">=", $i >= $j]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55-1/uery-issue55-1.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55-1/uery-issue55-1.3.query.aql
deleted file mode 100644
index 11b75d1..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55-1/uery-issue55-1.3.query.aql
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue55 query 1
- 				: https://code.google.com/p/asterixdb/issues/detail?id=55
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue55-1.adm";
-
-let $l := [1.1f, 1.0f, 1.2f, 0.9, 1.3, 1, 2]
-for $i in $l
-for $j in $l
-return [$i, $j, "=", $i = $j, "<", $i < $j, "<=", $i <= $j, ">", $i > $j, ">=", $i >= $j]
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55/uery-issue55.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55/uery-issue55.1.ddl.aql
deleted file mode 100644
index b4e4572..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55/uery-issue55.1.ddl.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue55 query 2
- 				: https://code.google.com/p/asterixdb/issues/detail?id=55
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue55.adm";
-
-for $x in [[1,3],[4,5,2],[-1,-3,0],["a"]]
-return $x
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55/uery-issue55.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55/uery-issue55.2.update.aql
deleted file mode 100644
index b4e4572..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55/uery-issue55.2.update.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue55 query 2
- 				: https://code.google.com/p/asterixdb/issues/detail?id=55
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue55.adm";
-
-for $x in [[1,3],[4,5,2],[-1,-3,0],["a"]]
-return $x
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55/uery-issue55.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55/uery-issue55.3.query.aql
deleted file mode 100644
index b4e4572..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-issue55/uery-issue55.3.query.aql
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Description  : This test case is to verify the fix for issue55 query 2
- 				: https://code.google.com/p/asterixdb/issues/detail?id=55
- * Expected Res : Success
- * Date         : 26th November 2012
- */
-
-write output to nc1:"rttest/open-closed_query-issue55.adm";
-
-for $x in [[1,3],[4,5,2],[-1,-3,0],["a"]]
-return $x
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-propos/uery-propos.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-propos/uery-propos.1.ddl.aql
deleted file mode 100644
index 2668430..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-propos/uery-propos.1.ddl.aql
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Description     : Insert open data into internal dataset and query the open data
- * Expected Result : Success
- * Date            : 23rd October 2012
- * Notes           : This test was written to cover the scenario which is used in the proposal.
- */
-
-drop dataverse test if exists;
-create dataverse test;
-
-use dataverse test;
-
-create type TweetMessageType as open {
-tweetid : string,
-user : {
-         screen-name: string,
-         lang: string,
-         friends_count: int32,
-         statuses_count: int32,
-         name: string,
-         followers_count: int32
-},    sender-location: point?,
-      send-time: datetime,
-      referred-topics: {{ string }},
-      message-text: string
-};
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1023",
-      "user": {
-         "screen-name": "dflynn24",
-         "lang": "en",
-         "friends_count": 46,
-         "statuses_count": 987,
-         "name": "danielle flynn",
-         "followers_count": 47
-      },
-      "sender-location": create-point(40.904177,-72.958996),
-      "send-time": datetime("2010-02-21T11:56:02-05:00"),
-      "referred-topics": {{ "verizon" }},
-      "message-text": "i need a #verizon phone like nowwwww! : ("
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1024",
-      "user": {
-         "screen-name": "miriamorous",
-         "lang": "en",
-         "friends_count": 69,
-         "statuses_count": 1068,
-         "name": "Miriam Songco",
-         "followers_count": 78
-      },
-      "send-time": datetime("2010-02-21T11:11:43-08:00"),
-      "referred-topics": {{ "commercials", "verizon", "att" }},
-      "message-text": "#verizon & #att #commercials, so competitive"
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1025",
-      "user": {
-         "screen-name": "dj33",
-         "lang": "en",
-         "friends_count": 96,
-         "send-time": "2010-02-21T11:56:02-05:00",      
-         "statuses_count": 1696,
-         "name": "Don Jango",
-         "followers_count": 22
-      },
-      "send-time": datetime("2010-02-21T12:38:44-05:00"),
-      "referred-topics": {{ "charlotte" }},
-      "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
-   });
-
-insert into dataset TweetMessages( 
-    { "tweetid": "1026", 
-      "user": { 
-         "screen-name": "reallyleila", 
-         "lang": "en", 
-         "friends_count": 106, 
-         "statuses_count": 107, 
-         "name": "Leila Samii", 
-         "followers_count": 52 
-       }, 
-       "send-time": datetime("2010-02-21T21:31:57-06:00"),
-       "referred-topics": {{ "verizon", "at&t", "iphone" }},
-       "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
-});
-
-write output to nc1:"rttest/open-closed_query-proposal.adm";
-
-for $tp1 in (
-    for $tweet in dataset('TweetMessages')
-        where some $topic in $tweet.referred-topics satisfies contains($topic, 'verizon')
-            for $tp in $tweet.referred-topics
-                return 
-                { "topic": $tp }
-)
-group by $tp2 := $tp1.topic with $tp1
-order by $tp2
-return { "topic": $tp2, "count": count($tp1) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-propos/uery-propos.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-propos/uery-propos.2.update.aql
deleted file mode 100644
index 2668430..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-propos/uery-propos.2.update.aql
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Description     : Insert open data into internal dataset and query the open data
- * Expected Result : Success
- * Date            : 23rd October 2012
- * Notes           : This test was written to cover the scenario which is used in the proposal.
- */
-
-drop dataverse test if exists;
-create dataverse test;
-
-use dataverse test;
-
-create type TweetMessageType as open {
-tweetid : string,
-user : {
-         screen-name: string,
-         lang: string,
-         friends_count: int32,
-         statuses_count: int32,
-         name: string,
-         followers_count: int32
-},    sender-location: point?,
-      send-time: datetime,
-      referred-topics: {{ string }},
-      message-text: string
-};
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1023",
-      "user": {
-         "screen-name": "dflynn24",
-         "lang": "en",
-         "friends_count": 46,
-         "statuses_count": 987,
-         "name": "danielle flynn",
-         "followers_count": 47
-      },
-      "sender-location": create-point(40.904177,-72.958996),
-      "send-time": datetime("2010-02-21T11:56:02-05:00"),
-      "referred-topics": {{ "verizon" }},
-      "message-text": "i need a #verizon phone like nowwwww! : ("
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1024",
-      "user": {
-         "screen-name": "miriamorous",
-         "lang": "en",
-         "friends_count": 69,
-         "statuses_count": 1068,
-         "name": "Miriam Songco",
-         "followers_count": 78
-      },
-      "send-time": datetime("2010-02-21T11:11:43-08:00"),
-      "referred-topics": {{ "commercials", "verizon", "att" }},
-      "message-text": "#verizon & #att #commercials, so competitive"
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1025",
-      "user": {
-         "screen-name": "dj33",
-         "lang": "en",
-         "friends_count": 96,
-         "send-time": "2010-02-21T11:56:02-05:00",      
-         "statuses_count": 1696,
-         "name": "Don Jango",
-         "followers_count": 22
-      },
-      "send-time": datetime("2010-02-21T12:38:44-05:00"),
-      "referred-topics": {{ "charlotte" }},
-      "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
-   });
-
-insert into dataset TweetMessages( 
-    { "tweetid": "1026", 
-      "user": { 
-         "screen-name": "reallyleila", 
-         "lang": "en", 
-         "friends_count": 106, 
-         "statuses_count": 107, 
-         "name": "Leila Samii", 
-         "followers_count": 52 
-       }, 
-       "send-time": datetime("2010-02-21T21:31:57-06:00"),
-       "referred-topics": {{ "verizon", "at&t", "iphone" }},
-       "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
-});
-
-write output to nc1:"rttest/open-closed_query-proposal.adm";
-
-for $tp1 in (
-    for $tweet in dataset('TweetMessages')
-        where some $topic in $tweet.referred-topics satisfies contains($topic, 'verizon')
-            for $tp in $tweet.referred-topics
-                return 
-                { "topic": $tp }
-)
-group by $tp2 := $tp1.topic with $tp1
-order by $tp2
-return { "topic": $tp2, "count": count($tp1) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-propos/uery-propos.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-propos/uery-propos.3.query.aql
deleted file mode 100644
index 2668430..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-propos/uery-propos.3.query.aql
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Description     : Insert open data into internal dataset and query the open data
- * Expected Result : Success
- * Date            : 23rd October 2012
- * Notes           : This test was written to cover the scenario which is used in the proposal.
- */
-
-drop dataverse test if exists;
-create dataverse test;
-
-use dataverse test;
-
-create type TweetMessageType as open {
-tweetid : string,
-user : {
-         screen-name: string,
-         lang: string,
-         friends_count: int32,
-         statuses_count: int32,
-         name: string,
-         followers_count: int32
-},    sender-location: point?,
-      send-time: datetime,
-      referred-topics: {{ string }},
-      message-text: string
-};
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1023",
-      "user": {
-         "screen-name": "dflynn24",
-         "lang": "en",
-         "friends_count": 46,
-         "statuses_count": 987,
-         "name": "danielle flynn",
-         "followers_count": 47
-      },
-      "sender-location": create-point(40.904177,-72.958996),
-      "send-time": datetime("2010-02-21T11:56:02-05:00"),
-      "referred-topics": {{ "verizon" }},
-      "message-text": "i need a #verizon phone like nowwwww! : ("
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1024",
-      "user": {
-         "screen-name": "miriamorous",
-         "lang": "en",
-         "friends_count": 69,
-         "statuses_count": 1068,
-         "name": "Miriam Songco",
-         "followers_count": 78
-      },
-      "send-time": datetime("2010-02-21T11:11:43-08:00"),
-      "referred-topics": {{ "commercials", "verizon", "att" }},
-      "message-text": "#verizon & #att #commercials, so competitive"
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1025",
-      "user": {
-         "screen-name": "dj33",
-         "lang": "en",
-         "friends_count": 96,
-         "send-time": "2010-02-21T11:56:02-05:00",      
-         "statuses_count": 1696,
-         "name": "Don Jango",
-         "followers_count": 22
-      },
-      "send-time": datetime("2010-02-21T12:38:44-05:00"),
-      "referred-topics": {{ "charlotte" }},
-      "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
-   });
-
-insert into dataset TweetMessages( 
-    { "tweetid": "1026", 
-      "user": { 
-         "screen-name": "reallyleila", 
-         "lang": "en", 
-         "friends_count": 106, 
-         "statuses_count": 107, 
-         "name": "Leila Samii", 
-         "followers_count": 52 
-       }, 
-       "send-time": datetime("2010-02-21T21:31:57-06:00"),
-       "referred-topics": {{ "verizon", "at&t", "iphone" }},
-       "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
-});
-
-write output to nc1:"rttest/open-closed_query-proposal.adm";
-
-for $tp1 in (
-    for $tweet in dataset('TweetMessages')
-        where some $topic in $tweet.referred-topics satisfies contains($topic, 'verizon')
-            for $tp in $tweet.referred-topics
-                return 
-                { "topic": $tp }
-)
-group by $tp2 := $tp1.topic with $tp1
-order by $tp2
-return { "topic": $tp2, "count": count($tp1) }
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-proposal02/uery-proposal02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-proposal02/uery-proposal02.1.ddl.aql
deleted file mode 100644
index b3945a0..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-proposal02/uery-proposal02.1.ddl.aql
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Description     : Insert open data into internal dataset and query the open data
- * Expected Result : Success
- * Date            : 23rd October 2012
- * Notes           : This test was written to cover the scenario which is used in the proposal.
- *                 : this is another variant of the test in query-proposal.aql
- */
-
-drop dataverse test if exists;
-create dataverse test;
-
-use dataverse test;
-
-create type TweetMessageType as open {
-tweetid : string,
-user : {
-         screen-name: string,
-         lang: string,
-         friends_count: int32,
-         statuses_count: int32,
-         name: string,
-         followers_count: int32
-},    sender-location: point?,
-      send-time: datetime,
-      referred-topics: {{ string }},
-      message-text: string
-};
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1023",
-      "user": {
-         "screen-name": "dflynn24",
-         "lang": "en",
-         "friends_count": 46,
-         "statuses_count": 987,
-         "name": "danielle flynn",
-         "followers_count": 47
-      },
-      "sender-location": create-point(40.904177,-72.958996),
-      "send-time": datetime("2010-02-21T11:56:02-05:00"),
-      "referred-topics": {{ "verizon" }},
-      "message-text": "i need a #verizon phone like nowwwww! : ("
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1024",
-      "user": {
-         "screen-name": "miriamorous",
-         "lang": "en",
-         "friends_count": 69,
-         "statuses_count": 1068,
-         "name": "Miriam Songco",
-         "followers_count": 78
-      },
-      "send-time": datetime("2010-02-21T11:11:43-08:00"),
-      "referred-topics": {{ "commercials", "verizon", "att" }},
-      "message-text": "#verizon & #att #commercials, so competitive"
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1025",
-      "user": {
-         "screen-name": "dj33",
-         "lang": "en",
-         "friends_count": 96,
-         "send-time": "2010-02-21T11:56:02-05:00",      
-         "statuses_count": 1696,
-         "name": "Don Jango",
-         "followers_count": 22
-      },
-      "send-time": datetime("2010-02-21T12:38:44-05:00"),
-      "referred-topics": {{ "charlotte" }},
-      "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
-   });
-
-insert into dataset TweetMessages( 
-    { "tweetid": "1026", 
-      "user": { 
-         "screen-name": "reallyleila", 
-         "lang": "en", 
-         "friends_count": 106, 
-         "statuses_count": 107, 
-         "name": "Leila Samii", 
-         "followers_count": 52 
-       }, 
-       "send-time": datetime("2010-02-21T21:31:57-06:00"),
-       "referred-topics": {{ "verizon", "at&t", "iphone" }},
-       "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
-});
-
-write output to nc1:"rttest/open-closed_query-proposal02.adm";
-
-for $tweet in dataset('TweetMessages')
-    where some $reftopic in $tweet.referred-topics
-        satisfies contains($reftopic, 'verizon')
-            for $reftopic in $tweet.referred-topics
-            group by $topic := $reftopic with $tweet
-            order by $topic 
-            return 
-            {
-                "topic": $topic,
-                "count": count($tweet)
-            }
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-proposal02/uery-proposal02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-proposal02/uery-proposal02.2.update.aql
deleted file mode 100644
index b3945a0..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-proposal02/uery-proposal02.2.update.aql
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Description     : Insert open data into internal dataset and query the open data
- * Expected Result : Success
- * Date            : 23rd October 2012
- * Notes           : This test was written to cover the scenario which is used in the proposal.
- *                 : this is another variant of the test in query-proposal.aql
- */
-
-drop dataverse test if exists;
-create dataverse test;
-
-use dataverse test;
-
-create type TweetMessageType as open {
-tweetid : string,
-user : {
-         screen-name: string,
-         lang: string,
-         friends_count: int32,
-         statuses_count: int32,
-         name: string,
-         followers_count: int32
-},    sender-location: point?,
-      send-time: datetime,
-      referred-topics: {{ string }},
-      message-text: string
-};
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1023",
-      "user": {
-         "screen-name": "dflynn24",
-         "lang": "en",
-         "friends_count": 46,
-         "statuses_count": 987,
-         "name": "danielle flynn",
-         "followers_count": 47
-      },
-      "sender-location": create-point(40.904177,-72.958996),
-      "send-time": datetime("2010-02-21T11:56:02-05:00"),
-      "referred-topics": {{ "verizon" }},
-      "message-text": "i need a #verizon phone like nowwwww! : ("
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1024",
-      "user": {
-         "screen-name": "miriamorous",
-         "lang": "en",
-         "friends_count": 69,
-         "statuses_count": 1068,
-         "name": "Miriam Songco",
-         "followers_count": 78
-      },
-      "send-time": datetime("2010-02-21T11:11:43-08:00"),
-      "referred-topics": {{ "commercials", "verizon", "att" }},
-      "message-text": "#verizon & #att #commercials, so competitive"
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1025",
-      "user": {
-         "screen-name": "dj33",
-         "lang": "en",
-         "friends_count": 96,
-         "send-time": "2010-02-21T11:56:02-05:00",      
-         "statuses_count": 1696,
-         "name": "Don Jango",
-         "followers_count": 22
-      },
-      "send-time": datetime("2010-02-21T12:38:44-05:00"),
-      "referred-topics": {{ "charlotte" }},
-      "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
-   });
-
-insert into dataset TweetMessages( 
-    { "tweetid": "1026", 
-      "user": { 
-         "screen-name": "reallyleila", 
-         "lang": "en", 
-         "friends_count": 106, 
-         "statuses_count": 107, 
-         "name": "Leila Samii", 
-         "followers_count": 52 
-       }, 
-       "send-time": datetime("2010-02-21T21:31:57-06:00"),
-       "referred-topics": {{ "verizon", "at&t", "iphone" }},
-       "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
-});
-
-write output to nc1:"rttest/open-closed_query-proposal02.adm";
-
-for $tweet in dataset('TweetMessages')
-    where some $reftopic in $tweet.referred-topics
-        satisfies contains($reftopic, 'verizon')
-            for $reftopic in $tweet.referred-topics
-            group by $topic := $reftopic with $tweet
-            order by $topic 
-            return 
-            {
-                "topic": $topic,
-                "count": count($tweet)
-            }
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-proposal02/uery-proposal02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-proposal02/uery-proposal02.3.query.aql
deleted file mode 100644
index b3945a0..0000000
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/uery-proposal02/uery-proposal02.3.query.aql
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Description     : Insert open data into internal dataset and query the open data
- * Expected Result : Success
- * Date            : 23rd October 2012
- * Notes           : This test was written to cover the scenario which is used in the proposal.
- *                 : this is another variant of the test in query-proposal.aql
- */
-
-drop dataverse test if exists;
-create dataverse test;
-
-use dataverse test;
-
-create type TweetMessageType as open {
-tweetid : string,
-user : {
-         screen-name: string,
-         lang: string,
-         friends_count: int32,
-         statuses_count: int32,
-         name: string,
-         followers_count: int32
-},    sender-location: point?,
-      send-time: datetime,
-      referred-topics: {{ string }},
-      message-text: string
-};
-
-create dataset TweetMessages(TweetMessageType)
-primary key tweetid;
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1023",
-      "user": {
-         "screen-name": "dflynn24",
-         "lang": "en",
-         "friends_count": 46,
-         "statuses_count": 987,
-         "name": "danielle flynn",
-         "followers_count": 47
-      },
-      "sender-location": create-point(40.904177,-72.958996),
-      "send-time": datetime("2010-02-21T11:56:02-05:00"),
-      "referred-topics": {{ "verizon" }},
-      "message-text": "i need a #verizon phone like nowwwww! : ("
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1024",
-      "user": {
-         "screen-name": "miriamorous",
-         "lang": "en",
-         "friends_count": 69,
-         "statuses_count": 1068,
-         "name": "Miriam Songco",
-         "followers_count": 78
-      },
-      "send-time": datetime("2010-02-21T11:11:43-08:00"),
-      "referred-topics": {{ "commercials", "verizon", "att" }},
-      "message-text": "#verizon & #att #commercials, so competitive"
-   });
-
-insert into dataset TweetMessages(
-   {
-      "tweetid": "1025",
-      "user": {
-         "screen-name": "dj33",
-         "lang": "en",
-         "friends_count": 96,
-         "send-time": "2010-02-21T11:56:02-05:00",      
-         "statuses_count": 1696,
-         "name": "Don Jango",
-         "followers_count": 22
-      },
-      "send-time": datetime("2010-02-21T12:38:44-05:00"),
-      "referred-topics": {{ "charlotte" }},
-      "message-text": "Chillin at dca waiting for 900am flight to #charlotte and from there to providenciales"
-   });
-
-insert into dataset TweetMessages( 
-    { "tweetid": "1026", 
-      "user": { 
-         "screen-name": "reallyleila", 
-         "lang": "en", 
-         "friends_count": 106, 
-         "statuses_count": 107, 
-         "name": "Leila Samii", 
-         "followers_count": 52 
-       }, 
-       "send-time": datetime("2010-02-21T21:31:57-06:00"),
-       "referred-topics": {{ "verizon", "at&t", "iphone" }},
-       "message-text": "I think a switch from #verizon to #at&t may be in my near future... my smartphone is like a land line compared to the #iphone!"
-});
-
-write output to nc1:"rttest/open-closed_query-proposal02.adm";
-
-for $tweet in dataset('TweetMessages')
-    where some $reftopic in $tweet.referred-topics
-        satisfies contains($reftopic, 'verizon')
-            for $reftopic in $tweet.referred-topics
-            group by $topic := $reftopic with $tweet
-            order by $topic 
-            return 
-            {
-                "topic": $topic,
-                "count": count($tweet)
-            }
-
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.1.ddl.aql
index b356a56..b70e975 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.1.ddl.aql
@@ -5,7 +5,3 @@
  */
 drop dataverse test if exists;
 create dataverse test;
-use dataverse test;
-
-let $x := {"name": "john", "name": "smith"}
-return $x
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.2.update.aql
index b356a56..6cdae91 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.2.update.aql
@@ -3,9 +3,5 @@
  * Expected Result: An error reporting that there is a duplicate field name "name"
  * Author: zheilbron
  */
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
 
-let $x := {"name": "john", "name": "smith"}
-return $x
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.3.query.aql
index b356a56..6211409 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-closed-fieldname-conflict_issue173/closed-closed-fieldname-conflict_issue173.3.query.aql
@@ -3,8 +3,6 @@
  * Expected Result: An error reporting that there is a duplicate field name "name"
  * Author: zheilbron
  */
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
 let $x := {"name": "john", "name": "smith"}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.1.ddl.aql
index 6cb32b0..754ea81 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.1.ddl.aql
@@ -1,8 +1,3 @@
 drop dataverse test if exists;
 create dataverse test;
-use dataverse test;
 
-
-write output to nc1:"rttest/records_closed-record-constructor_01.adm";
-
-closed-record-constructor("foo1", 10, "bar1", 20, "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.2.update.aql
index 6cb32b0..e69de29 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.2.update.aql
@@ -1,8 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-write output to nc1:"rttest/records_closed-record-constructor_01.adm";
-
-closed-record-constructor("foo1", 10, "bar1", 20, "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.3.query.aql
index 6cb32b0..4ef8508 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_01/closed-record-constructor_01.3.query.aql
@@ -1,8 +1,3 @@
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-
-write output to nc1:"rttest/records_closed-record-constructor_01.adm";
-
 closed-record-constructor("foo1", 10, "bar1", 20, "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.1.ddl.aql
index 204c56b..16769de 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.1.ddl.aql
@@ -1,7 +1,2 @@
 drop dataverse test if exists;
 create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_closed-record-constructor_02.adm";
-
-closed-record-constructor("foo1", 10, "bar1", closed-record-constructor("bar1.1", 10, "bar1.2", 20, "bar1.3", 30, "bar1.4", closed-record-constructor("bar1.4.1", 10, "bar1.4.2", 20, "bar1.4.3", 30, "bar1.4.4", 40), "foo2", 30, "bar2", 40), "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.2.update.aql
index 204c56b..1ecf3aa 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.2.update.aql
@@ -1,7 +1 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_closed-record-constructor_02.adm";
-
-closed-record-constructor("foo1", 10, "bar1", closed-record-constructor("bar1.1", 10, "bar1.2", 20, "bar1.3", 30, "bar1.4", closed-record-constructor("bar1.4.1", 10, "bar1.4.2", 20, "bar1.4.3", 30, "bar1.4.4", 40), "foo2", 30, "bar2", 40), "foo2", 30, "bar2", 40)
+// no inserts, deletes
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.3.query.aql
index 204c56b..c6e3756 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_02/closed-record-constructor_02.3.query.aql
@@ -1,7 +1,3 @@
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-write output to nc1:"rttest/records_closed-record-constructor_02.adm";
-
 closed-record-constructor("foo1", 10, "bar1", closed-record-constructor("bar1.1", 10, "bar1.2", 20, "bar1.3", 30, "bar1.4", closed-record-constructor("bar1.4.1", 10, "bar1.4.2", 20, "bar1.4.3", 30, "bar1.4.4", 40), "foo2", 30, "bar2", 40), "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.1.ddl.aql
index e4378a1..754ea81 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.1.ddl.aql
@@ -1,7 +1,3 @@
 drop dataverse test if exists;
 create dataverse test;
-use dataverse test;
 
-write output to nc1:"rttest/records_closed-record-constructor_03.adm";
-
-{"foo1": 10, "bar1": {"bar1.1": 10, "bar1.2": 20, "bar1.3": 30, "bar1.4": {"bar1.4.1": 10, "bar1.4.2": 20 } }, "foo2": 30, "bar2": 40}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.2.update.aql
index e4378a1..e69de29 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.2.update.aql
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_closed-record-constructor_03.adm";
-
-{"foo1": 10, "bar1": {"bar1.1": 10, "bar1.2": 20, "bar1.3": 30, "bar1.4": {"bar1.4.1": 10, "bar1.4.2": 20 } }, "foo2": 30, "bar2": 40}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.3.query.aql
index e4378a1..7285a75 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/closed-record-constructor_03/closed-record-constructor_03.3.query.aql
@@ -1,7 +1,3 @@
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-write output to nc1:"rttest/records_closed-record-constructor_03.adm";
-
 {"foo1": 10, "bar1": {"bar1.1": 10, "bar1.2": 20, "bar1.3": 30, "bar1.4": {"bar1.4.1": 10, "bar1.4.2": 20 } }, "foo2": 30, "bar2": 40}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.1.ddl.aql
index 36df536..e3f2bc7 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.1.ddl.aql
@@ -1,8 +1,5 @@
 drop dataverse test if exists;
 create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_expFieldName.adm";
 
 for $x in ["field1", "field2"] 
 return {$x: 1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.2.update.aql
index 36df536..e69de29 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.2.update.aql
@@ -1,8 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_expFieldName.adm";
-
-for $x in ["field1", "field2"] 
-return {$x: 1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.3.query.aql
index 36df536..5c27452 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/expFieldName/expFieldName.3.query.aql
@@ -1,8 +1,4 @@
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-write output to nc1:"rttest/records_expFieldName.adm";
-
 for $x in ["field1", "field2"] 
 return {$x: 1}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.1.ddl.aql
index b771ece..16769de 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.1.ddl.aql
@@ -1,9 +1,2 @@
 drop dataverse test if exists;
 create dataverse test;
-use dataverse test;
-
-
-write output to nc1:"rttest/records_field-access-by-index_01.adm";
-
-let $x := { "foo1": 10, "bar1": 20, "foo2": 30, "bar2": 40 }
-return field-access-by-index($x,2)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.2.update.aql
index b771ece..e69de29 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.2.update.aql
@@ -1,9 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-
-write output to nc1:"rttest/records_field-access-by-index_01.adm";
-
-let $x := { "foo1": 10, "bar1": 20, "foo2": 30, "bar2": 40 }
-return field-access-by-index($x,2)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.3.query.aql
index b771ece..d25edc6 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-by-index_01/field-access-by-index_01.3.query.aql
@@ -1,9 +1,4 @@
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-
-write output to nc1:"rttest/records_field-access-by-index_01.adm";
-
 let $x := { "foo1": 10, "bar1": 20, "foo2": 30, "bar2": 40 }
 return field-access-by-index($x,2)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.1.ddl.aql
index 1b7cf02..74de4cb 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.1.ddl.aql
@@ -15,10 +15,3 @@
 
 create dataset testds(TestType) primary key id;
 
-insert into dataset testds({"id": 123, "name": "John Doe", "address": { "zip": 92617} });
-
-write output to nc1:"rttest/records_field-access-on-open-field.adm";
-
-for $l in dataset("testds")
-let $a := $l.address
-return $a.zip
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.2.update.aql
index 1b7cf02..42b746f 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.2.update.aql
@@ -4,21 +4,7 @@
  * Success        : Yes
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type TestType as open {
-  id : int32,
-  name : string
-}
-
-create dataset testds(TestType) primary key id;
-
 insert into dataset testds({"id": 123, "name": "John Doe", "address": { "zip": 92617} });
 
-write output to nc1:"rttest/records_field-access-on-open-field.adm";
-
-for $l in dataset("testds")
-let $a := $l.address
-return $a.zip
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.3.query.aql
index 1b7cf02..fdf4768 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/field-access-on-open-field/field-access-on-open-field.3.query.aql
@@ -4,21 +4,8 @@
  * Success        : Yes
  */
 
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type TestType as open {
-  id : int32,
-  name : string
-}
-
-create dataset testds(TestType) primary key id;
-
-insert into dataset testds({"id": 123, "name": "John Doe", "address": { "zip": 92617} });
-
-write output to nc1:"rttest/records_field-access-on-open-field.adm";
-
 for $l in dataset("testds")
 let $a := $l.address
-return $a.zip
\ No newline at end of file
+return $a.zip
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.1.ddl.aql
index a5ac400..e8da256 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.1.ddl.aql
@@ -14,8 +14,3 @@
 }
 
 create dataset testds(opentype) primary key id; 
-
-insert into dataset testds({'id': 1, 'fname': "name"});
-
-for $x in dataset('testds')
-return {$x.fname: "smith", lowercase("NAME"): "john"}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.2.update.aql
index a5ac400..e91cba4 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.2.update.aql
@@ -4,18 +4,7 @@
  * Author: zheilbron
  */
  
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type opentype as open {
-id:int32,
-fname:string
-}
-
-create dataset testds(opentype) primary key id; 
-
 insert into dataset testds({'id': 1, 'fname': "name"});
 
-for $x in dataset('testds')
-return {$x.fname: "smith", lowercase("NAME"): "john"}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.query.aql
index a5ac400..d8cb988 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.query.aql
@@ -4,18 +4,7 @@
  * Author: zheilbron
  */
  
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type opentype as open {
-id:int32,
-fname:string
-}
-
-create dataset testds(opentype) primary key id; 
-
-insert into dataset testds({'id': 1, 'fname': "name"});
-
 for $x in dataset('testds')
-return {$x.fname: "smith", lowercase("NAME"): "john"}
\ No newline at end of file
+return {$x.fname: "smith", lowercase("NAME"): "john"}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.1.ddl.aql
index 225e596..25b7dad 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.1.ddl.aql
@@ -14,8 +14,3 @@
 }
 
 create dataset testds(opentype) primary key fname1; 
-
-insert into dataset testds({'fname1': "name", 'fname2': "name"});
-
-for $x in dataset('testds')
-return {$x.fname1: "john", $x.fname2: "smith"}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.2.update.aql
index 225e596..20bebbe 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.2.update.aql
@@ -4,18 +4,6 @@
  * Author: zheilbron
  */
  
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type opentype as open {
-fname1: string,
-fname2: string
-}
-
-create dataset testds(opentype) primary key fname1; 
-
 insert into dataset testds({'fname1': "name", 'fname2': "name"});
-
-for $x in dataset('testds')
-return {$x.fname1: "john", $x.fname2: "smith"}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.3.query.aql
index 225e596..a8a90df 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.3.query.aql
@@ -4,18 +4,7 @@
  * Author: zheilbron
  */
  
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-create type opentype as open {
-fname1: string,
-fname2: string
-}
-
-create dataset testds(opentype) primary key fname1; 
-
-insert into dataset testds({'fname1': "name", 'fname2': "name"});
-
 for $x in dataset('testds')
-return {$x.fname1: "john", $x.fname2: "smith"}
\ No newline at end of file
+return {$x.fname1: "john", $x.fname2: "smith"}
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.1.ddl.aql
index c64227a..16769de 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.1.ddl.aql
@@ -1,7 +1,2 @@
 drop dataverse test if exists;
 create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_open-record-constructor_01.adm";
-
-open-record-constructor("foo1", 10, "bar1", 20, "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.2.update.aql
index c64227a..e69de29 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.2.update.aql
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_open-record-constructor_01.adm";
-
-open-record-constructor("foo1", 10, "bar1", 20, "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.3.query.aql
index c64227a..d6c8701 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_01/open-record-constructor_01.3.query.aql
@@ -1,7 +1,3 @@
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-write output to nc1:"rttest/records_open-record-constructor_01.adm";
-
 open-record-constructor("foo1", 10, "bar1", 20, "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.1.ddl.aql
index 373d853..754ea81 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.1.ddl.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.1.ddl.aql
@@ -1,7 +1,3 @@
 drop dataverse test if exists;
 create dataverse test;
-use dataverse test;
 
-write output to nc1:"rttest/records_open-record-constructor_02.adm";
-
-open-record-constructor("foo1", 10, "bar1", closed-record-constructor("bar1.1", 10, "bar1.2", 20, "bar1.3", 30, "bar1.4", closed-record-constructor("bar1.4.1", 10, "bar1.4.2", 20, "bar1.4.3", 30, "bar1.4.4", 40), "foo2", 30, "bar2", 40), "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.2.update.aql
index 373d853..e69de29 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.2.update.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.2.update.aql
@@ -1,7 +0,0 @@
-drop dataverse test if exists;
-create dataverse test;
-use dataverse test;
-
-write output to nc1:"rttest/records_open-record-constructor_02.adm";
-
-open-record-constructor("foo1", 10, "bar1", closed-record-constructor("bar1.1", 10, "bar1.2", 20, "bar1.3", 30, "bar1.4", closed-record-constructor("bar1.4.1", 10, "bar1.4.2", 20, "bar1.4.3", 30, "bar1.4.4", 40), "foo2", 30, "bar2", 40), "foo2", 30, "bar2", 40)
diff --git a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.3.query.aql
index 373d853..972ecb2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/records/open-record-constructor_02/open-record-constructor_02.3.query.aql
@@ -1,7 +1,3 @@
-drop dataverse test if exists;
-create dataverse test;
 use dataverse test;
 
-write output to nc1:"rttest/records_open-record-constructor_02.adm";
-
 open-record-constructor("foo1", 10, "bar1", closed-record-constructor("bar1.1", 10, "bar1.2", 20, "bar1.3", 30, "bar1.4", closed-record-constructor("bar1.4.1", 10, "bar1.4.2", 20, "bar1.4.3", 30, "bar1.4.4", 40), "foo2", 30, "bar2", 40), "foo2", 30, "bar2", 40)
