Skip to content

Commit 1afa5fb

Browse files
committed
chore(deps): upgrade hasql to 1.9.1.2
1 parent ff821fa commit 1afa5fb

File tree

9 files changed

+72
-49
lines changed

9 files changed

+72
-49
lines changed

nix/overlays/haskell-packages.nix

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,23 @@ let
4949
# Before upgrading fuzzyset to 0.3, check: https://github.com/PostgREST/postgrest/issues/3329
5050
# jailbreak, because hspec limit for tests
5151
fuzzyset = prev.fuzzyset_0_2_4;
52+
53+
hasql = lib.dontCheck prev.hasql_1_9_1_2;
54+
hasql-pool = lib.dontCheck prev.hasql-pool_1_3_0_1;
55+
hasql-notifications = lib.dontCheck (
56+
prev.callCabal2nixWithOptions "hasql-notifications"
57+
(super.fetchFromGitHub {
58+
owner = "laurenceisla";
59+
repo = "hasql-notifications";
60+
rev = "962ae984cd81cfedc667808c38e418f7be382548";
61+
sha256 = "sha256-m34bS2qeKFewzMbZsVQtQFvf6a4cyL5FyLvi8wOMF+c=";
62+
}) "--subpath=."
63+
{ }
64+
);
65+
hasql-transaction = lib.dontCheck prev.hasql-transaction_1_2_0_1;
66+
67+
# Needed for hasql 1.9
68+
text-builder = lib.dontCheck prev.text-builder_1_0_0_3;
5269
};
5370
in
5471
{

postgrest.cabal

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,11 @@ library
110110
, either >= 4.4.1 && < 5.1
111111
, extra >= 1.7.0 && < 2.0
112112
, fuzzyset >= 0.2.4 && < 0.3
113-
, hasql >= 1.7 && < 1.9
113+
, hasql >= 1.9.1.2 && < 1.10
114114
, hasql-dynamic-statements >= 0.3.1 && < 0.4
115115
, hasql-notifications >= 0.2.2.0 && < 0.3
116-
, hasql-pool >= 1.1 && < 1.3
117-
, hasql-transaction >= 1.0.1 && < 1.2
116+
, hasql-pool >= 1.3.0.1 && < 1.4
117+
, hasql-transaction >= 1.2.0.1 && < 1.3
118118
, heredoc >= 0.2 && < 0.3
119119
, http-types >= 0.12.2 && < 0.13
120120
, insert-ordered-containers >= 0.2.2 && < 0.3
@@ -263,8 +263,9 @@ test-suite spec
263263
, bytestring >= 0.10.8 && < 0.13
264264
, case-insensitive >= 1.2 && < 1.3
265265
, containers >= 0.5.7 && < 0.7
266-
, hasql-pool >= 1.0.1 && < 1.3
267-
, hasql-transaction >= 1.0.1 && < 1.2
266+
, hasql >= 1.9.1.2 && < 1.10
267+
, hasql-pool >= 1.3.0.1 && < 1.4
268+
, hasql-transaction >= 1.2.0.1 && < 1.3
268269
, heredoc >= 0.2 && < 0.3
269270
, hspec >= 2.3 && < 2.12
270271
, hspec-expectations >= 0.8.4 && < 0.9

src/PostgREST/AppState.hs

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,22 +30,24 @@ module PostgREST.AppState
3030
, isPending
3131
) where
3232

33-
import qualified Data.ByteString.Char8 as BS
34-
import Data.Either.Combinators (whenLeft)
35-
import qualified Data.Text as T (unpack)
36-
import qualified Hasql.Pool as SQL
37-
import qualified Hasql.Pool.Config as SQL
38-
import qualified Hasql.Session as SQL
39-
import qualified Hasql.Transaction.Sessions as SQL
40-
import qualified Network.HTTP.Types.Status as HTTP
41-
import qualified Network.Socket as NS
42-
import qualified PostgREST.Auth.JwtCache as JwtCache
43-
import qualified PostgREST.Error as Error
44-
import qualified PostgREST.Logger as Logger
45-
import qualified PostgREST.Metrics as Metrics
33+
import qualified Data.ByteString.Char8 as BS
34+
import Data.Either.Combinators (whenLeft)
35+
import qualified Data.Text as T (unpack)
36+
import qualified Hasql.Connection.Setting as SQL
37+
import qualified Hasql.Connection.Setting.Connection as SQL
38+
import qualified Hasql.Pool as SQL
39+
import qualified Hasql.Pool.Config as SQL
40+
import qualified Hasql.Session as SQL
41+
import qualified Hasql.Transaction.Sessions as SQL
42+
import qualified Network.HTTP.Types.Status as HTTP
43+
import qualified Network.Socket as NS
44+
import qualified PostgREST.Auth.JwtCache as JwtCache
45+
import qualified PostgREST.Error as Error
46+
import qualified PostgREST.Logger as Logger
47+
import qualified PostgREST.Metrics as Metrics
4648
import PostgREST.Observation
47-
import PostgREST.Version (prettyVersion)
48-
import System.TimeIt (timeItT)
49+
import PostgREST.Version (prettyVersion)
50+
import System.TimeIt (timeItT)
4951

