asterixdb git commit: Fix potential hanging in op.initialize().

2016-10-04 Thread tillw
Repository: asterixdb
Updated Branches:
  refs/heads/master 36b2c10f8 -> 1d9353bdc


Fix potential hanging in op.initialize().

- Let initialize()/deinitialize() always pair up.

Change-Id: I701b271bc6dc78e67274fa845dec013756843a70
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1243
Tested-by: Jenkins 
Integration-Tests: Jenkins 
Reviewed-by: Till Westmann 


Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/1d9353bd
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/1d9353bd
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/1d9353bd

Branch: refs/heads/master
Commit: 1d9353bdc79f475d7bb3125157f351e376bd8389
Parents: 36b2c10
Author: Yingyi Bu 
Authored: Tue Oct 4 12:09:10 2016 -0700
Committer: Till Westmann 
Committed: Tue Oct 4 15:35:33 2016 -0700

--
 .../SuperActivityOperatorNodePushable.java  | 33 ++--
 .../org/apache/hyracks/control/nc/Task.java | 24 ++
 .../tests/integration/JobFailureTest.java   | 11 +--
 ...onOnCreatePushRuntimeOperatorDescriptor.java | 11 ---
 4 files changed, 57 insertions(+), 22 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1d9353bd/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
--
diff --git 
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
 
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
index 4ee8303..3e557a2 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
@@ -20,12 +20,13 @@
 package org.apache.hyracks.api.rewriter.runtime;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Queue;
+import java.util.Map.Entry;
 import java.util.concurrent.Callable;
 import java.util.concurrent.Future;
 
@@ -56,6 +57,7 @@ public class SuperActivityOperatorNodePushable implements 
IOperatorNodePushable
 private final int partition;
 private final int nPartitions;
 private int inputArity = 0;
+private boolean[] startedInitialization;
 
 public SuperActivityOperatorNodePushable(SuperActivity parent, 
Map startActivities,
 IHyracksTaskContext ctx, IRecordDescriptorProvider 
recordDescProvider, int partition, int nPartitions) {
@@ -79,8 +81,11 @@ public class SuperActivityOperatorNodePushable implements 
IOperatorNodePushable
 
 @Override
 public void initialize() throws HyracksDataException {
-// Initializes all OperatorNodePushables in parallel.
-runInParallel(op -> op.initialize());
+// Initializes all OperatorNodePushables in parallel and then finally 
deinitializes them.
+runInParallel((op, index) -> {
+startedInitialization[index] = true;
+op.initialize();
+});
 }
 
 public void init() throws HyracksDataException {
@@ -150,12 +155,19 @@ public class SuperActivityOperatorNodePushable implements 
IOperatorNodePushable
 }
 }
 }
+
+// Sets the startedInitialization flags to be false.
+startedInitialization = new 
boolean[operatorNodePushablesBFSOrder.size()];
+Arrays.fill(startedInitialization, false);
 }
 
 @Override
 public void deinitialize() throws HyracksDataException {
-// De-initialize all OperatorNodePushables in parallel.
-runInParallel(op -> op.deinitialize());
+runInParallel((op, index) -> {
+if (startedInitialization[index]) {
+op.deinitialize();
+}
+});
 }
 
 @Override
@@ -191,18 +203,21 @@ public class SuperActivityOperatorNodePushable implements 
IOperatorNodePushable
 }
 
 interface OperatorNodePushableAction {
-public void runAction(IOperatorNodePushable op) throws 
HyracksDataException;
+void runAction(IOperatorNodePushable op, int opIndex) throws 
HyracksDataException;
 }
 
