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 <[email protected]> Authored: Thu Apr 14 11:52:09 2016 -0500 Committer: Zuyu ZHANG <[email protected]> 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) {}
