Copyright | 2013 Kei Hibino |
---|---|

License | BSD3 |

Maintainer | ex8k.hibino@gmail.com |

Stability | experimental |

Portability | unknown |

Safe Haskell | None |

Language | Haskell2010 |

This module defines monad transformer which lift to basic `MonadQuery`

.

- data QueryJoin m a
- join' :: Monad m => m a -> QueryJoin m a
- extractProduct :: Functor m => QueryJoin m a -> m ((a, JoinProduct), Duplication)
- unsafeSubQueryWithAttr :: Monad q => NodeAttr -> Qualified SubQuery -> QueryJoin q (Projection c r)

# Transformer into join query

`StateT`

type to accumulate join product context.

MonadTrans QueryJoin Source | |

MonadQualify q m => MonadQualify q (QueryJoin m) Source | |

Monad m => Monad (QueryJoin m) Source | |

Functor m => Functor (QueryJoin m) Source | |

Monad m => Applicative (QueryJoin m) Source | |

MonadQuery (QueryJoin ConfigureQuery) Source | Joinable query instance. |

# Result

extractProduct :: Functor m => QueryJoin m a -> m ((a, JoinProduct), Duplication) Source

Run `QueryJoin`

to get `JoinProduct`