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) {}