comparison deita/d_sqlite.c @ 260:1f9877b637e9

Add Copilot-powered cyberpunk JRPG chat Integrate the production JRPG chat with Seobeo streaming, Deita persistence, and a Bazel-managed Copilot SDK and LiteLLM inference stack. Co-authored-by: Copilot <[email protected]>
author MrJuneJune <mrjunejune@users.noreply.github.com>
date Wed, 05 Aug 2026 09:19:41 -0700
parents ae6a88e6e484
children
comparison
equal deleted inserted replaced
259:667156fcd3e3 260:1f9877b637e9
20 int32 result = sqlite3_open(connection_string, &p_db); 20 int32 result = sqlite3_open(connection_string, &p_db);
21 21
22 if (result != SQLITE_OK) 22 if (result != SQLITE_OK)
23 { 23 {
24 fprintf(stderr, "deita__sqlite_connection_create: Failed to open database: %s\n", sqlite3_errmsg(p_db)); 24 fprintf(stderr, "deita__sqlite_connection_create: Failed to open database: %s\n", sqlite3_errmsg(p_db));
25 sqlite3_close(p_db);
26 free(p_connection);
27 return NULL;
28 }
29 result = sqlite3_busy_timeout(p_db, 5000);
30 if (result != SQLITE_OK)
31 {
32 fprintf(
33 stderr,
34 "deita__sqlite_connection_create: Failed to set busy timeout: %s\n",
35 sqlite3_errmsg(p_db));
25 sqlite3_close(p_db); 36 sqlite3_close(p_db);
26 free(p_connection); 37 free(p_connection);
27 return NULL; 38 return NULL;
28 } 39 }
29 40
86 p_result_set->database_type = DEITA_DATABASE_TYPE_SQLITE3; 97 p_result_set->database_type = DEITA_DATABASE_TYPE_SQLITE3;
87 p_result_set->native_result = p_stmt; 98 p_result_set->native_result = p_stmt;
88 p_result_set->column_count = sqlite3_column_count(p_stmt); 99 p_result_set->column_count = sqlite3_column_count(p_stmt);
89 p_result_set->has_data = FALSE; 100 p_result_set->has_data = FALSE;
90 p_result_set->is_done = FALSE; 101 p_result_set->is_done = FALSE;
102 p_result_set->has_error = FALSE;
91 103
92 return p_result_set; 104 return p_result_set;
93 } 105 }
94 106
95 Deita_Result_Set* deita__sqlite_query_execute_prepared( 107 Deita_Result_Set* deita__sqlite_query_execute_prepared(
134 p_result_set->database_type = DEITA_DATABASE_TYPE_SQLITE3; 146 p_result_set->database_type = DEITA_DATABASE_TYPE_SQLITE3;
135 p_result_set->native_result = p_stmt; 147 p_result_set->native_result = p_stmt;
136 p_result_set->column_count = sqlite3_column_count(p_stmt); 148 p_result_set->column_count = sqlite3_column_count(p_stmt);
137 p_result_set->has_data = FALSE; 149 p_result_set->has_data = FALSE;
138 p_result_set->is_done = FALSE; 150 p_result_set->is_done = FALSE;
151 p_result_set->has_error = FALSE;
139 152
140 return p_result_set; 153 return p_result_set;
141 } 154 }
142 155
143 int32 deita__sqlite_query_execute_update( 156 int32 deita__sqlite_query_execute_update(
227 else 240 else
228 { 241 {
229 fprintf(stderr, "deita__sqlite_result_set_next: Error stepping through results\n"); 242 fprintf(stderr, "deita__sqlite_result_set_next: Error stepping through results\n");
230 p_result_set->has_data = FALSE; 243 p_result_set->has_data = FALSE;
231 p_result_set->is_done = TRUE; 244 p_result_set->is_done = TRUE;
245 p_result_set->has_error = TRUE;
232 return FALSE; 246 return FALSE;
233 } 247 }
234 } 248 }
235 249
236 int32 deita__sqlite_result_set_get_column_count(Deita_Result_Set *p_result_set) 250 int32 deita__sqlite_result_set_get_column_count(Deita_Result_Set *p_result_set)