Commit 10ebe017 authored by Alexandre Delanoë's avatar Alexandre Delanoë

[SQL] Opaleye, join functions.

parent d757a283
{-|
Module : Gargantext.Database.Queries.Join
Description : Main requests of Node to the database
Description : Main Join queries (using Opaleye)
Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3
Maintainer : team@gargantext.org
Stability : experimental
Portability : POSIX
Multiple Join functions with Opaleye.
-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
......@@ -30,8 +33,6 @@ module Gargantext.Database.Queries.Join
import Control.Applicative ((<*>))
import Control.Arrow ((>>>))
import Data.Profunctor.Product.Default
import Gargantext.Database.Schema.Node
import Gargantext.Database.Schema.NodeNode
import Gargantext.Prelude
import Opaleye
import Opaleye.Internal.Join (NullMaker(..))
......@@ -87,23 +88,6 @@ leftJoin4
leftJoin4 q1 q2 q3 q4 cond12 cond23 cond34 = leftJoin q4 (leftJoin q3 (leftJoin q2 q1 cond12) cond23) cond34
--{-
leftJoin5' :: Query (NodeRead, (NodeReadNull, (NodeReadNull, (NodeNodeReadNull, NodeSearchReadNull))))
leftJoin5' = leftJoin5 queryNodeSearchTable queryNodeNodeTable queryNodeTable queryNodeTable queryNodeTable cond12 cond23 cond34 cond45
where
cond12 :: (NodeNodeRead, NodeSearchRead) -> Column PGBool
cond12 = undefined
cond23 :: (NodeRead, (NodeNodeRead, NodeSearchReadNull)) -> Column PGBool
cond23 = undefined
cond34 :: (NodeRead, (NodeRead, (NodeNodeReadNull, NodeSearchReadNull))) -> Column PGBool
cond34 = undefined
cond45 :: (NodeRead, (NodeRead, (NodeReadNull, (NodeNodeReadNull, NodeSearchReadNull)))) -> Column PGBool
cond45 = undefined
--}
leftJoin5 :: ( Default Unpackspec fieldsL1 fieldsL1,
Default Unpackspec fieldsL2 fieldsL2,
Default Unpackspec nullableFieldsR1 nullableFieldsR1,
......@@ -155,28 +139,128 @@ leftJoin6 :: ( Default Unpackspec fieldsL1 fieldsL1,
-> ((fieldsL2, (fieldsL3, nullableFieldsR2)) -> Column PGBool)
-> ((fieldsL1, (fieldsL2, nullableFieldsR1)) -> Column PGBool)
-> Query (fieldsL1, nullableFieldsR5)
leftJoin6 q1 q2 q3 q4 q5 q6 cond12 cond23 cond34 cond45 cond56 =
leftJoin q6 (leftJoin q5 (leftJoin q4 (leftJoin q3 (leftJoin q2 q1 cond12) cond23) cond34) cond45) cond56
--{-
leftJoin6' :: Query (NodeRead, (NodeReadNull, (NodeReadNull, (NodeReadNull, (NodeNodeReadNull, NodeSearchReadNull)))))
leftJoin6' = leftJoin6 queryNodeSearchTable queryNodeNodeTable queryNodeTable queryNodeTable queryNodeTable queryNodeTable cond12 cond23 cond34 cond45 cond56
where
cond12 :: (NodeNodeRead, NodeSearchRead) -> Column PGBool
cond12 = undefined
cond23 :: (NodeRead, (NodeNodeRead, NodeSearchReadNull)) -> Column PGBool
cond23 = undefined
cond34 :: (NodeRead, (NodeRead, (NodeNodeReadNull, NodeSearchReadNull))) -> Column PGBool
cond34 = undefined
cond45 :: (NodeRead, (NodeRead, (NodeReadNull, (NodeNodeReadNull, NodeSearchReadNull)))) -> Column PGBool
cond45 = undefined
cond56 :: (NodeRead, (NodeRead, (NodeReadNull, (NodeReadNull, (NodeNodeReadNull, NodeSearchReadNull))))) -> Column PGBool
cond56 = undefined
--}
leftJoin6 q1 q2 q3 q4 q5 q6 cond12 cond23 cond34 cond45 cond56 = leftJoin q6 (leftJoin q5 (leftJoin q4 (leftJoin q3 (leftJoin q2 q1 cond12) cond23) cond34) cond45) cond56
leftJoin7
:: (Default Unpackspec fieldsL1 fieldsL1,
Default Unpackspec fieldsL2 fieldsL2,
Default Unpackspec nullableFieldsR1 nullableFieldsR1,
Default Unpackspec fieldsL3 fieldsL3,
Default Unpackspec nullableFieldsR2 nullableFieldsR2,
Default Unpackspec fieldsL4 fieldsL4,
Default Unpackspec nullableFieldsR3 nullableFieldsR3,
Default Unpackspec fieldsL5 fieldsL5,
Default Unpackspec nullableFieldsR4 nullableFieldsR4,
Default Unpackspec fieldsL6 fieldsL6,
Default Unpackspec nullableFieldsR5 nullableFieldsR5,
Default Unpackspec fieldsR fieldsR,
Default NullMaker fieldsR nullableFieldsR5,
Default NullMaker (fieldsL2, nullableFieldsR1) nullableFieldsR6,
Default NullMaker (fieldsL3, nullableFieldsR2) nullableFieldsR1,
Default NullMaker (fieldsL4, nullableFieldsR3) nullableFieldsR2,
Default NullMaker (fieldsL5, nullableFieldsR4) nullableFieldsR3,
Default NullMaker (fieldsL6, nullableFieldsR5) nullableFieldsR4) =>
Opaleye.Select fieldsR
-> Opaleye.Select fieldsL6
-> Opaleye.Select fieldsL5
-> Opaleye.Select fieldsL4
-> Opaleye.Select fieldsL3
-> Opaleye.Select fieldsL2
-> Opaleye.Select fieldsL1
-> ((fieldsL6, fieldsR) -> Column PGBool)
-> ((fieldsL5, (fieldsL6, nullableFieldsR5)) -> Column PGBool)
-> ((fieldsL4, (fieldsL5, nullableFieldsR4)) -> Column PGBool)
-> ((fieldsL3, (fieldsL4, nullableFieldsR3)) -> Column PGBool)
-> ((fieldsL2, (fieldsL3, nullableFieldsR2)) -> Column PGBool)
-> ((fieldsL1, (fieldsL2, nullableFieldsR1)) -> Column PGBool)
-> Opaleye.Select (fieldsL1, nullableFieldsR6)
leftJoin7 q1 q2 q3 q4 q5 q6 q7 cond12 cond23 cond34 cond45 cond56 cond67 = leftJoin q7 (leftJoin q6 (leftJoin q5 (leftJoin q4 (leftJoin q3 (leftJoin q2 q1 cond12) cond23) cond34) cond45) cond56) cond67
leftJoin8
:: (Default Unpackspec fieldsL1 fieldsL1,
Default Unpackspec fieldsL2 fieldsL2,
Default Unpackspec nullableFieldsR1 nullableFieldsR1,
Default Unpackspec fieldsL3 fieldsL3,
Default Unpackspec nullableFieldsR2 nullableFieldsR2,
Default Unpackspec fieldsL4 fieldsL4,
Default Unpackspec nullableFieldsR3 nullableFieldsR3,
Default Unpackspec fieldsL5 fieldsL5,
Default Unpackspec nullableFieldsR4 nullableFieldsR4,
Default Unpackspec fieldsL6 fieldsL6,
Default Unpackspec nullableFieldsR5 nullableFieldsR5,
Default Unpackspec fieldsL7 fieldsL7,
Default Unpackspec nullableFieldsR6 nullableFieldsR6,
Default Unpackspec fieldsR fieldsR,
Default NullMaker fieldsR nullableFieldsR6,
Default NullMaker (fieldsL2, nullableFieldsR1) nullableFieldsR7,
Default NullMaker (fieldsL3, nullableFieldsR2) nullableFieldsR1,
Default NullMaker (fieldsL4, nullableFieldsR3) nullableFieldsR2,
Default NullMaker (fieldsL5, nullableFieldsR4) nullableFieldsR3,
Default NullMaker (fieldsL6, nullableFieldsR5) nullableFieldsR4,
Default NullMaker (fieldsL7, nullableFieldsR6) nullableFieldsR5) =>
Opaleye.Select fieldsR
-> Opaleye.Select fieldsL7
-> Opaleye.Select fieldsL6
-> Opaleye.Select fieldsL5
-> Opaleye.Select fieldsL4
-> Opaleye.Select fieldsL3
-> Opaleye.Select fieldsL2
-> Opaleye.Select fieldsL1
-> ((fieldsL7, fieldsR) -> Column PGBool)
-> ((fieldsL6, (fieldsL7, nullableFieldsR6)) -> Column PGBool)
-> ((fieldsL5, (fieldsL6, nullableFieldsR5)) -> Column PGBool)
-> ((fieldsL4, (fieldsL5, nullableFieldsR4)) -> Column PGBool)
-> ((fieldsL3, (fieldsL4, nullableFieldsR3)) -> Column PGBool)
-> ((fieldsL2, (fieldsL3, nullableFieldsR2)) -> Column PGBool)
-> ((fieldsL1, (fieldsL2, nullableFieldsR1)) -> Column PGBool)
-> Opaleye.Select (fieldsL1, nullableFieldsR7)
leftJoin8 q1 q2 q3 q4 q5 q6 q7 q8 cond12 cond23 cond34 cond45 cond56 cond67 cond78 = leftJoin q8 (leftJoin q7 (leftJoin q6 (leftJoin q5 (leftJoin q4 (leftJoin q3 (leftJoin q2 q1 cond12) cond23) cond34) cond45) cond56) cond67) cond78
leftJoin9
:: (Default Unpackspec fieldsL1 fieldsL1,
Default Unpackspec fieldsL2 fieldsL2,
Default Unpackspec nullableFieldsR1 nullableFieldsR1,
Default Unpackspec fieldsL3 fieldsL3,
Default Unpackspec nullableFieldsR2 nullableFieldsR2,
Default Unpackspec fieldsL4 fieldsL4,
Default Unpackspec nullableFieldsR3 nullableFieldsR3,
Default Unpackspec fieldsL5 fieldsL5,
Default Unpackspec nullableFieldsR4 nullableFieldsR4,
Default Unpackspec fieldsL6 fieldsL6,
Default Unpackspec nullableFieldsR5 nullableFieldsR5,
Default Unpackspec fieldsL7 fieldsL7,
Default Unpackspec nullableFieldsR6 nullableFieldsR6,
Default Unpackspec fieldsL8 fieldsL8,
Default Unpackspec nullableFieldsR7 nullableFieldsR7,
Default Unpackspec fieldsR fieldsR,
Default NullMaker fieldsR nullableFieldsR7,
Default NullMaker (fieldsL2, nullableFieldsR1) nullableFieldsR8,
Default NullMaker (fieldsL3, nullableFieldsR2) nullableFieldsR1,
Default NullMaker (fieldsL4, nullableFieldsR3) nullableFieldsR2,
Default NullMaker (fieldsL5, nullableFieldsR4) nullableFieldsR3,
Default NullMaker (fieldsL6, nullableFieldsR5) nullableFieldsR4,
Default NullMaker (fieldsL7, nullableFieldsR6) nullableFieldsR5,
Default NullMaker (fieldsL8, nullableFieldsR7) nullableFieldsR6) =>
Opaleye.Select fieldsR
-> Opaleye.Select fieldsL8
-> Opaleye.Select fieldsL7
-> Opaleye.Select fieldsL6
-> Opaleye.Select fieldsL5
-> Opaleye.Select fieldsL4
-> Opaleye.Select fieldsL3
-> Opaleye.Select fieldsL2
-> Opaleye.Select fieldsL1
-> ((fieldsL8, fieldsR) -> Column PGBool)
-> ((fieldsL7, (fieldsL8, nullableFieldsR7)) -> Column PGBool)
-> ((fieldsL6, (fieldsL7, nullableFieldsR6)) -> Column PGBool)
-> ((fieldsL5, (fieldsL6, nullableFieldsR5)) -> Column PGBool)
-> ((fieldsL4, (fieldsL5, nullableFieldsR4)) -> Column PGBool)
-> ((fieldsL3, (fieldsL4, nullableFieldsR3)) -> Column PGBool)
-> ((fieldsL2, (fieldsL3, nullableFieldsR2)) -> Column PGBool)
-> ((fieldsL1, (fieldsL2, nullableFieldsR1)) -> Column PGBool)
-> Opaleye.Select (fieldsL1, nullableFieldsR8)
leftJoin9 q1 q2 q3 q4 q5 q6 q7 q8 q9 cond12 cond23 cond34 cond45 cond56 cond67 cond78 cond89 = leftJoin q9 (leftJoin q8 (leftJoin q7 (leftJoin q6 (leftJoin q5 (leftJoin q4 (leftJoin q3 (leftJoin q2 q1 cond12) cond23) cond34) cond45) cond56) cond67) cond78) cond89
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment