# 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(CheckIncludeFiles)
check_include_files("unistd.h" QUICKSTEP_HAVE_UNISTD)
configure_file (
  "${CMAKE_CURRENT_SOURCE_DIR}/RelationalOperatorsConfig.h.in"
  "${CMAKE_CURRENT_BINARY_DIR}/RelationalOperatorsConfig.h"
)

QS_PROTOBUF_GENERATE_CPP(relationaloperators_SortMergeRunOperator_proto_srcs
                         relationaloperators_SortMergeRunOperator_proto_hdrs
                         SortMergeRunOperator.proto)
QS_PROTOBUF_GENERATE_CPP(relationaloperators_WorkOrder_proto_srcs
                         relationaloperators_WorkOrder_proto_hdrs
                         WorkOrder.proto)

if (BUILD_SHARED_LIBS)
  set(GFLAGS_LIB_NAME gflags_nothreads-shared)
else()
  set(GFLAGS_LIB_NAME gflags_nothreads-static)
endif()

# Declare micro-libs:
add_library(quickstep_relationaloperators_AggregationOperator AggregationOperator.cpp AggregationOperator.hpp)
add_library(quickstep_relationaloperators_BuildHashOperator BuildHashOperator.cpp BuildHashOperator.hpp)
add_library(quickstep_relationaloperators_CreateIndexOperator CreateIndexOperator.cpp CreateIndexOperator.hpp)
add_library(quickstep_relationaloperators_CreateTableOperator CreateTableOperator.cpp CreateTableOperator.hpp)
add_library(quickstep_relationaloperators_DestroyAggregationStateOperator 
            DestroyAggregationStateOperator.cpp 
            DestroyAggregationStateOperator.hpp)
add_library(quickstep_relationaloperators_DeleteOperator DeleteOperator.cpp DeleteOperator.hpp)
add_library(quickstep_relationaloperators_DestroyHashOperator DestroyHashOperator.cpp DestroyHashOperator.hpp)
add_library(quickstep_relationaloperators_DropTableOperator DropTableOperator.cpp DropTableOperator.hpp)
add_library(quickstep_relationaloperators_FinalizeAggregationOperator
            FinalizeAggregationOperator.cpp
            FinalizeAggregationOperator.hpp)
add_library(quickstep_relationaloperators_HashJoinOperator HashJoinOperator.cpp HashJoinOperator.hpp)
add_library(quickstep_relationaloperators_InsertOperator InsertOperator.cpp InsertOperator.hpp)
add_library(quickstep_relationaloperators_NestedLoopsJoinOperator
            NestedLoopsJoinOperator.cpp
            NestedLoopsJoinOperator.hpp)
add_library(quickstep_relationaloperators_RebuildWorkOrder ../empty_src.cpp RebuildWorkOrder.hpp)
add_library(quickstep_relationaloperators_RelationalOperator ../empty_src.cpp RelationalOperator.hpp)
add_library(quickstep_relationaloperators_SampleOperator SampleOperator.cpp SampleOperator.hpp)
add_library(quickstep_relationaloperators_SaveBlocksOperator SaveBlocksOperator.cpp SaveBlocksOperator.hpp)
add_library(quickstep_relationaloperators_SelectOperator SelectOperator.cpp SelectOperator.hpp)
add_library(quickstep_relationaloperators_SortMergeRunOperator SortMergeRunOperator.cpp
            SortMergeRunOperator.hpp)
add_library(quickstep_relationaloperators_SortMergeRunOperator_proto
            ${relationaloperators_SortMergeRunOperator_proto_srcs}
            ${relationaloperators_SortMergeRunOperator_proto_hdrs})
add_library(quickstep_relationaloperators_SortMergeRunOperatorHelpers SortMergeRunOperatorHelpers.cpp
            SortMergeRunOperatorHelpers.hpp)
add_library(quickstep_relationaloperators_SortRunGenerationOperator SortRunGenerationOperator.cpp
            SortRunGenerationOperator.hpp)
