Remove outdated FireflyDB debug log and associated library file
Some checks failed
Build / build (push) Failing after 1m15s

This commit is contained in:
Jacob Schmidt 2025-04-16 19:24:50 -05:00
parent 0743b6c7f1
commit eb5b5f76db
4 changed files with 225 additions and 1758 deletions

View File

@ -1,176 +1,127 @@
#include "../src/firefly.h" // Adjusted path to header in src directory
#include "../src/firefly.h"
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
// Helper function to split string (basic)
std::vector<std::string> split(const std::string& s, char delimiter) {
std::vector<std::string> tokens;
std::string token;
std::istringstream tokenStream(s);
while (std::getline(tokenStream, token, delimiter)) {
tokens.push_back(token);
void demonstrateStringOperations(void* client) {
std::cout << "\n=== String Operations ===" << std::endl;
// Set a string value
if (StringSet(client, "greeting", "Hello, Firefly!")) {
std::cout << "String set successfully" << std::endl;
}
// Get the string value
if (char* value = StringGet(client, "greeting")) {
std::cout << "Retrieved string: " << value << std::endl;
FreeString(value);
}
// Clean up
Delete(client, "greeting");
}
void demonstrateListOperations(void* client) {
std::cout << "\n=== List Operations ===" << std::endl;
const char* listKey = "todo_list";
// Add items to list
ListRightPush(client, listKey, "Buy groceries");
ListRightPush(client, listKey, "Write code");
ListRightPush(client, listKey, "Exercise");
// Get all items
std::cout << "Todo list items:" << std::endl;
if (char* items = ListRange(client, listKey, 0, -1)) {
std::cout << items;
FreeString(items);
}
// Remove and get first item
if (char* completed = ListLeftPop(client, listKey)) {
std::cout << "Completed task: " << completed << std::endl;
FreeString(completed);
}
// Clean up
Delete(client, listKey);
}
void demonstrateHashOperations(void* client) {
std::cout << "\n=== Hash Operations ===" << std::endl;
const char* userKey = "user:123";
// Store user profile
HashSet(client, userKey, "name", "Alice");
HashSet(client, userKey, "email", "alice@example.com");
HashMultiSet(client, userKey, "city SanFrancisco country USA");
// Get all user data
std::cout << "User profile:" << std::endl;
if (char* userData = HashGetAll(client, userKey)) {
std::cout << userData;
FreeString(userData);
}
// Get specific field
if (char* name = HashGet(client, userKey, "name")) {
std::cout << "Name: " << name << std::endl;
FreeString(name);
}
// Clean up
Delete(client, userKey);
}
void demonstratePipelineOperations(void* client) {
std::cout << "\n=== Pipeline Operations ===" << std::endl;
// Enable pipeline mode
if (SetPipelineMode(client, true)) {
std::cout << "Pipeline mode enabled" << std::endl;
SetBatchSize(client, 3);
// Queue multiple commands
StringSet(client, "counter:1", "100");
StringSet(client, "counter:2", "200");
StringSet(client, "counter:3", "300");
// Show queue status and execute
std::cout << "Queued commands: " << GetQueuedCommandCount(client) << std::endl;
if (char* results = FlushPipeline(client)) {
std::cout << "Pipeline results:\n" << results << std::endl;
FreeString(results);
}
SetPipelineMode(client, false);
// Clean up
for (int i = 1; i <= 3; i++) {
char key[20];
sprintf(key, "counter:%d", i);
Delete(client, key);
}
}
return tokens;
}
int main() {
// Create client
// Assumes the compiled library is accessible (e.g., in PATH or same dir)
void* client = CreateClient("localhost", 6379);
if (!client) {
std::cerr << "Failed to create client" << std::endl;
return 1;
}
std::cout << "Client created." << std::endl;
// Authenticate if needed (replace with your password or remove if none)
// if (!Authenticate(client, "your_password")) {
// std::cerr << "Authentication failed" << std::endl;
// DestroyClient(client);
// return 1;
// }
// std::cout << "Authentication successful." << std::endl;
// String operations
std::cout << "\n--- String Ops ---" << std::endl;
if (StringSet(client, "cpp:test", "hello from c++")) {
std::cout << "StringSet OK" << std::endl;
}
char* value = StringGet(client, "cpp:test");
if (value) {
std::cout << "StringGet: " << value << std::endl;
FreeString(value); // IMPORTANT: Free the returned string
}
// List operations
std::cout << "\n--- List Ops ---" << std::endl;
ListLeftPush(client, "cpp:mylist", "item1");
ListLeftPush(client, "cpp:mylist", "item2");
ListRightPush(client, "cpp:mylist", "item3");
std::cout << "LPUSH/RPUSH OK" << std::endl;
std::cout << "Connected to Firefly database" << std::endl;
char* popped = ListLeftPop(client, "cpp:mylist");
if (popped) {
std::cout << "ListLeftPop: " << popped << std::endl;
FreeString(popped); // IMPORTANT: Free
}
// Get a range of elements (Updated for char* return)
std::cout << "ListRange:" << std::endl;
char* rangeStr = ListRange(client, "cpp:mylist", 0, -1);
if (rangeStr) {
std::string rangeResult(rangeStr);
FreeString(rangeStr); // IMPORTANT: Free
// Parse the newline-delimited string
std::vector<std::string> range = split(rangeResult, '\n');
for (size_t i = 0; i < range.size(); ++i) {
std::cout << " Element " << i << ": " << range[i] << std::endl;
}
} else {
std::cout << " (empty or error)" << std::endl;
}
// Run demonstrations
demonstrateStringOperations(client);
demonstrateListOperations(client);
demonstrateHashOperations(client);
demonstratePipelineOperations(client);
// ListPosition
int pos = ListPosition(client, "cpp:mylist", "item1", 0, 0);
std::cout << "ListPosition of 'item1': " << pos << std::endl;
// ListSet
if (ListSet(client, "cpp:mylist", 0, "item1_updated")) {
std::cout << "ListSet OK" << std::endl;
}
// ListRemove
int removed = ListRemove(client, "cpp:mylist", 1, "item3");
std::cout << "ListRemove ('item3', count 1): Removed " << removed << " elements" << std::endl;
// ListTrim
if (ListTrim(client, "cpp:mylist", 0, 0)) { // Trim to keep only the first element
std::cout << "ListTrim OK" << std::endl;
}
// Verify trim
char* finalRangeStr = ListRange(client, "cpp:mylist", 0, -1);
if (finalRangeStr) {
std::cout << "List after Trim: " << finalRangeStr << std::endl;
FreeString(finalRangeStr);
}
// Hash operations
std::cout << "\n--- Hash Ops ---" << std::endl;
HashSet(client, "cpp:user:1", "name", "John C.");
HashSet(client, "cpp:user:1", "email", "john.c@example.com");
std::cout << "HashSet OK" << std::endl;
char* name = HashGet(client, "cpp:user:1", "name");
if (name) {
std::cout << "HashGet 'name': " << name << std::endl;
FreeString(name); // IMPORTANT: Free
}
// HashMultiSet
if(HashMultiSet(client, "cpp:user:1", "city NewYork country USA")) {
std::cout << "HashMultiSet OK" << std::endl;
}
// Get all hash fields (Updated for char* return)
std::cout << "HashGetAll:" << std::endl;
char* hashDataStr = HashGetAll(client, "cpp:user:1");
if (hashDataStr) {
std::string hashResult(hashDataStr);
FreeString(hashDataStr); // IMPORTANT: Free
// Parse the newline-delimited "field=value" string
std::vector<std::string> pairs = split(hashResult, '\n');
for (const auto& pair : pairs) {
size_t eqPos = pair.find('=');
if (eqPos != std::string::npos) {
std::cout << " " << pair.substr(0, eqPos) << ": " << pair.substr(eqPos + 1) << std::endl;
}
}
} else {
std::cout << " (empty or error)" << std::endl;
}
// Execute a raw command
std::cout << "\n--- Raw Command ---" << std::endl;
char* result = ExecuteCommand(client, "PING", "");
if (result) {
std::cout << "PING result: " << result; // Result likely includes \r\n
FreeString(result); // IMPORTANT: Free
}
// Pipeline operations (example)
std::cout << "\n--- Pipeline Ops ---" << std::endl;
if (SetPipelineMode(client, true)) {
std::cout << "Pipeline mode enabled." << std::endl;
SetBatchSize(client, 5);
StringSet(client, "pipe:1", "a");
StringSet(client, "pipe:2", "b");
std::cout << " Queued: " << GetQueuedCommandCount(client) << std::endl;
char* flushResult = FlushPipeline(client);
if(flushResult) {
std::cout << " Flushed Result: " << flushResult << std::endl;
FreeString(flushResult);
}
SetPipelineMode(client, false);
std::cout << "Pipeline mode disabled." << std::endl;
}
// Clean up string/list/hash keys used
Delete(client, "cpp:test");
Delete(client, "cpp:mylist");
Delete(client, "cpp:user:1");
Delete(client, "pipe:1");
Delete(client, "pipe:2");
// Destroy client
std::cout << "\nDestroying client..." << std::endl;
// Cleanup
DestroyClient(client);
std::cout << "Client destroyed." << std::endl;
std::cout << "\nExample completed successfully" << std::endl;
return 0;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,178 +0,0 @@
2025-04-09 18:14:40,895 - FireflyDB - INFO - Script starting...
2025-04-09 18:14:40,895 - FireflyDB - INFO - Starting FireflyDatabase test...
2025-04-09 18:14:40,896 - FireflyDB - INFO - Creating FireflyDatabase instance...
2025-04-09 18:14:40,940 - FireflyDB - DEBUG - Firefly library loaded from: G:\firefly\client\examples\libFirefly.dll
2025-04-09 18:14:40,940 - FireflyDB - DEBUG - Connecting to 135.134.202.221:6379
2025-04-09 18:14:40,944 - FireflyDB - DEBUG - Client created successfully
2025-04-09 18:14:40,944 - FireflyDB - DEBUG - Authenticating...
2025-04-09 18:14:40,964 - FireflyDB - DEBUG - Authentication successful
2025-04-09 18:14:40,964 - FireflyDB - INFO - Connected to Firefly server
2025-04-09 18:14:40,964 - FireflyDB - INFO - Performing operations...
2025-04-09 18:14:40,965 - FireflyDB - INFO - About to call ping()...
2025-04-09 18:14:40,965 - FireflyDB - DEBUG - Sending PING command
2025-04-09 18:14:40,965 - FireflyDB - DEBUG - Executing command: PING with args:
2025-04-09 18:14:40,981 - FireflyDB - DEBUG - ExecuteCommand result pointer: b'+PONG\r\n'
2025-04-09 18:14:40,982 - FireflyDB - DEBUG - Result is already a Python bytes object, no need to free
2025-04-09 18:14:40,982 - FireflyDB - DEBUG - Received response: +PONG
2025-04-09 18:14:40,982 - FireflyDB - DEBUG - Raw ping response: '+PONG
'
2025-04-09 18:14:40,983 - FireflyDB - DEBUG - Response type: <class 'str'>, value: '+PONG
'
2025-04-09 18:14:40,983 - FireflyDB - DEBUG - Normalized response: 'PONG'
2025-04-09 18:14:40,983 - FireflyDB - DEBUG - PONG found in normalized response - ping successful
2025-04-09 18:14:40,983 - FireflyDB - INFO - Ping completed with result: True
2025-04-09 18:14:40,983 - FireflyDB - INFO - After ping attempt
2025-04-09 18:14:40,983 - FireflyDB - INFO - Testing Database
2025-04-09 18:14:40,996 - FireflyDB - DEBUG - StringSet result for key 'test': True
2025-04-09 18:14:41,015 - FireflyDB - DEBUG - StringGet raw result pointer: b'"hello world"'
2025-04-09 18:14:41,015 - FireflyDB - DEBUG - Result is already a Python bytes object, no need to free
2025-04-09 18:14:41,016 - FireflyDB - DEBUG - StringGet for key 'test': "hello world"
2025-04-09 18:14:41,016 - FireflyDB - INFO - Value: "hello world"
2025-04-09 18:14:41,018 - FireflyDB - DEBUG - ListRightPush on key 'mylist' with value 'item1'. New length: 4
2025-04-09 18:14:41,033 - FireflyDB - DEBUG - ListRightPush on key 'mylist' with value 'item2'. New length: 5
2025-04-09 18:14:41,036 - FireflyDB - DEBUG - ListRightPush on key 'mylist' with value 'item3'. New length: 6
2025-04-09 18:14:41,045 - FireflyDB - DEBUG - ListRange raw result: b'item1\nitem2\nitem3\nitem1\nitem2\nitem3'
2025-04-09 18:14:41,046 - FireflyDB - DEBUG - ListRange on key 'mylist' from 0 to -1. Values: ['item1', 'item2', 'item3', 'item1', 'item2', 'item3']
2025-04-09 18:14:41,046 - FireflyDB - INFO - List items:
2025-04-09 18:14:41,046 - FireflyDB - INFO - - item1
2025-04-09 18:14:41,047 - FireflyDB - INFO - - item2
2025-04-09 18:14:41,047 - FireflyDB - INFO - - item3
2025-04-09 18:14:41,047 - FireflyDB - INFO - - item1
2025-04-09 18:14:41,047 - FireflyDB - INFO - - item2
2025-04-09 18:14:41,047 - FireflyDB - INFO - - item3
2025-04-09 18:14:41,061 - FireflyDB - DEBUG - HashSet on key 'user:1', field 'name': False
2025-04-09 18:14:41,071 - FireflyDB - DEBUG - HashSet on key 'user:1', field 'email': False
2025-04-09 18:14:41,076 - FireflyDB - DEBUG - HashGet raw result: b'John'
2025-04-09 18:14:41,076 - FireflyDB - DEBUG - HashGet on key 'user:1', field 'name': John
2025-04-09 18:14:41,077 - FireflyDB - INFO - Name: John
2025-04-09 18:14:41,089 - FireflyDB - DEBUG - HashGetAll raw result: b'email=john@example.com\nname=John'
2025-04-09 18:14:41,089 - FireflyDB - DEBUG - HashGetAll on key 'user:1': {'email': 'john@example.com', 'name': 'John'}
2025-04-09 18:14:41,090 - FireflyDB - INFO - User data:
2025-04-09 18:14:41,090 - FireflyDB - INFO - email: john@example.com
2025-04-09 18:14:41,090 - FireflyDB - INFO - name: John
2025-04-09 18:14:41,090 - FireflyDB - INFO -
Pipeline Operations:
2025-04-09 18:14:41,090 - FireflyDB - DEBUG - Setting pipeline mode to True
2025-04-09 18:14:41,090 - FireflyDB - DEBUG - SetPipelineMode to True: True
2025-04-09 18:14:41,091 - FireflyDB - INFO - Note: When in pipeline mode, operations return 'QUEUED' instead of actual values
2025-04-09 18:14:41,091 - FireflyDB - INFO - Values aren't actually set until flush_pipeline() is called
2025-04-09 18:14:41,091 - FireflyDB - DEBUG - Setting batch size to 100
2025-04-09 18:14:41,091 - FireflyDB - DEBUG - SetBatchSize to 100: True
2025-04-09 18:14:41,091 - FireflyDB - INFO - Adding dummy entries for each data type to handle Redis pipeline shifting
2025-04-09 18:14:41,092 - FireflyDB - DEBUG - StringSet result for key 'pipeline:string:0': False
2025-04-09 18:14:41,092 - FireflyDB - DEBUG - ListRightPush on key 'pipeline:list:0' with value 'dummy-list-item'. New length: 0
2025-04-09 18:14:41,092 - FireflyDB - DEBUG - HashSet on key 'pipeline:hash', field 'dummy-field': False
2025-04-09 18:14:41,092 - FireflyDB - DEBUG - StringSet result for key 'pipeline:string:1': False
2025-04-09 18:14:41,092 - FireflyDB - DEBUG - ListRightPush on key 'pipeline:list' with value 'list-item-1'. New length: 0
2025-04-09 18:14:41,093 - FireflyDB - DEBUG - HashSet on key 'pipeline:hash', field 'field-1': False
2025-04-09 18:14:41,093 - FireflyDB - DEBUG - StringSet result for key 'pipeline:string:2': False
2025-04-09 18:14:41,093 - FireflyDB - DEBUG - ListRightPush on key 'pipeline:list' with value 'list-item-2'. New length: 0
2025-04-09 18:14:41,093 - FireflyDB - DEBUG - HashSet on key 'pipeline:hash', field 'field-2': False
2025-04-09 18:14:41,094 - FireflyDB - DEBUG - StringSet result for key 'pipeline:string:3': False
2025-04-09 18:14:41,094 - FireflyDB - DEBUG - ListRightPush on key 'pipeline:list' with value 'list-item-3'. New length: 0
2025-04-09 18:14:41,094 - FireflyDB - DEBUG - HashSet on key 'pipeline:hash', field 'field-3': False
2025-04-09 18:14:41,094 - FireflyDB - DEBUG - StringSet result for key 'pipeline:string:4': False
2025-04-09 18:14:41,094 - FireflyDB - DEBUG - ListRightPush on key 'pipeline:list' with value 'list-item-4'. New length: 0
2025-04-09 18:14:41,095 - FireflyDB - DEBUG - HashSet on key 'pipeline:hash', field 'field-4': False
2025-04-09 18:14:41,095 - FireflyDB - DEBUG - StringSet result for key 'pipeline:string:5': False
2025-04-09 18:14:41,095 - FireflyDB - DEBUG - ListRightPush on key 'pipeline:list' with value 'list-item-5'. New length: 0
2025-04-09 18:14:41,095 - FireflyDB - DEBUG - HashSet on key 'pipeline:hash', field 'field-5': False
2025-04-09 18:14:41,095 - FireflyDB - DEBUG - GetQueuedCommandCount: 18
2025-04-09 18:14:41,095 - FireflyDB - INFO - Queued commands: 18
2025-04-09 18:14:41,096 - FireflyDB - INFO - Results should be obtained after flushing the pipeline
2025-04-09 18:14:41,103 - FireflyDB - DEBUG - Flushed pipeline. Response: +OK
2025-04-09 18:14:41,103 - FireflyDB - INFO - Pipeline flush result: +OK
2025-04-09 18:14:41,103 - FireflyDB - INFO - After pipeline flush, we need to exit pipeline mode to get actual values
2025-04-09 18:14:41,103 - FireflyDB - DEBUG - Setting pipeline mode to False
2025-04-09 18:14:41,103 - FireflyDB - DEBUG - SetPipelineMode to False: True
2025-04-09 18:14:41,103 - FireflyDB - INFO - Pipeline mode disabled
2025-04-09 18:14:41,103 - FireflyDB - INFO -
Verifying results (note: Redis pipeline responses might not match input order):
2025-04-09 18:14:41,105 - FireflyDB - DEBUG - StringGet raw result pointer: b''
2025-04-09 18:14:41,105 - FireflyDB - DEBUG - StringGet for key 'pipeline:string:0': Key not found
2025-04-09 18:14:41,106 - FireflyDB - INFO - String key:0 = None
2025-04-09 18:14:41,107 - FireflyDB - DEBUG - StringGet raw result pointer: b'dummy-string'
2025-04-09 18:14:41,107 - FireflyDB - DEBUG - Result is already a Python bytes object, no need to free
2025-04-09 18:14:41,108 - FireflyDB - DEBUG - StringGet for key 'pipeline:string:1': dummy-string
2025-04-09 18:14:41,108 - FireflyDB - INFO - String key:1 = dummy-string
2025-04-09 18:14:41,116 - FireflyDB - DEBUG - StringGet raw result pointer: b'string-value-1'
2025-04-09 18:14:41,116 - FireflyDB - DEBUG - Result is already a Python bytes object, no need to free
2025-04-09 18:14:41,116 - FireflyDB - DEBUG - StringGet for key 'pipeline:string:2': string-value-1
2025-04-09 18:14:41,116 - FireflyDB - INFO - String key:2 = string-value-1
2025-04-09 18:14:41,118 - FireflyDB - DEBUG - StringGet raw result pointer: b'string-value-2'
2025-04-09 18:14:41,118 - FireflyDB - DEBUG - Result is already a Python bytes object, no need to free
2025-04-09 18:14:41,118 - FireflyDB - DEBUG - StringGet for key 'pipeline:string:3': string-value-2
2025-04-09 18:14:41,118 - FireflyDB - INFO - String key:3 = string-value-2
2025-04-09 18:14:41,129 - FireflyDB - DEBUG - StringGet raw result pointer: b'string-value-3'
2025-04-09 18:14:41,129 - FireflyDB - DEBUG - Result is already a Python bytes object, no need to free
2025-04-09 18:14:41,129 - FireflyDB - DEBUG - StringGet for key 'pipeline:string:4': string-value-3
2025-04-09 18:14:41,129 - FireflyDB - INFO - String key:4 = string-value-3
2025-04-09 18:14:41,131 - FireflyDB - DEBUG - StringGet raw result pointer: b'string-value-4'
2025-04-09 18:14:41,131 - FireflyDB - DEBUG - Result is already a Python bytes object, no need to free
2025-04-09 18:14:41,132 - FireflyDB - DEBUG - StringGet for key 'pipeline:string:5': string-value-4
2025-04-09 18:14:41,132 - FireflyDB - INFO - String key:5 = string-value-4
2025-04-09 18:14:41,151 - FireflyDB - DEBUG - ListRange raw result: None
2025-04-09 18:14:41,151 - FireflyDB - DEBUG - ListRange on key 'pipeline:list' from 0 to -1. Empty list
2025-04-09 18:14:41,152 - FireflyDB - INFO - List items: []
2025-04-09 18:14:41,153 - FireflyDB - DEBUG - ListRange raw result: b'list-item-1\nlist-item-2\nlist-item-3\nlist-item-4\nlist-item-5\nlist-item-1\nlist-item-2\nlist-item-3\nlist-item-4\nlist-item-5'
2025-04-09 18:14:41,153 - FireflyDB - DEBUG - ListRange on key 'pipeline:list' from 0 to -1. Values: ['list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5', 'list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5']
2025-04-09 18:14:41,154 - FireflyDB - INFO - List items: ['list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5', 'list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5']
2025-04-09 18:14:41,168 - FireflyDB - DEBUG - ListRange raw result: b'list-item-1\nlist-item-2\nlist-item-3\nlist-item-4\nlist-item-5\nlist-item-1\nlist-item-2\nlist-item-3\nlist-item-4\nlist-item-5'
2025-04-09 18:14:41,168 - FireflyDB - DEBUG - ListRange on key 'pipeline:list' from 0 to -1. Values: ['list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5', 'list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5']
2025-04-09 18:14:41,168 - FireflyDB - INFO - List items: ['list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5', 'list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5']
2025-04-09 18:14:41,170 - FireflyDB - DEBUG - ListRange raw result: b'list-item-1\nlist-item-2\nlist-item-3\nlist-item-4\nlist-item-5\nlist-item-1\nlist-item-2\nlist-item-3\nlist-item-4\nlist-item-5'
2025-04-09 18:14:41,170 - FireflyDB - DEBUG - ListRange on key 'pipeline:list' from 0 to -1. Values: ['list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5', 'list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5']
2025-04-09 18:14:41,170 - FireflyDB - INFO - List items: ['list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5', 'list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5']
2025-04-09 18:14:41,183 - FireflyDB - DEBUG - ListRange raw result: b'list-item-1\nlist-item-2\nlist-item-3\nlist-item-4\nlist-item-5\nlist-item-1\nlist-item-2\nlist-item-3\nlist-item-4\nlist-item-5'
2025-04-09 18:14:41,183 - FireflyDB - DEBUG - ListRange on key 'pipeline:list' from 0 to -1. Values: ['list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5', 'list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5']
2025-04-09 18:14:41,183 - FireflyDB - INFO - List items: ['list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5', 'list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5']
2025-04-09 18:14:41,185 - FireflyDB - DEBUG - ListRange raw result: b'list-item-1\nlist-item-2\nlist-item-3\nlist-item-4\nlist-item-5\nlist-item-1\nlist-item-2\nlist-item-3\nlist-item-4\nlist-item-5'
2025-04-09 18:14:41,185 - FireflyDB - DEBUG - ListRange on key 'pipeline:list' from 0 to -1. Values: ['list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5', 'list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5']
2025-04-09 18:14:41,185 - FireflyDB - INFO - List items: ['list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5', 'list-item-1', 'list-item-2', 'list-item-3', 'list-item-4', 'list-item-5']
2025-04-09 18:14:41,196 - FireflyDB - DEBUG - HashGetAll raw result: b'list-item-1=list-item-2\nlist-item-3=list-item-4\nlist-item-5=list-item-1\nlist-item-2=list-item-3\nlist-item-4=list-item-5'
2025-04-09 18:14:41,196 - FireflyDB - DEBUG - HashGetAll on key 'pipeline:hash': {'list-item-1': 'list-item-2', 'list-item-3': 'list-item-4', 'list-item-5': 'list-item-1', 'list-item-2': 'list-item-3', 'list-item-4': 'list-item-5'}
2025-04-09 18:14:41,196 - FireflyDB - INFO - Hash fields:
2025-04-09 18:14:41,196 - FireflyDB - INFO - list-item-1: list-item-2
2025-04-09 18:14:41,197 - FireflyDB - INFO - list-item-3: list-item-4
2025-04-09 18:14:41,197 - FireflyDB - INFO - list-item-5: list-item-1
2025-04-09 18:14:41,197 - FireflyDB - INFO - list-item-2: list-item-3
2025-04-09 18:14:41,197 - FireflyDB - INFO - list-item-4: list-item-5
2025-04-09 18:14:41,199 - FireflyDB - DEBUG - Delete result: b'*12\r\n+field-5\r\n+hash-value-5\r\n+field-4\r\n+hash-value-4\r\n+field-3\r\n+hash-value-3\r\n+field-2\r\n+hash-value-2\r\n+field-1\r\n+hash-value-1\r\n+dummy-field\r\n+dummy-value\r\n'
2025-04-09 18:14:41,199 - FireflyDB - DEBUG - Complex pipeline response for DEL on key 'pipeline:string:0', assuming success
2025-04-09 18:14:41,209 - FireflyDB - DEBUG - Delete result: b':1\r\n'
2025-04-09 18:14:41,209 - FireflyDB - DEBUG - Deleted key 'pipeline:list:0'. Count: 1
2025-04-09 18:14:41,211 - FireflyDB - DEBUG - Delete result: b':1\r\n'
2025-04-09 18:14:41,211 - FireflyDB - DEBUG - Deleted key 'pipeline:string:1'. Count: 1
2025-04-09 18:14:41,222 - FireflyDB - DEBUG - Delete result: b':1\r\n'
2025-04-09 18:14:41,223 - FireflyDB - DEBUG - Deleted key 'pipeline:list:1'. Count: 1
2025-04-09 18:14:41,225 - FireflyDB - DEBUG - Delete result: b':0\r\n'
2025-04-09 18:14:41,225 - FireflyDB - DEBUG - Deleted key 'pipeline:string:2'. Count: 0
2025-04-09 18:14:41,231 - FireflyDB - DEBUG - Delete result: b':1\r\n'
2025-04-09 18:14:41,231 - FireflyDB - DEBUG - Deleted key 'pipeline:list:2'. Count: 1
2025-04-09 18:14:41,233 - FireflyDB - DEBUG - Delete result: b':0\r\n'
2025-04-09 18:14:41,233 - FireflyDB - DEBUG - Deleted key 'pipeline:string:3'. Count: 0
2025-04-09 18:14:41,246 - FireflyDB - DEBUG - Delete result: b':1\r\n'
2025-04-09 18:14:41,247 - FireflyDB - DEBUG - Deleted key 'pipeline:list:3'. Count: 1
2025-04-09 18:14:41,248 - FireflyDB - DEBUG - Delete result: b':0\r\n'
2025-04-09 18:14:41,248 - FireflyDB - DEBUG - Deleted key 'pipeline:string:4'. Count: 0
2025-04-09 18:14:41,258 - FireflyDB - DEBUG - Delete result: b':1\r\n'
2025-04-09 18:14:41,258 - FireflyDB - DEBUG - Deleted key 'pipeline:list:4'. Count: 1
2025-04-09 18:14:41,260 - FireflyDB - DEBUG - Delete result: b':0\r\n'
2025-04-09 18:14:41,260 - FireflyDB - DEBUG - Deleted key 'pipeline:string:5'. Count: 0
2025-04-09 18:14:41,273 - FireflyDB - DEBUG - Delete result: b':1\r\n'
2025-04-09 18:14:41,273 - FireflyDB - DEBUG - Deleted key 'pipeline:list:5'. Count: 1
2025-04-09 18:14:41,275 - FireflyDB - DEBUG - Delete result: b':0\r\n'
2025-04-09 18:14:41,275 - FireflyDB - DEBUG - Deleted key 'pipeline:hash'. Count: 0
2025-04-09 18:14:41,276 - FireflyDB - INFO - Cleanup complete
2025-04-09 18:14:41,276 - FireflyDB - DEBUG - Destroying client connection
2025-04-09 18:14:41,284 - FireflyDB - DEBUG - Client connection destroyed
2025-04-09 18:14:41,285 - FireflyDB - INFO - Test completed
2025-04-09 18:14:41,285 - FireflyDB - INFO - Script completed successfully.

Binary file not shown.