You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by ji...@apache.org on 2017/09/18 19:33:10 UTC

[6/6] incubator-quickstep git commit: Temporary adjustment for shortest path that prefer partitioned aggregation

Temporary adjustment for shortest path that prefer partitioned aggregation


Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/e6c99562
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/e6c99562
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/e6c99562

Branch: refs/heads/trace
Commit: e6c99562bfd6b64adf15569acb9cd1d7874c79e4
Parents: 01dc532
Author: jianqiao <ji...@node-2.jianqiao.quickstep-pg0.wisc.cloudlab.us>
Authored: Mon Sep 18 14:27:28 2017 -0500
Committer: jianqiao <ji...@node-2.jianqiao.quickstep-pg0.wisc.cloudlab.us>
Committed: Mon Sep 18 14:32:45 2017 -0500

----------------------------------------------------------------------
 query_optimizer/ExecutionGenerator.cpp                   | 6 +-----
 query_optimizer/cost_model/StarSchemaSimpleCostModel.cpp | 2 +-
 types/containers/ColumnVectorsValueAccessor.hpp          | 3 +--
 3 files changed, 3 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/e6c99562/query_optimizer/ExecutionGenerator.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/ExecutionGenerator.cpp b/query_optimizer/ExecutionGenerator.cpp
index e7ef82a..6f362b8 100644
--- a/query_optimizer/ExecutionGenerator.cpp
+++ b/query_optimizer/ExecutionGenerator.cpp
@@ -189,7 +189,7 @@ static const volatile bool num_aggregation_partitions_dummy
     = gflags::RegisterFlagValidator(&FLAGS_num_aggregation_partitions, &ValidateNumAggregationPartitions);
 
 DEFINE_uint64(partition_aggregation_num_groups_threshold,
-              100000,
+              100,
               "The threshold used for deciding whether the aggregation is done "
               "in a partitioned way or not");
 
@@ -267,10 +267,6 @@ bool CheckAggregatePartitioned(const std::size_t num_aggregate_functions,
                                const std::vector<bool> &is_distincts,
                                const std::vector<attribute_id> &group_by_attrs,
                                const std::size_t estimated_num_groups) {
-  // If there's no aggregation, return false.
-  if (num_aggregate_functions == 0) {
-    return false;
-  }
   // If there is only only aggregate function, we allow distinct aggregation.
   // Otherwise it can't be partitioned with distinct aggregation.
   if (num_aggregate_functions > 1) {

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/e6c99562/query_optimizer/cost_model/StarSchemaSimpleCostModel.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/cost_model/StarSchemaSimpleCostModel.cpp b/query_optimizer/cost_model/StarSchemaSimpleCostModel.cpp
index e0e3dff..ebc4d78 100644
--- a/query_optimizer/cost_model/StarSchemaSimpleCostModel.cpp
+++ b/query_optimizer/cost_model/StarSchemaSimpleCostModel.cpp
@@ -711,7 +711,7 @@ bool StarSchemaSimpleCostModel::canUseTwoPhaseCompactKeyAggregation(
   // to put that flag so that it can be shared by the two cpp files (optimizer
   // vs backend). So here we hardcode the threshold and leave it to be solved
   // later.
-  if (estimated_num_groups >= 10000u) {
+  if (estimated_num_groups >= 100u) {
     return false;
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/e6c99562/types/containers/ColumnVectorsValueAccessor.hpp
----------------------------------------------------------------------
diff --git a/types/containers/ColumnVectorsValueAccessor.hpp b/types/containers/ColumnVectorsValueAccessor.hpp
index ebd46d4..08b1feb 100644
--- a/types/containers/ColumnVectorsValueAccessor.hpp
+++ b/types/containers/ColumnVectorsValueAccessor.hpp
@@ -164,8 +164,7 @@ class ColumnVectorsValueAccessor : public ValueAccessor {
     DCHECK(tupleIdInRange(tid));
     if (column_native_[attr_id]) {
       return static_cast<const NativeColumnVector&>(*columns_[attr_id])
-          .getTypedValue(tid)
-          .makeReferenceToThis();
+          .getTypedValue(tid);
     } else {
       return static_cast<const IndirectColumnVector&>(*columns_[attr_id])
           .getTypedValue(tid)