summaryrefslogtreecommitdiff
path: root/sql/item.h
diff options
context:
space:
mode:
authorunknown <gshchepa/uchum@gleb.loc>2007-11-11 06:07:38 +0400
committerunknown <gshchepa/uchum@gleb.loc>2007-11-11 06:07:38 +0400
commitaa95c4a7ed26b24efbe4b710d1a8adef7c057f37 (patch)
tree5ab8e236fdcd628ece92a5362dbe2c32fa6d48fb /sql/item.h
parent13451ac15558f6cdfb128c7d1f6111d3de9c41f2 (diff)
parentc0df12e3a8c86c0ce357438d16c4470cb62d72a6 (diff)
downloadmariadb-git-aa95c4a7ed26b24efbe4b710d1a8adef7c057f37.tar.gz
Merge gleb.loc:/home/uchum/5.0-opt
into gleb.loc:/home/uchum/5.1-opt sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_subselect.cc: Auto merged sql/sp_rcontext.cc: Auto merged sql/sql_class.cc: Auto merged mysql-test/r/subselect.result: Merge with 5.0-opt. mysql-test/t/subselect.test: Merge with 5.0-opt.
Diffstat (limited to 'sql/item.h')
-rw-r--r--sql/item.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/sql/item.h b/sql/item.h
index ba89985c3dc..6990d9ed021 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -2637,7 +2637,7 @@ public:
};
virtual void store(Item *)= 0;
enum Type type() const { return CACHE_ITEM; }
- static Item_cache* get_cache(Item_result type);
+ static Item_cache* get_cache(const Item *item);
table_map used_tables() const { return used_table_map; }
virtual void keep_array() {}
// to prevent drop fixed flag (no need parent cleanup call)
@@ -2699,9 +2699,16 @@ class Item_cache_str: public Item_cache
{
char buffer[STRING_BUFFER_USUAL_SIZE];
String *value, value_buff;
+ bool is_varbinary;
+
public:
- Item_cache_str(): Item_cache(), value(0) { }
-
+ Item_cache_str(const Item *item) :
+ Item_cache(), value(0),
+ is_varbinary(item->type() == FIELD_ITEM &&
+ ((const Item_field *) item)->field->type() ==
+ MYSQL_TYPE_VARCHAR &&
+ !((const Item_field *) item)->field->has_charset())
+ {}
void store(Item *item);
double val_real();
longlong val_int();
@@ -2709,6 +2716,7 @@ public:
my_decimal *val_decimal(my_decimal *);
enum Item_result result_type() const { return STRING_RESULT; }
CHARSET_INFO *charset() const { return value->charset(); };
+ int save_in_field(Field *field, bool no_conversions);
};
class Item_cache_row: public Item_cache