mirror of
				https://github.com/Xahau/xahaud.git
				synced 2025-11-04 10:45:50 +00:00 
			
		
		
		
	reorder bind in mysql fetch, add debug lines
This commit is contained in:
		@@ -500,12 +500,16 @@ private:
 | 
			
		||||
 | 
			
		||||
        MYSQL_STMT* stmt = mysql_stmt_init(conn->get());
 | 
			
		||||
        if (!stmt)
 | 
			
		||||
        {
 | 
			
		||||
            JLOG(journal_.warn()) << "fetch: Failed to init stmt";
 | 
			
		||||
            return dataCorrupt;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        std::string const sql = "SELECT data FROM " + name_ + " WHERE hash = ?";
 | 
			
		||||
 | 
			
		||||
        if (mysql_stmt_prepare(stmt, sql.c_str(), sql.length()))
 | 
			
		||||
        {
 | 
			
		||||
            JLOG(journal_.warn()) << "fetch: Failed to prepare stmt";
 | 
			
		||||
            mysql_stmt_close(stmt);
 | 
			
		||||
            return dataCorrupt;
 | 
			
		||||
        }
 | 
			
		||||
@@ -519,6 +523,7 @@ private:
 | 
			
		||||
 | 
			
		||||
        if (mysql_stmt_bind_param(stmt, &bindParam))
 | 
			
		||||
        {
 | 
			
		||||
            JLOG(journal_.warn()) << "fetch: Failed to bind param";
 | 
			
		||||
            mysql_stmt_close(stmt);
 | 
			
		||||
            return dataCorrupt;
 | 
			
		||||
        }
 | 
			
		||||
@@ -537,14 +542,20 @@ private:
 | 
			
		||||
        bindResult.length = &length;
 | 
			
		||||
        bindResult.is_null = &is_null;
 | 
			
		||||
 | 
			
		||||
        std::vector<uint8_t> buffer(16 * 1024 * 1024);  // 16MB buffer
 | 
			
		||||
        bindResult.buffer = buffer.data();
 | 
			
		||||
        bindResult.buffer_length = buffer.size();
 | 
			
		||||
 | 
			
		||||
        if (mysql_stmt_bind_result(stmt, &bindResult))
 | 
			
		||||
        {
 | 
			
		||||
            JLOG(journal_.warn()) << "fetch: Failed to bind result";
 | 
			
		||||
            mysql_stmt_close(stmt);
 | 
			
		||||
            return dataCorrupt;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (mysql_stmt_store_result(stmt))
 | 
			
		||||
        {
 | 
			
		||||
            JLOG(journal_.warn()) << "fetch: Failed to store result";
 | 
			
		||||
            mysql_stmt_close(stmt);
 | 
			
		||||
            return dataCorrupt;
 | 
			
		||||
        }
 | 
			
		||||
@@ -555,18 +566,17 @@ private:
 | 
			
		||||
            return notFound;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        std::vector<uint8_t> buffer(16 * 1024 * 1024);  // 16MB buffer
 | 
			
		||||
        bindResult.buffer = buffer.data();
 | 
			
		||||
        bindResult.buffer_length = buffer.size();
 | 
			
		||||
 | 
			
		||||
        if (mysql_stmt_fetch(stmt))
 | 
			
		||||
        {
 | 
			
		||||
            JLOG(journal_.warn()) << "fetch: Failed to fetch stmt";
 | 
			
		||||
            mysql_stmt_close(stmt);
 | 
			
		||||
            return dataCorrupt;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        mysql_stmt_close(stmt);
 | 
			
		||||
 | 
			
		||||
        std::cout << "length: " << length << "\n";
 | 
			
		||||
 | 
			
		||||
        // Add to cache
 | 
			
		||||
        std::vector<uint8_t> cached_data(
 | 
			
		||||
            buffer.begin(), buffer.begin() + length);
 | 
			
		||||
@@ -579,7 +589,10 @@ private:
 | 
			
		||||
 | 
			
		||||
        DecodedBlob decoded(hash.data(), result.first, result.second);
 | 
			
		||||
        if (!decoded.wasOk())
 | 
			
		||||
        {
 | 
			
		||||
            JLOG(journal_.warn()) << "fetch: Failed to decode blob";
 | 
			
		||||
            return dataCorrupt;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        *pObject = decoded.createObject();
 | 
			
		||||
        return ok;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user