diff --git a/nix/overlays/haskell-packages.nix b/nix/overlays/haskell-packages.nix index 33a5a3cacb..e4f6a44bb6 100644 --- a/nix/overlays/haskell-packages.nix +++ b/nix/overlays/haskell-packages.nix @@ -70,6 +70,17 @@ let hspec-wai-json = lib.dontCheck (lib.unmarkBroken prev.hspec-wai-json); + + hasql = + lib.dontCheck (prev.callCabal2nixWithOptions "hasql" + (super.fetchFromGitHub { + owner = "robx"; + repo = "hasql"; + rev = "433428a6c9df2be000e86e06af2f16076395582e"; + sha256 = "sha256-tw+0d6EcHpcKoHXK9wqjRBlAZFmbeDPWXIgOJWGQ5ag="; + }) "" + { }); + } // extraOverrides final prev; in { diff --git a/src/PostgREST/Query/SqlFragment.hs b/src/PostgREST/Query/SqlFragment.hs index 2ca2e0b99b..1c64646bb5 100644 --- a/src/PostgREST/Query/SqlFragment.hs +++ b/src/PostgREST/Query/SqlFragment.hs @@ -122,14 +122,14 @@ normalizedBody body = "END AS val", "FROM pgrst_payload)"]) where - jsonPlaceHolder = SQL.encoderAndParam (HE.nullable HE.unknown) (LBS.toStrict <$> body) <> "::json" + jsonPlaceHolder = SQL.encoderAndParam (HE.nullable HE.unknownLazy) body <> "::json" singleParameter :: Maybe LBS.ByteString -> ByteString -> SQL.Snippet singleParameter body typ = if typ == "bytea" -- TODO: Hasql fails when using HE.unknown with bytea(pg tries to utf8 encode). then SQL.encoderAndParam (HE.nullable HE.bytea) (LBS.toStrict <$> body) - else SQL.encoderAndParam (HE.nullable HE.unknown) (LBS.toStrict <$> body) <> "::" <> SQL.sql typ + else SQL.encoderAndParam (HE.nullable HE.unknownLazy) body <> "::" <> SQL.sql typ selectBody :: SqlFragment selectBody = "(SELECT val FROM pgrst_body)"