mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-05 15:21:43 +00:00
ed5b521110
* Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2]. * Less dependencies [#CLICKHOUSE-2].
44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
#pragma once
|
||
|
||
#include <string>
|
||
#include <memory>
|
||
|
||
|
||
namespace DB
|
||
{
|
||
|
||
class Context;
|
||
class IAST;
|
||
using ASTPtr = std::shared_ptr<IAST>;
|
||
class IStorage;
|
||
using StoragePtr = std::shared_ptr<IStorage>;
|
||
|
||
|
||
/** Интерфейс для табличных функций.
|
||
*
|
||
* Табличные функции не имеют отношения к другим функциям.
|
||
* Табличная функция может быть указана в секции 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() {};
|
||
};
|
||
|
||
using TableFunctionPtr = std::shared_ptr<ITableFunction>;
|
||
|
||
|
||
}
|