-private void runInParallel(OperatorNodePushableAction opAction) throws 
HyracksDataException {
-List initializationTasks = new ArrayList();

[4/6] asterixdb git commit: Add test TPC-DS data and 35 TPC-DS queries.

2016-10-04 Thread buyingyi
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/36b2c10f/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q30/q30.3.query.sqlpp
--
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q30/q30.3.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q30/q30.3.query.sqlpp
new file mode 100644
index 000..0793006
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q30/q30.3.query.sqlpp
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+USE tpcds;
+
+WITH customer_total_return as
+ (SELECT wr_returning_customer_sk as ctr_customer_sk
+,ca_state as ctr_state,
+  sum(wr_return_amt) as ctr_total_return
+ FROM web_returns
+ ,date_dim
+ ,customer_address
+ where wr_returned_date_sk = d_date_sk
+   AND d_year =2002
+   AND wr_returning_addr_sk = ca_address_sk
+ group by wr_returning_customer_sk
+ ,ca_state)
+  SELECT  
c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag
+   
,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address
+   ,c_last_review_date,ctr_total_return
+ FROM customer_total_return ctr1
+ ,customer_address
+ ,customer
+ where ctr1.ctr_total_return > (SELECT VALUE (AVG(ctr2.ctr_total_return)*1.2)
+  FROM customer_total_return ctr2
+ where ctr1.ctr_state = ctr2.ctr_state)[0]
+   AND ca_address_sk = c_current_addr_sk
+   AND ca_state = 'IL'
+   AND ctr1.ctr_customer_sk = c_customer_sk
+ ORDER BY 
c_customer_id,c_salutation,c_first_name,c_last_name,c_preferred_cust_flag
+  
,c_birth_day,c_birth_month,c_birth_year,c_birth_country,c_login,c_email_address
+  ,c_last_review_date,ctr_total_return
+LIMIT 100;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/36b2c10f/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q31/q31.1.ddl.sqlpp
--
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q31/q31.1.ddl.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q31/q31.1.ddl.sqlpp
new file mode 100644
index 000..376
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q31/q31.1.ddl.sqlpp
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+drop dataverse tpcds if exists;
+create dataverse tpcds;
+
+use tpcds;
+
+
+
+create type tpcds.customer_address_type as  closed {
+  ca_address_sk : bigint,
+  ca_address_id : string,
+  ca_street_number : string?,
+  ca_street_name : string?,
+  ca_street_type : string?,
+  ca_suite_number : string?,
+  ca_city : string?,
+  ca_county : string?,
+  ca_state : string?,
+  ca_zip : string?,
+  ca_country : string?,
+  ca_gmt_offset : double?,
+  ca_location_type : string?
+ }
+
+create type tpcds.web_sales_type as
+ closed {
+  ws_sold_date_sk : bigint?,
+  ws_sold_time_sk : bigint?,
+  ws_ship_date_sk : bigint?,
+  ws_item_sk : bigint,
+  ws_bill_customer_sk : bigint?,
+  ws_bill_cdemo_sk : bigint?,
+  ws_bill_hdemo_sk : bigint?,
+  ws_bill_addr_sk : bigint?,
+  ws_ship_customer_sk : bigint?,
+  ws_ship_cdemo_sk : bigint?,
+  ws_ship_hdemo_sk 

[5/6] asterixdb git commit: Add test TPC-DS data and 35 TPC-DS queries.

2016-10-04 Thread buyingyi
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/36b2c10f/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q15/q15.1.ddl.sqlpp
--
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q15/q15.1.ddl.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q15/q15.1.ddl.sqlpp
new file mode 100644
index 000..5a9dea9
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpcds/q15/q15.1.ddl.sqlpp
@@ -0,0 +1,140 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+drop dataverse tpcds if exists;
+create dataverse tpcds;
+
+use tpcds;
+
+
+
+create type tpcds.customer_address_type as  closed {
+  ca_address_sk : bigint,
+  ca_address_id : string,
+  ca_street_number : string?,
+  ca_street_name : string?,
+  ca_street_type : string?,
+  ca_suite_number : string?,
+  ca_city : string?,
+  ca_county : string?,
+  ca_state : string?,
+  ca_zip : string?,
+  ca_country : string?,
+  ca_gmt_offset : double?,
+  ca_location_type : string?
+ }
+
+create type tpcds.catalog_sales_type as
+ closed {
+  cs_sold_date_sk:   bigint?,
+  cs_sold_time_sk:   bigint?,
+  cs_ship_date_sk:   bigint?,
+  cs_bill_customer_sk:   bigint?,
+  cs_bill_cdemo_sk:  bigint?,
+  cs_bill_hdemo_sk:  bigint?,
+  cs_bill_addr_sk:   bigint?,
+  cs_ship_customer_sk:   bigint?,
+  cs_ship_cdemo_sk:  bigint?,
+  cs_ship_hdemo_sk:  bigint?,
+  cs_ship_addr_sk:   bigint?,
+  cs_call_center_sk: bigint?,
+  cs_ship_mode_sk:   bigint?,
+  cs_warehouse_sk:   bigint?,
+  cs_item_sk:bigint,
+  cs_promo_sk:   bigint?,
+  cs_order_number:   bigint,
+  cs_quantity:   bigint?,
+  cs_wholesale_cost: double?,
+  cs_list_price: double?,
+  cs_sales_price:double?,
+  cs_ext_discount_amt:   double?,
+  cs_ext_sales_price:double?,
+  cs_ext_wholesale_cost: double?,
+  cs_ext_list_price: double?,
+  cs_ext_tax:double?,
+  cs_coupon_amt: double?,
+  cs_ext_ship_cost:  double?,
+  cs_net_paid:   double?,
+  cs_net_paid_inc_tax:   double?,
+  cs_net_paid_inc_ship:  double?,
+  cs_net_paid_inc_ship_tax:  double?,
+  cs_net_profit: double?
+}
+
+create type tpcds.date_dim_type as
+ closed {
+  d_date_sk : bigint,
+  d_date_id : string,
+  d_date : string?,
+  d_month_seq : bigint?,
+  d_week_seq : bigint?,
+  d_quarter_seq : bigint?,
+  d_year : bigint? ,
+  d_dow : bigint? ,
+  d_moy : bigint?,
+  d_dom : bigint?,
+  d_qoy : bigint?,
+  d_fy_year : bigint?,
+  d_fy_quarter_seq : bigint?,
+  d_fy_week_seq : bigint?,
+  d_day_name : string?,
+  d_quarter_name : string?,
+  d_holiday : string?,
+  d_weekend : string?,
+  d_following_holiday : string?,
+  d_first_dom : bigint?,
+  d_last_dom : bigint?,
+  d_same_day_ly : bigint?,
+  d_same_day_lq : bigint?,
+  d_current_day : string?,
+  d_current_week : string?,
+  d_current_month : string?,
+  d_current_quarter : string?,
+  d_current_year : string?
+}
+
+create type tpcds.customer_type as
+ closed {
+  c_customer_sk : bigint,
+  c_customer_id : string,
+  c_current_cdemo_sk : bigint?,
+  c_current_hdemo_sk : bigint?,
+  c_current_addr_sk : bigint?,
+  c_first_shipto_date_sk : bigint?,
+  c_first_sales_date_sk : bigint?,
+  c_salutation : string?,
+  c_first_name : string?,
+  c_last_name : string?,
+  c_preferred_cust_flag : string?,
+  c_birth_day : bigint?,
+  c_birth_month : bigint?,
+  c_birth_year : bigint?,
+  c_birth_country : string?,
+  c_login : string?,
+  c_email_address : string?,
+  c_last_review_date : string?
+}
+
+create dataset customer_address(customer_address_type) primary key 
ca_address_sk;
+
+create dataset catalog_sales (catalog_sales_type) primary key cs_item_sk, 
cs_order_number;
+
+create dataset date_dim(date_dim_type) primary key d_date_sk;
+
+create dataset customer (customer_type) primary key c_customer_sk;


asterixdb git commit: ASTERIXDB-1671: fix non-positive limit with order by.

2016-10-04 Thread buyingyi
Repository: asterixdb
Updated Branches:
  refs/heads/master 2e3d16739 -> 6adeec2d1


ASTERIXDB-1671: fix non-positive limit with order by.

Change-Id: Id28218c100e4cca0f94e37eda82d3bc6ae78322f
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1240
Sonar-Qube: Jenkins 
Tested-by: Jenkins 
Reviewed-by: Till Westmann 
Integration-Tests: Jenkins 
Reviewed-by: Taewoo Kim 


Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/6adeec2d
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/6adeec2d
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/6adeec2d

Branch: refs/heads/master
Commit: 6adeec2d19f0051d5696f9453e52b86e7a02461d
Parents: 2e3d167
Author: Yingyi Bu 
Authored: Mon Oct 3 21:21:31 2016 -0700
Committer: Yingyi Bu 
Committed: Tue Oct 4 10:06:26 2016 -0700

--
 .../rules/PushLimitIntoOrderByRule.java | 16 +--
 .../queries/query-ASTERIXDB-1671.sqlpp  | 40 +
 .../results/query-ASTERIXDB-1671.plan   | 17 +++
 .../query-ASTERIXDB-1671-2.1.ddl.sqlpp  | 47 
 .../query-ASTERIXDB-1671-2.2.update.sqlpp   | 24 ++
 .../query-ASTERIXDB-1671-2.3.query.sqlpp| 27 +++
 .../query-ASTERIXDB-1671.1.ddl.sqlpp| 47 
 .../query-ASTERIXDB-1671.2.update.sqlpp | 24 ++
 .../query-ASTERIXDB-1671.3.query.sqlpp  | 27 +++
 .../query-ASTERIXDB-1671.1.adm  |  0
 .../resources/runtimets/testsuite_sqlpp.xml | 10 +
 .../std/sort/HybridTopKSortRunGenerator.java|  3 ++
 12 files changed, 278 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/6adeec2d/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushLimitIntoOrderByRule.java
--
diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushLimitIntoOrderByRule.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushLimitIntoOrderByRule.java
index b573ae4..4c0247f 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushLimitIntoOrderByRule.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushLimitIntoOrderByRule.java
@@ -96,8 +96,6 @@ public class PushLimitIntoOrderByRule implements 
IAlgebraicRewriteRule {
 return false;
 }
 
-boolean needToCheckOffsetValue = true;
-
 // Get the LIMIT constant
 if (limitOp.getMaxObjects().getValue().getExpressionTag() == 
LogicalExpressionTag.CONSTANT) {
 // Currently, we support LIMIT with a constant value.
@@ -107,6 +105,9 @@ public class PushLimitIntoOrderByRule implements 
IAlgebraicRewriteRule {
 if (topK > Integer.MAX_VALUE) {
 return false;
 }
+if (topK < 0) {
+topK = 0;
+}
 } else {
 return false;
 }
@@ -116,7 +117,15 @@ public class PushLimitIntoOrderByRule implements 
IAlgebraicRewriteRule {
 // Final topK will be applied through LIMIT.
 if (limitOp.getOffset().getValue() != null) {
 if (limitOp.getOffset().getValue().getExpressionTag() == 
LogicalExpressionTag.CONSTANT) {
-topK = topK + ((int) 
AccessMethodUtils.getInt64Constant(limitOp.getOffset()));
+long offset = 
AccessMethodUtils.getInt64Constant(limitOp.getOffset());
+if (offset < 0) {
+offset = 0;
+}
+// Check the overflow case.
+if (offset >= Integer.MAX_VALUE - topK) {
+return false;
+}
+topK += offset;
 } else {
 return false;
 }
@@ -133,7 +142,6 @@ public class PushLimitIntoOrderByRule implements 
IAlgebraicRewriteRule {
 opRef2.setValue(newOrderOp);
 context.computeAndSetTypeEnvironmentForOperator(newOrderOp);
 context.addToDontApplySet(this, limitOp);
-
 return true;
 }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/6adeec2d/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1671.sqlpp
--
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1671.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1671.sqlpp
new file 

[1/2] asterixdb git commit: Interval join test questions for AQL.

2016-10-04 Thread prestonc
Repository: asterixdb
Updated Branches:
  refs/heads/master 717e9415c -> 2e3d16739


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2e3d1673/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm
--
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm
new file mode 100644
index 000..f38e40b
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm
@@ -0,0 +1,5 @@
+{ "staff": "Franklin", "student": "Olga" }
+{ "staff": "Maryann", "student": "Charles" }
+{ "staff": "Maryann", "student": "Frank" }
+{ "staff": "Maryann", "student": "Mary" }
+{ "staff": "Maryann", "student": "Olga" }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2e3d1673/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm
--
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm
new file mode 100644
index 000..4e22101
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm
@@ -0,0 +1,15 @@
+{ "staff": "Elisabeth", "student": "Karen" }
+{ "staff": "Elisabeth", "student": "Mary" }
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "Maryann", "student": "Karen" }
+{ "staff": "Maryann", "student": "Steve" }
+{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "Vicky", "student": "Charles" }
+{ "staff": "Vicky", "student": "Frank" }
+{ "staff": "Vicky", "student": "Karen" }
+{ "staff": "Vicky", "student": "Mary" }
+{ "staff": "Vicky", "student": "Olga" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2e3d1673/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.4.adm
--
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.4.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.4.adm
new file mode 100644
index 000..1a67e10
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.4.adm
@@ -0,0 +1,4 @@
+{ "staff": "Zack", "student": "Charles" }
+{ "staff": "Zack", "student": "Frank" }
+{ "staff": "Zack", "student": "Mary" }
+{ "staff": "Zack", "student": "Olga" }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2e3d1673/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm
--
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm
new file mode 100644
index 000..5af9101
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm
@@ -0,0 +1,7 @@
+{ "staff": "Elisabeth", "student": "Steve" }
+{ "staff": "Elisabeth", "student": "Tess" }
+{ "staff": "Franklin", "student": "Karen" }
+{ "staff": "Maryann", "student": "Steve" }
+{ "staff": "Maryann", "student": "Tess" }
+{ "staff": "Vicky", "student": "Steve" }
+{ "staff": "Vicky", "student": "Tess" }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2e3d1673/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.4.adm
--
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.4.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.4.adm
new file mode 100644
index 000..5857139
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.4.adm
@@ -0,0 +1 @@
+{ "staff":