Commit 9d9ef52d authored by unknown's avatar unknown
Browse files

Merge


sql/sql_base.cc:
  Auto merged
mysql-test/r/view.result:
  SCCS merged
mysql-test/t/view.test:
  SCCS merged
parents 8115f6df 2ae3cdcf
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1923,6 +1923,14 @@ ERROR HY000: Field of view 'test.v2' underlying table doesn't have a default val
set sql_mode=default;
drop view v2,v1;
drop table t1;
create table t1 (f1 int);
insert into t1 values (1);
create view v1 as select f1 from t1;
select f1 as alias from v1;
alias
1
drop view v1;
drop table t1;
CREATE TABLE t1 (s1 int, s2 int);
INSERT  INTO t1 VALUES (1,2);
CREATE VIEW v1 AS SELECT s2 AS s1, s1 AS s2 FROM t1;
+10 −0
Original line number Diff line number Diff line
@@ -1762,6 +1762,16 @@ set sql_mode=default;
drop view v2,v1;
drop table t1;

#
# Bug#11399 Use an alias in a select statement on a view
#
create table t1 (f1 int);
insert into t1 values (1);
create view v1 as select f1 from t1;
select f1 as alias from v1;
drop view v1;
drop table t1;

#
# Test for bug #6120: SP cache to be invalidated when altering a view
#
+16 −6
Original line number Diff line number Diff line
@@ -2400,9 +2400,11 @@ Field *view_ref_found= (Field*) 0x2;
    name			name of field
    item_name                   name of item if it will be created (VIEW)
    length			length of name
    ref				expression substituted in VIEW should be
    ref	[in/out]		expression substituted in VIEW should be
				  passed using this reference (return
				  view_ref_found)
                                  (*ref != NULL) only if *ref contains
                                  the item that we need to replace.
    check_grants_table		do check columns grants for table?
    check_grants_view		do check columns grants for view?
    allow_rowid			do allow finding of "_rowid" field?
@@ -2440,11 +2442,6 @@ find_field_in_table(THD *thd, TABLE_LIST *table_list,
    {
      if (!my_strcasecmp(system_charset_info, field_it.name(), name))
      {
        Item *item= field_it.create_item(thd);
        if (!item)
        {
          DBUG_RETURN(0);
        }
        if (table_list->schema_table_reformed)
        {
          /*
@@ -2463,6 +2460,19 @@ find_field_in_table(THD *thd, TABLE_LIST *table_list,
			       name, length))
	  DBUG_RETURN(WRONG_GRANT);
#endif
        Item *item= field_it.create_item(thd);
        if (!item)
        {
          DBUG_RETURN(0);
        }
        /*
          *ref != NULL means that *ref contains the item that we need to
          replace. If the item was aliased by the user, set the alias to
          the replacing item.
         */
        if (*ref && !(*ref)->is_autogenerated_name)
          item->set_name((*ref)->name, (*ref)->name_length,
                         system_charset_info);
        if (register_tree_change)
          thd->change_item_tree(ref, item);
        else