add_library(quickstep_relationaloperators_TableGeneratorOperator TableGeneratorOperator.cpp TableGeneratorOperator.hpp)
add_library(quickstep_relationaloperators_TextScanOperator TextScanOperator.cpp TextScanOperator.hpp)
add_library(quickstep_relationaloperators_UpdateOperator UpdateOperator.cpp UpdateOperator.hpp)
add_library(quickstep_relationaloperators_WindowAggregationOperator WindowAggregationOperator.cpp WindowAggregationOperator.hpp)
add_library(quickstep_relationaloperators_WorkOrder ../empty_src.cpp WorkOrder.hpp)
add_library(quickstep_relationaloperators_WorkOrderFactory WorkOrderFactory.cpp WorkOrderFactory.hpp)
add_library(quickstep_relationaloperators_WorkOrder_proto
            ${relationaloperators_WorkOrder_proto_srcs}
            ${relationaloperators_WorkOrder_proto_hdrs})

# Link dependencies:
target_link_libraries(quickstep_relationaloperators_AggregationOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_AggregationOperationState
                      quickstep_storage_StorageBlockInfo
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_BuildHashOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_HashTable
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageManager
                      quickstep_storage_TupleReference
                      quickstep_storage_TupleStorageSubBlock
                      quickstep_storage_ValueAccessor
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_CreateIndexOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_storage_StorageBlockLayout_proto
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_CreateTableOperator
                      glog
                      quickstep_catalog_CatalogDatabase
                      quickstep_catalog_CatalogRelation
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_DeleteOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogRelationSchema
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_QueryExecutionMessages_proto
                      quickstep_queryexecution_QueryExecutionTypedefs
                      quickstep_queryexecution_QueryExecutionUtil
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageManager
                      quickstep_threading_ThreadIDBasedMap
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_DestroyAggregationStateOperator
                      glog
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_DestroyHashOperator
                      glog
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_DropTableOperator
                      glog
                      quickstep_catalog_CatalogDatabase
                      quickstep_catalog_CatalogDatabaseLite
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageManager
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_FinalizeAggregationOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_AggregationOperationState
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_HashJoinOperator
                      ${GFLAGS_LIB_NAME}
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogRelationSchema
                      quickstep_catalog_CatalogTypedefs
                      quickstep_expressions_predicate_Predicate
                      quickstep_expressions_scalar_Scalar
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_HashTable
                      quickstep_storage_InsertDestination
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageManager
                      quickstep_storage_SubBlocksReference
                      quickstep_storage_TupleIdSequence
                      quickstep_storage_TupleReference
                      quickstep_storage_TupleStorageSubBlock
                      quickstep_storage_ValueAccessor
                      quickstep_types_Type
                      quickstep_types_TypedValue
                      quickstep_types_containers_ColumnVector
                      quickstep_types_containers_ColumnVectorsValueAccessor
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_InsertOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_InsertDestination
                      quickstep_types_containers_Tuple
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_NestedLoopsJoinOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogRelationSchema
                      quickstep_catalog_CatalogTypedefs
                      quickstep_expressions_predicate_Predicate
                      quickstep_expressions_scalar_Scalar
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_InsertDestination
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageManager
                      quickstep_storage_TupleStorageSubBlock
                      quickstep_storage_ValueAccessor
                      quickstep_types_containers_ColumnVectorsValueAccessor
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_RebuildWorkOrder
                      glog
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryExecutionMessages_proto
                      quickstep_queryexecution_QueryExecutionTypedefs
                      quickstep_queryexecution_QueryExecutionUtil
                      quickstep_relationaloperators_WorkOrder
                      quickstep_storage_StorageBlock
                      quickstep_threading_ThreadIDBasedMap
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_RelationalOperator
                      glog
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_relationaloperators_WorkOrder
                      quickstep_storage_StorageBlockInfo
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_SampleOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_InsertDestination
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageManager
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_SaveBlocksOperator
                      glog
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageManager
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_SelectOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_catalog_PartitionSchemeHeader
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_InsertDestination
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageManager
                      quickstep_utility_Macros
                      tmb)
if(QUICKSTEP_HAVE_LIBNUMA)
target_link_libraries(quickstep_relationaloperators_SelectOperator
                      quickstep_catalog_NUMAPlacementScheme)
