~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_base.cc

  • Committer: Brian Aker
  • Date: 2009-07-10 00:39:24 UTC
  • mto: (1090.1.1 staging)
  • mto: This revision was merged to the branch mainline in revision 1091.
  • Revision ID: brian@gaz-20090710003924-4k89lygqakxyf76g
Optimization for createKey(). Removes the need to initialize some
structures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
322
322
TableShare *get_cached_table_share(const char *db, const char *table_name)
323
323
{
324
324
  char key[NAME_LEN*2+2];
325
 
  TableList table_list;
326
325
  uint32_t key_length;
327
326
  safe_mutex_assert_owner(&LOCK_open);
328
327
 
329
 
  table_list.db= (char*) db;
330
 
  table_list.table_name= (char*) table_name;
331
 
  key_length= table_list.create_table_def_key(key);
 
328
  key_length= TableShare::createKey(key, db, table_name);
 
329
 
332
330
  return (TableShare*) hash_search(&table_def_cache,(unsigned char*) key, key_length);
333
331
}
334
332
 
894
892
 
895
893
Table *Session::find_temporary_table(const char *new_db, const char *table_name)
896
894
{
897
 
  TableList table_list;
898
 
 
899
 
  table_list.db= (char*) new_db;
900
 
  table_list.table_name= (char*) table_name;
901
 
 
902
 
  return find_temporary_table(&table_list);
903
 
}
904
 
 
905
 
 
906
 
Table *Session::find_temporary_table(TableList *table_list)
907
 
{
908
895
  char  key[MAX_DBKEY_LENGTH];
909
896
  uint  key_length;
910
897
  Table *table;
911
898
 
912
 
  key_length= table_list->create_table_def_key(key);
 
899
  key_length= TableShare::createKey(key, new_db, table_name);
 
900
 
913
901
  for (table= temporary_tables ; table ; table= table->next)
914
902
  {
915
903
    if (table->s->table_cache_key.length == key_length &&
919
907
  return NULL;                               // Not a temporary table
920
908
}
921
909
 
 
910
Table *Session::find_temporary_table(TableList *table_list)
 
911
{
 
912
  return find_temporary_table(table_list->db, table_list->table_name);
 
913
}
 
914
 
922
915
 
923
916
/**
924
917
  Drop a temporary table.
1034
1027
  char *key;
1035
1028
  uint32_t key_length;
1036
1029
  TableShare *share= table->s;
1037
 
  TableList table_list;
1038
1030
 
1039
1031
  if (!(key=(char*) alloc_root(&share->mem_root, MAX_DBKEY_LENGTH)))
1040
1032
    return true;                                /* purecov: inspected */
1041
1033
 
1042
 
  table_list.db= (char*) db;
1043
 
  table_list.table_name= (char*) table_name;
1044
 
  key_length= table_list.create_table_def_key(key);
 
1034
  key_length= TableShare::createKey(key, db, table_name);
1045
1035
  share->set_table_cache_key(key, key_length);
1046
1036
 
1047
1037
  return false;