Commit 378d977d authored by monty@mashka.mysql.fi's avatar monty@mashka.mysql.fi
Browse files

Merge with 3.23.53

parents 6aef4237 c4302b0b
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -51252,10 +51252,16 @@ not yet 100% confident in this code.
@item
Fixed core dump bug when using the @code{BINARY} cast on a @code{NULL} value.
@item
Fixed race condition when someone did a @code{GRANT} at the same time a new
user logged in or did a @code{USE DATABASE}.
@item
Fixed bug in @code{ALTER TABLE} and @code{RENAME TABLE} when running with
@code{-O lower_case_table_names=1} (typically on windows) when giving the
table name in uppercase.
@item
Fixed that @code{-O lower_case_table_names=1} also converts database
names to lower case.
@item
Fixed unlikely core dump with @code{SELECT ... ORDER BY ... LIMIT}.
@item
Changed @code{AND/OR} to report that they can return NULL. This fixes a
+15 −5
Original line number Diff line number Diff line
@@ -2033,6 +2033,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,

  while ((Str = str_list++))
  {
    int error;
    GRANT_TABLE *grant_table;
    if (!Str->host.str)
    {
@@ -2047,8 +2048,11 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
      continue;
    }
    /* Create user if needed */
    if (replace_user_table(thd, tables[0].table, *Str,
			   0, revoke_grant, create_new_users))
    pthread_mutex_lock(&acl_cache->lock);
    error=replace_user_table(thd, tables[0].table, *Str,
			     0, revoke_grant, create_new_users);
    pthread_mutex_unlock(&acl_cache->lock);
    if (error)
    {
      result= -1;				// Remember error
      continue;					// Add next user
@@ -2064,7 +2068,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
      {
	my_printf_error(ER_NONEXISTING_TABLE_GRANT,
			ER(ER_NONEXISTING_TABLE_GRANT),MYF(0),
			Str->user.str, Str->host.str, table_list->alias);
			Str->user.str, Str->host.str, table_list->real_name);
	result= -1;
	continue;
      }
@@ -2593,6 +2597,7 @@ bool check_grant_db(THD *thd,const char *db)

ulong get_table_grant(THD *thd, TABLE_LIST *table)
{
  uint privilege;
  char *user = thd->priv_user;
  const char *db = table->db ? table->db : thd->db;
  GRANT_TABLE *grant_table;
@@ -2604,8 +2609,9 @@ ulong get_table_grant(THD *thd, TABLE_LIST *table)
  table->grant.version=grant_version;
  if (grant_table)
    table->grant.privilege|= grant_table->privs;
  privilege= table->grant.privilege;
  pthread_mutex_unlock(&LOCK_grant);
  return table->grant.privilege;
  return privilege;
}


@@ -2716,6 +2722,7 @@ int mysql_show_grants(THD *thd,LEX_USER *lex_user)
  if (send_fields(thd,field_list,1))
    DBUG_RETURN(-1);

  pthread_mutex_lock(&LOCK_grant);
  VOID(pthread_mutex_lock(&acl_cache->lock));

  /* Add first global access grants */
@@ -2971,13 +2978,16 @@ int mysql_show_grants(THD *thd,LEX_USER *lex_user)
			 thd->packet.length()))
	{
	  error=-1;
	  goto end;
	  break;
	}
      }
    }
  }

 end:
  VOID(pthread_mutex_unlock(&acl_cache->lock));
  pthread_mutex_unlock(&LOCK_grant);

  send_eof(&thd->net);
  DBUG_RETURN(error);
}
+1 −1
Original line number Diff line number Diff line
@@ -424,7 +424,7 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild)


/***************************************************************************
** List all columns in a table
** List all columns in a table_list->real_name
***************************************************************************/

int
+1 −1
Original line number Diff line number Diff line
@@ -304,7 +304,7 @@ safe_query("revoke GRANT OPTION on $opt_database.test from $user",1);
#

safe_query("grant select(a) on $opt_database.test to $user");
user_query("show columns from test");
user_query("show full columns from test");
safe_query("grant insert (b), update (b) on $opt_database.test to $user");

user_query("select count(a) from test");
+1 −1

File changed.

Contains only whitespace changes.