forked from cory/tildefriends
		
	I think this fixes the questionable archaic sequence / author order issue.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3813 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
		| @@ -27,6 +27,7 @@ void tf_ssb_db_init(tf_ssb_t* ssb) | ||||
| 		"  UNIQUE(author, sequence)" | ||||
| 		")", | ||||
| 		NULL, NULL, NULL); | ||||
| 	sqlite3_exec(db, "ALTER TABLE messages ADD COLUMN sequence_before_author INTEGER", NULL, NULL, NULL); | ||||
| 	sqlite3_exec(db, "CREATE INDEX IF NOT EXISTS messages_author_id_index ON messages (author, id)", NULL, NULL, NULL); | ||||
| 	sqlite3_exec(db, "CREATE INDEX IF NOT EXISTS messages_author_sequence_index ON messages (author, sequence)", NULL, NULL, NULL); | ||||
| 	sqlite3_exec(db, "CREATE INDEX IF NOT EXISTS messages_author_timestamp_index ON messages (author, timestamp)", NULL, NULL, NULL); | ||||
| @@ -62,7 +63,7 @@ void tf_ssb_db_init(tf_ssb_t* ssb) | ||||
| 		NULL, NULL, NULL); | ||||
| } | ||||
|  | ||||
| bool tf_ssb_db_store_message(tf_ssb_t* ssb, JSContext* context, const char* id, JSValue val, const char* signature) | ||||
| bool tf_ssb_db_store_message(tf_ssb_t* ssb, JSContext* context, const char* id, JSValue val, const char* signature, bool sequence_before_author) | ||||
| { | ||||
| 	bool stored = false; | ||||
| 	JSValue previousval = JS_GetPropertyStr(context, val, "previous"); | ||||
| @@ -83,7 +84,7 @@ bool tf_ssb_db_store_message(tf_ssb_t* ssb, JSContext* context, const char* id, | ||||
| 	sqlite3* db = tf_ssb_get_db(ssb); | ||||
| 	sqlite3_stmt* statement; | ||||
| 	int64_t last_row_id = -1; | ||||
| 	const char* query = "INSERT INTO messages (id, previous, author, sequence, timestamp, content, hash, signature) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT DO NOTHING"; | ||||
| 	const char* query = "INSERT INTO messages (id, previous, author, sequence, timestamp, content, hash, signature, sequence_before_author) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT DO NOTHING"; | ||||
| 	if (sqlite3_prepare(db, query, -1, &statement, NULL) == SQLITE_OK) | ||||
| 	{ | ||||
| 		if (sqlite3_bind_text(statement, 1, id, -1, NULL) == SQLITE_OK && | ||||
| @@ -93,7 +94,8 @@ bool tf_ssb_db_store_message(tf_ssb_t* ssb, JSContext* context, const char* id, | ||||
| 			sqlite3_bind_int64(statement, 5, timestamp) == SQLITE_OK && | ||||
| 			sqlite3_bind_text(statement, 6, contentstr, content_len, NULL) == SQLITE_OK && | ||||
| 			sqlite3_bind_text(statement, 7, "sha256", 6, NULL) == SQLITE_OK && | ||||
| 			sqlite3_bind_text(statement, 8, signature, -1, NULL) == SQLITE_OK) | ||||
| 			sqlite3_bind_text(statement, 8, signature, -1, NULL) == SQLITE_OK && | ||||
| 			sqlite3_bind_int(statement, 9, sequence_before_author) == SQLITE_OK) | ||||
| 		{ | ||||
| 			int r = sqlite3_step(statement); | ||||
| 			if (r != SQLITE_DONE) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user