summaryrefslogtreecommitdiff
path: root/sql/item.h
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2003-11-23 17:59:28 +0200
committerunknown <bell@sanja.is.com.ua>2003-11-23 17:59:28 +0200
commit105087127ed6f05c03b34f79402341cebfb8b71a (patch)
treee1e76ccec7e31e26c1b2989bbb32189db8f475f9 /sql/item.h
parentc1dd9540a4e397668040ab4027500138c238081b (diff)
parent3e21b667bcf164779674e0c08d8c1b9044acc2b5 (diff)
downloadmariadb-git-105087127ed6f05c03b34f79402341cebfb8b71a.tar.gz
Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-union-4.1 sql/item.cc: Auto merged sql/item.h: Auto merged
Diffstat (limited to 'sql/item.h')
-rw-r--r--sql/item.h32
1 files changed, 27 insertions, 5 deletions
diff --git a/sql/item.h b/sql/item.h
index 53db177b360..c79964f5811 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -98,7 +98,7 @@ public:
COPY_STR_ITEM, FIELD_AVG_ITEM, DEFAULT_VALUE_ITEM,
PROC_ITEM,COND_ITEM, REF_ITEM, FIELD_STD_ITEM,
FIELD_VARIANCE_ITEM, INSERT_VALUE_ITEM,
- SUBSELECT_ITEM, ROW_ITEM, CACHE_ITEM};
+ SUBSELECT_ITEM, ROW_ITEM, CACHE_ITEM, TYPE_HOLDER};
enum cond_result { COND_UNDEF,COND_OK,COND_TRUE,COND_FALSE };
@@ -390,17 +390,17 @@ class Item_int :public Item
public:
const longlong value;
Item_int(int32 i,uint length=11) :value((longlong) i)
- { max_length=length;}
+ { max_length=length; fixed= 1; }
#ifdef HAVE_LONG_LONG
Item_int(longlong i,uint length=21) :value(i)
- { max_length=length;}
+ { max_length=length; fixed= 1;}
#endif
Item_int(const char *str_arg,longlong i,uint length) :value(i)
- { max_length=length; name=(char*) str_arg;}
+ { max_length=length; name=(char*) str_arg; fixed= 1; }
Item_int(const char *str_arg) :
value(str_arg[0] == '-' ? strtoll(str_arg,(char**) 0,10) :
(longlong) strtoull(str_arg,(char**) 0,10))
- { max_length= (uint) strlen(str_arg); name=(char*) str_arg;}
+ { max_length= (uint) strlen(str_arg); name=(char*) str_arg; fixed= 1; }
enum Type type() const { return INT_ITEM; }
enum Item_result result_type () const { return INT_RESULT; }
enum_field_types field_type() const { return MYSQL_TYPE_LONGLONG; }
@@ -988,6 +988,28 @@ public:
void bring_value();
};
+
+/*
+ Used to store type. name, length of Item for UNIONS & derived table
+*/
+class Item_type_holder: public Item
+{
+protected:
+ Item_result item_type;
+ Field *field_example;
+public:
+ Item_type_holder(THD*, Item*);
+
+ Item_result result_type () const { return item_type; }
+ enum Type type() const { return TYPE_HOLDER; }
+ double val();
+ longlong val_int();
+ String *val_str(String*);
+ void join_types(THD *thd, Item *);
+ Field *example() { return field_example; }
+};
+
+
extern Item_buff *new_Item_buff(Item *item);
extern Item_result item_cmp_type(Item_result a,Item_result b);
extern Item *resolve_const_item(Item *item,Item *cmp_item);