Skip to content

Commit e78ab60

Browse files
authored
build: fix postgres (#1444)
1 parent b3c8358 commit e78ab60

File tree

14 files changed

+22
-77
lines changed

14 files changed

+22
-77
lines changed

src/Simplex/FileTransfer/Description.hs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
{-# LANGUAGE CPP #-}
21
{-# LANGUAGE DataKinds #-}
32
{-# LANGUAGE DeriveAnyClass #-}
43
{-# LANGUAGE DerivingStrategies #-}
@@ -71,20 +70,13 @@ import qualified Data.Yaml as Y
7170
import Simplex.FileTransfer.Chunks
7271
import Simplex.FileTransfer.Protocol
7372
import Simplex.Messaging.Agent.QueryString
74-
import Simplex.Messaging.Agent.Store.DB (Binary (..))
73+
import Simplex.Messaging.Agent.Store.DB (Binary (..), FromField (..), ToField (..))
7574
import qualified Simplex.Messaging.Crypto as C
7675
import Simplex.Messaging.Encoding.String
7776
import Simplex.Messaging.Parsers (defaultJSON, parseAll)
7877
import Simplex.Messaging.Protocol (XFTPServer)
7978
import Simplex.Messaging.ServiceScheme (ServiceScheme (..))
8079
import Simplex.Messaging.Util (bshow, safeDecodeUtf8, (<$?>))
81-
#if defined(dbPostgres)
82-
import Database.PostgreSQL.Simple.FromField (FromField (..))
83-
import Database.PostgreSQL.Simple.ToField (ToField (..))
84-
#else
85-
import Database.SQLite.Simple.FromField (FromField (..))
86-
import Database.SQLite.Simple.ToField (ToField (..))
87-
#endif
8880

8981
data FileDescription (p :: FileParty) = FileDescription
9082
{ party :: SFileParty p,

src/Simplex/FileTransfer/Types.hs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
{-# LANGUAGE CPP #-}
21
{-# LANGUAGE DuplicateRecordFields #-}
32
{-# LANGUAGE LambdaCase #-}
43
{-# LANGUAGE NamedFieldPuns #-}
@@ -23,13 +22,7 @@ import Simplex.Messaging.Encoding.String
2322
import Simplex.Messaging.Parsers
2423
import Simplex.Messaging.Protocol (XFTPServer)
2524
import System.FilePath ((</>))
26-
#if defined(dbPostgres)
27-
import Database.PostgreSQL.Simple.FromField (FromField (..))
28-
import Database.PostgreSQL.Simple.ToField (ToField (..))
29-
#else
30-
import Database.SQLite.Simple.FromField (FromField (..))
31-
import Database.SQLite.Simple.ToField (ToField (..))
32-
#endif
25+
import Simplex.Messaging.Agent.Store.DB (FromField (..), ToField (..))
3326

3427
type RcvFileId = ByteString -- Agent entity ID
3528

src/Simplex/Messaging/Agent/Protocol.hs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,7 @@ import Data.Time.Clock.System (SystemTime)
167167
import Data.Type.Equality
168168
import Data.Typeable ()
169169
import Data.Word (Word16, Word32)
170-
import Database.SQLite.Simple.FromField
171-
import Database.SQLite.Simple.ToField
170+
import Simplex.Messaging.Agent.Store.DB (FromField (..), ToField (..))
172171
import Simplex.FileTransfer.Description
173172
import Simplex.FileTransfer.Protocol (FileParty (..))
174173
import Simplex.FileTransfer.Transport (XFTPErrorType)

src/Simplex/Messaging/Agent/Stats.hs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
{-# LANGUAGE CPP #-}
21
{-# LANGUAGE DuplicateRecordFields #-}
32
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
43
{-# LANGUAGE NamedFieldPuns #-}
@@ -12,17 +11,11 @@ import Data.Int (Int64)
1211
import Data.Map.Strict (Map)
1312
import qualified Data.Map.Strict as M
1413
import Simplex.Messaging.Agent.Protocol (UserId)
14+
import Simplex.Messaging.Agent.Store.DB (FromField (..), ToField (..))
1515
import Simplex.Messaging.Parsers (defaultJSON, fromTextField_)
1616
import Simplex.Messaging.Protocol (NtfServer, SMPServer, XFTPServer)
1717
import Simplex.Messaging.Util (decodeJSON, encodeJSON)
1818
import UnliftIO.STM
19-
#if defined(dbPostgres)
20-
import Database.PostgreSQL.Simple.FromField (FromField (..))
21-
import Database.PostgreSQL.Simple.ToField (ToField (..))
22-
#else
23-
import Database.SQLite.Simple.FromField (FromField (..))
24-
import Database.SQLite.Simple.ToField (ToField (..))
25-
#endif
2619

2720
data AgentSMPServerStats = AgentSMPServerStats
2821
{ sentDirect :: TVar Int, -- successfully sent messages

src/Simplex/Messaging/Agent/Store/AgentStore.hs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ import Simplex.Messaging.Agent.Stats
262262
import Simplex.Messaging.Agent.Store
263263
import Simplex.Messaging.Agent.Store.Common
264264
import qualified Simplex.Messaging.Agent.Store.DB as DB
265-
import Simplex.Messaging.Agent.Store.DB (Binary (..), BoolInt (..))
265+
import Simplex.Messaging.Agent.Store.DB (Binary (..), BoolInt (..), FromField (..), ToField (..))
266266
import qualified Simplex.Messaging.Crypto as C
267267
import Simplex.Messaging.Crypto.File (CryptoFile (..), CryptoFileArgs (..))
268268
import Simplex.Messaging.Crypto.Ratchet (PQEncryption (..), PQSupport (..), RatchetX448, SkippedMsgDiff (..), SkippedMsgKeys)
@@ -281,16 +281,12 @@ import qualified UnliftIO.Exception as E
281281
import UnliftIO.STM
282282
#if defined(dbPostgres)
283283
import Database.PostgreSQL.Simple (Only (..), Query, SqlError, (:.) (..))
284-
import Database.PostgreSQL.Simple.FromField (FromField (..))
285284
import Database.PostgreSQL.Simple.Errors (constraintViolation)
286285
import Database.PostgreSQL.Simple.SqlQQ (sql)
287-
import Database.PostgreSQL.Simple.ToField (ToField (..))
288286
#else
289287
import Database.SQLite.Simple (FromRow (..), Only (..), Query (..), SQLError, ToRow (..), field, (:.) (..))
290288
import qualified Database.SQLite.Simple as SQL
291-
import Database.SQLite.Simple.FromField
292289
import Database.SQLite.Simple.QQ (sql)
293-
import Database.SQLite.Simple.ToField (ToField (..))
294290
#endif
295291

296292
checkConstraint :: StoreError -> IO (Either StoreError a) -> IO (Either StoreError a)

src/Simplex/Messaging/Agent/Store/DB.hs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,15 @@
33
module Simplex.Messaging.Agent.Store.DB
44
#if defined(dbPostgres)
55
( module Simplex.Messaging.Agent.Store.Postgres.DB,
6+
FromField (..),
7+
ToField (..),
68
)
79
where
810
import Simplex.Messaging.Agent.Store.Postgres.DB
911
#else
1012
( module Simplex.Messaging.Agent.Store.SQLite.DB,
13+
FromField (..),
14+
ToField (..),
1115
)
1216
where
1317
import Simplex.Messaging.Agent.Store.SQLite.DB

src/Simplex/Messaging/Agent/Store/Postgres/DB.hs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ module Simplex.Messaging.Agent.Store.Postgres.DB
44
( BoolInt (..),
55
PSQL.Binary (..),
66
PSQL.Connection,
7+
FromField (..),
8+
ToField (..),
79
PSQL.connect,
810
PSQL.close,
911
execute,
@@ -49,15 +51,15 @@ executeMany db q qs = void $ PSQL.executeMany db q qs
4951
-- used in FileSize
5052
instance FromField Word32 where
5153
fromField field dat = do
52-
i <- fromField field dat
53-
if i >= (0 :: Int64)
54+
i :: Int64 <- fromField field dat
55+
if i >= 0 && i <= fromIntegral (maxBound :: Word32)
5456
then pure (fromIntegral i :: Word32)
5557
else returnError ConversionFailed field "Negative value can't be converted to Word32"
5658

5759
-- used in Version
5860
instance FromField Word16 where
5961
fromField field dat = do
60-
i <- fromField field dat
61-
if i >= (0 :: Int32)
62+
i :: Int64 <- fromField field dat
63+
if i >= 0 && i <= fromIntegral (maxBound :: Word16)
6264
then pure (fromIntegral i :: Word16)
6365
else returnError ConversionFailed field "Negative value can't be converted to Word16"

src/Simplex/Messaging/Agent/Store/SQLite/DB.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ module Simplex.Messaging.Agent.Store.SQLite.DB
1212
Connection (..),
1313
SlowQueryStats (..),
1414
TrackQueries (..),
15+
FromField (..),
16+
ToField (..),
1517
open,
1618
close,
1719
execute,

src/Simplex/Messaging/Crypto.hs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -238,18 +238,11 @@ import Data.X509
238238
import Data.X509.Validation (Fingerprint (..), getFingerprint)
239239
import GHC.TypeLits (ErrorMessage (..), KnownNat, Nat, TypeError, natVal, type (+))
240240
import Network.Transport.Internal (decodeWord16, encodeWord16)
241-
import Simplex.Messaging.Agent.Store.DB (Binary (..))
241+
import Simplex.Messaging.Agent.Store.DB (Binary (..), FromField (..), ToField (..))
242242
import Simplex.Messaging.Encoding
243243
import Simplex.Messaging.Encoding.String
244244
import Simplex.Messaging.Parsers (blobFieldDecoder, parseAll, parseString)
245245
import Simplex.Messaging.Util ((<$?>))
246-
#if defined(dbPostgres)
247-
import Database.PostgreSQL.Simple.FromField (FromField (..))
248-
import Database.PostgreSQL.Simple.ToField (ToField (..))
249-
#else
250-
import Database.SQLite.Simple.FromField (FromField (..))
251-
import Database.SQLite.Simple.ToField (ToField (..))
252-
#endif
253246

254247
-- | Cryptographic algorithms.
255248
data Algorithm = Ed25519 | Ed448 | X25519 | X448

src/Simplex/Messaging/Crypto/Ratchet.hs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ import Data.Type.Equality
111111
import Data.Typeable (Typeable)
112112
import Data.Word (Word16, Word32)
113113
import Simplex.Messaging.Agent.QueryString
114-
import Simplex.Messaging.Agent.Store.DB (Binary (..), BoolInt (..))
114+
import Simplex.Messaging.Agent.Store.DB (Binary (..), BoolInt (..), FromField (..), ToField (..))
115115
import Simplex.Messaging.Crypto
116116
import Simplex.Messaging.Crypto.SNTRUP761.Bindings
117117
import Simplex.Messaging.Encoding
@@ -121,13 +121,6 @@ import Simplex.Messaging.Util (($>>=), (<$?>))
121121
import Simplex.Messaging.Version
122122
import Simplex.Messaging.Version.Internal
123123
import UnliftIO.STM
124-
#if defined(dbPostgres)
125-
import Database.PostgreSQL.Simple.FromField (FromField (..))
126-
import Database.PostgreSQL.Simple.ToField (ToField (..))
127-
#else
128-
import Database.SQLite.Simple.FromField (FromField (..))
129-
import Database.SQLite.Simple.ToField (ToField (..))
130-
#endif
131124

132125
-- e2e encryption headers version history:
133126
-- 1 - binary protocol encoding (1/1/2022)

0 commit comments

Comments
 (0)