ClickHouse/dbms/include/DB/TableFunctions/ITableFunction.h

39 lines
1.2 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 <Poco/SharedPtr.h>
#include <DB/Storages/IStorage.h>
#include <DB/Parsers/ASTFunction.h>
#include <DB/Interpreters/Context.h>
namespace DB
{
/** Интерфейс для табличных функций.
*
* Табличные функции не имеют отношения к другим функциям.
* Табличная функция может быть указана в секции FROM вместо [db.]table
* Табличная функция возвращает временный объект StoragePtr, который используется для выполнения запроса.
*
* Пример:
* SELECT count() FROM remote('example01-01-1', merge, hits)
* - пойти на example01-01-1, в БД merge, таблицу hits.
*/
class ITableFunction
{
public:
/// Получить основное имя функции.
virtual std::string getName() const = 0;
/// Создать storage в соответствии с запросом
virtual StoragePtr execute(ASTPtr ast_function, Context & context) const = 0;
virtual ~ITableFunction() {};
};
typedef SharedPtr<ITableFunction> TableFunctionPtr;
}