Commit 54aed871 authored by unknown's avatar unknown
Browse files

Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-5.0-bug25897

into  moonlight.home:/home/tomash/src/mysql_ab/mysql-5.1


mysql-test/r/view.result:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
mysql-test/t/view.test:
  Manual merge.
parents d5f31c23 86b715a7
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -3025,6 +3025,16 @@ SHOW CREATE VIEW v1;
View	Create View
v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _latin1'The\ZEnd' AS `TheEnd`
DROP VIEW v1;
DROP VIEW IF EXISTS v1;
SELECT * FROM (SELECT 1) AS t;
1
1
CREATE VIEW v1 AS SELECT * FROM (SELECT 1) AS t;
ERROR HY000: View's SELECT contains a subquery in the FROM clause
# Previously the following would fail.
SELECT * FROM (SELECT 1) AS t;
1
1
End of 5.0 tests.
DROP DATABASE IF EXISTS `d-1`;
CREATE DATABASE `d-1`;
+20 −0
Original line number Diff line number Diff line
@@ -2908,6 +2908,7 @@ DROP FUNCTION f1;
DROP VIEW v1;
DROP TABLE t1;


#
# Bug #16813 (WITH CHECK OPTION doesn't work with UPDATE)
#
@@ -2974,8 +2975,27 @@ SHOW CREATE VIEW v1;

DROP VIEW v1;


#
# BUG#25897: Some queries are no longer possible after a CREATE VIEW
# fails 
#
--disable_warnings
DROP VIEW IF EXISTS v1;
--enable_warnings

let $query = SELECT * FROM (SELECT 1) AS t;

eval $query;
--error ER_VIEW_SELECT_DERIVED
eval CREATE VIEW v1 AS $query;
--echo # Previously the following would fail.
eval $query;


--echo End of 5.0 tests.


#
# Bug#21370 View renaming lacks tablename_to_filename encoding
#
+11 −0
Original line number Diff line number Diff line
@@ -100,6 +100,16 @@ void lex_free(void)
}


void
st_parsing_options::reset()
{
  allows_variable= TRUE;
  allows_select_into= TRUE;
  allows_select_procedure= TRUE;
  allows_derived= TRUE;
}


/*
  This is called before every query that is to be parsed.
  Because of this, it's critical to not do too much things here.
@@ -150,6 +160,7 @@ void lex_start(THD *thd, const uchar *buf, uint length)
  lex->safe_to_cache_query= 1;
  lex->time_zone_tables_used= 0;
  lex->leaf_tables_insert= 0;
  lex->parsing_options.reset();
  lex->empty_field_list_on_rset= 0;
  lex->select_lex.select_number= 1;
  lex->next_state=MY_LEX_START;
+2 −4
Original line number Diff line number Diff line
@@ -890,10 +890,8 @@ struct st_parsing_options
  bool allows_select_procedure;
  bool allows_derived;

  st_parsing_options()
    : allows_variable(TRUE), allows_select_into(TRUE),
      allows_select_procedure(TRUE), allows_derived(TRUE)
  {}
  st_parsing_options() { reset(); }
  void reset();
};