ClickHouse/dbms/include/DB/Storages/StorageSystemNumbers.h
2011-08-15 02:24:44 +00:00

52 lines
1.1 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.

#ifndef DBMS_STORAGES_STORAGE_SYSTEM_NUMBERS_H
#define DBMS_STORAGES_STORAGE_SYSTEM_NUMBERS_H
#include <Poco/SharedPtr.h>
#include <DB/Storages/IStorage.h>
namespace DB
{
using Poco::SharedPtr;
class NumbersBlockInputStream : public IBlockInputStream
{
public:
NumbersBlockInputStream(size_t block_size_);
Block read();
private:
size_t block_size;
UInt64 next;
};
/** Реализует хранилище для системной таблицы Numbers.
* Таблица содержит единственный столбец number UInt64.
* Из этой таблицы можно прочитать все натуральные числа, начиная с 0 (до 2^64 - 1, а потом заново).
*/
class StorageSystemNumbers : public IStorage
{
public:
StorageSystemNumbers();
std::string getName() const { return "SystemNumbers"; }
std::string getTableName() const { return "Numbers"; }
const NamesAndTypes & getColumns() const { return columns; }
SharedPtr<IBlockInputStream> read(
const Names & column_names,
ASTPtr query,
size_t max_block_size = DEFAULT_BLOCK_SIZE);
private:
NamesAndTypes columns;
};
}
#endif