Skip to content

Commit beae307

Browse files
committed
Simplified type parameters of the SqlCopy<X> type constructors
1 parent 6bf174a commit beae307

2 files changed

Lines changed: 14 additions & 14 deletions

File tree

beam-core/Database/Beam/Backend/SQL/BeamExtensions/Copy/File.hs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -142,15 +142,15 @@ type family BeamSqlBackendCopyFromSyntax be :: Type
142142
-- 'runCopyTo'. Construct via 'copyTableTo' or 'copySelectTo'; the @table@
143143
-- and @proj@ phantom parameters track which table the statement applies to
144144
-- and which columns it projects.
145-
data SqlCopyTo be (table :: (Type -> Type) -> Type) proj
145+
data SqlCopyTo be a
146146
= SqlCopyTo !(BeamSqlBackendCopyToSyntax be)
147147
| -- | A projection covering zero columns. 'runCopyTo' should treat this as a
148148
-- no-op rather than emit an empty @COPY tbl () TO ...@ statement.
149149
SqlCopyToNoColumns
150150

151151
-- | A built file-mode @COPY ... FROM@ statement, ready to be executed by
152152
-- 'runCopyFrom'. Construct via 'copyTableFrom'.
153-
data SqlCopyFrom be (table :: (Type -> Type) -> Type) proj
153+
data SqlCopyFrom be a
154154
= SqlCopyFrom !(BeamSqlBackendCopyFromSyntax be)
155155
| -- | A projection covering zero columns. 'runCopyFrom' should treat this as
156156
-- a no-op rather than emit an empty @COPY tbl () FROM ...@ statement.
@@ -171,7 +171,7 @@ copyTableTo ::
171171
(table (QField s) -> proj) ->
172172
-- | Backend-specific options. The output is also determined by this value
173173
SqlCopyToParams (BeamSqlBackendCopyToSyntax be) ->
174-
SqlCopyTo be table proj
174+
SqlCopyTo be proj
175175
copyTableTo (DatabaseEntity dt@(DatabaseTable {})) mkProj options =
176176
case nonEmpty (projection dt mkProj) of
177177
Nothing -> SqlCopyToNoColumns
@@ -195,7 +195,7 @@ copySelectTo ::
195195
SqlSelect be a ->
196196
-- | Backend-specific options. The format is pinned by this value
197197
SqlCopyToParams (BeamSqlBackendCopyToSyntax be) ->
198-
SqlCopyTo be table proj
198+
SqlCopyTo be a
199199
copySelectTo (SqlSelect selectSyntax) options =
200200
let source = copySelectToSyntax selectSyntax
201201
in SqlCopyTo (copyToStmt source options)
@@ -213,7 +213,7 @@ copyTableFrom ::
213213
(table (QField s) -> proj) ->
214214
-- | Backend-specific options. The format is pinned by this value
215215
SqlCopyFromParams (BeamSqlBackendCopyFromSyntax be) ->
216-
SqlCopyFrom be table proj
216+
SqlCopyFrom be proj
217217
copyTableFrom (DatabaseEntity dt@(DatabaseTable {})) mkProj options =
218218
case nonEmpty (projection dt mkProj) of
219219
Nothing -> SqlCopyFromNoColumns
@@ -254,7 +254,7 @@ projection dt mkProj =
254254
-- @since 0.11.1.0
255255
class (MonadBeam be m) => MonadBeamCopyTo be m | m -> be where
256256
-- | Execute a built @COPY ... TO@ file statement.
257-
runCopyTo :: SqlCopyTo be table proj -> m ()
257+
runCopyTo :: SqlCopyTo be res -> m ()
258258

