git.iko.soy/typeable/postgresql-simple
on master help sign in
Extend FromRow and ToRow out to tuples of size 20
commitbd8a12b6b081be75ecf0cdd4e4a7a8ec67c744f9 authorBardur Arantsson <bardur@scientician.net> dateWed 8 Nov 2017, 18:36 (9 years ago) parentdf6ab5c
2 files changed+281
src/Database/PostgreSQL/Simple/FromRow.hs+191 src/Database/PostgreSQL/Simple/ToRow.hs+90
src/Database/PostgreSQL/Simple/FromRow.hs+191
@@ -238,6 +238,197 @@ instance (FromField a, FromField b, FromField c, FromField d, FromField e,
238238 null *> null *> null *> null *> null *> pure Nothing)
239239 <|> (Just <$> fromRow)
240240
241+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
242+ FromField f, FromField g, FromField h, FromField i, FromField j,
243+ FromField k) =>
244+ FromRow (a,b,c,d,e,f,g,h,i,j,k) where
245+ fromRow = (,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
246+ <*> field <*> field <*> field <*> field <*> field
247+ <*> field
248+
249+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
250+ FromField f, FromField g, FromField h, FromField i, FromField j,
251+ FromField k) =>
252+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k)) where
253+ fromRow = (null *> null *> null *> null *> null *>
254+ null *> null *> null *> null *> null *>
255+ null *> pure Nothing)
256+ <|> (Just <$> fromRow)
257+
258+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
259+ FromField f, FromField g, FromField h, FromField i, FromField j,
260+ FromField k, FromField l) =>
261+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l) where
262+ fromRow = (,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
263+ <*> field <*> field <*> field <*> field <*> field
264+ <*> field <*> field
265+
266+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
267+ FromField f, FromField g, FromField h, FromField i, FromField j,
268+ FromField k, FromField l) =>
269+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l)) where
270+ fromRow = (null *> null *> null *> null *> null *>
271+ null *> null *> null *> null *> null *>
272+ null *> null *> pure Nothing)
273+ <|> (Just <$> fromRow)
274+
275+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
276+ FromField f, FromField g, FromField h, FromField i, FromField j,
277+ FromField k, FromField l, FromField m) =>
278+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m) where
279+ fromRow = (,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
280+ <*> field <*> field <*> field <*> field <*> field
281+ <*> field <*> field <*> field
282+
283+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
284+ FromField f, FromField g, FromField h, FromField i, FromField j,
285+ FromField k, FromField l, FromField m) =>
286+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m)) where
287+ fromRow = (null *> null *> null *> null *> null *>
288+ null *> null *> null *> null *> null *>
289+ null *> null *> null *> pure Nothing)
290+ <|> (Just <$> fromRow)
291+
292+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
293+ FromField f, FromField g, FromField h, FromField i, FromField j,
294+ FromField k, FromField l, FromField m, FromField n) =>
295+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n) where
296+ fromRow = (,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
297+ <*> field <*> field <*> field <*> field <*> field
298+ <*> field <*> field <*> field <*> field
299+
300+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
301+ FromField f, FromField g, FromField h, FromField i, FromField j,
302+ FromField k, FromField l, FromField m, FromField n) =>
303+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n)) where
304+ fromRow = (null *> null *> null *> null *> null *>
305+ null *> null *> null *> null *> null *>
306+ null *> null *> null *> null *> pure Nothing)
307+ <|> (Just <$> fromRow)
308+
309+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
310+ FromField f, FromField g, FromField h, FromField i, FromField j,
311+ FromField k, FromField l, FromField m, FromField n, FromField o) =>
312+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) where
313+ fromRow = (,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
314+ <*> field <*> field <*> field <*> field <*> field
315+ <*> field <*> field <*> field <*> field <*> field
316+
317+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
318+ FromField f, FromField g, FromField h, FromField i, FromField j,
319+ FromField k, FromField l, FromField m, FromField n, FromField o) =>
320+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)) where
321+ fromRow = (null *> null *> null *> null *> null *>
322+ null *> null *> null *> null *> null *>
323+ null *> null *> null *> null *> null *> pure Nothing)
324+ <|> (Just <$> fromRow)
325+
326+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
327+ FromField f, FromField g, FromField h, FromField i, FromField j,
328+ FromField k, FromField l, FromField m, FromField n, FromField o,
329+ FromField p) =>
330+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) where
331+ fromRow = (,,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
332+ <*> field <*> field <*> field <*> field <*> field
333+ <*> field <*> field <*> field <*> field <*> field
334+ <*> field
335+
336+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
337+ FromField f, FromField g, FromField h, FromField i, FromField j,
338+ FromField k, FromField l, FromField m, FromField n, FromField o,
339+ FromField p) =>
340+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)) where
341+ fromRow = (null *> null *> null *> null *> null *>
342+ null *> null *> null *> null *> null *>
343+ null *> null *> null *> null *> null *>
344+ null *> pure Nothing)
345+ <|> (Just <$> fromRow)
346+
347+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
348+ FromField f, FromField g, FromField h, FromField i, FromField j,
349+ FromField k, FromField l, FromField m, FromField n, FromField o,
350+ FromField p, FromField q) =>
351+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) where
352+ fromRow = (,,,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
353+ <*> field <*> field <*> field <*> field <*> field
354+ <*> field <*> field <*> field <*> field <*> field
355+ <*> field <*> field
356+
357+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
358+ FromField f, FromField g, FromField h, FromField i, FromField j,
359+ FromField k, FromField l, FromField m, FromField n, FromField o,
360+ FromField p, FromField q) =>
361+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q)) where
362+ fromRow = (null *> null *> null *> null *> null *>
363+ null *> null *> null *> null *> null *>
364+ null *> null *> null *> null *> null *>
365+ null *> null *> pure Nothing)
366+ <|> (Just <$> fromRow)
367+
368+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
369+ FromField f, FromField g, FromField h, FromField i, FromField j,
370+ FromField k, FromField l, FromField m, FromField n, FromField o,
371+ FromField p, FromField q, FromField r) =>
372+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) where
373+ fromRow = (,,,,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
374+ <*> field <*> field <*> field <*> field <*> field
375+ <*> field <*> field <*> field <*> field <*> field
376+ <*> field <*> field <*> field
377+
378+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
379+ FromField f, FromField g, FromField h, FromField i, FromField j,
380+ FromField k, FromField l, FromField m, FromField n, FromField o,
381+ FromField p, FromField q, FromField r) =>
382+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r)) where
383+ fromRow = (null *> null *> null *> null *> null *>
384+ null *> null *> null *> null *> null *>
385+ null *> null *> null *> null *> null *>
386+ null *> null *> null *> pure Nothing)
387+ <|> (Just <$> fromRow)
388+
389+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
390+ FromField f, FromField g, FromField h, FromField i, FromField j,
391+ FromField k, FromField l, FromField m, FromField n, FromField o,
392+ FromField p, FromField q, FromField r, FromField s) =>
393+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) where
394+ fromRow = (,,,,,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
395+ <*> field <*> field <*> field <*> field <*> field
396+ <*> field <*> field <*> field <*> field <*> field
397+ <*> field <*> field <*> field <*> field
398+
399+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
400+ FromField f, FromField g, FromField h, FromField i, FromField j,
401+ FromField k, FromField l, FromField m, FromField n, FromField o,
402+ FromField p, FromField q, FromField r, FromField s) =>
403+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s)) where
404+ fromRow = (null *> null *> null *> null *> null *>
405+ null *> null *> null *> null *> null *>
406+ null *> null *> null *> null *> null *>
407+ null *> null *> null *> null *> pure Nothing)
408+ <|> (Just <$> fromRow)
409+
410+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
411+ FromField f, FromField g, FromField h, FromField i, FromField j,
412+ FromField k, FromField l, FromField m, FromField n, FromField o,
413+ FromField p, FromField q, FromField r, FromField s, FromField t) =>
414+ FromRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) where
415+ fromRow = (,,,,,,,,,,,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
416+ <*> field <*> field <*> field <*> field <*> field
417+ <*> field <*> field <*> field <*> field <*> field
418+ <*> field <*> field <*> field <*> field <*> field
419+
420+instance (FromField a, FromField b, FromField c, FromField d, FromField e,
421+ FromField f, FromField g, FromField h, FromField i, FromField j,
422+ FromField k, FromField l, FromField m, FromField n, FromField o,
423+ FromField p, FromField q, FromField q, FromField r, FromField s,
424+ FromField t) =>
425+ FromRow (Maybe (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t)) where
426+ fromRow = (null *> null *> null *> null *> null *>
427+ null *> null *> null *> null *> null *>
428+ null *> null *> null *> null *> null *>
429+ null *> null *> null *> null *> null *> pure Nothing)
430+ <|> (Just <$> fromRow)
431+
241432instance FromField a => FromRow [a] where
242433 fromRow = do
243434 n <- numFieldsRemaining
src/Database/PostgreSQL/Simple/ToRow.hs+90
@@ -89,6 +89,96 @@ instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,
8989 [toField a, toField b, toField c, toField d, toField e, toField f,
9090 toField g, toField h, toField i, toField j]
9191
92+instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,
93+ ToField g, ToField h, ToField i, ToField j, ToField k)
94+ => ToRow (a,b,c,d,e,f,g,h,i,j,k) where
95+ toRow (a,b,c,d,e,f,g,h,i,j,k) =
96+ [toField a, toField b, toField c, toField d, toField e, toField f,
97+ toField g, toField h, toField i, toField j, toField k]
98+
99+instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,
100+ ToField g, ToField h, ToField i, ToField j, ToField k, ToField l)
101+ => ToRow (a,b,c,d,e,f,g,h,i,j,k,l) where
102+ toRow (a,b,c,d,e,f,g,h,i,j,k,l) =
103+ [toField a, toField b, toField c, toField d, toField e, toField f,
104+ toField g, toField h, toField i, toField j, toField k, toField l]
105+
106+instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,
107+ ToField g, ToField h, ToField i, ToField j, ToField k, ToField l,
108+ ToField m)
109+ => ToRow (a,b,c,d,e,f,g,h,i,j,k,l,m) where
110+ toRow (a,b,c,d,e,f,g,h,i,j,k,l,m) =
111+ [toField a, toField b, toField c, toField d, toField e, toField f,
112+ toField g, toField h, toField i, toField j, toField k, toField l,
113+ toField m]
114+
115+instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,
116+ ToField g, ToField h, ToField i, ToField j, ToField k, ToField l,
117+ ToField m, ToField n)
118+ => ToRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n) where
119+ toRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n) =
120+ [toField a, toField b, toField c, toField d, toField e, toField f,
121+ toField g, toField h, toField i, toField j, toField k, toField l,
122+ toField m, toField n]
123+
124+instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,
125+ ToField g, ToField h, ToField i, ToField j, ToField k, ToField l,
126+ ToField m, ToField n, ToField o)
127+ => ToRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) where
128+ toRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) =
129+ [toField a, toField b, toField c, toField d, toField e, toField f,
130+ toField g, toField h, toField i, toField j, toField k, toField l,
131+ toField m, toField n, toField o]
132+
133+instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,
134+ ToField g, ToField h, ToField i, ToField j, ToField k, ToField l,
135+ ToField m, ToField n, ToField o, ToField p)
136+ => ToRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) where
137+ toRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) =
138+ [toField a, toField b, toField c, toField d, toField e, toField f,
139+ toField g, toField h, toField i, toField j, toField k, toField l,
140+ toField m, toField n, toField o, toField p]
141+
142+instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,
143+ ToField g, ToField h, ToField i, ToField j, ToField k, ToField l,
144+ ToField m, ToField n, ToField o, ToField p, ToField q)
145+ => ToRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) where
146+ toRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) =
147+ [toField a, toField b, toField c, toField d, toField e, toField f,
148+ toField g, toField h, toField i, toField j, toField k, toField l,
149+ toField m, toField n, toField o, toField p, toField q]
150+
151+instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,
152+ ToField g, ToField h, ToField i, ToField j, ToField k, ToField l,
153+ ToField m, ToField n, ToField o, ToField p, ToField q, ToField r)
154+ => ToRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) where
155+ toRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) =
156+ [toField a, toField b, toField c, toField d, toField e, toField f,
157+ toField g, toField h, toField i, toField j, toField k, toField l,
158+ toField m, toField n, toField o, toField p, toField q, toField r]
159+
160+instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,
161+ ToField g, ToField h, ToField i, ToField j, ToField k, ToField l,
162+ ToField m, ToField n, ToField o, ToField p, ToField q, ToField r,
163+ ToField s)
164+ => ToRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) where
165+ toRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) =
166+ [toField a, toField b, toField c, toField d, toField e, toField f,
167+ toField g, toField h, toField i, toField j, toField k, toField l,
168+ toField m, toField n, toField o, toField p, toField q, toField r,
169+ toField s]
170+
171+instance (ToField a, ToField b, ToField c, ToField d, ToField e, ToField f,
172+ ToField g, ToField h, ToField i, ToField j, ToField k, ToField l,
173+ ToField m, ToField n, ToField o, ToField p, ToField q, ToField r,
174+ ToField s, ToField t)
175+ => ToRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) where
176+ toRow (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) =
177+ [toField a, toField b, toField c, toField d, toField e, toField f,
178+ toField g, toField h, toField i, toField j, toField k, toField l,
179+ toField m, toField n, toField o, toField p, toField q, toField r,
180+ toField s, toField t]
181+
92182instance (ToField a) => ToRow [a] where
93183 toRow = map toField
94184