1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2009 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; either version 2 of the License, or
9
* (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
#ifndef DRIZZLED_INFO_SCHEMA_METHODS_H
22
#define DRIZZLED_INFO_SCHEMA_METHODS_H
24
#include "drizzled/info_schema.h"
30
* Class which implements any methods that the
31
* CHARACTER_SET I_S table needs besides the default
34
class CharSetISMethods : public InfoSchemaMethods
37
virtual int fillTable(Session *session,
40
virtual int oldFormat(Session *session, InfoSchemaTable *schema_table) const;
47
* Class which implements any methods that the Collations
48
* I_S table needs besides the default methods
50
class CollationISMethods : public InfoSchemaMethods
53
virtual int fillTable(Session *session,
62
* Class which implements any methods that the collation char set
63
* I_S table needs besides the default methods
65
class CollCharISMethods : public InfoSchemaMethods
68
virtual int fillTable(Session *session,
75
* KeyColUsageISMethods
77
* Class which implements any methods that the key column usage
78
* I_S table needs besides the default methods
80
class KeyColUsageISMethods : public InfoSchemaMethods
83
virtual int processTable(Session *session, TableList *tables,
84
Table *table, bool res, LEX_STRING *db_name,
85
LEX_STRING *table_name) const;
92
* Class which implements any methods that the PLUGINS
93
* I_S table needs besides the default methods
95
class PluginsISMethods : public InfoSchemaMethods
98
virtual int fillTable(Session *session,
105
* ProcessListISMethods
107
* Class which implements any methods that the PROCESSLIST
108
* I_S table needs besides the default methods
110
class ProcessListISMethods : public InfoSchemaMethods
113
virtual int fillTable(Session *session,
120
* RefConstraintISMethods
122
* Class which implements any methods that the REFERENTIAL_CONSTRAINTS
123
* I_S table needs besides the default methods
125
class RefConstraintsISMethods : public InfoSchemaMethods
129
* Fill and store records into I_S.referential_constraints table
131
* @param[in] session thread handle
132
* @param[in] tables table list struct(processed table)
133
* @param[in] table I_S table
134
* @param[in] res 1 means the error during opening of the processed table
135
* 0 means processed table is opened without error
136
* @param[in] base_name db name
137
* @param[in] file_name table name
139
* @return 0 on success; 1 on failure
141
virtual int processTable(Session *session, TableList *tables,
142
Table *table, bool res, LEX_STRING *db_name,
143
LEX_STRING *table_name) const;
148
* TabConstraintsISMethods
150
* Class which implements any methods that the TABLE_CONSTRAINTS
151
* I_S table needs besides the default methods
153
class TabConstraintsISMethods : public InfoSchemaMethods
156
virtual int processTable(Session *session, TableList *tables,
157
Table *table, bool res, LEX_STRING *db_name,
158
LEX_STRING *table_name) const;
161
#endif /* DRIZZLE_INFO_SCHEMA_METHODS_H */