20
20
#ifndef DRIZZLED_CURSOR_H
21
21
#define DRIZZLED_CURSOR_H
23
#include <drizzled/atomics.h>
24
#include <drizzled/definitions.h>
23
#include <drizzled/xid.h>
25
24
#include <drizzled/discrete_interval.h>
26
#include <drizzled/error_t.h>
27
#include <drizzled/ha_statistics.h>
28
#include <drizzled/handler_structs.h>
29
25
#include <drizzled/identifier.h>
26
#include <drizzled/definitions.h>
30
27
#include <drizzled/key_map.h>
31
#include <drizzled/message/table.h>
29
/* Definitions for parameters to do with Cursor-routines */
31
#include <drizzled/thr_lock.h>
32
#include <drizzled/sql_string.h>
32
33
#include <drizzled/sql_list.h>
33
#include <drizzled/thr_lock.h>
34
#include <drizzled/xid.h>
34
#include <drizzled/plugin/storage_engine.h>
35
#include <drizzled/handler_structs.h>
36
#include <drizzled/ha_statistics.h>
37
#include <drizzled/atomics.h>
39
#include <drizzled/message/table.pb.h>
37
42
#include <algorithm>
39
#include <drizzled/visibility.h>
135
143
If a blob column has NULL value, then its length and blob data pointer
136
144
must be set to 0.
138
class DRIZZLED_API Cursor
140
148
friend class SEAPITesterCursor;
141
149
Table &table; /* The current open table */
208
Used by SHOW TABLE STATUS to get the current auto_inc from the engine
210
uint64_t getAutoIncrement()
212
return stats.auto_increment_value;
216
216
insert id for the current row (*autogenerated*; if not
217
217
autogenerated, it's 0).
218
218
At first successful insertion, this variable is stored into
273
273
/* Estimates calculation */
274
274
virtual double scan_time(void)
275
{ return static_cast<double>(stats.data_file_length) / IO_SIZE + 2; }
275
{ return uint64_t2double(stats.data_file_length) / IO_SIZE + 2; }
276
276
virtual double read_time(uint32_t, uint32_t ranges, ha_rows rows)
277
{ return ranges + rows; }
277
{ return rows2double(ranges+rows); }
279
279
virtual double index_only_read_time(uint32_t keynr, double records);
665
665
int *timestamps, int *timestamps_with_niladic);
667
667
bool create_table(Session *session,
668
const identifier::Table &identifier,
669
HA_CREATE_INFO *create_info,
670
message::Table &table_proto,
671
AlterInfo *alter_info,
672
bool tmp_table, uint32_t select_field_count,
673
bool is_if_not_exists);
668
const identifier::Table &identifier,
669
HA_CREATE_INFO *create_info,
670
message::Table &table_proto,
671
AlterInfo *alter_info,
672
bool tmp_table, uint32_t select_field_count,
673
bool is_if_not_exists);
675
675
bool create_table_no_lock(Session *session,
676
const identifier::Table &identifier,
677
HA_CREATE_INFO *create_info,
678
message::Table &table_proto,
679
AlterInfo *alter_info,
680
bool tmp_table, uint32_t select_field_count,
681
bool is_if_not_exists);
676
const identifier::Table &identifier,
677
HA_CREATE_INFO *create_info,
678
message::Table &table_proto,
679
AlterInfo *alter_info,
680
bool tmp_table, uint32_t select_field_count,
681
bool is_if_not_exists);
683
683
bool create_like_table(Session* session,
684
684
identifier::Table::const_reference destination_identifier,