You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by sp...@apache.org on 2016/12/11 17:45:29 UTC
[06/51] [abbrv] [partial] incubator-quickstep git commit: remove c++
files
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/Aggregate.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/Aggregate.hpp b/query_optimizer/physical/Aggregate.hpp
deleted file mode 100644
index de36cc3..0000000
--- a/query_optimizer/physical/Aggregate.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#ifndef QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_AGGREGATE_HPP_
-#define QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_AGGREGATE_HPP_
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "query_optimizer/expressions/Alias.hpp"
-#include "query_optimizer/expressions/AttributeReference.hpp"
-#include "query_optimizer/expressions/ExpressionUtil.hpp"
-#include "query_optimizer/expressions/NamedExpression.hpp"
-#include "query_optimizer/expressions/Predicate.hpp"
-#include "query_optimizer/physical/Physical.hpp"
-#include "query_optimizer/physical/PhysicalType.hpp"
-#include "utility/Macros.hpp"
-
-#include "glog/logging.h"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-/** \addtogroup OptimizerLogical
- * @{
- */
-
-class Aggregate;
-typedef std::shared_ptr<const Aggregate> AggregatePtr;
-
-/**
- * @brief Aggregate operator that computes aggregate expressions for each combination
- * of the values of grouping expressions.
- */
-class Aggregate : public Physical {
- public:
- PhysicalType getPhysicalType() const override { return PhysicalType::kAggregate; }
-
- std::string getName() const override { return "Aggregate"; }
-
- /**
- * @return The input physical node.
- */
- const PhysicalPtr input() const { return input_; }
-
- /**
- * @return Grouping expressions.
- */
- inline const std::vector<expressions::NamedExpressionPtr>& grouping_expressions() const {
- return grouping_expressions_;
- }
-
- /**
- * @return Aggregate expressions.
- */
- const std::vector<expressions::AliasPtr>& aggregate_expressions() const {
- return aggregate_expressions_;
- }
-
- /**
- * @return Filter predicate applied before aggregation.
- */
- const expressions::PredicatePtr& filter_predicate() const {
- return filter_predicate_;
- }
-
- PhysicalPtr copyWithNewChildren(
- const std::vector<PhysicalPtr> &new_children) const override {
- DCHECK_EQ(getNumChildren(), new_children.size());
- return Create(new_children[0], grouping_expressions_, aggregate_expressions_, filter_predicate_);
- }
-
- std::vector<expressions::AttributeReferencePtr> getOutputAttributes() const override;
-
- std::vector<expressions::AttributeReferencePtr> getReferencedAttributes() const override;
-
- bool maybeCopyWithPrunedExpressions(
- const expressions::UnorderedNamedExpressionSet &referenced_expressions,
- PhysicalPtr *output) const override {
- // The project expressions for an Aggregate cannot be changed.
- return false;
- }
-
- /**
- * @brief Creates an Aggregate physical node.
- *
- * @param input The input node.
- * @param aggregate_expressions The aggregate expressions.
- * @param grouping_expressions The grouping expressions.
- * @param filter_predicate The filtering predicate applied before aggregation. Can be NULL.
- * @return An immutable Aggregate node.
- */
- static AggregatePtr Create(
- PhysicalPtr input,
- const std::vector<expressions::NamedExpressionPtr> &grouping_expressions,
- const std::vector<expressions::AliasPtr> &aggregate_expressions,
- const expressions::PredicatePtr &filter_predicate) {
- return AggregatePtr(
- new Aggregate(input, grouping_expressions, aggregate_expressions, filter_predicate));
- }
-
- protected:
- void getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const override;
-
- private:
- Aggregate(
- PhysicalPtr input,
- const std::vector<expressions::NamedExpressionPtr> &grouping_expressions,
- const std::vector<expressions::AliasPtr> &aggregate_expressions,
- const expressions::PredicatePtr &filter_predicate)
- : input_(input),
- grouping_expressions_(grouping_expressions),
- aggregate_expressions_(aggregate_expressions),
- filter_predicate_(filter_predicate) {
- addChild(input_);
- }
-
- PhysicalPtr input_;
- std::vector<expressions::NamedExpressionPtr> grouping_expressions_;
- std::vector<expressions::AliasPtr> aggregate_expressions_;
- expressions::PredicatePtr filter_predicate_;
-
- DISALLOW_COPY_AND_ASSIGN(Aggregate);
-};
-
-/** @} */
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
-
-#endif /* QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_AGGREGATE_HPP_ */
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/BinaryJoin.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/BinaryJoin.cpp b/query_optimizer/physical/BinaryJoin.cpp
deleted file mode 100644
index 30e2e8d..0000000
--- a/query_optimizer/physical/BinaryJoin.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#include "query_optimizer/physical/BinaryJoin.hpp"
-
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "utility/Cast.hpp"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-namespace E = ::quickstep::optimizer::expressions;
-
-void BinaryJoin::getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const {
- non_container_child_field_names->push_back("left");
- non_container_child_field_names->push_back("right");
-
- non_container_child_fields->push_back(left_);
- non_container_child_fields->push_back(right_);
-
- container_child_field_names->push_back("project_expressions");
- container_child_fields->push_back(
- CastSharedPtrVector<OptimizerTreeBase>(project_expressions()));
-}
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/BinaryJoin.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/BinaryJoin.hpp b/query_optimizer/physical/BinaryJoin.hpp
deleted file mode 100644
index 4b5671d..0000000
--- a/query_optimizer/physical/BinaryJoin.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#ifndef QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_BINARY_JOIN_HPP_
-#define QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_BINARY_JOIN_HPP_
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "query_optimizer/expressions/NamedExpression.hpp"
-#include "query_optimizer/physical/Join.hpp"
-#include "query_optimizer/physical/Physical.hpp"
-#include "utility/Macros.hpp"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-/** \addtogroup OptimizerPhysical
- * @{
- */
-
-class BinaryJoin;
-typedef std::shared_ptr<const BinaryJoin> BinaryJoinPtr;
-
-/**
- * @brief Base class for binary join nodes.
- */
-class BinaryJoin : public Join {
- public:
- /**
- * @brief Destructor.
- */
- ~BinaryJoin() override {}
-
- /**
- * @return The left operand.
- */
- const PhysicalPtr& left() const { return left_; }
-
- /**
- * @return The right operand.
- */
- const PhysicalPtr& right() const { return right_; }
-
- protected:
- /**
- * @brief Constructor.
- *
- * @param left The left operand.
- * @param right The right operand.
- * @param project_expressions The project expressions.
- */
- BinaryJoin(const PhysicalPtr &left,
- const PhysicalPtr &right,
- const std::vector<expressions::NamedExpressionPtr> &project_expressions)
- : Join(project_expressions),
- left_(left),
- right_(right) {
- addChild(left_);
- addChild(right_);
- }
-
- void getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const override;
-
- private:
- PhysicalPtr left_;
- PhysicalPtr right_;
-
- DISALLOW_COPY_AND_ASSIGN(BinaryJoin);
-};
-
-/** @} */
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
-
-#endif /* QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_BINARY_JOIN_HPP_ */
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/CMakeLists.txt b/query_optimizer/physical/CMakeLists.txt
deleted file mode 100644
index 5c2cd0b..0000000
--- a/query_optimizer/physical/CMakeLists.txt
+++ /dev/null
@@ -1,301 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# Declare micro-libs:
-add_library(quickstep_queryoptimizer_physical_Aggregate Aggregate.cpp Aggregate.hpp)
-add_library(quickstep_queryoptimizer_physical_BinaryJoin BinaryJoin.cpp BinaryJoin.hpp)
-add_library(quickstep_queryoptimizer_physical_CopyFrom CopyFrom.cpp CopyFrom.hpp)
-add_library(quickstep_queryoptimizer_physical_CreateIndex CreateIndex.cpp CreateIndex.hpp)
-add_library(quickstep_queryoptimizer_physical_CreateTable CreateTable.cpp CreateTable.hpp)
-add_library(quickstep_queryoptimizer_physical_DeleteTuples DeleteTuples.cpp DeleteTuples.hpp)
-add_library(quickstep_queryoptimizer_physical_DropTable DropTable.cpp DropTable.hpp)
-add_library(quickstep_queryoptimizer_physical_HashJoin HashJoin.cpp HashJoin.hpp)
-add_library(quickstep_queryoptimizer_physical_InsertSelection InsertSelection.cpp InsertSelection.hpp)
-add_library(quickstep_queryoptimizer_physical_InsertTuple InsertTuple.cpp InsertTuple.hpp)
-add_library(quickstep_queryoptimizer_physical_Join ../../empty_src.cpp Join.hpp)
-add_library(quickstep_queryoptimizer_physical_LIPFilterConfiguration ../../empty_src.cpp LIPFilterConfiguration.hpp)
-add_library(quickstep_queryoptimizer_physical_NestedLoopsJoin NestedLoopsJoin.cpp NestedLoopsJoin.hpp)
-add_library(quickstep_queryoptimizer_physical_PatternMatcher ../../empty_src.cpp PatternMatcher.hpp)
-add_library(quickstep_queryoptimizer_physical_Physical ../../empty_src.cpp Physical.hpp)
-add_library(quickstep_queryoptimizer_physical_PhysicalType ../../empty_src.cpp PhysicalType.hpp)
-add_library(quickstep_queryoptimizer_physical_Sample Sample.cpp Sample.hpp)
-add_library(quickstep_queryoptimizer_physical_Selection Selection.cpp Selection.hpp)
-add_library(quickstep_queryoptimizer_physical_SharedSubplanReference
- SharedSubplanReference.cpp
- SharedSubplanReference.hpp)
-add_library(quickstep_queryoptimizer_physical_Sort Sort.cpp Sort.hpp)
-add_library(quickstep_queryoptimizer_physical_TableGenerator ../../empty_src.cpp TableGenerator.hpp)
-add_library(quickstep_queryoptimizer_physical_TableReference TableReference.cpp TableReference.hpp)
-add_library(quickstep_queryoptimizer_physical_TopLevelPlan TopLevelPlan.cpp TopLevelPlan.hpp)
-add_library(quickstep_queryoptimizer_physical_UpdateTable UpdateTable.cpp UpdateTable.hpp)
-add_library(quickstep_queryoptimizer_physical_WindowAggregate WindowAggregate.cpp WindowAggregate.hpp)
-
-# Link dependencies:
-target_link_libraries(quickstep_queryoptimizer_physical_Aggregate
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_Alias
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_expressions_Predicate
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_BinaryJoin
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_physical_Join
- quickstep_queryoptimizer_physical_Physical
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_CopyFrom
- glog
- quickstep_catalog_CatalogRelation
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_CreateIndex
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_storage_StorageBlockLayout_proto
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_CreateTable
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_DeleteTuples
- glog
- quickstep_catalog_CatalogRelation
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_expressions_Predicate
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_DropTable
- glog
- quickstep_catalog_CatalogRelation
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_HashJoin
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_expressions_Predicate
- quickstep_queryoptimizer_physical_BinaryJoin
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_InsertSelection
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_InsertTuple
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_expressions_ScalarLiteral
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_Join
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_physical_Physical
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_LIPFilterConfiguration
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_utility_Macros
- quickstep_utility_lipfilter_LIPFilter)
-target_link_libraries(quickstep_queryoptimizer_physical_NestedLoopsJoin
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_expressions_Predicate
- quickstep_queryoptimizer_physical_BinaryJoin
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_PatternMatcher
- quickstep_queryoptimizer_physical_PhysicalType)
-target_link_libraries(quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_Sample
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_Selection
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_LogicalAnd
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_expressions_Predicate
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_SharedSubplanReference
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_Sort
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_TableGenerator
- quickstep_expressions_tablegenerator_GeneratorFunctionHandle
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExprId
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_TableReference
- glog
- quickstep_catalog_CatalogRelation
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_TopLevelPlan
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExprId
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_physical_LIPFilterConfiguration
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_UpdateTable
- glog
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_expressions_Predicate
- quickstep_queryoptimizer_expressions_Scalar
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_physical_WindowAggregate
- quickstep_queryoptimizer_OptimizerTree
- quickstep_queryoptimizer_expressions_Alias
- quickstep_queryoptimizer_expressions_AttributeReference
- quickstep_queryoptimizer_expressions_ExpressionUtil
- quickstep_queryoptimizer_expressions_NamedExpression
- quickstep_queryoptimizer_expressions_Predicate
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_utility_Cast
- quickstep_utility_Macros)
-
-# Module all-in-one library:
-add_library(quickstep_queryoptimizer_physical ../../empty_src.cpp OptimizerPhysicalModule.hpp)
-target_link_libraries(quickstep_queryoptimizer_physical
- quickstep_queryoptimizer_physical_Aggregate
- quickstep_queryoptimizer_physical_BinaryJoin
- quickstep_queryoptimizer_physical_CopyFrom
- quickstep_queryoptimizer_physical_CreateIndex
- quickstep_queryoptimizer_physical_CreateTable
- quickstep_queryoptimizer_physical_DeleteTuples
- quickstep_queryoptimizer_physical_DropTable
- quickstep_queryoptimizer_physical_HashJoin
- quickstep_queryoptimizer_physical_InsertSelection
- quickstep_queryoptimizer_physical_InsertTuple
- quickstep_queryoptimizer_physical_Join
- quickstep_queryoptimizer_physical_LIPFilterConfiguration
- quickstep_queryoptimizer_physical_NestedLoopsJoin
- quickstep_queryoptimizer_physical_PatternMatcher
- quickstep_queryoptimizer_physical_Physical
- quickstep_queryoptimizer_physical_PhysicalType
- quickstep_queryoptimizer_physical_Sample
- quickstep_queryoptimizer_physical_Selection
- quickstep_queryoptimizer_physical_SharedSubplanReference
- quickstep_queryoptimizer_physical_Sort
- quickstep_queryoptimizer_physical_TableGenerator
- quickstep_queryoptimizer_physical_TableReference
- quickstep_queryoptimizer_physical_TopLevelPlan
- quickstep_queryoptimizer_physical_UpdateTable
- quickstep_queryoptimizer_physical_WindowAggregate)
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/CopyFrom.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/CopyFrom.cpp b/query_optimizer/physical/CopyFrom.cpp
deleted file mode 100644
index 8448d4e..0000000
--- a/query_optimizer/physical/CopyFrom.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#include "query_optimizer/physical/CopyFrom.hpp"
-
-#include <string>
-#include <vector>
-
-#include "catalog/CatalogRelation.hpp"
-#include "query_optimizer/OptimizerTree.hpp"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-void CopyFrom::getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const {
- inline_field_names->push_back("relation");
- inline_field_values->push_back(catalog_relation_->getName());
-
- inline_field_names->push_back("file_name");
- inline_field_values->push_back(file_name_);
-
- inline_field_names->push_back("column_delimiter");
- inline_field_values->push_back(std::string(1, column_delimiter_));
-
- inline_field_names->push_back("escape_strings");
- inline_field_values->push_back(escape_strings_ ? "true" : "false");
-}
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/CopyFrom.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/CopyFrom.hpp b/query_optimizer/physical/CopyFrom.hpp
deleted file mode 100644
index ecbf318..0000000
--- a/query_optimizer/physical/CopyFrom.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#ifndef QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_COPYFROM_HPP_
-#define QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_COPYFROM_HPP_
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "query_optimizer/expressions/AttributeReference.hpp"
-#include "query_optimizer/expressions/ExpressionUtil.hpp"
-#include "query_optimizer/expressions/NamedExpression.hpp"
-#include "query_optimizer/physical/Physical.hpp"
-#include "query_optimizer/physical/PhysicalType.hpp"
-#include "utility/Macros.hpp"
-
-#include "glog/logging.h"
-
-namespace quickstep {
-
-class CatalogRelation;
-
-namespace optimizer {
-namespace physical {
-
-/** \addtogroup OptimizerPhysical
- * @{
- */
-
-class CopyFrom;
-typedef std::shared_ptr<const CopyFrom> CopyFromPtr;
-
-/**
- * @brief Represents an operation that copies data from a text file to a relation.
- */
-class CopyFrom : public Physical {
- public:
- PhysicalType getPhysicalType() const override { return PhysicalType::kCopyFrom; }
-
- std::string getName() const override { return "CopyFrom"; }
-
- /**
- * @return The catalog relation to insert the tuples to.
- */
- const CatalogRelation* catalog_relation() const { return catalog_relation_; }
-
- /**
- * @return The name of the file to read the data from.
- */
- const std::string& file_name() const { return file_name_; }
-
- /**
- * @return The delimiter used in the text file to separate columns.
- */
- const char column_delimiter() const { return column_delimiter_; }
-
- /**
- * @return Whether to decode escape sequences in the text file.
- */
- bool escape_strings() const { return escape_strings_; }
-
- PhysicalPtr copyWithNewChildren(
- const std::vector<PhysicalPtr> &new_children) const override {
- DCHECK(new_children.empty());
- return Create(catalog_relation_,
- file_name_,
- column_delimiter_,
- escape_strings_);
- }
-
- std::vector<expressions::AttributeReferencePtr> getOutputAttributes() const override {
- return std::vector<expressions::AttributeReferencePtr>();
- }
-
- std::vector<expressions::AttributeReferencePtr> getReferencedAttributes() const override {
- return std::vector<expressions::AttributeReferencePtr>();
- }
-
- bool maybeCopyWithPrunedExpressions(
- const expressions::UnorderedNamedExpressionSet &referenced_expressions,
- PhysicalPtr *output) const override {
- return false;
- }
-
- /**
- * @brief Creates a CopyFrom physical node.
- *
- * @param catalog_relation The catalog relation to insert the tuples to.
- * @param file_name The name of the file to read the data from.
- * @param column_delimiter The delimiter used in the text file to separate
- * columns.
- * @param escape_strings Whether to decode escape sequences in the text file.
- * @return An immutable CopyFrom physical node.
- */
- static CopyFromPtr Create(const CatalogRelation *catalog_relation,
- const std::string &file_name,
- const char &column_delimiter,
- bool escape_strings) {
- return CopyFromPtr(new CopyFrom(catalog_relation,
- file_name,
- column_delimiter,
- escape_strings));
- }
-
- protected:
- void getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const override;
-
- private:
- CopyFrom(const CatalogRelation *catalog_relation,
- const std::string &file_name,
- const char column_delimiter,
- bool escape_strings)
- : catalog_relation_(catalog_relation),
- file_name_(file_name),
- column_delimiter_(column_delimiter),
- escape_strings_(escape_strings) {}
-
- const CatalogRelation *catalog_relation_;
- std::string file_name_;
-
- const char column_delimiter_;
- const bool escape_strings_;
-
- DISALLOW_COPY_AND_ASSIGN(CopyFrom);
-};
-
-/** @} */
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
-
-#endif /* QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_COPYFROM_HPP_ */
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/CreateIndex.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/CreateIndex.cpp b/query_optimizer/physical/CreateIndex.cpp
deleted file mode 100644
index af7d500..0000000
--- a/query_optimizer/physical/CreateIndex.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#include "query_optimizer/physical/CreateIndex.hpp"
-
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "utility/Cast.hpp"
-#include "utility/Macros.hpp"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-void CreateIndex::getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const {
- inline_field_names->push_back("index_name");
- inline_field_values->push_back(index_name_);
-
- non_container_child_field_names->push_back("relation");
- non_container_child_fields->push_back(input_);
-
- container_child_field_names->push_back("index_attributes");
- container_child_fields->push_back(CastSharedPtrVector<OptimizerTreeBase>(index_attributes_));
-
- inline_field_names->push_back("serialized_index_description");
- inline_field_values->push_back(index_description_->DebugString());
-}
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/CreateIndex.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/CreateIndex.hpp b/query_optimizer/physical/CreateIndex.hpp
deleted file mode 100644
index 3847736..0000000
--- a/query_optimizer/physical/CreateIndex.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#ifndef QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_CREATEINDEX_HPP_
-#define QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_CREATEINDEX_HPP_
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "query_optimizer/expressions/AttributeReference.hpp"
-#include "query_optimizer/physical/Physical.hpp"
-#include "query_optimizer/physical/PhysicalType.hpp"
-#include "storage/StorageBlockLayout.pb.h"
-#include "utility/Macros.hpp"
-
-#include "glog/logging.h"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-/** \addtogroup OptimizerPhysical
- * @{
- */
-
-class CreateIndex;
-typedef std::shared_ptr<const CreateIndex> CreateIndexPtr;
-
-/**
- * @brief Creates an index.
- */
-class CreateIndex : public Physical {
- public:
- PhysicalType getPhysicalType() const override {
- return PhysicalType::kCreateIndex;
- }
-
- std::string getName() const override { return "CreateIndex"; }
-
- /**
- * @return The input that produces the relation to create index upon.
- */
- const PhysicalPtr& input() const { return input_; }
-
- /**
- * @return The name of the index to be created.
- */
- const std::string& index_name() const { return index_name_; }
-
- /**
- * @return The list of attributes to build index upon.
- */
- const std::vector<expressions::AttributeReferencePtr>& index_attributes() const {
- return index_attributes_;
- }
-
- /**
- * @return Shared pointer to the index properties.
- */
- std::shared_ptr<const IndexSubBlockDescription> index_description() const {
- return index_description_;
- }
-
- PhysicalPtr copyWithNewChildren(
- const std::vector<PhysicalPtr> &new_children) const override {
- DCHECK_EQ(getNumChildren(), new_children.size());
- return Create(new_children[0], index_name_, index_attributes_, index_description_);
- }
-
- std::vector<expressions::AttributeReferencePtr> getOutputAttributes() const override {
- return index_attributes_;
- }
-
- std::vector<expressions::AttributeReferencePtr> getReferencedAttributes() const override {
- return index_attributes_;
- }
-
- bool maybeCopyWithPrunedExpressions(
- const expressions::UnorderedNamedExpressionSet &referenced_expressions,
- PhysicalPtr *output) const override {
- return false;
- }
-
- /**
- * @brief Creates a CreateIndex physical node that represents an operation to
- * create a new index.
- *
- * @param input The input produces the relation to create index upon.
- * @param index_name The name of the index to create.
- * @param index_attributes Set of attributes to create index upon.
- * @param index_description A proto block describing the set of properties for this index.
- * @return An immutable CreateIndex node.
- */
- static CreateIndexPtr Create(
- const PhysicalPtr &input,
- const std::string &index_name,
- const std::vector<expressions::AttributeReferencePtr> &index_attributes,
- const std::shared_ptr<const IndexSubBlockDescription> &index_description) {
- return CreateIndexPtr(new CreateIndex(input, index_name, index_attributes, index_description));
- }
-
- protected:
- void getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const override;
-
- private:
- CreateIndex(
- const PhysicalPtr &input,
- const std::string &index_name,
- const std::vector<expressions::AttributeReferencePtr> &index_attributes,
- const std::shared_ptr<const IndexSubBlockDescription> &index_description)
- : input_(input),
- index_name_(index_name),
- index_attributes_(index_attributes),
- index_description_(index_description) {
- addChild(input_);
- }
-
- const PhysicalPtr input_;
- const std::string index_name_;
- const std::vector<expressions::AttributeReferencePtr> index_attributes_;
- std::shared_ptr<const IndexSubBlockDescription> index_description_;
-
- DISALLOW_COPY_AND_ASSIGN(CreateIndex);
-};
-
-/** @} */
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
-
-#endif /* QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_CREATEINDEX_HPP_ */
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/CreateTable.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/CreateTable.cpp b/query_optimizer/physical/CreateTable.cpp
deleted file mode 100644
index d42eac3..0000000
--- a/query_optimizer/physical/CreateTable.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#include "query_optimizer/physical/CreateTable.hpp"
-
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "query_optimizer/expressions/AttributeReference.hpp"
-#include "utility/Cast.hpp"
-#include "utility/Macros.hpp"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-void CreateTable::getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const {
- inline_field_names->push_back("relation");
- inline_field_values->push_back(relation_name_);
-
- container_child_field_names->push_back("attributes");
- container_child_fields->push_back(CastSharedPtrVector<OptimizerTreeBase>(attributes_));
-
- // The tree representation of the LayoutDescription object, if specified by the user.
- if (block_properties_representation_) {
- non_container_child_field_names->push_back("block_properties");
- non_container_child_fields->push_back(block_properties_representation_);
- }
-}
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/CreateTable.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/CreateTable.hpp b/query_optimizer/physical/CreateTable.hpp
deleted file mode 100644
index 8e3bbd4..0000000
--- a/query_optimizer/physical/CreateTable.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#ifndef QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_CREATETABLE_HPP_
-#define QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_CREATETABLE_HPP_
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "query_optimizer/expressions/AttributeReference.hpp"
-#include "query_optimizer/expressions/ExpressionUtil.hpp"
-#include "query_optimizer/expressions/NamedExpression.hpp"
-#include "query_optimizer/physical/Physical.hpp"
-#include "query_optimizer/physical/PhysicalType.hpp"
-#include "utility/Macros.hpp"
-
-#include "glog/logging.h"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-/** \addtogroup OptimizerPhysical
- * @{
- */
-
-class CreateTable;
-typedef std::shared_ptr<const CreateTable> CreateTablePtr;
-
-/**
- * @brief Creates a table.
- */
-class CreateTable : public Physical {
- public:
- PhysicalType getPhysicalType() const override {
- return PhysicalType::kCreateTable;
- }
-
- std::string getName() const override { return "CreateTable"; }
-
- /**
- * @return The name of the relation to be inserted.
- */
- const std::string& relation_name() const { return relation_name_; }
-
- /**
- * @return Attribute list of the relation.
- */
- const std::vector<expressions::AttributeReferencePtr>& attributes() const {
- return attributes_;
- }
-
- /**
- * @return Shared pointer to the block properties.
- */
- const std::shared_ptr<const StorageBlockLayoutDescription> block_properties() const {
- return block_properties_;
- }
-
- PhysicalPtr copyWithNewChildren(
- const std::vector<PhysicalPtr> &new_children) const override {
- DCHECK_EQ(getNumChildren(), new_children.size());
- return Create(relation_name_, attributes_, block_properties_);
- }
-
- std::vector<expressions::AttributeReferencePtr> getOutputAttributes() const override {
- return attributes_;
- }
-
- std::vector<expressions::AttributeReferencePtr> getReferencedAttributes() const override {
- return attributes_;
- }
-
- bool maybeCopyWithPrunedExpressions(
- const expressions::UnorderedNamedExpressionSet &referenced_expressions,
- PhysicalPtr *output) const override {
- return false;
- }
-
- /**
- * @brief Creates a CreateTable physical node that represents an operation to
- * create a new table.
- *
- * @param relation_name The name of the relation to be inserted.
- * @param attributes Schema of the relation.
- * @param block_properties The optional proto message describing the block.
- * @return An immutable CreateTable node.
- */
- static CreateTablePtr Create(
- const std::string &relation_name,
- const std::vector<expressions::AttributeReferencePtr> &attributes,
- const std::shared_ptr<const StorageBlockLayoutDescription> &block_properties) {
- return CreateTablePtr(new CreateTable(relation_name, attributes, block_properties));
- }
-
- protected:
- void getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const override;
-
- private:
- CreateTable(
- const std::string &relation_name,
- const std::vector<expressions::AttributeReferencePtr> &attributes,
- const std::shared_ptr<const StorageBlockLayoutDescription> &block_properties)
- : relation_name_(relation_name),
- attributes_(attributes),
- block_properties_(block_properties),
- block_properties_representation_(
- getOptimizerRepresentationForProto<OptimizerTreeBaseNodePtr>(block_properties_.get())) {}
-
- std::string relation_name_;
- std::vector<expressions::AttributeReferencePtr> attributes_;
- std::shared_ptr<const StorageBlockLayoutDescription> block_properties_;
- std::shared_ptr<const OptimizerProtoRepresentation<OptimizerTreeBaseNodePtr> > block_properties_representation_;
-
- DISALLOW_COPY_AND_ASSIGN(CreateTable);
-};
-
-/** @} */
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
-
-#endif /* QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_CREATETABLE_HPP_ */
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/DeleteTuples.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/DeleteTuples.cpp b/query_optimizer/physical/DeleteTuples.cpp
deleted file mode 100644
index 2c93502..0000000
--- a/query_optimizer/physical/DeleteTuples.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#include "query_optimizer/physical/DeleteTuples.hpp"
-
-#include <string>
-#include <vector>
-
-#include "catalog/CatalogRelation.hpp"
-#include "query_optimizer/OptimizerTree.hpp"
-#include "query_optimizer/expressions/AttributeReference.hpp"
-#include "query_optimizer/expressions/Predicate.hpp"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-std::vector<expressions::AttributeReferencePtr> DeleteTuples::getReferencedAttributes() const {
- if (predicate_ != nullptr) {
- return predicate_->getReferencedAttributes();
- } else {
- return std::vector<expressions::AttributeReferencePtr>();
- }
-}
-
-void DeleteTuples::getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields)
- const {
- non_container_child_field_names->push_back("input");
- non_container_child_fields->push_back(input_);
-
- if (predicate_ != nullptr) {
- non_container_child_field_names->push_back("predicate");
- non_container_child_fields->push_back(predicate_);
- }
-}
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/DeleteTuples.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/DeleteTuples.hpp b/query_optimizer/physical/DeleteTuples.hpp
deleted file mode 100644
index bd1e847..0000000
--- a/query_optimizer/physical/DeleteTuples.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#ifndef QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_DELETE_TUPLES_HPP_
-#define QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_DELETE_TUPLES_HPP_
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "query_optimizer/expressions/AttributeReference.hpp"
-#include "query_optimizer/expressions/ExpressionUtil.hpp"
-#include "query_optimizer/expressions/NamedExpression.hpp"
-#include "query_optimizer/expressions/Predicate.hpp"
-#include "query_optimizer/physical/Physical.hpp"
-#include "query_optimizer/physical/PhysicalType.hpp"
-#include "utility/Macros.hpp"
-
-#include "glog/logging.h"
-
-namespace quickstep {
-
-class CatalogRelation;
-
-namespace optimizer {
-namespace physical {
-
-/** \addtogroup OptimizerPhysical
- * @{
- */
-
-class DeleteTuples;
-typedef std::shared_ptr<const DeleteTuples> DeleteTuplesPtr;
-
-/**
- * @brief Deletes tuples on which a predicate <predicate_> is
- * evaluated to true.
- */
-class DeleteTuples : public Physical {
- public:
- PhysicalType getPhysicalType() const override {
- return PhysicalType::kDeleteTuples;
- }
-
- std::string getName() const override { return "DeleteTuples"; }
-
- /**
- * @return The physical node that produces the relation
- * where the DeleteTuples is applied.
- */
- const PhysicalPtr& input() const { return input_; }
-
- /**
- * @return The predicate used to determine whether a tuple should be deleted.
- */
- const expressions::PredicatePtr& predicate() const { return predicate_; }
-
- PhysicalPtr copyWithNewChildren(
- const std::vector<PhysicalPtr> &new_children) const override {
- DCHECK_EQ(getNumChildren(), new_children.size());
- return Create(new_children[0], predicate_);
- }
-
- std::vector<expressions::AttributeReferencePtr> getOutputAttributes() const override {
- return {};
- }
-
- std::vector<expressions::AttributeReferencePtr> getReferencedAttributes() const override;
-
- bool maybeCopyWithPrunedExpressions(
- const expressions::UnorderedNamedExpressionSet &referenced_expressions,
- PhysicalPtr *output) const override {
- return false;
- }
-
- /**
- * @brief Creates a DeleteTuples physical node that represents an operation
- * to delete tuples on which \p predicate is evaluated to true
- * from the relation output by \p input. If \p predicate is NULL,
- * all tuples are removed.
- *
- * @param input The physical node that produces the relation
- * where the DeleteTuples is applied.
- * @param predicate The predicate used to determine whether
- * a tuple needs to be deleted. Can be NULL.
- * @return An immutable DeleteTuples node.
- */
- static DeleteTuplesPtr Create(const PhysicalPtr &input,
- const expressions::PredicatePtr &predicate) {
- return DeleteTuplesPtr(new DeleteTuples(input, predicate));
- }
-
- protected:
- void getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const override;
-
- private:
- DeleteTuples(const PhysicalPtr &input,
- const expressions::PredicatePtr &predicate)
- : input_(input), predicate_(predicate) {
- addChild(input_);
- }
-
- PhysicalPtr input_;
- expressions::PredicatePtr predicate_;
-
- DISALLOW_COPY_AND_ASSIGN(DeleteTuples);
-};
-
-/** @} */
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
-
-#endif /* QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_DELETE_TUPLES_HPP_ */
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/DropTable.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/DropTable.cpp b/query_optimizer/physical/DropTable.cpp
deleted file mode 100644
index 6a4b5bd..0000000
--- a/query_optimizer/physical/DropTable.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#include "query_optimizer/physical/DropTable.hpp"
-
-#include <string>
-#include <vector>
-
-#include "catalog/CatalogRelation.hpp"
-#include "query_optimizer/OptimizerTree.hpp"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-void DropTable::getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const {
- inline_field_names->push_back("relation");
- inline_field_values->push_back(catalog_relation_->getName());
-}
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/DropTable.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/DropTable.hpp b/query_optimizer/physical/DropTable.hpp
deleted file mode 100644
index ef6020b..0000000
--- a/query_optimizer/physical/DropTable.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#ifndef QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_DROPTABLE_HPP_
-#define QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_DROPTABLE_HPP_
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "query_optimizer/expressions/AttributeReference.hpp"
-#include "query_optimizer/expressions/ExpressionUtil.hpp"
-#include "query_optimizer/expressions/NamedExpression.hpp"
-#include "query_optimizer/physical/Physical.hpp"
-#include "query_optimizer/physical/PhysicalType.hpp"
-#include "utility/Macros.hpp"
-
-#include "glog/logging.h"
-
-namespace quickstep {
-
-class CatalogRelation;
-
-namespace optimizer {
-namespace physical {
-
-/** \addtogroup OptimizerPhysical
- * @{
- */
-
-class DropTable;
-typedef std::shared_ptr<const DropTable> DropTablePtr;
-
-/**
- * @brief Drops a table.
- */
-class DropTable : public Physical {
- public:
- PhysicalType getPhysicalType() const override { return PhysicalType::kDropTable; }
-
- std::string getName() const override { return "DropTable"; }
-
- /**
- * @return Gets the catalog relation to be dropped.
- */
- const CatalogRelation* catalog_relation() const { return catalog_relation_; }
-
- PhysicalPtr copyWithNewChildren(
- const std::vector<PhysicalPtr> &new_children) const override {
- DCHECK_EQ(getNumChildren(), new_children.size());
- return Create(catalog_relation_);
- }
-
- std::vector<expressions::AttributeReferencePtr> getOutputAttributes() const override {
- return {};
- }
-
- std::vector<expressions::AttributeReferencePtr> getReferencedAttributes() const override {
- return {};
- }
-
- bool maybeCopyWithPrunedExpressions(
- const expressions::UnorderedNamedExpressionSet &referenced_expressions,
- PhysicalPtr *output) const override {
- return false;
- }
-
- /**
- * @brief Creates a DropTable physical node that drops \p catalog_relation.
- *
- * @param catalog_relation The relation to be dropped.
- * @return An immutable DropTable node.
- */
- static DropTablePtr Create(const CatalogRelation *catalog_relation) {
- return DropTablePtr(new DropTable(catalog_relation));
- }
-
- protected:
- void getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const override;
-
- private:
- explicit DropTable(const CatalogRelation *catalog_relation)
- : catalog_relation_(catalog_relation) {}
-
- const CatalogRelation *catalog_relation_;
-
- DISALLOW_COPY_AND_ASSIGN(DropTable);
-};
-
-/** @} */
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
-
-#endif /* QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_DROPTABLE_HPP_ */
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/HashJoin.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/HashJoin.cpp b/query_optimizer/physical/HashJoin.cpp
deleted file mode 100644
index e186072..0000000
--- a/query_optimizer/physical/HashJoin.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#include "query_optimizer/physical/HashJoin.hpp"
-
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "query_optimizer/expressions/AttributeReference.hpp"
-#include "query_optimizer/expressions/ExpressionUtil.hpp"
-#include "query_optimizer/expressions/NamedExpression.hpp"
-#include "query_optimizer/expressions/Predicate.hpp"
-#include "utility/Cast.hpp"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-std::vector<expressions::AttributeReferencePtr> HashJoin::getReferencedAttributes() const {
- std::vector<expressions::AttributeReferencePtr> referenced_attributes;
- for (const expressions::NamedExpressionPtr &project_expression :
- project_expressions()) {
- const std::vector<expressions::AttributeReferencePtr> referenced_attributes_in_expression =
- project_expression->getReferencedAttributes();
- referenced_attributes.insert(referenced_attributes.end(),
- referenced_attributes_in_expression.begin(),
- referenced_attributes_in_expression.end());
- }
- referenced_attributes.insert(referenced_attributes.end(),
- left_join_attributes_.begin(),
- left_join_attributes_.end());
- referenced_attributes.insert(referenced_attributes.end(),
- right_join_attributes_.begin(),
- right_join_attributes_.end());
- if (residual_predicate_ != nullptr) {
- const std::vector<expressions::AttributeReferencePtr> referenced_attributes_in_residual =
- residual_predicate_->getReferencedAttributes();
- referenced_attributes.insert(referenced_attributes.end(),
- referenced_attributes_in_residual.begin(),
- referenced_attributes_in_residual.end());
- }
- return referenced_attributes;
-}
-
-bool HashJoin::maybeCopyWithPrunedExpressions(
- const expressions::UnorderedNamedExpressionSet &referenced_expressions,
- PhysicalPtr *output) const {
- std::vector<expressions::NamedExpressionPtr> new_project_expressions;
- const std::vector<expressions::NamedExpressionPtr> &
- current_project_expressions = project_expressions();
- for (const expressions::NamedExpressionPtr &project_expression :
- current_project_expressions) {
- if (referenced_expressions.find(project_expression) !=
- referenced_expressions.end()) {
- new_project_expressions.emplace_back(project_expression);
- }
- }
- if (new_project_expressions.size() != current_project_expressions.size()) {
- *output = Create(left(),
- right(),
- left_join_attributes_,
- right_join_attributes_,
- residual_predicate_,
- new_project_expressions,
- join_type_);
- return true;
- }
- return false;
-}
-
-void HashJoin::getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const {
- BinaryJoin::getFieldStringItems(inline_field_names,
- inline_field_values,
- non_container_child_field_names,
- non_container_child_fields,
- container_child_field_names,
- container_child_fields);
- if (residual_predicate_ != nullptr) {
- non_container_child_field_names->push_back("residual_predicate");
- non_container_child_fields->push_back(residual_predicate_);
- }
- container_child_field_names->push_back("left_join_attributes");
- container_child_fields->push_back(CastSharedPtrVector<OptimizerTreeBase>(left_join_attributes_));
- container_child_field_names->push_back("right_join_attributes");
- container_child_fields->push_back(CastSharedPtrVector<OptimizerTreeBase>(right_join_attributes_));
-}
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/HashJoin.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/HashJoin.hpp b/query_optimizer/physical/HashJoin.hpp
deleted file mode 100644
index c513f77..0000000
--- a/query_optimizer/physical/HashJoin.hpp
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#ifndef QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_HASHJOIN_HPP_
-#define QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_HASHJOIN_HPP_
-
-#include <cstddef>
-#include <memory>
-#include <string>
-#include <type_traits>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-#include "query_optimizer/expressions/AttributeReference.hpp"
-#include "query_optimizer/expressions/ExpressionUtil.hpp"
-#include "query_optimizer/expressions/NamedExpression.hpp"
-#include "query_optimizer/expressions/Predicate.hpp"
-#include "query_optimizer/physical/BinaryJoin.hpp"
-#include "query_optimizer/physical/Physical.hpp"
-#include "query_optimizer/physical/PhysicalType.hpp"
-#include "utility/Macros.hpp"
-
-#include "glog/logging.h"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-/** \addtogroup OptimizerPhysical
- * @{
- */
-
-class HashJoin;
-typedef std::shared_ptr<const HashJoin> HashJoinPtr;
-
-/**
- * @brief Physical hash join node.
- */
-class HashJoin : public BinaryJoin {
- public:
- enum class JoinType {
- kInnerJoin = 0,
- kLeftSemiJoin,
- kLeftAntiJoin,
- kLeftOuterJoin
- };
-
- PhysicalType getPhysicalType() const override { return PhysicalType::kHashJoin; }
-
- std::string getName() const override {
- switch (join_type_) {
- case JoinType::kInnerJoin:
- return "HashJoin";
- case JoinType::kLeftSemiJoin:
- return "HashLeftSemiJoin";
- case JoinType::kLeftAntiJoin:
- return "HashLeftAntiJoin";
- case JoinType::kLeftOuterJoin:
- return "HashLeftOuterJoin";
- default:
- LOG(FATAL) << "Invalid JoinType: "
- << static_cast<typename std::underlying_type<JoinType>::type>(join_type_);
- }
- }
-
- /**
- * @brief Join attributes in the left logical 'left_'.
- */
- const std::vector<expressions::AttributeReferencePtr>& left_join_attributes() const {
- return left_join_attributes_;
- }
-
- /**
- * @brief Join attributes in the right logical 'right_'.
- */
- const std::vector<expressions::AttributeReferencePtr>& right_join_attributes() const {
- return right_join_attributes_;
- }
-
- /**
- * @brief The filtering predicate evaluated after join.
- */
- const expressions::PredicatePtr& residual_predicate() const {
- return residual_predicate_;
- }
-
- /**
- * @return Join type of this hash join.
- */
- JoinType join_type() const {
- return join_type_;
- }
-
- PhysicalPtr copyWithNewChildren(
- const std::vector<PhysicalPtr> &new_children) const override {
- DCHECK_EQ(children().size(), new_children.size());
- return Create(new_children[0],
- new_children[1],
- left_join_attributes_,
- right_join_attributes_,
- residual_predicate_,
- project_expressions(),
- join_type_);
- }
-
- std::vector<expressions::AttributeReferencePtr> getReferencedAttributes() const override;
-
- bool maybeCopyWithPrunedExpressions(
- const expressions::UnorderedNamedExpressionSet &referenced_expressions,
- PhysicalPtr *output) const override;
-
- /**
- * @brief Creates a physical HashJoin. The left/right operand does not correspond to
- * probe/build operand.
- *
- * @param left The left operand.
- * @param right The right operand.
- * @param left_join_attributes The join attributes in the 'left'.
- * @param right_join_attributes The join attributes in the 'right'.
- * @param residual_predicate Optional filtering predicate evaluated after join.
- * @param project_expressions The project expressions.
- * @param Join type of this hash join.
- * @return An immutable physical HashJoin.
- */
- static HashJoinPtr Create(
- const PhysicalPtr &left,
- const PhysicalPtr &right,
- const std::vector<expressions::AttributeReferencePtr> &left_join_attributes,
- const std::vector<expressions::AttributeReferencePtr> &right_join_attributes,
- const expressions::PredicatePtr &residual_predicate,
- const std::vector<expressions::NamedExpressionPtr> &project_expressions,
- const JoinType join_type) {
- return HashJoinPtr(
- new HashJoin(left,
- right,
- left_join_attributes,
- right_join_attributes,
- residual_predicate,
- project_expressions,
- join_type));
- }
-
- protected:
- void getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const override;
-
- private:
- HashJoin(
- const PhysicalPtr &left,
- const PhysicalPtr &right,
- const std::vector<expressions::AttributeReferencePtr> &left_join_attributes,
- const std::vector<expressions::AttributeReferencePtr> &right_join_attributes,
- const expressions::PredicatePtr &residual_predicate,
- const std::vector<expressions::NamedExpressionPtr> &project_expressions,
- const JoinType join_type)
- : BinaryJoin(left, right, project_expressions),
- left_join_attributes_(left_join_attributes),
- right_join_attributes_(right_join_attributes),
- residual_predicate_(residual_predicate),
- join_type_(join_type) {
- }
-
- std::vector<expressions::AttributeReferencePtr> left_join_attributes_;
- std::vector<expressions::AttributeReferencePtr> right_join_attributes_;
- expressions::PredicatePtr residual_predicate_;
- JoinType join_type_;
-
- DISALLOW_COPY_AND_ASSIGN(HashJoin);
-};
-
-/** @} */
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep
-
-#endif /* QUICKSTEP_QUERY_OPTIMIZER_PHYSICAL_HASHJOIN_HPP_ */
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/physical/InsertSelection.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/physical/InsertSelection.cpp b/query_optimizer/physical/InsertSelection.cpp
deleted file mode 100644
index 42a888f..0000000
--- a/query_optimizer/physical/InsertSelection.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#include "query_optimizer/physical/InsertSelection.hpp"
-
-#include <string>
-#include <vector>
-
-#include "query_optimizer/OptimizerTree.hpp"
-
-namespace quickstep {
-namespace optimizer {
-namespace physical {
-
-void InsertSelection::getFieldStringItems(
- std::vector<std::string> *inline_field_names,
- std::vector<std::string> *inline_field_values,
- std::vector<std::string> *non_container_child_field_names,
- std::vector<OptimizerTreeBaseNodePtr> *non_container_child_fields,
- std::vector<std::string> *container_child_field_names,
- std::vector<std::vector<OptimizerTreeBaseNodePtr>> *container_child_fields) const {
- non_container_child_field_names->push_back("destination");
- non_container_child_fields->push_back(destination_);
-
- non_container_child_field_names->push_back("selection");
- non_container_child_fields->push_back(selection_);
-}
-
-} // namespace physical
-} // namespace optimizer
-} // namespace quickstep