~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/innobase/handler/ha_innodb.h

  • Committer: lbieber
  • Date: 2010-10-02 19:48:35 UTC
  • mfrom: (1730.6.19 drizzle-make-lcov)
  • Revision ID: lbieber@orisndriz08-20101002194835-q5zd9qc4lvx1xnfo
Merge Hartmut - clean up lex, now require flex to build, also "make lcov" improvements

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*****************************************************************************
2
2
 
3
 
Copyright (C) 2000, 2010, MySQL AB & Innobase Oy. All Rights Reserved.
 
3
Copyright (c) 2000, 2009, MySQL AB & Innobase Oy. All Rights Reserved.
4
4
 
5
5
This program is free software; you can redistribute it and/or modify it under
6
6
the terms of the GNU General Public License as published by the Free Software
11
11
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
12
 
13
13
You should have received a copy of the GNU General Public License along with
14
 
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
15
 
St, Fifth Floor, Boston, MA 02110-1301 USA
 
14
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 
15
Place, Suite 330, Boston, MA 02111-1307 USA
16
16
 
17
17
*****************************************************************************/
18
18
 
31
31
#include <drizzled/plugin/transactional_storage_engine.h>
32
32
 
33
33
using namespace drizzled;
34
 
 
35
 
/* Structure defines translation table between mysql index and innodb
36
 
index structures */
37
 
typedef struct innodb_idx_translate_struct {
38
 
        ulint           index_count;    /*!< number of valid index entries
39
 
                                        in the index_mapping array */
40
 
        ulint           array_size;     /*!< array size of index_mapping */
41
 
        dict_index_t**  index_mapping;  /*!< index pointer array directly
42
 
                                        maps to index in Innodb from MySQL
43
 
                                        array index */
44
 
} innodb_idx_translate_t;
45
 
 
46
34
/** InnoDB table share */
47
35
typedef struct st_innobase_share {
48
36
        THR_LOCK        lock;           /*!< MySQL lock protecting
52
40
                                        incremented in get_share()
53
41
                                        and decremented in free_share() */
54
42
        void*           table_name_hash;/*!< hash table chain node */
55
 
        innodb_idx_translate_t  idx_trans_tbl;  /*!< index translation
56
 
                                                table between MySQL and
57
 
                                                Innodb */
58
43
 
59
44
        st_innobase_share(const char *arg) :
60
45
          use_count(0)
115
100
        UNIV_INTERN ulint innobase_reset_autoinc(uint64_t auto_inc);
116
101
        UNIV_INTERN ulint innobase_get_autoinc(uint64_t* value);
117
102
        ulint innobase_update_autoinc(uint64_t  auto_inc);
118
 
        UNIV_INTERN void innobase_initialize_autoinc();
 
103
        UNIV_INTERN ulint innobase_initialize_autoinc();
119
104
        UNIV_INTERN dict_index_t* innobase_get_index(uint keynr);
 
105
        UNIV_INTERN uint64_t innobase_get_int_col_max_value(const Field* field);
120
106
 
121
107
        /* Init values for the class: */
122
108
 public:
123
109
        UNIV_INTERN ha_innobase(plugin::StorageEngine &engine,
124
 
                                Table &table_arg);
 
110
                                TableShare &table_arg);
125
111
        UNIV_INTERN ~ha_innobase();
126
112
  /**
127
113
   * Returns the plugin::TransactionStorageEngine pointer
133
119
   */
134
120
  UNIV_INTERN plugin::TransactionalStorageEngine *getTransactionalEngine()
135
121
  {
136
 
    return static_cast<plugin::TransactionalStorageEngine *>(getEngine());
 
122
    return static_cast<plugin::TransactionalStorageEngine *>(engine);
137
123
  }
138
124
 
139
125
        UNIV_INTERN const char* index_type(uint key_number);
140
126
        UNIV_INTERN const key_map* keys_to_use_for_scanning();
141
127
 
142
 
        UNIV_INTERN int doOpen(const drizzled::identifier::Table &identifier, int mode, uint test_if_locked);
 
128
        UNIV_INTERN int doOpen(const drizzled::TableIdentifier &identifier, int mode, uint test_if_locked);
143
129
        UNIV_INTERN int close(void);
144
130
        UNIV_INTERN double scan_time();
145
131
        UNIV_INTERN double read_time(uint index, uint ranges, ha_rows rows);
219
205
};
220
206
 
221
207
 
 
208
extern "C" {
 
209
 
222
210
/** Get the file name of the MySQL binlog.
223
211
 * @return the name of the binlog file
224
212
 */
237
225
*/
238
226
int session_slave_thread(const Session *session);
239
227
 
 
228
}
 
229
 
240
230
typedef struct trx_struct trx_t;
241
231
/********************************************************************//**
242
232
@file Cursor/ha_innodb.h
244
234
about a possible transaction rollback inside InnoDB caused by a lock wait
245
235
timeout or a deadlock.
246
236
@return MySQL error code */
247
 
UNIV_INTERN
 
237
extern "C" UNIV_INTERN
248
238
int
249
239
convert_error_code_to_mysql(
250
240
/*========================*/
255
245
/*********************************************************************//**
256
246
Allocates an InnoDB transaction for a MySQL Cursor object.
257
247
@return InnoDB transaction handle */
258
 
UNIV_INTERN
 
248
extern "C" UNIV_INTERN
259
249
trx_t*
260
250
innobase_trx_allocate(
261
251
/*==================*/
262
252
        Session         *session);      /*!< in: user thread handle */
263
 
 
264
 
/***********************************************************************
265
 
This function checks each index name for a table against reserved
266
 
system default primary index name 'GEN_CLUST_INDEX'. If a name matches,
267
 
this function pushes an error message to the client, and returns true. */
268
 
bool
269
 
innobase_index_name_is_reserved(
270
 
/*============================*/
271
 
                                        /* out: true if index name matches a
272
 
                                        reserved name */
273
 
        const trx_t*    trx,            /* in: InnoDB transaction handle */
274
 
        const drizzled::KeyInfo*        key_info,/* in: Indexes to be created */
275
 
        ulint           num_of_keys);   /* in: Number of indexes to
276
 
                                        be created. */
277
 
 
278
253
#endif /* INNODB_HANDLER_HA_INNODB_H */