summaryrefslogtreecommitdiff
path: root/sql/item.h
diff options
context:
space:
mode:
authorunknown <monty@narttu.mysql.fi>2003-03-20 02:06:08 +0200
committerunknown <monty@narttu.mysql.fi>2003-03-20 02:06:08 +0200
commit97cd4fb127f4096f2196a71778a15c8183aa7784 (patch)
tree025fe4204ddb1d72e14a98b1df497f7329939ebd /sql/item.h
parent161942e3cefd8923633e0a7b3b7a9860a95f6fbc (diff)
parentc2297fb5ecaf2e98b21ae8287535d0b7fbced34b (diff)
downloadmariadb-git-97cd4fb127f4096f2196a71778a15c8183aa7784.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into narttu.mysql.fi:/my/mysql-4.1 configure.in: Auto merged libmysqld/lib_sql.cc: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_func.cc: Auto merged sql/lex.h: Auto merged sql/log.cc: Auto merged sql/log_event.cc: Auto merged sql/mysqld.cc: Auto merged sql/repl_failsafe.cc: Auto merged sql/set_var.cc: Auto merged sql/slave.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_repl.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_yacc.yy: Auto merged
Diffstat (limited to 'sql/item.h')
-rw-r--r--sql/item.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/sql/item.h b/sql/item.h
index d7ca9bf855a..1b5fafc180f 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -39,8 +39,8 @@ public:
SUBSELECT_ITEM, ROW_ITEM, CACHE_ITEM};
enum cond_result { COND_UNDEF,COND_OK,COND_TRUE,COND_FALSE };
- enum coercion { COER_NOCOLL=3, COER_COERCIBLE=2,
- COER_IMPLICIT=1, COER_EXPLICIT=0 };
+ enum coercion { COER_COERCIBLE=3, COER_IMPLICIT=2,
+ COER_NOCOLL=1, COER_EXPLICIT=0 };
String str_value; /* used to store value */
my_string name; /* Name from select */
@@ -63,7 +63,7 @@ public:
*/
Item(THD *thd, Item &item);
virtual ~Item() { name=0; } /*lint -e1509 */
- void set_name(const char *str,uint length=0);
+ void set_name(const char *str,uint length, CHARSET_INFO *cs);
void init_make_field(Send_field *tmp_field,enum enum_field_types type);
virtual void make_field(Send_field *field);
virtual bool fix_fields(THD *, struct st_table_list *, Item **);
@@ -115,6 +115,13 @@ public:
CHARSET_INFO *default_charset() const;
CHARSET_INFO *charset() const { return str_value.charset(); };
void set_charset(CHARSET_INFO *cs) { str_value.set_charset(cs); }
+ void set_charset(CHARSET_INFO *cs, enum coercion coer)
+ {
+ str_value.set_charset(cs);
+ coercibility= coer;
+ }
+ bool set_charset(CHARSET_INFO *cs1, enum coercion co1,
+ CHARSET_INFO *cs2, enum coercion co2);
virtual void set_outer_resolving() {}
// Row emulation
@@ -362,7 +369,7 @@ public:
str_value.set(str,length,cs);
coercibility= coer;
max_length=length;
- name=(char*) str_value.ptr();
+ set_name(str, length, cs);
decimals=NOT_FIXED_DEC;
}
Item_string(const char *name_par, const char *str, uint length,
@@ -371,7 +378,7 @@ public:
str_value.set(str,length,cs);
coercibility= coer;
max_length=length;
- name=(char*) name_par;
+ set_name(name_par,0,cs);
decimals=NOT_FIXED_DEC;
}
~Item_string() {}