From b37ce8e76944610b92087fe0e04e05f1b60903c8 Mon Sep 17 00:00:00 2001 From: "bar@gw.udmsearch.izhnet.ru" <> Date: Tue, 12 Mar 2002 21:37:58 +0400 Subject: New ctype functions/macros to support many charsets at a time --- sql/item_timefunc.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'sql/item_timefunc.cc') diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 8f55a02b020..b10054e11d2 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -49,16 +49,16 @@ bool get_interval_info(const char *str,uint length,uint count, { const char *end=str+length; uint i; - while (str != end && !isdigit(*str)) + while (str != end && !my_isdigit(system_charset_info,*str)) str++; for (i=0 ; i < count ; i++) { long value; - for (value=0; str != end && isdigit(*str) ; str++) + for (value=0; str != end && my_isdigit(system_charset_info,*str) ; str++) value=value*10L + (long) (*str - '0'); values[i]= value; - while (str != end && !isdigit(*str)) + while (str != end && !my_isdigit(system_charset_info,*str)) str++; if (str == end && i != count-1) { @@ -289,7 +289,7 @@ static bool get_interval_value(Item *args,interval_type int_type, /* record negative intervalls in t->neg */ str=res->ptr(); const char *end=str+res->length(); - while (str != end && isspace(*str)) + while (str != end && my_isspace(system_charset_info,*str)) str++; if (str != end && *str == '-') { -- cgit v1.2.1 From 196aa19cf6624c17fb3c36c876e3e1a40f18ed23 Mon Sep 17 00:00:00 2001 From: "bar@gw.udmsearch.izhnet.ru" <> Date: Fri, 17 May 2002 16:29:52 +0500 Subject: Now string values are created and filled with charset field SELECT func(charset2) FROM t ORDER BY 1 works in correct charset --- sql/item_timefunc.cc | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) (limited to 'sql/item_timefunc.cc') diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 404d44d7122..9bbb9e4fe19 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -29,11 +29,31 @@ ** Todo: Move month and days to language files */ -static String month_names[] = { "January", "February", "March", "April", - "May", "June", "July", "August", - "September", "October", "November", "December" }; -static String day_names[] = { "Monday", "Tuesday", "Wednesday", - "Thursday", "Friday", "Saturday" ,"Sunday" }; +static String month_names[] = +{ + String("January", default_charset_info), + String("February", default_charset_info), + String("March", default_charset_info), + String("April", default_charset_info), + String("May", default_charset_info), + String("June", default_charset_info), + String("July", default_charset_info), + String("August", default_charset_info), + String("September", default_charset_info), + String("October", default_charset_info), + String("November", default_charset_info), + String("December", default_charset_info) +}; +static String day_names[] = +{ + String("Monday", default_charset_info), + String("Tuesday", default_charset_info), + String("Wednesday", default_charset_info), + String("Thursday", default_charset_info), + String("Friday", default_charset_info), + String("Saturday", default_charset_info), + String("Sunday", default_charset_info) +}; /* ** Get a array of positive numbers from a string object. @@ -376,7 +396,7 @@ String *Item_date::val_str(String *str) return (String*) 0; if (!value) // zero daynr { - str->copy("0000-00-00"); + str->copy("0000-00-00",10); return str; } if (str->alloc(11)) -- cgit v1.2.1 From 22bcce253e9f964bfec8d72f42ae55ab22e1228f Mon Sep 17 00:00:00 2001 From: "Sinisa@sinisa.nasamreza.org" <> Date: Sat, 24 Aug 2002 14:49:04 +0300 Subject: Adding a necessary functionality to ::store and ::save_in_field that will take place properly after pull from 4.0, in order to handle conversions from quoted constants to bigint's. --- sql/item_timefunc.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sql/item_timefunc.cc') diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 9bbb9e4fe19..297ff30bd9c 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -410,7 +410,7 @@ String *Item_date::val_str(String *str) } -bool Item_date::save_in_field(Field *field) +int Item_date::save_in_field(Field *field) { TIME ltime; timestamp_type t_type=TIMESTAMP_FULL; @@ -525,7 +525,7 @@ bool Item_func_now::get_date(TIME *res, } -bool Item_func_now::save_in_field(Field *to) +int Item_func_now::save_in_field(Field *to) { to->set_notnull(); to->store_time(<ime,TIMESTAMP_FULL); -- cgit v1.2.1