Merge lp:~brianlmoon/gearmand/sqlite-replace into lp:gearmand/1.0

Proposed by Brian Moon
Status: Merged
Approved by: Brian Aker
Approved revision: 334
Merged at revision: 382
Proposed branch: lp:~brianlmoon/gearmand/sqlite-replace
Merge into: lp:gearmand/1.0
Diff against target: 103 lines (+23/-8)
3 files modified
libgearman-server/queue_libdrizzle.c (+9/-3)
libgearman-server/queue_libpq.c (+9/-2)
libgearman-server/queue_libsqlite3.c (+5/-3)
To merge this branch: bzr merge lp:~brianlmoon/gearmand/sqlite-replace
Reviewer Review Type Date Requested Status
Gearman-developers Pending
Review via email: mp+23515@code.launchpad.net

Description of the change

This will make both function_name and unique_id be the unique key on the SQL based persistent queue storage. That makes it the same as the in memory queue.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'libgearman-server/queue_libdrizzle.c'
--- libgearman-server/queue_libdrizzle.c 2010-04-02 02:04:04 +0000
+++ libgearman-server/queue_libdrizzle.c 2010-04-16 02:18:16 +0000
@@ -221,10 +221,11 @@
221 snprintf(create, 1024,221 snprintf(create, 1024,
222 "CREATE TABLE %s"222 "CREATE TABLE %s"
223 "("223 "("
224 "unique_key VARCHAR(%d) PRIMARY KEY,"224 "unique_key VARCHAR(%d),"
225 "function_name VARCHAR(255),"225 "function_name VARCHAR(255),"
226 "priority INT,"226 "priority INT,"
227 "data LONGBLOB"227 "data LONGBLOB,"
228 "unique key (unique_key, function_name)"
228 ")",229 ")",
229 queue->table, GEARMAN_UNIQUE_SIZE);230 queue->table, GEARMAN_UNIQUE_SIZE);
230231
@@ -355,7 +356,7 @@
355 query= queue->query;356 query= queue->query;
356357
357 query_size= (size_t)snprintf(query, query_size,358 query_size= (size_t)snprintf(query, query_size,
358 "INSERT INTO %s SET priority=%u,unique_key='",359 "REPLACE INTO %s SET priority=%u,unique_key='",
359 queue->table, (uint32_t)priority);360 queue->table, (uint32_t)priority);
360361
361 query_size+= (size_t)drizzle_escape_string(query + query_size, unique,362 query_size+= (size_t)drizzle_escape_string(query + query_size, unique,
@@ -426,6 +427,11 @@
426 memcpy(query + query_size, "'", 1);427 memcpy(query + query_size, "'", 1);
427 query_size+= 1;428 query_size+= 1;
428429
430 query_size+= (size_t)drizzle_escape_string(query + query_size, function_name,
431 function_name_size);
432 memcpy(query + query_size, "'", 1);
433 query_size+= 1;
434
429 if (_libdrizzle_query(server, queue, query, query_size) != DRIZZLE_RETURN_OK)435 if (_libdrizzle_query(server, queue, query, query_size) != DRIZZLE_RETURN_OK)
430 return GEARMAN_QUEUE_ERROR;436 return GEARMAN_QUEUE_ERROR;
431437
432438
=== modified file 'libgearman-server/queue_libpq.c'
--- libgearman-server/queue_libpq.c 2010-04-02 02:04:04 +0000
+++ libgearman-server/queue_libpq.c 2010-04-16 02:18:16 +0000
@@ -170,10 +170,11 @@
170 snprintf(create, 1024,170 snprintf(create, 1024,
171 "CREATE TABLE %s"171 "CREATE TABLE %s"
172 "("172 "("
173 "unique_key VARCHAR(%d) PRIMARY KEY,"173 "unique_key VARCHAR(%d),"
174 "function_name VARCHAR(255),"174 "function_name VARCHAR(255),"
175 "priority INTEGER,"175 "priority INTEGER,"
176 "data BYTEA"176 "data BYTEA,"
177 "UNIQUE KEY (unique_key, function_name)"
177 ")",178 ")",
178 queue->table, GEARMAN_UNIQUE_SIZE);179 queue->table, GEARMAN_UNIQUE_SIZE);
179180
@@ -355,6 +356,12 @@
355 unique_size, NULL);356 unique_size, NULL);
356 memcpy(query + query_size, "'", 1);357 memcpy(query + query_size, "'", 1);
357 query_size+= 1;358 query_size+= 1;
359
360 query_size+= PQescapeStringConn(queue->con, query + query_size, function_name,
361 function_name_size, NULL);
362 memcpy(query + query_size, "'", 1);
363 query_size+= 1;
364
358 query[query_size]= 0;365 query[query_size]= 0;
359366
360 result= PQexec(queue->con, query);367 result= PQexec(queue->con, query);
361368
=== modified file 'libgearman-server/queue_libsqlite3.c'
--- libgearman-server/queue_libsqlite3.c 2010-04-02 02:04:04 +0000
+++ libgearman-server/queue_libsqlite3.c 2010-04-16 02:18:16 +0000
@@ -207,10 +207,11 @@
207 snprintf(create, SQLITE_MAX_CREATE_TABLE_SIZE,207 snprintf(create, SQLITE_MAX_CREATE_TABLE_SIZE,
208 "CREATE TABLE %s"208 "CREATE TABLE %s"
209 "("209 "("
210 "unique_key TEXT PRIMARY KEY,"210 "unique_key TEXT,"
211 "function_name TEXT,"211 "function_name TEXT,"
212 "priority INTEGER,"212 "priority INTEGER,"
213 "data BLOB"213 "data BLOB,"
214 "PRIMARY KEY (unique_key, function_name)"
214 ")",215 ")",
215 queue->table);216 queue->table);
216217
@@ -601,13 +602,14 @@
601 query= queue->query;602 query= queue->query;
602603
603 query_size= (size_t)snprintf(query, query_size,604 query_size= (size_t)snprintf(query, query_size,
604 "DELETE FROM %s WHERE unique_key=?",605 "DELETE FROM %s WHERE unique_key=? and function_name=?",
605 queue->table);606 queue->table);
606607
607 if (_sqlite_query(server, queue, query, query_size, &sth) != SQLITE_OK)608 if (_sqlite_query(server, queue, query, query_size, &sth) != SQLITE_OK)
608 return GEARMAN_QUEUE_ERROR;609 return GEARMAN_QUEUE_ERROR;
609610
610 sqlite3_bind_text(sth, 1, unique, (int)unique_size, SQLITE_TRANSIENT);611 sqlite3_bind_text(sth, 1, unique, (int)unique_size, SQLITE_TRANSIENT);
612 sqlite3_bind_text(sth, 2, function_name, (int)function_name_size, SQLITE_TRANSIENT);
611613
612 if (sqlite3_step(sth) != SQLITE_DONE)614 if (sqlite3_step(sth) != SQLITE_DONE)
613 {615 {

Subscribers

People subscribed via source and target branches

to all changes: