~drizzle-trunk/drizzle/development

390.1.2 by Monty Taylor
Fixed copyright headers in drizzled/
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
4
 *  Copyright (C) 2008 Sun Microsystems
5
 *
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.
9
 *
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.
14
 *
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
18
 */
243.1.17 by Jay Pipes
FINAL PHASE removal of mysql_priv.h (Bye, bye my friend.)
19
20
/**
21
  @file
22
23
  Routines to drop, repair, optimize, analyze, and check a schema table
24
25
*/
26
#ifndef DRIZZLE_SERVER_SQL_TABLE_H
27
#define DRIZZLE_SERVER_SQL_TABLE_H
28
584.1.15 by Monty Taylor
The mega-patch from hell. Renamed sql_class to session (since that's what it is) and removed it and field and table from common_includes.
29
class Session;
30
class TableList;
31
typedef struct st_ha_check_opt HA_CHECK_OPT;
32
class Table;
33
1116.1.1 by Brian Aker
Fix for Stewart's patch (includes hack to solve MAX rows problem).
34
namespace drizzled { namespace message { class Table; } }
35
520.1.22 by Brian Aker
Second pass of thd cleanup
36
bool mysql_rm_table(Session *session,TableList *tables, bool if_exists,
243.1.17 by Jay Pipes
FINAL PHASE removal of mysql_priv.h (Bye, bye my friend.)
37
                    bool drop_temporary);
520.1.22 by Brian Aker
Second pass of thd cleanup
38
int mysql_rm_table_part2(Session *session, TableList *tables, bool if_exists,
590.1.7 by Stewart Smith
remove mysql_frm_type
39
                         bool drop_temporary, bool log_query);
1130.1.4 by Monty Taylor
Moved StorageEngine into plugin namespace.
40
bool quick_rm_table(drizzled::plugin::StorageEngine *, const char *db,
1039.1.6 by Brian Aker
Refactor for build_table_filename()
41
                    const char *table_name, bool is_tmp);
520.1.22 by Brian Aker
Second pass of thd cleanup
42
void close_cached_table(Session *session, Table *table);
243.1.17 by Jay Pipes
FINAL PHASE removal of mysql_priv.h (Bye, bye my friend.)
43
520.1.22 by Brian Aker
Second pass of thd cleanup
44
void wait_while_table_is_used(Session *session, Table *table,
243.1.17 by Jay Pipes
FINAL PHASE removal of mysql_priv.h (Bye, bye my friend.)
45
                              enum ha_extra_function function);
1116.1.1 by Brian Aker
Fix for Stewart's patch (includes hack to solve MAX rows problem).
46
47
bool mysql_alter_table(Session *session, char *new_db, char *new_name,
48
                       HA_CREATE_INFO *create_info,
49
                       drizzled::message::Table *create_proto,
50
                       TableList *table_list,
1126.3.3 by Jay Pipes
Moves Alter_info out into its own header and source file, cleans up some related include mess in sql_lex.h, and renames Alter_info to AlterInfo.
51
                       AlterInfo *alter_info,
1116.1.1 by Brian Aker
Fix for Stewart's patch (includes hack to solve MAX rows problem).
52
                       uint32_t order_num, order_st *order, bool ignore);
520.1.22 by Brian Aker
Second pass of thd cleanup
53
bool mysql_checksum_table(Session* session, TableList* table_list,
243.1.17 by Jay Pipes
FINAL PHASE removal of mysql_priv.h (Bye, bye my friend.)
54
                          HA_CHECK_OPT* check_opt);
520.1.22 by Brian Aker
Second pass of thd cleanup
55
bool mysql_check_table(Session* session, TableList* table_list,
243.1.17 by Jay Pipes
FINAL PHASE removal of mysql_priv.h (Bye, bye my friend.)
56
                       HA_CHECK_OPT* check_opt);
520.1.22 by Brian Aker
Second pass of thd cleanup
57
bool mysql_analyze_table(Session* session, TableList* table_list,
243.1.17 by Jay Pipes
FINAL PHASE removal of mysql_priv.h (Bye, bye my friend.)
58
                         HA_CHECK_OPT* check_opt);
520.1.22 by Brian Aker
Second pass of thd cleanup
59
bool mysql_optimize_table(Session* session, TableList* table_list,
243.1.17 by Jay Pipes
FINAL PHASE removal of mysql_priv.h (Bye, bye my friend.)
60
                          HA_CHECK_OPT* check_opt);
61
575.4.6 by Monty Taylor
Removed my_getwd.
62
void write_bin_log(Session *session, bool clear_error,
666 by Brian Aker
Updating new replication positions in code.
63
                   char const *query, size_t query_length);
243.1.17 by Jay Pipes
FINAL PHASE removal of mysql_priv.h (Bye, bye my friend.)
64
590.1.1 by Stewart Smith
begin moving from global const char* primary_key_name to methods is_primary_key() and is_primary_key_name()
65
bool is_primary_key(KEY *key_info);
66
const char* is_primary_key_name(const char* key_name);
1126.3.2 by Jay Pipes
Simply moves alter_table specific stuff out of the sql_table.cc grab-bag and into drizzled/statement/alter_table.cc. Next step is to cleanup the code.
67
bool check_engine(Session *, const char *, HA_CREATE_INFO *);
68
void set_table_default_charset(HA_CREATE_INFO *create_info, char *db);
69
/*
70
  Preparation for table creation
71
72
  SYNOPSIS
73
    mysql_prepare_create_table()
74
      session                       Thread object.
75
      create_info               Create information (like MAX_ROWS).
76
      alter_info                List of columns and indexes to create
77
      tmp_table                 If a temporary table is to be created.
78
      db_options          INOUT Table options (like HA_OPTION_PACK_RECORD).
79
      file                      The handler for the new table.
80
      key_info_buffer     OUT   An array of KEY structs for the indexes.
81
      key_count           OUT   The number of elements in the array.
82
      select_field_count        The number of fields coming from a select table.
83
84
  DESCRIPTION
85
    Prepares the table and key structures for table creation.
86
87
  NOTES
88
    sets create_info->varchar if the table has a varchar
89
90
  RETURN VALUES
91
    false    OK
92
    true     error
93
*/
94
int mysql_prepare_create_table(Session *session,
95
                               HA_CREATE_INFO *create_info,
1126.3.3 by Jay Pipes
Moves Alter_info out into its own header and source file, cleans up some related include mess in sql_lex.h, and renames Alter_info to AlterInfo.
96
                               AlterInfo *alter_info,
1126.3.2 by Jay Pipes
Simply moves alter_table specific stuff out of the sql_table.cc grab-bag and into drizzled/statement/alter_table.cc. Next step is to cleanup the code.
97
                               bool tmp_table,
98
                               uint32_t *db_options,
99
                               handler *file,
100
                               KEY **key_info_buffer,
101
                               uint32_t *key_count,
102
                               int select_field_count);
590.1.1 by Stewart Smith
begin moving from global const char* primary_key_name to methods is_primary_key() and is_primary_key_name()
103
243.1.17 by Jay Pipes
FINAL PHASE removal of mysql_priv.h (Bye, bye my friend.)
104
#endif /* DRIZZLE_SERVER_SQL_TABLE_H */