endif()
target_link_libraries(quickstep_relationaloperators_SortMergeRunOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_QueryExecutionTypedefs
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_SortMergeRunOperatorHelpers
                      quickstep_relationaloperators_SortMergeRunOperator_proto
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_StorageBlockInfo
                      quickstep_threading_ThreadIDBasedMap
                      quickstep_utility_Macros
                      quickstep_utility_SortConfiguration
                      tmb)
target_link_libraries(quickstep_relationaloperators_SortMergeRunOperator_proto
                      ${PROTOBUF_LIBRARY})
target_link_libraries(quickstep_relationaloperators_SortMergeRunOperatorHelpers
                      glog
                      quickstep_catalog_CatalogTypedefs
                      quickstep_expressions_scalar_Scalar
                      quickstep_storage_InsertDestination
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageManager
                      quickstep_storage_TupleStorageSubBlock
                      quickstep_storage_ValueAccessor
                      quickstep_storage_ValueAccessorUtil
                      quickstep_threading_SpinMutex
                      quickstep_types_Type
                      quickstep_types_containers_Tuple
                      quickstep_types_operations_comparisons_Comparison
                      quickstep_types_operations_comparisons_ComparisonFactory
                      quickstep_types_operations_comparisons_ComparisonID
                      quickstep_utility_Macros
                      quickstep_utility_PtrVector
                      quickstep_utility_SortConfiguration)
target_link_libraries(quickstep_relationaloperators_SortRunGenerationOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_InsertDestination
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageManager
                      quickstep_storage_TupleIdSequence
                      quickstep_utility_Macros
                      quickstep_utility_SortConfiguration
                      tmb)
target_link_libraries(quickstep_relationaloperators_TableGeneratorOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_expressions_tablegenerator_GeneratorFunctionHandle
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_InsertDestination
                      quickstep_storage_StorageBlockInfo
                      quickstep_types_containers_ColumnVectorsValueAccessor
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_TextScanOperator
                      ${GFLAGS_LIB_NAME}
                      glog
                      quickstep_catalog_CatalogAttribute
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_InsertDestination
                      quickstep_types_Type
                      quickstep_types_TypedValue
                      quickstep_types_containers_ColumnVector
                      quickstep_types_containers_ColumnVectorsValueAccessor
                      quickstep_types_containers_Tuple
                      quickstep_utility_Glob
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_UpdateOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogRelationSchema
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_QueryExecutionMessages_proto
                      quickstep_queryexecution_QueryExecutionTypedefs
                      quickstep_queryexecution_QueryExecutionUtil
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_InsertDestination
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageManager
                      quickstep_threading_ThreadIDBasedMap
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_WindowAggregationOperator
                      glog
                      quickstep_catalog_CatalogRelation
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_WorkOrderProtosContainer
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_WindowAggregationOperationState
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_WorkOrder
                      glog
                      quickstep_queryexecution_QueryExecutionTypedefs
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_WorkOrderFactory
                      glog
                      quickstep_catalog_CatalogDatabaseLite
                      quickstep_catalog_CatalogRelationSchema
                      quickstep_catalog_CatalogTypedefs
                      quickstep_queryexecution_QueryContext
                      quickstep_relationaloperators_AggregationOperator
                      quickstep_relationaloperators_BuildHashOperator
                      quickstep_relationaloperators_DeleteOperator
                      quickstep_relationaloperators_DestroyAggregationStateOperator
                      quickstep_relationaloperators_DestroyHashOperator
                      quickstep_relationaloperators_DropTableOperator
                      quickstep_relationaloperators_FinalizeAggregationOperator
                      quickstep_relationaloperators_HashJoinOperator
                      quickstep_relationaloperators_InsertOperator
                      quickstep_relationaloperators_NestedLoopsJoinOperator
                      quickstep_relationaloperators_SampleOperator
                      quickstep_relationaloperators_SaveBlocksOperator
                      quickstep_relationaloperators_SelectOperator
                      quickstep_relationaloperators_SortMergeRunOperator
                      quickstep_relationaloperators_SortMergeRunOperatorHelpers
                      quickstep_relationaloperators_SortMergeRunOperator_proto
                      quickstep_relationaloperators_SortRunGenerationOperator
                      quickstep_relationaloperators_TableGeneratorOperator
                      quickstep_relationaloperators_TextScanOperator
                      quickstep_relationaloperators_UpdateOperator
                      quickstep_relationaloperators_WindowAggregationOperator
                      quickstep_relationaloperators_WorkOrder_proto
                      quickstep_storage_StorageBlockInfo
                      quickstep_utility_Macros
                      tmb)
