#ifndef SQL_SCHEMA_H_INCLUDED
#define SQL_SCHEMA_H_INCLUDED
/*
Copyright (c) 2020, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
#include "mysqld.h"
#include "lex_string.h"
class Lex_ident_sys;
class Create_func;
class Schema
{
LEX_CSTRING m_name;
public:
Schema(const LEX_CSTRING &name)
:m_name(name)
{ }
virtual ~Schema() = default;
const LEX_CSTRING &name() const { return m_name; }
virtual const Type_handler *map_data_type(THD *thd, const Type_handler *src)
const
{
return src;
}
/**
Find a native function builder, return an error if not found,
build an Item otherwise.
*/
Item *make_item_func_call_native(THD *thd,
const Lex_ident_sys &name,
List