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 2016/04/19 18:44:17 UTC

[04/24] incubator-quickstep git commit: Style fix for EXISTS subquery related changes (#165)

Style fix for EXISTS subquery related changes (#165)

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

Branch: refs/heads/master
Commit: 914f2d8082e65b61bfe5be413fc1bf20fd1c7329
Parents: 57e12d5
Author: Jianqiao Zhu <ji...@cs.wisc.edu>
Authored: Thu Apr 14 11:52:09 2016 -0500
Committer: Zuyu ZHANG <zu...@users.noreply.github.com>
Committed: Thu Apr 14 09:52:09 2016 -0700

----------------------------------------------------------------------
 query_optimizer/expressions/CMakeLists.txt         |  2 ++
 query_optimizer/expressions/Exists.cpp             |  7 +++++--
 query_optimizer/expressions/Exists.hpp             | 10 +++++++++-
 query_optimizer/expressions/ExpressionUtil.cpp     |  2 +-
 query_optimizer/expressions/PatternMatcher.hpp     |  5 +++++
 query_optimizer/expressions/SubqueryExpression.cpp |  9 ++++++---
 query_optimizer/expressions/SubqueryExpression.hpp | 10 +++++++---
 query_optimizer/resolver/NameResolver.hpp          |  2 +-
 8 files changed, 36 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/914f2d80/query_optimizer/expressions/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/query_optimizer/expressions/CMakeLists.txt b/query_optimizer/expressions/CMakeLists.txt
index 470bfb9..ca064dc 100644
--- a/query_optimizer/expressions/CMakeLists.txt
+++ b/query_optimizer/expressions/CMakeLists.txt
@@ -120,6 +120,7 @@ target_link_libraries(quickstep_queryoptimizer_expressions_ComparisonExpression
 target_link_libraries(quickstep_queryoptimizer_expressions_Exists
                       quickstep_queryoptimizer_OptimizerTree
                       quickstep_queryoptimizer_expressions_AttributeReference
+                      quickstep_queryoptimizer_expressions_ExprId
                       quickstep_queryoptimizer_expressions_Expression
                       quickstep_queryoptimizer_expressions_ExpressionType
                       quickstep_queryoptimizer_expressions_Predicate
@@ -254,6 +255,7 @@ target_link_libraries(quickstep_queryoptimizer_expressions_SubqueryExpression
                       glog
                       quickstep_queryoptimizer_OptimizerTree
                       quickstep_queryoptimizer_expressions_AttributeReference
+                      quickstep_queryoptimizer_expressions_ExprId
                       quickstep_queryoptimizer_expressions_Expression
                       quickstep_queryoptimizer_expressions_ExpressionType
                       quickstep_queryoptimizer_expressions_Scalar

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/914f2d80/query_optimizer/expressions/Exists.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/expressions/Exists.cpp b/query_optimizer/expressions/Exists.cpp
index 12d3a8b..2bb5a6b 100644
--- a/query_optimizer/expressions/Exists.cpp
+++ b/query_optimizer/expressions/Exists.cpp
@@ -21,10 +21,15 @@
 #include <string>
 
 #include "query_optimizer/OptimizerTree.hpp"
+#include "query_optimizer/expressions/ExprId.hpp"
 
 #include "glog/logging.h"
 
 namespace quickstep {
+
+class CatalogAttribute;
+class Predicate;
+
 namespace optimizer {
 namespace expressions {
 
@@ -34,7 +39,6 @@ namespace expressions {
   return nullptr;
 }
 
-
 void Exists::getFieldStringItems(
     std::vector<std::string> *inline_field_names,
     std::vector<std::string> *inline_field_values,
@@ -46,7 +50,6 @@ void Exists::getFieldStringItems(
   non_container_child_fields->push_back(exists_subquery_);
 }
 
-
 }  // namespace expressions
 }  // namespace optimizer
 }  // namespace quickstep

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/914f2d80/query_optimizer/expressions/Exists.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/expressions/Exists.hpp b/query_optimizer/expressions/Exists.hpp
index dd951c5..6293020 100644
--- a/query_optimizer/expressions/Exists.hpp
+++ b/query_optimizer/expressions/Exists.hpp
@@ -20,17 +20,25 @@
 
 #include <memory>
 #include <string>
+#include <unordered_map>
 #include <vector>
 
 #include "query_optimizer/OptimizerTree.hpp"
 #include "query_optimizer/expressions/AttributeReference.hpp"
+#include "query_optimizer/expressions/ExprId.hpp"
 #include "query_optimizer/expressions/Expression.hpp"
 #include "query_optimizer/expressions/ExpressionType.hpp"
 #include "query_optimizer/expressions/Predicate.hpp"
 #include "query_optimizer/expressions/SubqueryExpression.hpp"
 #include "utility/Macros.hpp"
 
+#include "glog/logging.h"
+
 namespace quickstep {
+
+class CatalogAttribute;
+class Predicate;
+
 namespace optimizer {
 namespace expressions {
 
@@ -67,7 +75,7 @@ class Exists : public Predicate {
 
   ExpressionPtr copyWithNewChildren(
       const std::vector<ExpressionPtr> &new_children) const override {
-    DCHECK_EQ(new_children.size(), 1u);
+    DCHECK_EQ(1u, new_children.size());
     return Create(std::static_pointer_cast<const SubqueryExpression>(new_children[0]));
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/914f2d80/query_optimizer/expressions/ExpressionUtil.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/expressions/ExpressionUtil.cpp b/query_optimizer/expressions/ExpressionUtil.cpp
index 3481d6c..5cf7759 100644
--- a/query_optimizer/expressions/ExpressionUtil.cpp
+++ b/query_optimizer/expressions/ExpressionUtil.cpp
@@ -41,7 +41,7 @@ std::vector<AttributeReferencePtr> GetAttributeReferencesWithinScope(
     const std::vector<AttributeReferencePtr> &attributes,
     const AttributeReferenceScope scope) {
   std::vector<AttributeReferencePtr> filtered_attributes;
-  for (const auto& attr_it : attributes) {
+  for (const auto &attr_it : attributes) {
     if (attr_it->scope() == scope) {
       filtered_attributes.emplace_back(attr_it);
     }

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/914f2d80/query_optimizer/expressions/PatternMatcher.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/expressions/PatternMatcher.hpp b/query_optimizer/expressions/PatternMatcher.hpp
index 4c5432d..528b1e6 100644
--- a/query_optimizer/expressions/PatternMatcher.hpp
+++ b/query_optimizer/expressions/PatternMatcher.hpp
@@ -1,6 +1,8 @@
 /**
  *   Copyright 2011-2015 Quickstep Technologies LLC.
  *   Copyright 2015 Pivotal Software, Inc.
+ *   Copyright 2016, Quickstep Research Group, Computer Sciences Department,
+ *     University of Wisconsin—Madison.
  *
  *   Licensed under the Apache License, Version 2.0 (the "License");
  *   you may not use this file except in compliance with the License.
@@ -35,6 +37,7 @@ class BinaryExpression;
 class Cast;
 class ComparisonExpression;
 class Count;
+class Exists;
 class LogicalAnd;
 class LogicalNot;
 class LogicalOr;
@@ -115,6 +118,7 @@ using SomeAttributeReference = SomeExpressionNode<AttributeReference, Expression
 using SomeBinaryExpression = SomeExpressionNode<BinaryExpression, ExpressionType::kBinaryExpression>;
 using SomeCast = SomeExpressionNode<Cast, ExpressionType::kCast>;
 using SomeComparisonExpression = SomeExpressionNode<ComparisonExpression, ExpressionType::kComparisonExpression>;
+using SomeExists = SomeExpressionNode<Exists, ExpressionType::kExists>;
 using SomeLogicalAnd = SomeExpressionNode<LogicalAnd, ExpressionType::kLogicalAnd>;
 using SomeLogicalNot = SomeExpressionNode<LogicalNot, ExpressionType::kLogicalNot>;
 using SomeLogicalOr = SomeExpressionNode<LogicalOr, ExpressionType::kLogicalOr>;
@@ -123,6 +127,7 @@ using SomeNamedExpression = SomeExpressionNode<NamedExpression,
                                                ExpressionType::kAlias>;
 using SomePredicate = SomeExpressionNode<Predicate,
                                          ExpressionType::kComparisonExpression,
+                                         ExpressionType::kExists,
                                          ExpressionType::kLogicalAnd,
                                          ExpressionType::kLogicalNot,
                                          ExpressionType::kLogicalOr,

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/914f2d80/query_optimizer/expressions/SubqueryExpression.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/expressions/SubqueryExpression.cpp b/query_optimizer/expressions/SubqueryExpression.cpp
index f1a97ca..0459212 100644
--- a/query_optimizer/expressions/SubqueryExpression.cpp
+++ b/query_optimizer/expressions/SubqueryExpression.cpp
@@ -22,24 +22,27 @@
 
 #include "query_optimizer/OptimizerTree.hpp"
 #include "query_optimizer/expressions/AttributeReference.hpp"
+#include "query_optimizer/expressions/ExprId.hpp"
 
 #include "glog/logging.h"
 
 namespace quickstep {
+
+class CatalogAttribute;
+class Scalar;
+
 namespace optimizer {
 namespace expressions {
 
 ::quickstep::Scalar* SubqueryExpression::concretize(
-    const std::unordered_map<ExprId, const CatalogAttribute*>& substitution_map) const {
+    const std::unordered_map<ExprId, const CatalogAttribute*> &substitution_map) const {
   LOG(FATAL) << "SubqueryExpression should not be concretized";
-  return nullptr;
 }
 
 std::vector<AttributeReferencePtr> SubqueryExpression::getReferencedAttributes() const {
   // SubqueryExpression should be eliminated before any place that needs
   // a call of getReferencedAttributes.
   LOG(FATAL) << "SubqueryExpression::getReferencedAttributes() is not implemented";
-  return {};
 }
 
 void SubqueryExpression::getFieldStringItems(

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/914f2d80/query_optimizer/expressions/SubqueryExpression.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/expressions/SubqueryExpression.hpp b/query_optimizer/expressions/SubqueryExpression.hpp
index e0e2733..58fb6e8 100644
--- a/query_optimizer/expressions/SubqueryExpression.hpp
+++ b/query_optimizer/expressions/SubqueryExpression.hpp
@@ -20,9 +20,11 @@
 
 #include <memory>
 #include <string>
+#include <unordered_map>
 #include <vector>
 
 #include "query_optimizer/expressions/AttributeReference.hpp"
+#include "query_optimizer/expressions/ExprId.hpp"
 #include "query_optimizer/expressions/Expression.hpp"
 #include "query_optimizer/expressions/ExpressionType.hpp"
 #include "query_optimizer/expressions/Scalar.hpp"
@@ -34,6 +36,8 @@
 
 namespace quickstep {
 
+class CatalogAttribute;
+class Scalar;
 class Type;
 
 namespace optimizer {
@@ -81,7 +85,7 @@ class SubqueryExpression : public Scalar {
   }
 
   ::quickstep::Scalar* concretize(
-      const std::unordered_map<ExprId, const CatalogAttribute*>& substitution_map) const override;
+      const std::unordered_map<ExprId, const CatalogAttribute*> &substitution_map) const override;
 
   /**
    * @brief Creates a subquery expression.
@@ -90,7 +94,7 @@ class SubqueryExpression : public Scalar {
    * @param subquery The logical subquery node.
    * @return An immutable SubqueryExpression.
    */
-  static SubqueryExpressionPtr Create(const logical::LogicalPtr& subquery) {
+  static SubqueryExpressionPtr Create(const logical::LogicalPtr &subquery) {
     return SubqueryExpressionPtr(new SubqueryExpression(subquery));
   }
 
@@ -104,7 +108,7 @@ class SubqueryExpression : public Scalar {
       std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const override;
 
  private:
-  explicit SubqueryExpression(const logical::LogicalPtr& subquery)
+  explicit SubqueryExpression(const logical::LogicalPtr &subquery)
       : subquery_(subquery),
         output_attribute_(subquery->getOutputAttributes()[0]) {
     DCHECK(!subquery->getOutputAttributes().empty());

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/914f2d80/query_optimizer/resolver/NameResolver.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/resolver/NameResolver.hpp b/query_optimizer/resolver/NameResolver.hpp
index 4809fe8..6aed904 100644
--- a/query_optimizer/resolver/NameResolver.hpp
+++ b/query_optimizer/resolver/NameResolver.hpp
@@ -51,7 +51,7 @@ class NameResolver {
    * @brief Constructor.
    *
    * @param parent_resolver The NameResolver inherited from the outer query.
-   *                        NULL if there is no outer query.
+   *        NULL if there is no outer query.
    */
   explicit NameResolver(const NameResolver *parent_resolver = nullptr)
       : parent_resolver_(parent_resolver) {}