target_link_libraries(quickstep_relationaloperators_WorkOrder_proto
                      quickstep_relationaloperators_SortMergeRunOperator_proto
                      ${PROTOBUF_LIBRARY})

# Module all-in-one library:
add_library(quickstep_relationaloperators ../empty_src.cpp RelationalOperatorsModule.hpp)
target_link_libraries(quickstep_relationaloperators
                      quickstep_relationaloperators_AggregationOperator
                      quickstep_relationaloperators_BuildHashOperator
                      quickstep_relationaloperators_CreateIndexOperator
                      quickstep_relationaloperators_CreateTableOperator
                      quickstep_relationaloperators_DeleteOperator
                      quickstep_relationaloperators_DestroyAggregationStateOperator
                      quickstep_relationaloperators_DestroyHashOperator
                      quickstep_relationaloperators_DropTableOperator
                      quickstep_relationaloperators_FinalizeAggregationOperator
                      quickstep_relationaloperators_HashJoinOperator
                      quickstep_relationaloperators_InsertOperator
                      quickstep_relationaloperators_NestedLoopsJoinOperator
                      quickstep_relationaloperators_RebuildWorkOrder
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_SampleOperator
                      quickstep_relationaloperators_SaveBlocksOperator
                      quickstep_relationaloperators_SelectOperator
                      quickstep_relationaloperators_SortMergeRunOperator
                      quickstep_relationaloperators_SortMergeRunOperatorHelpers
                      quickstep_relationaloperators_SortMergeRunOperator_proto
                      quickstep_relationaloperators_SortRunGenerationOperator
                      quickstep_relationaloperators_TableGeneratorOperator
                      quickstep_relationaloperators_TextScanOperator
                      quickstep_relationaloperators_UpdateOperator
                      quickstep_relationaloperators_WindowAggregationOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_relationaloperators_WorkOrderFactory
                      quickstep_relationaloperators_WorkOrder_proto)

# Tests:
add_executable(AggregationOperator_unittest
               "${CMAKE_CURRENT_SOURCE_DIR}/tests/AggregationOperator_unittest.cpp")
target_link_libraries(AggregationOperator_unittest
                      ${GFLAGS_LIB_NAME}
                      glog
                      gtest
                      quickstep_catalog_CatalogAttribute
                      quickstep_catalog_CatalogDatabase
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_expressions_Expressions_proto
                      quickstep_expressions_aggregation_AggregateFunction
                      quickstep_expressions_aggregation_AggregateFunctionFactory
                      quickstep_expressions_aggregation_AggregationID
                      quickstep_expressions_predicate_ComparisonPredicate
                      quickstep_expressions_predicate_Predicate
                      quickstep_expressions_scalar_Scalar
                      quickstep_expressions_scalar_ScalarAttribute
                      quickstep_expressions_scalar_ScalarBinaryExpression
                      quickstep_expressions_scalar_ScalarLiteral
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_QueryContext_proto
                      quickstep_queryexecution_QueryExecutionTypedefs
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_AggregationOperator
                      quickstep_relationaloperators_DestroyAggregationStateOperator
                      quickstep_relationaloperators_FinalizeAggregationOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_storage_AggregationOperationState_proto
                      quickstep_storage_HashTable_proto
                      quickstep_storage_InsertDestination
                      quickstep_storage_InsertDestination_proto
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageBlockLayout
                      quickstep_storage_StorageManager
                      quickstep_storage_TupleStorageSubBlock
                      quickstep_threading_ThreadIDBasedMap
                      quickstep_types_DoubleType
                      quickstep_types_FloatType
                      quickstep_types_IntType
                      quickstep_types_LongType
                      quickstep_types_TypedValue
                      quickstep_types_containers_Tuple
                      quickstep_types_operations_binaryoperations_BinaryOperationFactory
                      quickstep_types_operations_binaryoperations_BinaryOperationID
                      quickstep_types_operations_comparisons_ComparisonFactory
                      quickstep_types_operations_comparisons_ComparisonID
                      quickstep_utility_Macros
                      quickstep_utility_PtrList
                      tmb
                      ${LIBS})
