Column-oriented GPU-accelerated Database Management System
CoGaDB
/home/sebastian/gpudbms/trunk/cogadb/include/query_processing/column_processing/cpu_create_table_operator.hpp
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include <query_processing/column_processing/definitions.hpp>
00004 #include <persistence/storage_manager.hpp>
00005 
00006 namespace CoGaDB {
00007     namespace query_processing {
00008         namespace physical_operator {
00009 
00010             class column_scan_operator : public hype::queryprocessing::NAryOperator<ColumnPtr, ColumnPtr> {
00011             public:
00012                 typedef column_processing::cpu::TypedOperatorPtr TypedOperatorPtr;
00013                 column_scan_operator(const hype::SchedulingDecision& sched_dec, const std::string& table_name, const std::string& column_name);
00014                 virtual bool execute();
00015                 virtual ~column_scan_operator();
00016             private:
00017                 std::string table_name_;
00018                 std::string column_name_;
00019             };
00020 
00021             column_processing::cpu::Physical_Operator_Map_Ptr map_init_function_column_scan_operator();
00022             column_processing::cpu::TypedOperatorPtr create_column_scan_operator(column_processing::cpu::TypedLogicalNode& logical_node, const hype::SchedulingDecision&, column_processing::cpu::TypedOperatorPtr left_child, column_processing::cpu::TypedOperatorPtr right_child);
00023 
00024         }//end namespace physical_operator
00025 
00026         //extern Map_Init_Function init_function_column_scan_operator;
00027 
00028         //Map_Init_Function init_function_column_scan_operator=physical_operator::map_init_function_column_scan_operator; //boost::bind();
00029 
00030         //Map_Init_Function getMap_Init_Function_Scan_Operation();
00031 
00032         namespace logical_operator {
00033 
00034             class Logical_Create_Table : public hype::queryprocessing::TypedNode_Impl<ColumnPtr, physical_operator::map_init_function_column_scan_operator> //init_function_column_scan_operator> //init_function_column_scan_operator>
00035             {
00036             public:
00037                 Logical_Create_Table(const std::string& table_name, const std::string& column_name);
00038 
00039                 virtual unsigned int getOutputResultSize() const;
00040 
00041                 virtual double getCalculatedSelectivity() const;
00042 
00043                 virtual std::string getOperationName() const;
00044 
00045                 const std::string& getTableName() const;
00046 
00047                 const std::string& getColumnName() const;
00048 
00049                 void addChild(OperatorInputType child) {
00050                     childs_.push_back(child);
00051                 }
00052 
00053                 virtual column_processing::cpu::TypedOperatorPtr getOptimalOperator(column_processing::cpu::TypedOperatorPtr left_child, column_processing::cpu::TypedOperatorPtr right_child, hype::DeviceTypeConstraint dev_constr);
00054 
00055             private:
00056 
00057                 std::list<OperatorInputType> childs_;
00058             };
00059 
00060         }//end namespace logical_operator
00061 
00062     }//end namespace query_processing
00063 
00064 }; //end namespace CogaDB
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines