mysql 服务器端命令源码(六)--show privileges

bool mysqld_show_privileges(THD *thd)

{

  List<Item> field_list;

  Protocol *protocol= thd->protocol;

  DBUG_ENTER("mysqld_show_privileges");


  field_list.push_back(new Item_empty_string("Privilege",10));

  field_list.push_back(new Item_empty_string("Context",15));

  field_list.push_back(new Item_empty_string("Comment",NAME_CHAR_LEN));


  if (protocol->send_result_set_metadata(&field_list,

                            Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF))

    DBUG_RETURN(TRUE);


  show_privileges_st *privilege= sys_privileges;

  for (privilege= sys_privileges; privilege->privilege ; privilege++)

  {

    protocol->prepare_for_resend();

    protocol->store(privilege->privilege, system_charset_info);

    protocol->store(privilege->context, system_charset_info);

    protocol->store(privilege->comment, system_charset_info);

    if (protocol->write())

      DBUG_RETURN(TRUE);

  }

  my_eof(thd);

  DBUG_RETURN(FALSE);

}


你可能感兴趣的:(mysql,服务器,protocol)