add_test(AggregationOperator_unittest AggregationOperator_unittest)

add_executable(HashJoinOperator_unittest
               "${CMAKE_CURRENT_SOURCE_DIR}/tests/HashJoinOperator_unittest.cpp")
target_link_libraries(HashJoinOperator_unittest
                      ${GFLAGS_LIB_NAME}
                      glog
                      gtest
                      quickstep_catalog_CatalogAttribute
                      quickstep_catalog_CatalogDatabase
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_expressions_Expressions_proto
                      quickstep_expressions_predicate_ComparisonPredicate
                      quickstep_expressions_predicate_Predicate
                      quickstep_expressions_scalar_ScalarAttribute
                      quickstep_expressions_scalar_ScalarLiteral
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_QueryContext_proto
                      quickstep_queryexecution_QueryExecutionTypedefs
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_BuildHashOperator
                      quickstep_relationaloperators_DestroyHashOperator
                      quickstep_relationaloperators_HashJoinOperator
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_storage_HashTable_proto
                      quickstep_storage_HashTableBase
                      quickstep_storage_InsertDestination
                      quickstep_storage_InsertDestination_proto
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageBlockLayout
                      quickstep_storage_StorageBlockLayout_proto
                      quickstep_storage_StorageManager
                      quickstep_storage_TupleStorageSubBlock
                      quickstep_threading_ThreadIDBasedMap
                      quickstep_types_CharType
                      quickstep_types_IntType
                      quickstep_types_LongType
                      quickstep_types_Type
                      quickstep_types_Type_proto
                      quickstep_types_TypedValue
                      quickstep_types_VarCharType
                      quickstep_types_containers_Tuple
                      quickstep_types_operations_comparisons_ComparisonFactory
                      quickstep_types_operations_comparisons_ComparisonID
                      quickstep_utility_Macros
                      tmb
                      ${LIBS})
add_test(HashJoinOperator_unittest HashJoinOperator_unittest)

add_executable(SortMergeRunOperator_unittest
               "${CMAKE_CURRENT_SOURCE_DIR}/tests/SortMergeRunOperator_unittest.cpp")
target_link_libraries(SortMergeRunOperator_unittest
                      ${GFLAGS_LIB_NAME}
                      glog
                      gtest
                      quickstep_catalog_CatalogAttribute
                      quickstep_catalog_CatalogDatabase
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_expressions_Expressions_proto
                      quickstep_expressions_scalar_Scalar
                      quickstep_expressions_scalar_ScalarAttribute
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_QueryContext_proto
                      quickstep_queryexecution_QueryExecutionMessages_proto
                      quickstep_queryexecution_QueryExecutionTypedefs
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_SortMergeRunOperator
                      quickstep_relationaloperators_SortMergeRunOperatorHelpers
                      quickstep_relationaloperators_WorkOrder
                      quickstep_storage_BasicColumnStoreValueAccessor
                      quickstep_storage_CompressedColumnStoreValueAccessor
                      quickstep_storage_CompressedPackedRowStoreValueAccessor
                      quickstep_storage_CountedReference
                      quickstep_storage_InsertDestination
                      quickstep_storage_InsertDestination_proto
                      quickstep_storage_PackedRowStoreValueAccessor
                      quickstep_storage_SplitRowStoreValueAccessor
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageBlockLayout
                      quickstep_storage_StorageManager
                      quickstep_storage_TupleStorageSubBlock
                      quickstep_storage_ValueAccessor
                      quickstep_storage_ValueAccessorUtil
                      quickstep_threading_ThreadIDBasedMap
                      quickstep_types_IntType
                      quickstep_types_Type
                      quickstep_types_TypeID
                      quickstep_types_TypedValue
                      quickstep_types_containers_ColumnVectorsValueAccessor
                      quickstep_types_containers_Tuple
                      quickstep_utility_PtrVector
                      quickstep_utility_SortConfiguration
                      quickstep_utility_SortConfiguration_proto
                      tmb
                      ${LIBS})
add_test(SortMergeRunOperator_unittest SortMergeRunOperator_unittest)

