You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by zu...@apache.org on 2018/02/26 05:35:00 UTC

incubator-quickstep git commit: Small adjust in star schema cost model for # distinct values

Repository: incubator-quickstep
Updated Branches:
  refs/heads/master d1dbb0d9b -> 023c43a40


Small adjust in star schema cost model for # distinct values


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

Branch: refs/heads/master
Commit: 023c43a40b145c225c6deab103655156a034fa90
Parents: d1dbb0d
Author: Jianqiao Zhu <ji...@cs.wisc.edu>
Authored: Wed Feb 7 15:42:15 2018 -0600
Committer: Jianqiao Zhu <ji...@cs.wisc.edu>
Committed: Fri Feb 23 14:59:06 2018 -0600

----------------------------------------------------------------------
 .../cost_model/StarSchemaSimpleCostModel.cpp        |  4 ++--
 .../tests/execution_generator/Partition.test        | 16 ++++++++--------
 2 files changed, 10 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/023c43a4/query_optimizer/cost_model/StarSchemaSimpleCostModel.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/cost_model/StarSchemaSimpleCostModel.cpp b/query_optimizer/cost_model/StarSchemaSimpleCostModel.cpp
index 5aec4b4..6ab86e5 100644
--- a/query_optimizer/cost_model/StarSchemaSimpleCostModel.cpp
+++ b/query_optimizer/cost_model/StarSchemaSimpleCostModel.cpp
@@ -493,7 +493,7 @@ std::size_t StarSchemaSimpleCostModel::getNumDistinctValues(
       return stat.getNumDistinctValues(rel_attr_id);
     }
   }
-  return estimateCardinalityForTableReference(table_reference);
+  return estimateCardinalityForTableReference(table_reference) * 0.1;
 }
 
 bool StarSchemaSimpleCostModel::impliesUniqueAttributes(
@@ -527,7 +527,7 @@ bool StarSchemaSimpleCostModel::impliesUniqueAttributes(
           std::static_pointer_cast<const P::TableReference>(physical_plan);
       const CatalogRelationStatistics &stat =
           table_reference->relation()->getStatistics();
-      if (stat.hasNumTuples()) {
+      if (stat.isExact() && stat.hasNumTuples()) {
         const std::size_t num_tuples = stat.getNumTuples();
         for (const auto &attr : attributes) {
           const attribute_id rel_attr_id =

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/023c43a4/query_optimizer/tests/execution_generator/Partition.test
----------------------------------------------------------------------
diff --git a/query_optimizer/tests/execution_generator/Partition.test b/query_optimizer/tests/execution_generator/Partition.test
index 747b969..4b11a04 100644
--- a/query_optimizer/tests/execution_generator/Partition.test
+++ b/query_optimizer/tests/execution_generator/Partition.test
@@ -116,16 +116,16 @@ WHERE dim_2_hash_partitions.id = fact.id
 +-----------+--------------------+
 |id         |char_col            |
 +-----------+--------------------+
-|          2|          2 1.414214|
 |          4|          4 2.000000|
-|          6|          6 2.449490|
 |          8|          8 2.828427|
 |         12|         12 3.464102|
-|         14|         14 3.741657|
 |         16|         16 4.000000|
+|         24|         24 4.898979|
+|          2|          2 1.414214|
+|          6|          6 2.449490|
+|         14|         14 3.741657|
 |         18|         18 4.242641|
 |         22|         22 4.690416|
-|         24|         24 4.898979|
 +-----------+--------------------+
 ==
 
@@ -193,15 +193,15 @@ GROUP BY fact.score;
 +------------------------+--------------------+
 |score                   |COUNT(*)            |
 +------------------------+--------------------+
+|                       8|                   1|
 |      41.569219381653056|                   1|
-|      76.367532368147124|                   1|
 |                      64|                   1|
 |       52.38320341483518|                   1|
-|                       8|                   1|
-|      2.8284271247461903|                   1|
-|      14.696938456699067|                   1|
+|      76.367532368147124|                   1|
 |      22.627416997969522|                   1|
 |      117.57550765359254|                   1|
+|      2.8284271247461903|                   1|
+|      14.696938456699067|                   1|
 |      103.18914671611546|                   1|
 +------------------------+--------------------+
 ==