summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordinesh <dinesh@dinesh-laptop>2008-08-16 22:34:49 +0530
committerdinesh <dinesh@dinesh-laptop>2008-08-16 22:34:49 +0530
commit4d5534253cda85a6ef68a36eda5699d1bb4206e0 (patch)
treed8aec439982ac88cd241177cd36f2bfb223d9378
parent845cdae34801560b5970fafbbda0ed7fcc1e97db (diff)
bug fix for duplicate module name upload
-rw-r--r--tools/_infotojson/infotojson.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/tools/_infotojson/infotojson.c b/tools/_infotojson/infotojson.c
index 4f21602c..e837ff4a 100644
--- a/tools/_infotojson/infotojson.c
+++ b/tools/_infotojson/infotojson.c
@@ -94,20 +94,23 @@ static int storejsontodb(const struct json *jsonobj, const char *db)
struct db_query *q;
handle = db_open(db);
- query = talloc_asprintf(NULL, "SELECT module from search where module=\"%s\";", jsonobj->module);
+ query = talloc_asprintf(NULL, "SELECT module, author from search where module=\"%s\";", jsonobj->module);
q = db_query(handle, query);
desc = strjoin(NULL, jsonobj->desc,"\n");
strreplace(desc, '\'', ' ');
depends = strjoin(NULL, jsonobj->depends,"\n");
- if (!q->num_rows)
+ if (q->num_rows && streq(jsonobj->author, q->rows[0][1]))
+ cmd = talloc_asprintf(NULL, "UPDATE search set author=\"%s\", title=\"%s\", desc=\'%s\' depends=\'%s\' where module=\"%s\";",
+ jsonobj->author, jsonobj->title, desc, depends, jsonobj->module);
+ else if (!q->num_rows)
cmd = talloc_asprintf(NULL, "INSERT INTO search VALUES(\"%s\",\"%s\",\"%s\", \'%s\', \'%s\', 0);",
jsonobj->module, jsonobj->author, jsonobj->title, depends, desc);
else
- cmd = talloc_asprintf(NULL, "UPDATE search set author=\"%s\", title=\"%s\", desc=\'%s\' depends=\'%s\' where module=\"%s\";",
- jsonobj->author, jsonobj->title, desc, depends, jsonobj->module);
-
+ cmd = talloc_asprintf(NULL, "INSERT INTO search VALUES(\"%s-%s\",\"%s\",\"%s\", \'%s\', \'%s\', 0);",
+ jsonobj->module, jsonobj->author, jsonobj->author, jsonobj->title, depends, desc);
+
db_command(handle, cmd);
db_close(handle);
talloc_free(depends);