add_executable(SortRunGenerationOperator_unittest
               "${CMAKE_CURRENT_SOURCE_DIR}/tests/SortRunGenerationOperator_unittest.cpp")
target_link_libraries(SortRunGenerationOperator_unittest
                      ${GFLAGS_LIB_NAME}
                      glog
                      gtest
                      quickstep_catalog_CatalogAttribute
                      quickstep_catalog_CatalogDatabase
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_expressions_Expressions_proto
                      quickstep_expressions_scalar_Scalar
                      quickstep_expressions_scalar_ScalarAttribute
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_QueryContext_proto
                      quickstep_queryexecution_QueryExecutionMessages_proto
                      quickstep_queryexecution_QueryExecutionTypedefs
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_SortRunGenerationOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_storage_BasicColumnStoreValueAccessor
                      quickstep_storage_CompressedColumnStoreValueAccessor
                      quickstep_storage_CompressedPackedRowStoreValueAccessor
                      quickstep_storage_CountedReference
                      quickstep_storage_InsertDestination
                      quickstep_storage_PackedRowStoreValueAccessor
                      quickstep_storage_SplitRowStoreValueAccessor
                      quickstep_storage_StorageBlock
                      quickstep_storage_StorageBlockInfo
                      quickstep_storage_StorageBlockLayout
                      quickstep_storage_StorageManager
                      quickstep_storage_TupleStorageSubBlock
                      quickstep_storage_ValueAccessor
                      quickstep_storage_ValueAccessorUtil
                      quickstep_threading_ThreadIDBasedMap
                      quickstep_types_IntType
                      quickstep_types_Type
                      quickstep_types_TypeID
                      quickstep_types_TypedValue
                      quickstep_types_containers_ColumnVectorsValueAccessor
                      quickstep_types_containers_Tuple
                      quickstep_utility_SortConfiguration
                      quickstep_utility_SortConfiguration_proto
                      tmb
                      ${LIBS})
add_test(SortRunGenerationOperator_unittest SortRunGenerationOperator_unittest)

add_executable(TextScanOperator_unittest
               "${CMAKE_CURRENT_SOURCE_DIR}/tests/TextScanOperator_unittest.cpp")
target_link_libraries(TextScanOperator_unittest
                      ${GFLAGS_LIB_NAME}
                      glog
                      gtest
                      quickstep_catalog_CatalogAttribute
                      quickstep_catalog_CatalogDatabase
                      quickstep_catalog_CatalogRelation
                      quickstep_catalog_CatalogTypedefs
                      quickstep_cli_PrintToScreen
                      quickstep_queryexecution_QueryContext
                      quickstep_queryexecution_QueryContext_proto
                      quickstep_queryexecution_QueryExecutionMessages_proto
                      quickstep_queryexecution_QueryExecutionTypedefs
                      quickstep_queryexecution_WorkOrdersContainer
                      quickstep_relationaloperators_RelationalOperator
                      quickstep_relationaloperators_TextScanOperator
                      quickstep_relationaloperators_WorkOrder
                      quickstep_storage_InsertDestination_proto
                      quickstep_storage_StorageManager
                      quickstep_threading_ThreadIDBasedMap
                      quickstep_types_TypeFactory
                      quickstep_types_TypeID
                      quickstep_utility_MemStream
                      tmb)
file(TO_NATIVE_PATH
     "${CMAKE_CURRENT_SOURCE_DIR}/tests/text_scan_input.txt"
     TEXT_SCAN_INPUT_FILE)
file(TO_NATIVE_PATH
     "${CMAKE_CURRENT_SOURCE_DIR}/tests/text_scan_golden_output.txt"
     TEXT_SCAN_GOLDEN_OUTPUT_FILE)
file(TO_NATIVE_PATH
     "${CMAKE_CURRENT_BINARY_DIR}/text_scan_failure_output.txt"
     TEXT_SCAN_FAILURE_OUTPUT_FILE)
add_test(TextScanOperator_unittest
         TextScanOperator_unittest
         ${TEXT_SCAN_INPUT_FILE}
         ${TEXT_SCAN_GOLDEN_OUTPUT_FILE}
         ${TEXT_SCAN_FAILURE_OUTPUT_FILE})
