ClickHouse/dbms/include/DB/Storages/StorageSystemOne.h
2012-01-09 19:20:48 +00:00

50 lines
1.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <DB/Storages/IStorage.h>
#include <DB/DataStreams/IProfilingBlockInputStream.h>
namespace DB
{
class OneValueBlockInputStream : public IProfilingBlockInputStream
{
public:
OneValueBlockInputStream();
Block readImpl();
String getName() const { return "OneValueBlockInputStream"; }
BlockInputStreamPtr clone() { return new OneValueBlockInputStream(); }
private:
bool has_been_read;
};
/** Реализует хранилище для системной таблицы One.
* Таблица содержит единственный столбец dummy UInt8 и единственную строку со значением 0.
* Используется, если в запросе не указана таблица.
* Аналог таблицы DUAL в Oracle и MySQL.
*/
class StorageSystemOne : public IStorage
{
public:
StorageSystemOne(const std::string & name_);
std::string getName() const { return "SystemOne"; }
std::string getTableName() const { return "One"; }
const NamesAndTypesList & getColumnsList() const { return columns; }
BlockInputStreams read(
const Names & column_names,
ASTPtr query,
size_t max_block_size = DEFAULT_BLOCK_SIZE,
unsigned max_threads = 1);
private:
const std::string name;
NamesAndTypesList columns;
};
}