2012-08-23 18:43:57 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <DB/DataTypes/IDataTypeDummy.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace DB
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/** Тип данных - кортеж.
|
|
|
|
|
* Используется только как промежуточный вариант при вычислении выражений.
|
|
|
|
|
*/
|
|
|
|
|
class DataTypeTuple : public IDataTypeDummy
|
|
|
|
|
{
|
|
|
|
|
private:
|
|
|
|
|
DataTypes elems;
|
|
|
|
|
public:
|
|
|
|
|
DataTypeTuple(DataTypes elems_) : elems(elems_) {}
|
|
|
|
|
|
|
|
|
|
std::string getName() const
|
|
|
|
|
{
|
|
|
|
|
std::stringstream s;
|
|
|
|
|
|
|
|
|
|
s << "Tuple(";
|
|
|
|
|
for (DataTypes::const_iterator it = elems.begin(); it != elems.end(); ++it)
|
|
|
|
|
s << (it == elems.begin() ? "" : ", ") << (*it)->getName();
|
|
|
|
|
s << ")";
|
|
|
|
|
|
|
|
|
|
return s.str();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SharedPtr<IDataType> clone() const { return new DataTypeTuple(elems); }
|
2012-08-26 02:08:18 +00:00
|
|
|
|
|
|
|
|
|
const DataTypes & getElements() const { return elems; }
|
2012-08-23 18:43:57 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|