1 #ifndef __GPUDB__TYPE_HPP__ 2 #define __GPUDB__TYPE_HPP__ 4 #include <avro/Schema.hh> 23 INT = ::avro::AVRO_INT,
29 Column(
const std::string& name,
const ColumnType type,
const std::vector<std::string>& properties);
30 const std::string&
getName()
const;
39 std::vector<std::string> m_properties;
47 Type(
const std::vector<Column>& columns);
48 Type(
const std::string& label,
const std::vector<Column>& columns);
49 Type(
const std::string& typeSchema);
50 Type(
const std::string& label,
const std::string& typeSchema,
const std::map<std::string, std::vector<std::string> >& properties);
57 bool hasColumn(
const std::string& name)
const;
58 const ::avro::ValidSchema&
getSchema()
const;
65 std::vector<Type::Column> columns;
66 std::map<std::string, size_t> columnMap;
67 ::avro::ValidSchema schema;
70 boost::shared_ptr<TypeData> m_data;
74 void createFromSchema(
const std::string& typeSchema,
const std::map<std::string, std::vector<std::string> >& properties);
const std::vector< std::string > & getProperties() const
const std::string & getName() const
ColumnType getType() const
static Type fromTable(const GPUdb &gpudb, const std::string &tableName)
size_t getColumnIndex(const std::string &name) const
bool hasColumn(const std::string &name) const
const std::vector< Column > & getColumns() const
Column(const std::string &name, const ColumnType type)
const ::avro::ValidSchema & getSchema() const
static Type fromType(const GPUdb &gpudb, const std::string &typeId)
std::string create(const GPUdb &gpudb) const
const std::string & getLabel() const
size_t getColumnCount() const
const Column & getColumn(const size_t index) const