event_priv.h 2.44 KB
Newer Older
unknown's avatar
unknown committed
1
/* Copyright (C) 2004-2005 MySQL AB
unknown's avatar
unknown committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

   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; either version 2 of the License, or
   (at your option) any later version.

   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */

#ifndef _EVENT_PRIV_H_
#define _EVENT_PRIV_H_
unknown's avatar
unknown committed
19
#include "mysql_priv.h"
unknown's avatar
unknown committed
20 21


unknown's avatar
unknown committed
22 23
#define EVEX_USE_QUEUE

unknown's avatar
unknown committed
24 25 26
#define UNLOCK_MUTEX_AND_BAIL_OUT(__mutex, __label) \
    { VOID(pthread_mutex_unlock(&__mutex)); goto __label; }

unknown's avatar
unknown committed
27 28
#define EVEX_DB_FIELD_LEN 64
#define EVEX_NAME_FIELD_LEN 64
29
#define EVEX_MAX_INTERVAL_VALUE 2147483647L
unknown's avatar
unknown committed
30 31 32

int
my_time_compare(TIME *a, TIME *b);
unknown's avatar
unknown committed
33

unknown's avatar
unknown committed
34
int
35
evex_db_find_event_aux(THD *thd, const LEX_STRING dbname,
36 37 38
                       const LEX_STRING rname,
                       const LEX_STRING definer,
                       TABLE *table);
39 40

int
unknown's avatar
unknown committed
41 42
event_timed_compare_q(void *vptr, byte* a, byte *b);

43 44 45
int db_drop_event(THD *thd, event_timed *et, bool drop_if_exists,
                uint *rows_affected);

unknown's avatar
unknown committed
46 47 48 49 50

#define EXEC_QUEUE_QUEUE_NAME executing_queue
#define EXEC_QUEUE_DARR_NAME evex_executing_queue


unknown's avatar
unknown committed
51 52 53 54 55 56 57 58 59 60
#define EVEX_QUEUE_TYPE QUEUE
#define EVEX_PTOQEL byte *

#define EVEX_EQ_NAME executing_queue
#define evex_queue_first_element(queue, __cast) ((__cast)queue_top(queue))
#define evex_queue_element(queue, idx, __cast) ((__cast)queue_element(queue, idx))
#define evex_queue_delete_element(queue, idx)  queue_remove(queue, idx)
#define evex_queue_destroy(queue)              delete_queue(queue)
#define evex_queue_first_updated(queue)        queue_replaced(queue)
#define evex_queue_insert(queue, element)      queue_insert_safe(queue, element);
unknown's avatar
unknown committed
61 62 63 64



void
unknown's avatar
unknown committed
65
evex_queue_init(EVEX_QUEUE_TYPE *queue);
unknown's avatar
unknown committed
66 67 68 69 70 71 72 73 74 75

#define evex_queue_num_elements(queue) queue.elements


extern bool evex_is_running;
extern MEM_ROOT evex_mem_root;
extern pthread_mutex_t LOCK_event_arrays,
                       LOCK_workers_count,
                       LOCK_evex_running;
extern ulonglong evex_main_thread_id;
unknown's avatar
unknown committed
76
extern QUEUE EVEX_EQ_NAME;
unknown's avatar
unknown committed
77

unknown's avatar
unknown committed
78
#endif /* _EVENT_PRIV_H_ */