maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #09761
Re: Executing query inside mysql server
Hi, knizhnik!
On Jun 17, knizhnik wrote:
> Hi,
>
> I wonder what is the simplest way to execute SQL query inside server?
> In PostgreSQL there is SPI API, SQLite allows to use client API,...
> but I failed to find right way of running queries inside mySQL server.
There is no API for that at the moment.
> My task is the following: I want to patch mySQL server by redirecting
> execution of some queries to some external executor. The text of this
> queries will be stored inside database in some special table. So when
> some query is executed by mySQL server, I want to perform lookup in
> this table. What is the simplest way to do it in mySQL?
There are many examples for that in the code, but they all use low-level
API. The typical sequence for your use case is:
prepare a TABLE_LIST structure
open_and_lock_tables()
ha_index_read_idx_map()
read values using Field methods
Something alike is done in sql_acl.cc (loading privileges), in sql_help.cc,
sp.cc (stored routines), event_db_repository.cc, sql_plugin.cc,
sql_udf.cc, tztime.cc (time zones), etc.
Regards,
Sergei
Chief Architect MariaDB
and security@xxxxxxxxxxx
References