summaryrefslogtreecommitdiff
path: root/sql/sql_type.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_type.h')
-rw-r--r--sql/sql_type.h38
1 files changed, 35 insertions, 3 deletions
diff --git a/sql/sql_type.h b/sql/sql_type.h
index 6dbd51a1ebd..ac95c5a9c88 100644
--- a/sql/sql_type.h
+++ b/sql/sql_type.h
@@ -55,6 +55,7 @@ class Item_char_typecast;
class Item_time_typecast;
class Item_date_typecast;
class Item_datetime_typecast;
+class Item_longlong_typecast;
class Item_func_plus;
class Item_func_minus;
class Item_func_mul;
@@ -73,7 +74,6 @@ struct Schema_specification_st;
struct TABLE;
struct SORT_FIELD_ATTR;
-
/*
Flags for collation aggregation modes, used in TDCollation::agg():
@@ -984,6 +984,8 @@ public:
Item_date_typecast_fix_length_and_dec(Item_date_typecast *item) const;
virtual bool
Item_datetime_typecast_fix_length_and_dec(Item_datetime_typecast *item) const;
+ virtual bool
+ Item_longlong_typecast_fix_length_and_dec(Item_longlong_typecast *item) const;
virtual bool
Item_func_plus_fix_length_and_dec(Item_func_plus *func) const= 0;
@@ -1892,6 +1894,17 @@ public:
};
+class Type_handler_vers_trx_id: public Type_handler_longlong
+{
+public:
+ virtual ~Type_handler_vers_trx_id() {}
+ Field *make_table_field(const LEX_CSTRING *name,
+ const Record_addr &addr,
+ const Type_all_attributes &attr,
+ TABLE *table) const;
+};
+
+
class Type_handler_int24: public Type_handler_general_purpose_int
{
static const Name m_name_mediumint;
@@ -2568,6 +2581,14 @@ public:
};
+class Type_handler_varchar_compressed: public Type_handler_varchar
+{
+public:
+ Field *make_conversion_table_field(TABLE *, uint metadata,
+ const Field *target) const;
+};
+
+
class Type_handler_blob_common: public Type_handler_longstr
{
public:
@@ -2669,6 +2690,14 @@ public:
};
+class Type_handler_blob_compressed: public Type_handler_blob
+{
+public:
+ Field *make_conversion_table_field(TABLE *, uint metadata,
+ const Field *target) const;
+};
+
+
#ifdef HAVE_SPATIAL
class Type_handler_geometry: public Type_handler_string_result
{
@@ -2829,14 +2858,16 @@ public:
class Type_handler_hybrid_field_type
{
const Type_handler *m_type_handler;
+ bool m_vers_trx_id;
bool aggregate_for_min_max(const Type_handler *other);
+
public:
Type_handler_hybrid_field_type();
Type_handler_hybrid_field_type(const Type_handler *handler)
- :m_type_handler(handler)
+ :m_type_handler(handler), m_vers_trx_id(false)
{ }
Type_handler_hybrid_field_type(const Type_handler_hybrid_field_type *other)
- :m_type_handler(other->m_type_handler)
+ :m_type_handler(other->m_type_handler), m_vers_trx_id(other->m_vers_trx_id)
{ }
void swap(Type_handler_hybrid_field_type &other)
{
@@ -2925,6 +2956,7 @@ extern MYSQL_PLUGIN_IMPORT Type_handler_int24 type_handler_int24;
extern MYSQL_PLUGIN_IMPORT Type_handler_long type_handler_long;
extern MYSQL_PLUGIN_IMPORT Type_handler_longlong type_handler_longlong;
extern MYSQL_PLUGIN_IMPORT Type_handler_longlong type_handler_ulonglong;
+extern MYSQL_PLUGIN_IMPORT Type_handler_vers_trx_id type_handler_vers_trx_id;
extern MYSQL_PLUGIN_IMPORT Type_handler_newdecimal type_handler_newdecimal;
extern MYSQL_PLUGIN_IMPORT Type_handler_olddecimal type_handler_olddecimal;