diff --git a/src/Simplex/Messaging/Agent/Store/SQLite.hs b/src/Simplex/Messaging/Agent/Store/SQLite.hs index e8188788b..95a357141 100644 --- a/src/Simplex/Messaging/Agent/Store/SQLite.hs +++ b/src/Simplex/Messaging/Agent/Store/SQLite.hs @@ -245,12 +245,14 @@ sqlString s = quote <> T.replace quote "''" (T.pack s) <> quote exexSQL :: DB.Connection -> Text -> IO [Text] exexSQL db query = do rs <- newIORef [] - SQLite3.execWithCallback (DB.connectionHandle db) query (addRow rs) + SQLite3.execWithCallback (DB.connectionHandle db) query (addSQLResultRow rs) reverse <$> readIORef rs + +addSQLResultRow :: IORef [Text] -> SQLite3.ColumnIndex -> [Text] -> [Maybe Text] -> IO () +addSQLResultRow rs _count names values = modifyIORef' rs $ \case + [] -> [showValues values, T.intercalate "|" names] + rs' -> showValues values : rs' where - addRow rs _count names values = modifyIORef' rs $ \case - [] -> [showValues values, T.intercalate "|" names] - rs' -> showValues values : rs' showValues = T.intercalate "|" . map (fromMaybe "") checkConstraint :: StoreError -> IO (Either StoreError a) -> IO (Either StoreError a)