Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
582299d7
Commit
582299d7
authored
Dec 02, 2005
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add these, forgotten in the previous commit
parent
4d891eb9
Changes
3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
2730 additions
and
0 deletions
+2730
-0
libmysqld/event.h
libmysqld/event.h
+210
-0
sql/event.cc
sql/event.cc
+2310
-0
sql/event.h
sql/event.h
+210
-0
No files found.
libmysqld/event.h
0 → 100644
View file @
582299d7
/* -*- C++ -*- */
#ifndef _EVENT_H_
#define _EVENT_H_
#include "sp_head.h"
extern
ulong
opt_event_executor
;
#define EVEX_OK 0
#define EVEX_KEY_NOT_FOUND -1
#define EVEX_OPEN_TABLE_FAILED -2
#define EVEX_WRITE_ROW_FAILED -3
#define EVEX_DELETE_ROW_FAILED -4
#define EVEX_GET_FIELD_FAILED -5
#define EVEX_PARSE_ERROR -6
#define EVEX_INTERNAL_ERROR -7
#define EVEX_NO_DB_ERROR -8
#define EVEX_GENERAL_ERROR -9
#define EVEX_BAD_PARAMS -10
#define EVEX_NOT_RUNNING -11
#define EVENT_EXEC_NO_MORE (1L << 0)
#define EVENT_NOT_USED (1L << 1)
enum
enum_event_on_completion
{
MYSQL_EVENT_ON_COMPLETION_DROP
=
1
,
MYSQL_EVENT_ON_COMPLETION_PRESERVE
};
enum
enum_event_status
{
MYSQL_EVENT_ENABLED
=
1
,
MYSQL_EVENT_DISABLED
};
class
event_timed
{
event_timed
(
const
event_timed
&
);
/* Prevent use of these */
void
operator
=
(
event_timed
&
);
public:
LEX_STRING
m_db
;
LEX_STRING
m_name
;
LEX_STRING
m_qname
;
// db.name
LEX_STRING
m_body
;
LEX_STRING
m_definer_user
;
LEX_STRING
m_definer_host
;
LEX_STRING
m_definer
;
// combination of user and host
LEX_STRING
m_comment
;
TIME
m_starts
;
TIME
m_ends
;
TIME
m_execute_at
;
longlong
m_expr
;
interval_type
m_interval
;
longlong
m_created
;
longlong
m_modified
;
TIME
m_last_executed
;
enum
enum_event_on_completion
m_on_completion
;
enum
enum_event_status
m_status
;
sp_head
*
m_sphead
;
uint
m_old_cmq
;
// Old CLIENT_MULTI_QUERIES value
const
uchar
*
m_body_begin
;
bool
m_dropped
;
bool
m_free_sphead_on_delete
;
uint
m_flags
;
//all kind of purposes
bool
m_last_executed_changed
;
bool
m_status_changed
;
event_timed
()
:
m_expr
(
0
),
m_created
(
0
),
m_modified
(
0
),
m_on_completion
(
MYSQL_EVENT_ON_COMPLETION_DROP
),
m_status
(
MYSQL_EVENT_ENABLED
),
m_sphead
(
0
),
m_dropped
(
false
),
m_free_sphead_on_delete
(
true
),
m_flags
(
0
),
m_last_executed_changed
(
false
),
m_status_changed
(
false
)
{
init
();
}
~
event_timed
()
{
if
(
m_free_sphead_on_delete
)
free_sp
();
}
void
init
();
int
init_definer
(
THD
*
thd
);
int
init_execute_at
(
THD
*
thd
,
Item
*
expr
);
int
init_interval
(
THD
*
thd
,
Item
*
expr
,
interval_type
interval
);
void
init_name
(
THD
*
thd
,
sp_name
*
name
);
int
init_starts
(
THD
*
thd
,
Item
*
starts
);
int
init_ends
(
THD
*
thd
,
Item
*
ends
);
void
event_timed
::
init_body
(
THD
*
thd
);
void
init_comment
(
THD
*
thd
,
LEX_STRING
*
comment
);
void
set_on_completion_drop
(
bool
drop
);
void
set_event_status
(
bool
enabled
);
int
load_from_row
(
MEM_ROOT
*
mem_root
,
TABLE
*
table
);
bool
compute_next_execution_time
();
void
mark_last_executed
();
bool
drop
(
THD
*
thd
);
bool
update_fields
(
THD
*
thd
);
char
*
get_show_create_event
(
THD
*
thd
,
uint
*
length
);
int
execute
(
THD
*
thd
,
MEM_ROOT
*
mem_root
);
int
compile
(
THD
*
thd
,
MEM_ROOT
*
mem_root
);
void
free_sp
()
{
if
(
m_sphead
)
{
delete
m_sphead
;
m_sphead
=
0
;
}
}
};
int
evex_create_event
(
THD
*
thd
,
event_timed
*
et
,
uint
create_options
);
int
evex_update_event
(
THD
*
thd
,
sp_name
*
name
,
event_timed
*
et
);
int
evex_drop_event
(
THD
*
thd
,
event_timed
*
et
,
bool
drop_if_exists
);
int
init_events
();
void
shutdown_events
();
/*
typedef struct st_event_item {
my_time_t execute_at;
sp_head *proc;
char *definer_user;
char *definer_host;
} EVENT_ITEM;
*/
/*
CREATE TABLE `event` (
`db` varchar(64) character set latin1 collate latin1_bin NOT NULL default '',
`name` varchar(64) NOT NULL default '',
`body` blob NOT NULL,
`definer` varchar(77) character set latin1 collate latin1_bin NOT NULL default '',
`execute_at` datetime default NULL,
`transient_expression` int(11) default NULL,
`interval_type` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK',
'SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE',
'DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND',
'DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND',
'SECOND_MICROSECOND') DEFAULT NULL,
`created` timestamp NOT NULL default '0000-00-00 00:00:00',
`modified` timestamp NOT NULL default '0000-00-00 00:00:00',
`last_executed` datetime default NULL,
`starts` datetime default NULL,
`ends` datetime default NULL,
`status` enum('ENABLED','DISABLED') NOT NULL default 'ENABLED',
`on_completion` enum('DROP','PRESERVE') NOT NULL default 'DROP',
`comment` varchar(64) character set latin1 collate latin1_bin NOT NULL default '',
PRIMARY KEY (`db`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
*/
#endif
/* _EVENT_H_ */
sql/event.cc
0 → 100644
View file @
582299d7
This diff is collapsed.
Click to expand it.
sql/event.h
0 → 100644
View file @
582299d7
/* -*- C++ -*- */
#ifndef _EVENT_H_
#define _EVENT_H_
#include "sp_head.h"
extern
ulong
opt_event_executor
;
#define EVEX_OK 0
#define EVEX_KEY_NOT_FOUND -1
#define EVEX_OPEN_TABLE_FAILED -2
#define EVEX_WRITE_ROW_FAILED -3
#define EVEX_DELETE_ROW_FAILED -4
#define EVEX_GET_FIELD_FAILED -5
#define EVEX_PARSE_ERROR -6
#define EVEX_INTERNAL_ERROR -7
#define EVEX_NO_DB_ERROR -8
#define EVEX_GENERAL_ERROR -9
#define EVEX_BAD_PARAMS -10
#define EVEX_NOT_RUNNING -11
#define EVENT_EXEC_NO_MORE (1L << 0)
#define EVENT_NOT_USED (1L << 1)
enum
enum_event_on_completion
{
MYSQL_EVENT_ON_COMPLETION_DROP
=
1
,
MYSQL_EVENT_ON_COMPLETION_PRESERVE
};
enum
enum_event_status
{
MYSQL_EVENT_ENABLED
=
1
,
MYSQL_EVENT_DISABLED
};
class
event_timed
{
event_timed
(
const
event_timed
&
);
/* Prevent use of these */
void
operator
=
(
event_timed
&
);
public:
LEX_STRING
m_db
;
LEX_STRING
m_name
;
LEX_STRING
m_qname
;
// db.name
LEX_STRING
m_body
;
LEX_STRING
m_definer_user
;
LEX_STRING
m_definer_host
;
LEX_STRING
m_definer
;
// combination of user and host
LEX_STRING
m_comment
;
TIME
m_starts
;
TIME
m_ends
;
TIME
m_execute_at
;
longlong
m_expr
;
interval_type
m_interval
;
longlong
m_created
;
longlong
m_modified
;
TIME
m_last_executed
;
enum
enum_event_on_completion
m_on_completion
;
enum
enum_event_status
m_status
;
sp_head
*
m_sphead
;
uint
m_old_cmq
;
// Old CLIENT_MULTI_QUERIES value
const
uchar
*
m_body_begin
;
bool
m_dropped
;
bool
m_free_sphead_on_delete
;
uint
m_flags
;
//all kind of purposes
bool
m_last_executed_changed
;
bool
m_status_changed
;
event_timed
()
:
m_expr
(
0
),
m_created
(
0
),
m_modified
(
0
),
m_on_completion
(
MYSQL_EVENT_ON_COMPLETION_DROP
),
m_status
(
MYSQL_EVENT_ENABLED
),
m_sphead
(
0
),
m_dropped
(
false
),
m_free_sphead_on_delete
(
true
),
m_flags
(
0
),
m_last_executed_changed
(
false
),
m_status_changed
(
false
)
{
init
();
}
~
event_timed
()
{
if
(
m_free_sphead_on_delete
)
free_sp
();
}
void
init
();
int
init_definer
(
THD
*
thd
);
int
init_execute_at
(
THD
*
thd
,
Item
*
expr
);
int
init_interval
(
THD
*
thd
,
Item
*
expr
,
interval_type
interval
);
void
init_name
(
THD
*
thd
,
sp_name
*
name
);
int
init_starts
(
THD
*
thd
,
Item
*
starts
);
int
init_ends
(
THD
*
thd
,
Item
*
ends
);
void
event_timed
::
init_body
(
THD
*
thd
);
void
init_comment
(
THD
*
thd
,
LEX_STRING
*
comment
);
void
set_on_completion_drop
(
bool
drop
);
void
set_event_status
(
bool
enabled
);
int
load_from_row
(
MEM_ROOT
*
mem_root
,
TABLE
*
table
);
bool
compute_next_execution_time
();
void
mark_last_executed
();
bool
drop
(
THD
*
thd
);
bool
update_fields
(
THD
*
thd
);
char
*
get_show_create_event
(
THD
*
thd
,
uint
*
length
);
int
execute
(
THD
*
thd
,
MEM_ROOT
*
mem_root
);
int
compile
(
THD
*
thd
,
MEM_ROOT
*
mem_root
);
void
free_sp
()
{
if
(
m_sphead
)
{
delete
m_sphead
;
m_sphead
=
0
;
}
}
};
int
evex_create_event
(
THD
*
thd
,
event_timed
*
et
,
uint
create_options
);
int
evex_update_event
(
THD
*
thd
,
sp_name
*
name
,
event_timed
*
et
);
int
evex_drop_event
(
THD
*
thd
,
event_timed
*
et
,
bool
drop_if_exists
);
int
init_events
();
void
shutdown_events
();
/*
typedef struct st_event_item {
my_time_t execute_at;
sp_head *proc;
char *definer_user;
char *definer_host;
} EVENT_ITEM;
*/
/*
CREATE TABLE `event` (
`db` varchar(64) character set latin1 collate latin1_bin NOT NULL default '',
`name` varchar(64) NOT NULL default '',
`body` blob NOT NULL,
`definer` varchar(77) character set latin1 collate latin1_bin NOT NULL default '',
`execute_at` datetime default NULL,
`transient_expression` int(11) default NULL,
`interval_type` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK',
'SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE',
'DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND',
'DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND',
'SECOND_MICROSECOND') DEFAULT NULL,
`created` timestamp NOT NULL default '0000-00-00 00:00:00',
`modified` timestamp NOT NULL default '0000-00-00 00:00:00',
`last_executed` datetime default NULL,
`starts` datetime default NULL,
`ends` datetime default NULL,
`status` enum('ENABLED','DISABLED') NOT NULL default 'ENABLED',
`on_completion` enum('DROP','PRESERVE') NOT NULL default 'DROP',
`comment` varchar(64) character set latin1 collate latin1_bin NOT NULL default '',
PRIMARY KEY (`db`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
*/
#endif
/* _EVENT_H_ */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment