Commit 03a5e2e7 authored by unknown's avatar unknown
Browse files

Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt

into  moonbone.local:/work/15950-bug-5.0-opt-mysql

parents 85ac350c c2ef98ad
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -2850,3 +2850,10 @@ Tables_in_test
t1
DROP TABLE t1;
DROP VIEW IF EXISTS v1;
create table t1 (f1 datetime);
create view v1 as select * from t1 where f1 between now() and now() + interval 1 minute;
show create view v1;
View	Create View
v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` where (`t1`.`f1` between now() and (now() + interval 1 minute))
drop view v1;
drop table t1;
+9 −0
Original line number Diff line number Diff line
@@ -2718,3 +2718,12 @@ DROP TABLE t1;
--disable_warnings
DROP VIEW IF EXISTS v1;
--enable_warnings

#
# Bug #15950: NOW() optimized away in VIEWs
#
create table t1 (f1 datetime);
create view v1 as select * from t1 where f1 between now() and now() + interval 1 minute;
show create view v1;
drop view v1;
drop table t1;
+28 −20
Original line number Diff line number Diff line
@@ -125,6 +125,13 @@ static void agg_cmp_type(THD *thd, Item_result *type, Item **items, uint nitems)
  uchar null_byte;
  Field *field= NULL;

  /*
    Do not convert items while creating a or showing a view in order
    to store/display the original query in these cases.
  */
  if (thd->lex->sql_command != SQLCOM_CREATE_VIEW &&
      thd->lex->sql_command != SQLCOM_SHOW_CREATE)
  {
    /* Search for date/time fields/functions */
    for (i= 0; i < nitems; i++)
    {
@@ -152,6 +159,7 @@ static void agg_cmp_type(THD *thd, Item_result *type, Item **items, uint nitems)
        break;
      }
    }
  }
  if (field)
  {
    /* Check the rest of the list for presence of a string field/function. */