diff options
author | unknown <monty@mashka.mysql.fi> | 2002-12-14 17:43:01 +0200 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2002-12-14 17:43:01 +0200 |
commit | f935c6a2861414dac42b77c80010881ca674b1f0 (patch) | |
tree | ec4419624a982054d0682faee38e3ea102cd16d9 /sql/item_timefunc.h | |
parent | 4a81706558ca558abd22fbcaee2a41ecba66c2d7 (diff) | |
download | mariadb-git-f935c6a2861414dac42b77c80010881ca674b1f0.tar.gz |
Fixes for binary protocol (complement to last push)
Changed timestamp to return string in YYYY-MM-DD HH:MM:SS format.
DATE_ADD() and related functions now returns correct DATE/DATETIME type depending on argument types.
Now all tests passes, still some work left to remove warnings in log files from mysql-test-run
mysql-test/r/cast.result:
New result for time
mysql-test/r/delayed.result:
Timestamp update
mysql-test/r/derived.result:
Fix after bulk insert change
mysql-test/r/explain.result:
Fix after bulk insert change
mysql-test/r/func_date_add.result:
Timestamp change
mysql-test/r/func_str.result:
Timestamp change
mysql-test/r/func_time.result:
Timestamp change
mysql-test/r/innodb.result:
Timestamp change
mysql-test/r/join_outer.result:
Fix after bulk insert change
mysql-test/r/key_primary.result:
Fix after bulk insert change
mysql-test/r/keywords.result:
Timestamp change
mysql-test/r/merge.result:
Removed warning
mysql-test/r/odbc.result:
Fix after bulk insert change
mysql-test/r/range.result:
Fix after bulk insert change
mysql-test/r/select.result:
Fix after bulk insert change
mysql-test/r/subselect.result:
Fixed EXPLAIN output
mysql-test/r/type_datetime.result:
Timestamp update
mysql-test/r/type_ranges.result:
Timestamp update
mysql-test/r/type_timestamp.result:
Timestamp update
mysql-test/r/union.result:
EXPLAIN UPDATE
mysql-test/t/func_str.test:
Timestamp update
mysql-test/t/func_time.test:
New test for interval type result
mysql-test/t/merge.test:
Remove warnings of wrong drop table
mysql-test/t/type_datetime.test:
Timestamp change
mysql-test/t/type_timestamp.test:
Timestamp change
sql/field.cc:
Changed timestamp to return string in YYYY-MM-DD HH:MM:SS format
sql/field.h:
Changed timestamp to return string in YYYY-MM-DD HH:MM:SS format
sql/item.cc:
Binary protocol update
sql/item.h:
Binary protocol update
sql/item_func.cc:
Added comment
sql/item_func.h:
@variables are always returned to the client as strings
sql/item_timefunc.cc:
Changed INTERVAL to return correct type
sql/item_timefunc.h:
Changed INTERVAL to return correct type
sql/mysqld.cc:
Changed default pthread_attr_setstacksize to 129K
sql/protocol.cc:
More type checking
sql/set_var.cc:
Fixed that @convert works ok with new protocol
sql/sql_analyse.cc:
Fixed bug in analyze
sql/sql_class.cc:
Fixed bug from last push in LIMIT
sql/sql_error.cc:
More optimal types
sql/sql_repl.cc:
Binary protocol changes
sql/sql_select.cc:
Fixed bug in multi-table-update
Changed EXPLAIN to return NULL instead of empty strings
sql/sql_show.cc:
Binary protocol
Diffstat (limited to 'sql/item_timefunc.h')
-rw-r--r-- | sql/item_timefunc.h | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h index b4a0b517090..aa075e1a91d 100644 --- a/sql/item_timefunc.h +++ b/sql/item_timefunc.h @@ -443,7 +443,6 @@ class Item_func_from_unixtime :public Item_date_func decimals=0; max_length=19*thd_charset()->mbmaxlen; } -// enum Item_result result_type () const { return STRING_RESULT; } bool get_date(TIME *res,bool fuzzy_date); }; @@ -470,32 +469,34 @@ public: } }; +/* + The following must be sorted so that simple intervals comes first. + (get_interval_value() depends on this) +*/ + +enum interval_type +{ + INTERVAL_YEAR, INTERVAL_MONTH, INTERVAL_DAY, INTERVAL_HOUR, INTERVAL_MINUTE, + INTERVAL_SECOND, INTERVAL_YEAR_MONTH, INTERVAL_DAY_HOUR, INTERVAL_DAY_MINUTE, + INTERVAL_DAY_SECOND, INTERVAL_HOUR_MINUTE, INTERVAL_HOUR_SECOND, + INTERVAL_MINUTE_SECOND +}; -enum interval_type { INTERVAL_YEAR, INTERVAL_MONTH, INTERVAL_DAY, - INTERVAL_HOUR, INTERVAL_MINUTE, INTERVAL_SECOND, - INTERVAL_YEAR_MONTH, INTERVAL_DAY_HOUR, - INTERVAL_DAY_MINUTE, INTERVAL_DAY_SECOND, - INTERVAL_HOUR_MINUTE, INTERVAL_HOUR_SECOND, - INTERVAL_MINUTE_SECOND}; class Item_date_add_interval :public Item_date_func { const interval_type int_type; String value; const bool date_sub_interval; + enum_field_types cached_field_type; public: Item_date_add_interval(Item *a,Item *b,interval_type type_arg,bool neg_arg) :Item_date_func(a,b),int_type(type_arg), date_sub_interval(neg_arg) {} String *val_str(String *); const char *func_name() const { return "date_add_interval"; } - void fix_length_and_dec() - { - set_charset(thd_charset()); - maybe_null=1; - max_length=19*thd_charset()->mbmaxlen; - value.alloc(32); - } + void fix_length_and_dec(); + enum_field_types field_type() const { return cached_field_type; } double val() { return (double) val_int(); } longlong val_int(); bool get_date(TIME *res,bool fuzzy_date); |