1
/* Copyright (C) 2000-2003 MySQL AB
3
This program is free software; you can redistribute it and/or modify
4
it under the terms of the GNU General Public License as published by
5
the Free Software Foundation; version 2 of the License.
7
This program is distributed in the hope that it will be useful,
8
but WITHOUT ANY WARRANTY; without even the implied warranty of
9
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
GNU General Public License for more details.
12
You should have received a copy of the GNU General Public License
13
along with this program; if not, write to the Free Software
14
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2008 Sun Microsystems
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; version 2 of the License.
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
23
Routines to drop, repair, optimize, analyze, and check a schema table
22
#ifndef DRIZZLE_SERVER_SQL_TABLE_H
23
#define DRIZZLE_SERVER_SQL_TABLE_H
25
bool mysql_rm_table(THD *thd,TABLE_LIST *tables, bool if_exists,
27
int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists,
28
bool drop_temporary, bool drop_view, bool log_query);
29
bool quick_rm_table(handlerton *base,const char *db,
30
const char *table_name, uint flags);
31
void close_cached_table(THD *thd, TABLE *table);
33
void wait_while_table_is_used(THD *thd, TABLE *table,
26
#ifndef DRIZZLED_SQL_TABLE_H
27
#define DRIZZLED_SQL_TABLE_H
29
#include "drizzled/base.h"
33
typedef struct st_ha_check_opt HA_CHECK_OPT;
35
typedef struct st_key KEY;
36
typedef struct st_ha_create_information HA_CREATE_INFO;
40
/* Flags for conversion functions. */
41
static const uint32_t FN_FROM_IS_TMP(1 << 0);
42
static const uint32_t FN_TO_IS_TMP(1 << 0);
44
namespace drizzled { namespace message { class Table; } }
45
namespace drizzled { class TableIdentifier; }
47
int mysql_rm_table_part2(Session *session, TableList *tables, bool if_exists,
49
void write_bin_log_drop_table(Session *session,
50
bool if_exists, const char *db_name,
51
const char *table_name);
52
bool quick_rm_table(Session& session,
53
drizzled::TableIdentifier &identifier);
54
void close_cached_table(Session *session, Table *table);
56
void wait_while_table_is_used(Session *session, Table *table,
34
57
enum ha_extra_function function);
35
bool mysql_checksum_table(THD* thd, TABLE_LIST* table_list,
59
bool mysql_checksum_table(Session* session, TableList* table_list,
36
60
HA_CHECK_OPT* check_opt);
37
bool mysql_check_table(THD* thd, TABLE_LIST* table_list,
61
bool mysql_check_table(Session* session, TableList* table_list,
38
62
HA_CHECK_OPT* check_opt);
39
bool mysql_repair_table(THD* thd, TABLE_LIST* table_list,
40
HA_CHECK_OPT* check_opt);
41
bool mysql_analyze_table(THD* thd, TABLE_LIST* table_list,
63
bool mysql_analyze_table(Session* session, TableList* table_list,
42
64
HA_CHECK_OPT* check_opt);
43
bool mysql_optimize_table(THD* thd, TABLE_LIST* table_list,
65
bool mysql_optimize_table(Session* session, TableList* table_list,
44
66
HA_CHECK_OPT* check_opt);
46
bool mysql_assign_to_keycache(THD* thd, TABLE_LIST* table_list,
47
LEX_STRING *key_cache_name);
48
bool mysql_preload_keys(THD* thd, TABLE_LIST* table_list);
49
int reassign_keycache_tables(THD* thd, KEY_CACHE *src_cache,
50
KEY_CACHE *dst_cache);
52
#endif /* DRIZZLE_SERVER_SQL_TABLE_H */
68
void write_bin_log(Session *session,
69
char const *query, size_t query_length);
71
bool is_primary_key(KEY *key_info);
72
const char* is_primary_key_name(const char* key_name);
73
bool check_engine(Session *, const char *, drizzled::message::Table *, HA_CREATE_INFO *);
74
void set_table_default_charset(HA_CREATE_INFO *create_info, const char *db);
76
Preparation for table creation
79
mysql_prepare_create_table()
80
session Thread object.
81
create_info Create information (like MAX_ROWS).
82
alter_info List of columns and indexes to create
83
tmp_table If a temporary table is to be created.
84
db_options INOUT Table options (like HA_OPTION_PACK_RECORD).
85
file The Cursor for the new table.
86
key_info_buffer OUT An array of KEY structs for the indexes.
87
key_count OUT The number of elements in the array.
88
select_field_count The number of fields coming from a select table.
91
Prepares the table and key structures for table creation.
94
sets create_info->varchar if the table has a varchar
100
int mysql_prepare_create_table(Session *session,
101
HA_CREATE_INFO *create_info,
102
drizzled::message::Table *create_proto,
103
AlterInfo *alter_info,
105
uint32_t *db_options,
107
KEY **key_info_buffer,
109
int select_field_count);
112
/* Conversion functions */
113
size_t build_tmptable_filename(char *buff, size_t bufflen);
114
size_t build_table_filename(char *buff, size_t bufflen, const char *db,
115
const char *table_name, bool is_tmp);
117
#endif /* DRIZZLED_SQL_TABLE_H */