1#ifndef MYSQL_SERVICE_PARSER_INCLUDED 
    2#define MYSQL_SERVICE_PARSER_INCLUDED 
   28#ifndef MYSQL_ABI_CHECK 
   34#define MYSQL_THD THD * 
   45#define PARSER_SERVICE_DIGEST_LENGTH 32 
   47#define STATEMENT_TYPE_SELECT 1 
   48#define STATEMENT_TYPE_UPDATE 2 
   49#define STATEMENT_TYPE_INSERT 3 
   50#define STATEMENT_TYPE_DELETE 4 
   51#define STATEMENT_TYPE_REPLACE 5 
   52#define STATEMENT_TYPE_OTHER 6 
   58                                              const char *msg, 
void *state);
 
   67                                     void *(*callback_fun)(
void *), 
void *arg,
 
   97                             unsigned char is_prepared,
 
   99                             void *condition_handler_state);
 
  115                                            unsigned char *digest);
 
  215#ifdef MYSQL_DYNAMIC_PLUGIN 
  217#define mysql_parser_current_session() \ 
  218  mysql_parser_service->mysql_current_session() 
  220#define mysql_parser_open_session() mysql_parser_service->mysql_open_session() 
  222#define mysql_parser_start_thread(thd, func, arg, thread_handle) \ 
  223  mysql_parser_service->mysql_start_thread(thd, func, arg, thread_handle) 
  225#define mysql_parser_join_thread(thread_handle) \ 
  226  mysql_parser_service->mysql_join_thread(thread_handle) 
  228#define mysql_parser_set_current_database(thd, db) \ 
  229  mysql_parser_service->mysql_set_current_database(thd, db) 
  231#define mysql_parser_parse(thd, query, is_prepared, condition_handler, \ 
  232                           condition_handler_state)                    \ 
  233  mysql_parser_service->mysql_parse(                                   \ 
  234      thd, query, is_prepared, condition_handler, condition_handler_state) 
  236#define mysql_parser_get_statement_type(thd) \ 
  237  mysql_parser_service->mysql_get_statement_type(thd) 
  239#define mysql_parser_get_statement_digest(thd, digest) \ 
  240  mysql_parser_service->mysql_get_statement_digest(thd, digest) 
  242#define mysql_parser_get_number_params(thd) \ 
  243  mysql_parser_service->mysql_get_number_params(thd) 
  245#define mysql_parser_extract_prepared_params(thd, positions) \ 
  246  mysql_parser_service->mysql_extract_prepared_params(thd, positions) 
  248#define mysql_parser_visit_tree(thd, processor, arg) \ 
  249  mysql_parser_service->mysql_visit_tree(thd, processor, arg) 
  251#define mysql_parser_item_string(item) \ 
  252  mysql_parser_service->mysql_item_string(item) 
  254#define mysql_parser_free_string(string) \ 
  255  mysql_parser_service->mysql_free_string(string) 
  257#define mysql_parser_get_query(thd) mysql_parser_service->mysql_get_query(thd) 
  259#define mysql_parser_get_normalized_query(thd) \ 
  260  mysql_parser_service->mysql_get_normalized_query(thd) 
  263typedef void *(*callback_function)(
void *);
 
  272                       unsigned char is_prepared,
 
  274                       void *condition_handler_state);
 
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:928
 
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
 
static char * query
Definition: myisam_ftdump.cc:47
 
void mysql_parser_join_thread(struct my_thread_handle *thread_handle)
Definition: parser_service.cc:219
 
#define MYSQL_THD
Definition: service_parser.h:34
 
int mysql_parser_get_statement_type(MYSQL_THD thd)
Definition: parser_service.cc:285
 
int mysql_parser_parse(MYSQL_THD thd, const MYSQL_LEX_STRING query, unsigned char is_prepared, sql_condition_handler_function handle_condition, void *condition_handler_state)
Definition: parser_service.cc:234
 
MYSQL_THD(* mysql_open_session_t)()
Definition: service_parser.h:64
 
void(* mysql_set_current_database_t)(MYSQL_THD thd, const MYSQL_LEX_STRING db)
Definition: service_parser.h:72
 
Item * MYSQL_ITEM
Definition: service_parser.h:35
 
int mysql_parser_get_statement_digest(MYSQL_THD thd, unsigned char *digest)
Definition: parser_service.cc:311
 
int(* parse_node_visit_function)(MYSQL_ITEM item, unsigned char *arg)
Definition: service_parser.h:54
 
int(* mysql_get_statement_digest_t)(MYSQL_THD thd, unsigned char *digest)
Returns the digest of the last parsed statement in the session.
Definition: service_parser.h:114
 
void mysql_parser_start_thread(MYSQL_THD thd, callback_function fun, void *arg, struct my_thread_handle *thread_handle)
 
MYSQL_THD mysql_parser_current_session()
Definition: parser_service.cc:139
 
