~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_base.cc

  • Committer: Brian Aker
  • Date: 2009-05-14 20:07:56 UTC
  • Revision ID: brian@gaz-20090514200756-3n2gijegyd3o03qu
Remove the need for TMP_TABLE_KEY_EXTRA (we don't replicate temp tables).

Show diffs side-by-side

added added

removed removed

Lines of Context:
104
104
 
105
105
  SYNOPSIS
106
106
    create_table_def_key()
107
 
    session                     Thread handler
108
107
    key                 Create key here (must be of size MAX_DBKEY_LENGTH)
109
108
    table_list          Table definition
110
 
    tmp_table           Set if table is a tmp table
111
109
 
112
110
 IMPLEMENTATION
113
111
    The table cache_key is created from:
124
122
    Length of key
125
123
*/
126
124
 
127
 
uint32_t create_table_def_key(Session *session, char *key, TableList *table_list,
128
 
                          bool tmp_table)
 
125
uint32_t create_table_def_key(char *key, TableList *table_list)
129
126
{
130
127
  uint32_t key_length;
131
128
  char *key_pos= key;
134
131
                  strlen(table_list->table_name);
135
132
  key_length= (uint32_t)(key_pos-key)+1;
136
133
 
137
 
  if (tmp_table)
138
 
  {
139
 
    int4store(key + key_length, session->getServerId());
140
 
    int4store(key + key_length + 4, session->variables.pseudo_thread_id);
141
 
    key_length+= TMP_TABLE_KEY_EXTRA;
142
 
  }
143
134
  return key_length;
144
135
}
145
136
 
429
420
 
430
421
  table_list.db= (char*) db;
431
422
  table_list.table_name= (char*) table_name;
432
 
  key_length= create_table_def_key((Session*) 0, key, &table_list, 0);
 
423
  key_length= create_table_def_key(key, &table_list);
433
424
  return (TableShare*) hash_search(&table_def_cache,(unsigned char*) key, key_length);
434
425
}
435
426
 
1269
1260
  uint  key_length;
1270
1261
  Table *table;
1271
1262
 
1272
 
  key_length= create_table_def_key(session, key, table_list, 1);
 
1263
  key_length= create_table_def_key(key, table_list);
1273
1264
  for (table=session->temporary_tables ; table ; table= table->next)
1274
1265
  {
1275
1266
    if (table->s->table_cache_key.length == key_length &&
1395
1386
  session->slave_proxy_id, separated by '\0'.
1396
1387
*/
1397
1388
 
1398
 
bool rename_temporary_table(Session* session, Table *table, const char *db,
1399
 
                            const char *table_name)
 
1389
bool rename_temporary_table(Table *table, const char *db, const char *table_name)
1400
1390
{
1401
1391
  char *key;
1402
1392
  uint32_t key_length;
1408
1398
 
1409
1399
  table_list.db= (char*) db;
1410
1400
  table_list.table_name= (char*) table_name;
1411
 
  key_length= create_table_def_key(session, key, &table_list, 1);
 
1401
  key_length= create_table_def_key(key, &table_list);
1412
1402
  share->set_table_cache_key(key, key_length);
1413
1403
 
1414
1404
  return false;
1853
1843
  if (session->killed)
1854
1844
    return(0);
1855
1845
 
1856
 
  key_length= (create_table_def_key(session, key, table_list, 1) -
1857
 
               TMP_TABLE_KEY_EXTRA);
 
1846
  key_length= create_table_def_key(key, table_list);
1858
1847
 
1859
1848
  /*
1860
1849
    Unless requested otherwise, try to resolve this table in the list
1866
1855
  {
1867
1856
    for (table= session->temporary_tables; table ; table=table->next)
1868
1857
    {
1869
 
      if (table->s->table_cache_key.length == key_length +
1870
 
          TMP_TABLE_KEY_EXTRA && !memcmp(table->s->table_cache_key.str, key,
1871
 
          key_length + TMP_TABLE_KEY_EXTRA))
 
1858
      if (table->s->table_cache_key.length == key_length && !memcmp(table->s->table_cache_key.str, key, key_length))
1872
1859
      {
1873
1860
        /*
1874
1861
          We're trying to use the same temporary table twice in a query.
3442
3429
  table_list.db=         (char*) db;
3443
3430
  table_list.table_name= (char*) table_name;
3444
3431
  /* Create the cache_key for temporary tables */
3445
 
  key_length= create_table_def_key(session, cache_key, &table_list, 1);
 
3432
  key_length= create_table_def_key(cache_key, &table_list);
3446
3433
  path_length= strlen(path);
3447
3434
 
3448
3435
  if (!(tmp_table= (Table*) malloc(sizeof(*tmp_table) + sizeof(*share) +