44
44
#include <drizzled/field.h>
45
45
#include <drizzled/field/blob.h>
46
#include <drizzled/field/timestamp.h>
47
46
#include <drizzled/error.h>
48
47
#include <drizzled/table.h>
49
48
#include <drizzled/session.h>
50
#include "drizzled/internal/my_sys.h"
49
#include <drizzled/internal/my_sys.h>
52
51
#include "ha_tina.h"
65
64
unsigned char + unsigned char + uint64_t + uint64_t + uint64_t + uint64_t + unsigned char
67
#define META_BUFFER_SIZE sizeof(unsigned char) + sizeof(unsigned char) + sizeof(uint64_t) \
68
+ sizeof(uint64_t) + sizeof(uint64_t) + sizeof(uint64_t) + sizeof(unsigned char)
69
#define TINA_CHECK_HEADER 254 // The number we use to determine corruption
70
#define BLOB_MEMROOT_ALLOC_SIZE 8192
66
static const int META_BUFFER_SIZE = sizeof(unsigned char) + sizeof(unsigned char) + sizeof(uint64_t)
67
+ sizeof(uint64_t) + sizeof(uint64_t) + sizeof(uint64_t) + sizeof(unsigned char);
68
static const int TINA_CHECK_HEADER = 254; // The number we use to determine corruption
69
static const int BLOB_MEMROOT_ALLOC_SIZE = 8192;
72
71
/* The file extension */
73
#define CSV_EXT ".CSV" // The data file
74
#define CSN_EXT ".CSN" // Files used during repair and update
75
#define CSM_EXT ".CSM" // Meta file
72
static const char* CSV_EXT = ".CSV" // The data file
73
static const char* CSN_EXT = ".CSN" // Files used during repair and update
74
static const char* CSM_EXT = ".CSM" // Meta file
78
77
static int read_meta_file(int meta_file, ha_rows *rows);
124
123
int doCreateTable(Session &,
125
124
Table &table_arg,
126
const drizzled::TableIdentifier &identifier,
125
const drizzled::identifier::Table &identifier,
127
126
drizzled::message::Table&);
129
128
int doGetTableDefinition(Session& session,
130
const drizzled::TableIdentifier &identifier,
129
const drizzled::identifier::Table &identifier,
131
130
drizzled::message::Table &table_message);
133
int doDropTable(Session&, const drizzled::TableIdentifier &identifier);
132
int doDropTable(Session&, const drizzled::identifier::Table &identifier);
134
133
TinaShare *findOpenTable(const string table_name);
135
134
void addOpenTable(const string &table_name, TinaShare *);
136
135
void deleteOpenTable(const string &table_name);
139
138
uint32_t max_keys() const { return 0; }
140
139
uint32_t max_key_parts() const { return 0; }
141
140
uint32_t max_key_length() const { return 0; }
142
bool doDoesTableExist(Session& session, const drizzled::TableIdentifier &identifier);
143
int doRenameTable(Session&, const drizzled::TableIdentifier &from, const drizzled::TableIdentifier &to);
141
bool doDoesTableExist(Session& session, const drizzled::identifier::Table &identifier);
142
int doRenameTable(Session&, const drizzled::identifier::Table &from, const drizzled::identifier::Table &to);
145
144
void doGetTableIdentifiers(drizzled::CachedDirectory &directory,
146
const drizzled::SchemaIdentifier &schema_identifier,
147
drizzled::TableIdentifier::vector &set_of_identifiers);
145
const drizzled::identifier::Schema &schema_identifier,
146
drizzled::identifier::Table::vector &set_of_identifiers);
150
149
void Tina::doGetTableIdentifiers(drizzled::CachedDirectory&,
151
const drizzled::SchemaIdentifier&,
152
drizzled::TableIdentifier::vector&)
150
const drizzled::identifier::Schema&,
151
drizzled::identifier::Table::vector&)
156
155
int Tina::doRenameTable(Session &session,
157
const drizzled::TableIdentifier &from, const drizzled::TableIdentifier &to)
156
const drizzled::identifier::Table &from, const drizzled::identifier::Table &to)
160
159
for (const char **ext= bas_ext(); *ext ; ext++)
175
bool Tina::doDoesTableExist(Session &session, const drizzled::TableIdentifier &identifier)
174
bool Tina::doDoesTableExist(Session &session, const drizzled::identifier::Table &identifier)
177
176
return session.getMessageCache().doesTableMessageExist(identifier);
181
180
int Tina::doDropTable(Session &session,
182
const drizzled::TableIdentifier &identifier)
181
const drizzled::identifier::Table &identifier)
185
184
int enoent_or_zero= ENOENT; // Error if no file was deleted
231
230
int Tina::doGetTableDefinition(Session &session,
232
const drizzled::TableIdentifier &identifier,
231
const drizzled::identifier::Table &identifier,
233
232
drizzled::message::Table &table_message)
235
234
if (session.getMessageCache().getTableMessage(identifier, table_message))
782
781
this will not be called for every request. Any sort of positions
783
782
that need to be reset should be kept in the ::extra() call.
785
int ha_tina::doOpen(const TableIdentifier &identifier, int , uint32_t )
784
int ha_tina::doOpen(const identifier::Table &identifier, int , uint32_t )
787
786
if (not (share= get_share(identifier.getPath().c_str())))
1270
1269
int Tina::doCreateTable(Session &session,
1271
1270
Table& table_arg,
1272
const drizzled::TableIdentifier &identifier,
1271
const drizzled::identifier::Table &identifier,
1273
1272
drizzled::message::Table &create_proto)
1275
1274
char name_buff[FN_REFLEN];
1324
1323
"CSV storage engine",
1325
1324
PLUGIN_LICENSE_GPL,
1326
1325
tina_init_func, /* Plugin Init */
1327
NULL, /* system variables */
1328
1327
NULL /* config options */
1330
1329
DRIZZLE_DECLARE_PLUGIN_END;