5052
import Control.AutoUpdate (defaultUpdateSettings, mkAutoUpdate,
5153
updateAction)
@@ -207,7 +209,10 @@ initPool AppConfig{..} observer = do
207209
, SQL.acquisitionTimeout $ fromIntegral configDbPoolAcquisitionTimeout
208210
, SQL.agingTimeout $ fromIntegral configDbPoolMaxLifetime
209211
, SQL.idlenessTimeout $ fromIntegral configDbPoolMaxIdletime
210-
, SQL.staticConnectionSettings (toUtf8 $ addFallbackAppName prettyVersion configDbUri)
212+
, SQL.staticConnectionSettings [
213+
SQL.connection $ SQL.string (addFallbackAppName prettyVersion configDbUri),
214+
SQL.usePreparedStatements configDbPreparedStatements
215+
]
211216
, SQL.observationHandler $ observer . HasqlPoolObs
212217
]
213218

@@ -403,8 +408,7 @@ retryingSchemaCacheLoad appState@AppState{stateObserver=observer, stateMainThrea
403408
qSchemaCache = do
404409
conf@AppConfig{..} <- getConfig appState
405410
(resultTime, result) <-
406-
let transaction = if configDbPreparedStatements then SQL.transaction else SQL.unpreparedTransaction in
407-
timeItT $ usePool appState (transaction SQL.ReadCommitted SQL.Read $ querySchemaCache conf)
411+
timeItT $ usePool appState (SQL.transaction SQL.ReadCommitted SQL.Read $ querySchemaCache conf)
408412
case result of
409413
Left e -> do
410414
putSCacheStatus appState SCPending

src/PostgREST/CLI.hs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,7 @@ main CLI{cliCommand, cliPath} = do
5353
dumpSchema :: AppState -> IO LBS.ByteString
5454
dumpSchema appState = do
5555
conf@AppConfig{..} <- AppState.getConfig appState
56-
result <-
57-
let transaction = if configDbPreparedStatements then SQL.transaction else SQL.unpreparedTransaction in
58-
AppState.usePool appState
59-
(transaction SQL.ReadCommitted SQL.Read $ querySchemaCache conf)
56+
result <- AppState.usePool appState (SQL.transaction SQL.ReadCommitted SQL.Read $ querySchemaCache conf)
6057
case result of
6158
Left e -> do
6259
let observer = AppState.getObserver appState

src/PostgREST/Config/Database.hs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,7 @@ pgVersionStatement = SQL.Statement sql HE.noParams versionRow
9292
-- A setting on the database only will have no effect: ALTER DATABASE postgres SET <prefix>jwt_aud = 'xx'
9393
queryDbSettings :: Maybe Text -> Bool -> Session [(Text, Text)]
9494
queryDbSettings preConfFunc prepared =
95-
let transaction = if prepared then SQL.transaction else SQL.unpreparedTransaction in
96-
transaction SQL.ReadCommitted SQL.Read $ SQL.statement dbSettingsNames $ SQL.Statement sql (arrayParam HE.text) decodeSettings prepared
95+
SQL.transaction SQL.ReadCommitted SQL.Read $ SQL.statement dbSettingsNames $ SQL.Statement sql (arrayParam HE.text) decodeSettings prepared
9796
where
9897
sql = encodeUtf8 [trimming|
9998
WITH
@@ -133,8 +132,7 @@ queryDbSettings preConfFunc prepared =
133132

134133
queryRoleSettings :: PgVersion -> Bool -> Session (RoleSettings, RoleIsolationLvl)
135134
queryRoleSettings pgVer prepared =
136-
let transaction = if prepared then SQL.transaction else SQL.unpreparedTransaction in
137-
transaction SQL.ReadCommitted SQL.Read $ SQL.statement mempty $ SQL.Statement sql HE.noParams (processRows <$> rows) prepared
135+
SQL.transaction SQL.ReadCommitted SQL.Read $ SQL.statement mempty $ SQL.Statement sql HE.noParams (processRows <$> rows) prepared
138136
where
139137
sql = encodeUtf8 [trimming|
140138
with

src/PostgREST/Listener.hs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@ module PostgREST.Listener (runListener) where
55

66
import qualified Data.ByteString.Char8 as BS
77

8-
import qualified Hasql.Connection as SQL
9-
import qualified Hasql.Notifications as SQL
10-
import PostgREST.AppState (AppState, getConfig)
11-
import PostgREST.Config (AppConfig (..))
12-
import PostgREST.Observation (Observation (..))
13-
import PostgREST.Version (prettyVersion)
8+
import qualified Hasql.Connection as SQL
9+
import qualified Hasql.Connection.Setting as SQL
10+
import qualified Hasql.Connection.Setting.Connection as SQL
11+
import qualified Hasql.Notifications as SQL
12+
import PostgREST.AppState (AppState,
13+
getConfig)
14+
import PostgREST.Config (AppConfig (..))
15+
import PostgREST.Observation (Observation (..))
16+
import PostgREST.Version (prettyVersion)
1417

1518
import qualified PostgREST.AppState as AppState
1619
import qualified PostgREST.Config as Config
@@ -29,6 +32,7 @@ retryingListen :: AppState -> IO ()
2932
retryingListen appState = do
3033
AppConfig{..} <- AppState.getConfig appState
3134
let
35+
connectionString = Config.addTargetSessionAttrs $ Config.addFallbackAppName prettyVersion configDbUri
3236
dbChannel = toS configDbChannel
3337
handleFinally err = do
3438
AppState.putIsListenerOn appState False
@@ -46,7 +50,7 @@ retryingListen appState = do
4650

4751
-- forkFinally allows to detect if the thread dies
4852
void . flip forkFinally handleFinally $ do
49-
dbOrError <- SQL.acquire $ toUtf8 (Config.addTargetSessionAttrs $ Config.addFallbackAppName prettyVersion configDbUri)
53+
dbOrError <- SQL.acquire [ SQL.connection $ SQL.string connectionString ]
5054
case dbOrError of
5155
Right db -> do
5256
SQL.listen db $ SQL.toPgIdentifier dbChannel

src/PostgREST/Query.hs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,8 @@ data QueryResult
7676
query :: AppConfig -> AuthResult -> ApiRequest -> ActionPlan -> SchemaCache -> Query
7777
query _ _ _ (NoDb x) _ = NoDbQuery $ NoDbResult x
7878
query config AuthResult{..} apiReq (Db plan) sCache =
79-
DbQuery isoLvl txMode dbHandler transaction mainSQLQuery
79+
DbQuery isoLvl txMode dbHandler SQL.transaction mainSQLQuery
8080
where
81-
transaction = if prepared then SQL.transaction else SQL.unpreparedTransaction
82-
prepared = configDbPreparedStatements config
8381
isoLvl = planIsoLvl config authRole plan
8482
txMode = planTxMode plan
8583
(mainActionQuery, mainSQLQuery) = actionQuery plan config apiReq sCache

stack.yaml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ nix:
1010

1111
extra-deps:
1212
- fuzzyset-0.2.4
13-
- hasql-1.8.1.4
13+
- hasql-1.9.1.2
1414
- hasql-dynamic-statements-0.3.1.8
1515
- hasql-implicits-0.2.0.1
16-
- hasql-notifications-0.2.3.2
17-
- hasql-pool-1.2.0.3
18-
- hasql-transaction-1.1.1.2
16+
- github: laurenceisla/hasql-notifications
17+
commit: 962ae984cd81cfedc667808c38e418f7be382548
18+
subdirs: .
19+
- hasql-pool-1.3.0.1
20+
- hasql-transaction-1.2.0.1
1921
- jose-jwt-0.10.0
2022
- postgresql-binary-0.14.0.1
2123
- postgresql-libpq-0.11.0.0

test/spec/Main.hs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
module Main where
22

3-
import qualified Hasql.Pool as P
4-
import qualified Hasql.Pool.Config as P
5-
import qualified Hasql.Transaction.Sessions as HT
3+
import qualified Hasql.Connection.Setting as C
4+
import qualified Hasql.Connection.Setting.Connection as C
5+
import qualified Hasql.Pool as P
6+
import qualified Hasql.Pool.Config as P
7+
import qualified Hasql.Transaction.Sessions as HT
68

79
import Data.Function (id)
810

@@ -77,7 +79,7 @@ main = do
7779
, P.acquisitionTimeout 10
7880
, P.agingTimeout 60
7981
, P.idlenessTimeout 60
80-
, P.staticConnectionSettings (toUtf8 $ configDbUri testCfg)
82+
, P.staticConnectionSettings [ C.connection $ C.string $ configDbUri testCfg ]
8183
]
8284

8385
actualPgVersion <- either (panic . show) id <$> P.use pool (queryPgVersion False)

0 commit comments

Comments
 (0)