259259
instance (MonadBeamCopyTo be m) => MonadBeamCopyTo be (ExceptT e m) where
260260
runCopyTo = lift . runCopyTo
@@ -290,7 +290,7 @@ instance (MonadBeamCopyTo be m, Monoid w) => MonadBeamCopyTo be (Strict.RWST r w
290290
-- @since 0.11.1.0
291291
class (MonadBeam be m) => MonadBeamCopyFrom be m | m -> be where
292292
-- | Execute a built @COPY ... FROM@ file statement.
293-
runCopyFrom :: SqlCopyFrom be table proj -> m ()
293+
runCopyFrom :: SqlCopyFrom be proj -> m ()
294294

295295
instance (MonadBeamCopyFrom be m) => MonadBeamCopyFrom be (ExceptT e m) where
296296
runCopyFrom = lift . runCopyFrom

beam-core/Database/Beam/Backend/SQL/BeamExtensions/Copy/Stream.hs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ type family BeamSqlBackendCopyFromStreamSyntax be :: Type
110110

111111
-- | A built streaming-mode @COPY ... TO@ statement, ready to be executed by
112112
-- 'runCopyToStream'.
113-
data SqlCopyToStream be (table :: (Type -> Type) -> Type) proj
113+
data SqlCopyToStream be a
114114
= SqlCopyToStream !(BeamSqlBackendCopyToStreamSyntax be)
115115
| -- | A projection covering zero columns. 'runCopyToStream' should treat
116116
-- this as a no-op (it must still call the sink zero times) rather
@@ -119,7 +119,7 @@ data SqlCopyToStream be (table :: (Type -> Type) -> Type) proj
119119

120120
-- | A built streaming-mode @COPY ... FROM@ statement, ready to be executed
121121
-- by 'runCopyFromStream'.
122-
data SqlCopyFromStream be (table :: (Type -> Type) -> Type) proj
122+
data SqlCopyFromStream be a
123123
= SqlCopyFromStream !(BeamSqlBackendCopyFromStreamSyntax be)
124124
| -- | A projection covering zero columns. 'runCopyFromStream' should
125125
-- treat this as a no-op (it should not pull from the source) rather
@@ -142,7 +142,7 @@ copyTableToStream ::
142142
(table (QField s) -> proj) ->
143143
-- | Backend-specific options.
144144
SqlCopyToStreamParams (BeamSqlBackendCopyToStreamSyntax be) ->
145-
SqlCopyToStream be table proj
145+
SqlCopyToStream be proj
146146
copyTableToStream (DatabaseEntity dt@(DatabaseTable {})) mkProj options =
147147
case nonEmpty (projection dt mkProj) of
148148
Nothing -> SqlCopyToStreamNoColumns
@@ -163,7 +163,7 @@ copySelectToStream ::
163163
) =>
164164
SqlSelect be a ->
165165
SqlCopyToStreamParams (BeamSqlBackendCopyToStreamSyntax be) ->
166-
SqlCopyToStream be table proj
166+
SqlCopyToStream be a
167167
copySelectToStream (SqlSelect selectSyntax) options =
168168
let source = copySelectToSyntax selectSyntax
169169
in SqlCopyToStream (copyToStreamStmt source options)
@@ -183,7 +183,7 @@ copyTableFromStream ::
183183
-- To copy the stream into the entire table, use 'id'.
184184
(table (QField s) -> proj) ->
185185
SqlCopyFromStreamParams (BeamSqlBackendCopyFromStreamSyntax be) ->
186-
SqlCopyFromStream be table proj
186+
SqlCopyFromStream be proj
187187
copyTableFromStream (DatabaseEntity dt@(DatabaseTable {})) mkProj options =
188188
case nonEmpty (projection dt mkProj) of
189189
Nothing -> SqlCopyFromStreamNoColumns
@@ -207,7 +207,7 @@ class (MonadBeam be m) => MonadBeamCopyToStream be m | m -> be where
207207
-- is invoked from 'IO' once per chunk emitted by the server, in order;
208208
-- 'runCopyToStream' returns once the server signals end of stream.
209209
runCopyToStream ::
210-
SqlCopyToStream be table proj ->
210+
SqlCopyToStream be a ->
211211
-- | Sink. Called once for each chunk of bytes the server emits.
212212
(ByteString -> IO ()) ->
213213
m ()
@@ -256,7 +256,7 @@ class (MonadBeam be m) => MonadBeamCopyFromStream be m | m -> be where
256256
-- chunk is forwarded to the server in order. 'runCopyFromStream' returns
257257
-- once the server has acknowledged the end of stream.
258258
runCopyFromStream ::
259-
SqlCopyFromStream be table proj ->
259+
SqlCopyFromStream be a ->
260260
-- | Source. Called repeatedly. 'Nothing' signals end of data.
261261
IO (Maybe ByteString) ->
262262
m ()

0 commit comments

Comments
 (0)