MYSQL_LEX_STRING(* mysql_get_normalized_query_t)(MYSQL_THD thd)
Returns the current query in normalized form.
Definition: service_parser.h:195
 
void mysql_parser_set_current_database(MYSQL_THD thd, const MYSQL_LEX_STRING db)
Definition: parser_service.cc:223
 
MYSQL_LEX_STRING(* mysql_item_string_t)(MYSQL_ITEM item)
Renders the MYSQL_ITEM as a string and returns a reference in the form of a MYSQL_LEX_STRING.
Definition: service_parser.h:168
 
int mysql_parser_visit_tree(MYSQL_THD thd, parse_node_visit_function processor, unsigned char *arg)
Definition: parser_service.cc:333
 
MYSQL_THD mysql_parser_open_session()
Definition: parser_service.cc:141
 
MYSQL_LEX_STRING(* mysql_get_query_t)(MYSQL_THD thd)
Returns the current query string.
Definition: service_parser.h:185
 
struct mysql_parser_service_st * mysql_parser_service
 
int(* mysql_get_statement_type_t)(MYSQL_THD thd)
Definition: service_parser.h:101
 
int(* mysql_parse_t)(MYSQL_THD thd, const MYSQL_LEX_STRING query, unsigned char is_prepared, sql_condition_handler_function handle_condition, void *condition_handler_state)
Parses the query.
Definition: service_parser.h:96
 
int(* mysql_get_number_params_t)(MYSQL_THD thd)
Returns the number of parameters ('?') in the parsed query.
Definition: service_parser.h:125
 
void(* mysql_free_string_t)(MYSQL_LEX_STRING string)
Frees a string buffer allocated by the server.
Definition: service_parser.h:175
 
void *(* callback_function)(void *)
Definition: service_parser.h:263
 
int(* mysql_visit_tree_t)(MYSQL_THD thd, parse_node_visit_function processor, unsigned char *arg)
Walks the tree depth first and applies a user defined function on each literal.
Definition: service_parser.h:153
 
MYSQL_LEX_STRING mysql_parser_item_string(MYSQL_ITEM item)
Definition: parser_service.cc:339
 
int(* sql_condition_handler_function)(int sql_errno, const char *sqlstate, const char *msg, void *state)
Definition: service_parser.h:56
 
int mysql_parser_extract_prepared_params(MYSQL_THD thd, int *positions)
Definition: parser_service.cc:325
 
int mysql_parser_get_number_params(MYSQL_THD thd)
Definition: parser_service.cc:321
 
MYSQL_LEX_STRING mysql_parser_get_normalized_query(MYSQL_THD thd)
Definition: parser_service.cc:359
 
void(* mysql_start_thread_t)(MYSQL_THD thd, void *(*callback_fun)(void *), void *arg, struct my_thread_handle *thread_handle)
Definition: service_parser.h:66
 
int(* mysql_extract_prepared_params_t)(MYSQL_THD thd, int *positions)
Stores in 'positions' the positions in the last parsed query of each parameter marker('?...
Definition: service_parser.h:141
 
void(* mysql_join_thread_t)(struct my_thread_handle *thread_handle)
Definition: service_parser.h:70
 
MYSQL_LEX_STRING mysql_parser_get_query(MYSQL_THD thd)
Definition: parser_service.cc:353
 
MYSQL_THD(* mysql_current_session_t)()
Definition: service_parser.h:62
 
void mysql_parser_free_string(MYSQL_LEX_STRING string)
Definition: parser_service.cc:351
 
Definition: mysql_lex_string.h:35
 
Definition: my_thread_bits.h:58
 
Definition: service_parser.h:197
 
mysql_get_number_params_t mysql_get_number_params
Definition: service_parser.h:206
 
mysql_visit_tree_t mysql_visit_tree
Definition: service_parser.h:208
 
mysql_start_thread_t mysql_start_thread
Definition: service_parser.h:200
 
mysql_get_statement_digest_t mysql_get_statement_digest
Definition: service_parser.h:205
 
mysql_get_normalized_query_t mysql_get_normalized_query
Definition: service_parser.h:212
 
mysql_join_thread_t mysql_join_thread
Definition: service_parser.h:201
 
mysql_get_statement_type_t mysql_get_statement_type
Definition: service_parser.h:204
 
mysql_item_string_t mysql_item_string
Definition: service_parser.h:209
 
mysql_open_session_t mysql_open_session
Definition: service_parser.h:199
 
mysql_extract_prepared_params_t mysql_extract_prepared_params
Definition: service_parser.h:207
 
mysql_set_current_database_t mysql_set_current_database
Definition: service_parser.h:202
 
mysql_get_query_t mysql_get_query
Definition: service_parser.h:211
 
mysql_current_session_t mysql_current_session
Definition: service_parser.h:198
 
mysql_free_string_t mysql_free_string
Definition: service_parser.h:210
 
mysql_parse_t mysql_parse
Definition: service_parser.h:203