1 #ifndef __GPUDB__TYPE_HPP__
2 #define __GPUDB__TYPE_HPP__
6 #include <avro/Schema.hh>
25 INT = ::avro::AVRO_INT,
30 Column(
const std::string& name,
const ColumnType type,
const std::string& property1 =
"",
const std::string& property2 =
"",
const std::string& property3 =
"");
31 Column(
const std::string& name,
const ColumnType type,
const std::vector<std::string>& properties);
32 const std::string&
getName()
const;
41 std::vector<std::string> m_properties;
49 Type(
const std::vector<Column>& columns);
50 Type(
const std::string& label,
const std::vector<Column>& columns);
51 Type(
const std::string& typeSchema);
52 Type(
const std::string& label,
const std::string& typeSchema,
const std::map<std::string, std::vector<std::string> >& properties);
55 const Column&
getColumn(
const size_t index)
const;
56 const Column&
getColumn(
const std::string& name)
const;
59 bool hasColumn(
const std::string& name)
const;
60 const ::avro::ValidSchema&
getSchema()
const;
67 std::vector<Type::Column> columns;
68 std::map<std::string, size_t> columnMap;
69 ::avro::ValidSchema schema;
72 boost::shared_ptr<TypeData> m_data;
76 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
Column(const std::string &name, const ColumnType type, const std::string &property1="", const std::string &property2="", const std::string &property3="")
bool hasColumn(const std::string &name) const
const std::vector< Column > & getColumns() const
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