Commit ab32d7b0 authored by unknown's avatar unknown
Browse files

Merge bk-internal:/home/bk/mysql-5.0

into mysql.com:/home/jimw/my/mysql-5.0-clean

parents 3d4971c4 7a842c63
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -416,9 +416,9 @@ void ha_ndbcluster::invalidateDictionaryCache()
  NDBDICT *dict= get_ndb()->getDictionary();
  DBUG_PRINT("info", ("invalidating %s", m_tabname));
  dict->invalidateTable(m_tabname);
  table->version=0L;			/* Free when thread is ready */
  table->s->version=0L;			/* Free when thread is ready */
  /* Invalidate indexes */
  for (uint i= 0; i < table->keys; i++)
  for (uint i= 0; i < table->s->keys; i++)
  {
    NDBINDEX *index = (NDBINDEX *) m_index[i].index;
    NDBINDEX *unique_index = (NDBINDEX *) m_index[i].unique_index;
+19 −19
Original line number Diff line number Diff line
@@ -4368,33 +4368,19 @@ longlong Item_func_row_count::val_int()
Item_func_sp::Item_func_sp(sp_name *name)
  :Item_func(), m_name(name), m_sp(NULL)
{
  char *empty_name= (char *) "";
  maybe_null= 1;
  m_name->init_qname(current_thd);
  bzero(&dummy_table, sizeof(dummy_table));
  dummy_table.share.table_cache_key = empty_name;
  dummy_table.share.table_name = empty_name;
  dummy_table.table.alias = empty_name;
  dummy_table.share.table_name = empty_name;
  dummy_table.table.maybe_null = maybe_null;
  dummy_table.table.in_use= current_thd;
  dummy_table.table.s = &dummy_table.share;
  dummy_table= (TABLE *)sql_alloc(sizeof(TABLE));
  bzero(dummy_table, sizeof(TABLE));
}

Item_func_sp::Item_func_sp(sp_name *name, List<Item> &list)
  :Item_func(list), m_name(name), m_sp(NULL)
{
  char *empty_name= (char *) "";
  maybe_null= 1;
  m_name->init_qname(current_thd);
  bzero(&dummy_table, sizeof(dummy_table));
  dummy_table.share.table_cache_key = empty_name;
  dummy_table.share.table_name = empty_name;
  dummy_table.table.alias = empty_name;
  dummy_table.share.table_name = empty_name;
  dummy_table.table.maybe_null = maybe_null;
  dummy_table.table.in_use= current_thd;
  dummy_table.table.s = &dummy_table.share;
  dummy_table= (TABLE *)sql_alloc(sizeof(TABLE));
  bzero(dummy_table, sizeof(TABLE));
}

const char *
@@ -4426,7 +4412,21 @@ Item_func_sp::sp_result_field(void) const
  THD *thd= current_thd;
  DBUG_ENTER("Item_func_sp::sp_result_field");
  if (m_sp)
    field= m_sp->make_field(max_length, name, &dummy_table.table);
  {
    if (dummy_table->s == NULL)
    {
      char *empty_name= (char *) "";
      TABLE_SHARE *share;
      dummy_table->s= share= &dummy_table->share_not_to_be_used;      
      dummy_table->alias = empty_name;
      dummy_table->maybe_null = maybe_null;
      dummy_table->in_use= current_thd;
      share->table_cache_key = empty_name;
      share->table_name = empty_name;
      share->table_name = empty_name;
    }
    field= m_sp->make_field(max_length, name, dummy_table);
  }
  DBUG_RETURN(field);
}

+1 −4
Original line number Diff line number Diff line
@@ -1252,10 +1252,7 @@ class Item_func_sp :public Item_func
private:
  sp_name *m_name;
  mutable sp_head *m_sp;
  mutable struct {
    TABLE table;
    TABLE_SHARE share;
  } dummy_table;
  TABLE *dummy_table;

  int execute(Item **itp);
  Field *sp_result_field(void) const;
+1 −1
Original line number Diff line number Diff line
@@ -860,7 +860,7 @@ typedef struct st_lex

  inline bool requires_prelocking()
  {
    return query_tables_own_last;
    return test(query_tables_own_last);
  }
  inline void mark_as_requiring_prelocking(TABLE_LIST **tables_own_last)
  {