//===----------------------------------------------------------------------===// // DuckDB // // duckdb/catalog/default/default_functions.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/catalog/default/default_generator.hpp" #include "duckdb/parser/parsed_data/create_macro_info.hpp" namespace duckdb { class SchemaCatalogEntry; struct DefaultMacro { const char *schema; const char *name; const char *parameters[8]; const char *macro; }; class DefaultFunctionGenerator : public DefaultGenerator { public: DefaultFunctionGenerator(Catalog &catalog, SchemaCatalogEntry &schema); SchemaCatalogEntry &schema; DUCKDB_API static unique_ptr CreateInternalMacroInfo(DefaultMacro &default_macro); DUCKDB_API static unique_ptr CreateInternalTableMacroInfo(DefaultMacro &default_macro); public: unique_ptr CreateDefaultEntry(ClientContext &context, const string &entry_name) override; vector GetDefaultEntries() override; private: static unique_ptr CreateInternalTableMacroInfo(DefaultMacro &default_macro, unique_ptr function); }; } // namespace duckdb