sqlite thread safety and extended result codes, mainly.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4183 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
		
							
								
								
									
										1
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Makefile
									
									
									
									
									
								
							@@ -221,6 +221,7 @@ $(SQLITE_OBJS): CFLAGS += \
 | 
			
		||||
	-DSQLITE_DBCONFIG_DEFAULT_DEFENSIVE \
 | 
			
		||||
	-DSQLITE_ENABLE_FTS5 \
 | 
			
		||||
	-DSQLITE_ENABLE_JSON1 \
 | 
			
		||||
	-DSQLITE_THREADSAFE=1 \
 | 
			
		||||
	-DSQLITE_MAX_LENGTH=5242880 \
 | 
			
		||||
	-DSQLITE_MAX_SQL_LENGTH=100000 \
 | 
			
		||||
	-DSQLITE_MAX_COLUMN=100 \
 | 
			
		||||
 
 | 
			
		||||
@@ -2148,6 +2148,7 @@ sqlite3* tf_ssb_acquire_db_reader(tf_ssb_t* ssb)
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
		sqlite3_open_v2(ssb->db_path, &db, SQLITE_OPEN_READONLY, NULL);
 | 
			
		||||
		tf_ssb_db_init_reader(db);
 | 
			
		||||
	}
 | 
			
		||||
	uv_mutex_unlock(&ssb->db_readers_lock);
 | 
			
		||||
	return db;
 | 
			
		||||
 
 | 
			
		||||
@@ -53,10 +53,16 @@ static bool _tf_ssb_db_has_rows(sqlite3* db, const char* query)
 | 
			
		||||
 | 
			
		||||
static void _tf_ssb_db_init_internal(sqlite3* db)
 | 
			
		||||
{
 | 
			
		||||
	sqlite3_extended_result_codes(db, 1);
 | 
			
		||||
	_tf_ssb_db_exec(db, "PRAGMA journal_mode = WAL");
 | 
			
		||||
	_tf_ssb_db_exec(db, "PRAGMA synchronous = NORMAL");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void tf_ssb_db_init_reader(sqlite3* db)
 | 
			
		||||
{
 | 
			
		||||
	_tf_ssb_db_init_internal(db);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void tf_ssb_db_init(tf_ssb_t* ssb)
 | 
			
		||||
{
 | 
			
		||||
	sqlite3* db = tf_ssb_get_db(ssb);
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@
 | 
			
		||||
typedef struct _tf_ssb_t tf_ssb_t;
 | 
			
		||||
 | 
			
		||||
void tf_ssb_db_init(tf_ssb_t* ssb);
 | 
			
		||||
void tf_ssb_db_init_reader(sqlite3* db);
 | 
			
		||||
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 tf_ssb_db_message_content_get(tf_ssb_t* ssb, const char* id, uint8_t** out_blob, size_t* out_size);
 | 
			
		||||
bool tf_ssb_db_blob_has(tf_ssb_t* ssb, const char* id);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user