From f8505d4add64b2b2ce11a94d878857d404f30fe6 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Thu, 22 Sep 2022 12:12:24 +0100 Subject: [PATCH] make function processing sql rows module-level (#533) --- src/Simplex/Messaging/Agent/Store/SQLite.hs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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)