summaryrefslogtreecommitdiff
path: root/mysql-test/r/timezone2.result
diff options
context:
space:
mode:
authorunknown <dlenev@brandersnatch.localdomain>2005-01-26 22:25:02 +0300
committerunknown <dlenev@brandersnatch.localdomain>2005-01-26 22:25:02 +0300
commit20bd0bd6fd693eec59ed1de47a27b46f2af6df3b (patch)
tree72a9f7c083067cfd405c029c61debdc8f66d5fe0 /mysql-test/r/timezone2.result
parente8e48614012d968d59606d4994d9e3ab6aa61eee (diff)
downloadmariadb-git-20bd0bd6fd693eec59ed1de47a27b46f2af6df3b.tar.gz
Fix for bug #7899 "CREATE TABLE .. SELECT .. and CONVERT_TZ() function
does not work well together". Now using simplier and more correct implementation of st_lex::unlink_first_table()/link_first_table_back() (It also nicely handles case when global table list is created because of implictly used time zone tables). (2nd attempt) Fix for bug #7705 "CONVERT_TZ() crashes with subquery/WHERE on index column". Implemented new approach for caching objects for constant time zone arguments. Now instead of determining whenever these arguments are constants and performing time zone lookup at fix_fields() stage, we do it on first get_date() invocation. Cleanup of global @@time_zone variable handling. mysql-test/r/timezone2.result: Added test for bugs #7705 "CONVERT_TZ() crashes with subquery/WHERE on index column" and #7899 "CREATE TABLE .. SELECT .. and CONVERT_TZ() function does not work well together". mysql-test/t/timezone2.test: Added test for bugs #7705 "CONVERT_TZ() crashes with subquery/WHERE on index column" and #7899 "CREATE TABLE .. SELECT .. and CONVERT_TZ() function does not work well together". sql/item_timefunc.cc: Item_func_convert_tz(): New approach for caching objects for constant time zone arguments. Now instead of determining whenever these arguments are constants and performing time zone lookup at fix_fields() stage, we do it on first get_date() invocation. This works better in cases when const_item() for these arguments returns true only on get_date() stage but not on fix_fields() stage (e.g. this happens in quries with joins or derived tables). sql/item_timefunc.h: Item_func_convert_tz(): Added from_tz_cached/to_tz_cached members indicating whenever we already have Time_zone object representing one of constant time zone arguments. sql/set_var.cc: Cleaned up global @@time_zone variable handling. Now we use proper locking when we are setting or reading its value. sql/set_var.h: Removed declaration of sys_var_thd_time_zone::get_tz_ptr() method, which no longer used. sql/sql_lex.cc: st_lex::unlink_first_table(), st_lex::link_first_table_back(): Simplify implementation according to Monty's suggestion. Instead doing something special if global and local table lists are the same, we simply save/restore pointers to first elements of both global and local lists (which works even when this lists are the same!). This handles nicely the case when we have separate global table list becuase time zone tables are implicitly used. sql/tztime.cc: Backport of Monty's fixes from 5.0, which give us nicer error messages if we haven't found time zone with such name or its description.
Diffstat (limited to 'mysql-test/r/timezone2.result')
-rw-r--r--mysql-test/r/timezone2.result8
1 files changed, 8 insertions, 0 deletions
diff --git a/mysql-test/r/timezone2.result b/mysql-test/r/timezone2.result
index a1a2fec739f..206ff79e7ba 100644
--- a/mysql-test/r/timezone2.result
+++ b/mysql-test/r/timezone2.result
@@ -303,3 +303,11 @@ delete from mysql.db where user like 'mysqltest\_%';
delete from mysql.tables_priv where user like 'mysqltest\_%';
flush privileges;
drop table t1, t2;
+select convert_tz('2005-01-14 17:00:00', 'UTC', custTimeZone) from (select 'UTC' as custTimeZone) as tmp;
+convert_tz('2005-01-14 17:00:00', 'UTC', custTimeZone)
+2005-01-14 17:00:00
+create table t1 select convert_tz(NULL, NULL, NULL);
+select * from t1;
+convert_tz(NULL, NULL, NULL)
+NULL
+drop table t1;