~brianaker/gearmand/734663

« back to all changes in this revision

Viewing changes to libgearman-server/queue_libdrizzle.c

  • Committer: Brian Aker
  • Date: 2011-02-22 17:31:06 UTC
  • mfrom: (332.1.2 sqlite-replace)
  • Revision ID: brian@tangent.org-20110222173106-tj7lzxsjfukrryan
Merge in changes to the queues to use unique keys.

Show diffs side-by-side

added added

removed removed

Lines of Context:
221
221
    snprintf(create, 1024,
222
222
             "CREATE TABLE %s"
223
223
             "("
224
 
               "unique_key VARCHAR(%d) PRIMARY KEY,"
 
224
               "unique_key VARCHAR(%d),"
225
225
               "function_name VARCHAR(255),"
226
226
               "priority INT,"
227
 
               "data LONGBLOB"
 
227
               "data LONGBLOB,"
 
228
               "unique key (unique_key, function_name)"
228
229
             ")",
229
230
             queue->table, GEARMAN_UNIQUE_SIZE);
230
231
 
353
354
  }
354
355
 
355
356
  query_size= (size_t)snprintf(query, query_size,
356
 
                               "INSERT INTO %s SET priority=%u,unique_key='",
 
357
                               "REPLACE INTO %s SET priority=%u,unique_key='",
357
358
                               queue->table, (uint32_t)priority);
358
359
 
359
360
  query_size+= (size_t)drizzle_escape_string(query + query_size, unique,
425
426
  memcpy(query + query_size, "'", 1);
426
427
  query_size+= 1;
427
428
 
 
429
  query_size+= (size_t)drizzle_escape_string(query + query_size, function_name,
 
430
                                             function_name_size);
 
431
  memcpy(query + query_size, "'", 1);
 
432
  query_size+= 1;
 
433
  
428
434
  if (_libdrizzle_query(server, queue, query, query_size) != DRIZZLE_RETURN_OK)
429
435
    return GEARMAN_QUEUE_ERROR;
430
436