Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
haskell-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
199
Issues
199
List
Board
Labels
Milestones
Merge Requests
12
Merge Requests
12
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
haskell-gargantext
Commits
10ebe017
Commit
10ebe017
authored
Feb 16, 2019
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[SQL] Opaleye, join functions.
parent
d757a283
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
127 additions
and
43 deletions
+127
-43
Join.hs
src/Gargantext/Database/Queries/Join.hs
+127
-43
No files found.
src/Gargantext/Database/Queries/Join.hs
View file @
10ebe017
{-|
{-|
Module : Gargantext.Database.Queries.Join
Module : Gargantext.Database.Queries.Join
Description : Main
requests of Node to the database
Description : Main
Join queries (using Opaleye)
Copyright : (c) CNRS, 2017-Present
Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3
License : AGPL + CECILL v3
Maintainer : team@gargantext.org
Maintainer : team@gargantext.org
Stability : experimental
Stability : experimental
Portability : POSIX
Portability : POSIX
Multiple Join functions with Opaleye.
-}
-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
...
@@ -30,8 +33,6 @@ module Gargantext.Database.Queries.Join
...
@@ -30,8 +33,6 @@ module Gargantext.Database.Queries.Join
import
Control.Applicative
((
<*>
))
import
Control.Applicative
((
<*>
))
import
Control.Arrow
((
>>>
))
import
Control.Arrow
((
>>>
))
import
Data.Profunctor.Product.Default
import
Data.Profunctor.Product.Default
import
Gargantext.Database.Schema.Node
import
Gargantext.Database.Schema.NodeNode
import
Gargantext.Prelude
import
Gargantext.Prelude
import
Opaleye
import
Opaleye
import
Opaleye.Internal.Join
(
NullMaker
(
..
))
import
Opaleye.Internal.Join
(
NullMaker
(
..
))
...
@@ -87,23 +88,6 @@ leftJoin4
...
@@ -87,23 +88,6 @@ leftJoin4
leftJoin4
q1
q2
q3
q4
cond12
cond23
cond34
=
leftJoin
q4
(
leftJoin
q3
(
leftJoin
q2
q1
cond12
)
cond23
)
cond34
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
,
leftJoin5
::
(
Default
Unpackspec
fieldsL1
fieldsL1
,
Default
Unpackspec
fieldsL2
fieldsL2
,
Default
Unpackspec
fieldsL2
fieldsL2
,
Default
Unpackspec
nullableFieldsR1
nullableFieldsR1
,
Default
Unpackspec
nullableFieldsR1
nullableFieldsR1
,
...
@@ -155,28 +139,128 @@ leftJoin6 :: ( Default Unpackspec fieldsL1 fieldsL1,
...
@@ -155,28 +139,128 @@ leftJoin6 :: ( Default Unpackspec fieldsL1 fieldsL1,
->
((
fieldsL2
,
(
fieldsL3
,
nullableFieldsR2
))
->
Column
PGBool
)
->
((
fieldsL2
,
(
fieldsL3
,
nullableFieldsR2
))
->
Column
PGBool
)
->
((
fieldsL1
,
(
fieldsL2
,
nullableFieldsR1
))
->
Column
PGBool
)
->
((
fieldsL1
,
(
fieldsL2
,
nullableFieldsR1
))
->
Column
PGBool
)
->
Query
(
fieldsL1
,
nullableFieldsR5
)
->
Query
(
fieldsL1
,
nullableFieldsR5
)
leftJoin6
q1
q2
q3
q4
q5
q6
cond12
cond23
cond34
cond45
cond56
=
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
leftJoin
q6
(
leftJoin
q5
(
leftJoin
q4
(
leftJoin
q3
(
leftJoin
q2
q1
cond12
)
cond23
)
cond34
)
cond45
)
cond56
--{-
leftJoin7
leftJoin6'
::
Query
(
NodeRead
,
(
NodeReadNull
,
(
NodeReadNull
,
(
NodeReadNull
,
(
NodeNodeReadNull
,
NodeSearchReadNull
)))))
::
(
Default
Unpackspec
fieldsL1
fieldsL1
,
leftJoin6'
=
leftJoin6
queryNodeSearchTable
queryNodeNodeTable
queryNodeTable
queryNodeTable
queryNodeTable
queryNodeTable
cond12
cond23
cond34
cond45
cond56
Default
Unpackspec
fieldsL2
fieldsL2
,
where
Default
Unpackspec
nullableFieldsR1
nullableFieldsR1
,
cond12
::
(
NodeNodeRead
,
NodeSearchRead
)
->
Column
PGBool
Default
Unpackspec
fieldsL3
fieldsL3
,
cond12
=
undefined
Default
Unpackspec
nullableFieldsR2
nullableFieldsR2
,
Default
Unpackspec
fieldsL4
fieldsL4
,
cond23
::
(
NodeRead
,
(
NodeNodeRead
,
NodeSearchReadNull
))
->
Column
PGBool
Default
Unpackspec
nullableFieldsR3
nullableFieldsR3
,
cond23
=
undefined
Default
Unpackspec
fieldsL5
fieldsL5
,
Default
Unpackspec
nullableFieldsR4
nullableFieldsR4
,
cond34
::
(
NodeRead
,
(
NodeRead
,
(
NodeNodeReadNull
,
NodeSearchReadNull
)))
->
Column
PGBool
Default
Unpackspec
fieldsL6
fieldsL6
,
cond34
=
undefined
Default
Unpackspec
nullableFieldsR5
nullableFieldsR5
,
Default
Unpackspec
fieldsR
fieldsR
,
cond45
::
(
NodeRead
,
(
NodeRead
,
(
NodeReadNull
,
(
NodeNodeReadNull
,
NodeSearchReadNull
))))
->
Column
PGBool
Default
NullMaker
fieldsR
nullableFieldsR5
,
cond45
=
undefined
Default
NullMaker
(
fieldsL2
,
nullableFieldsR1
)
nullableFieldsR6
,
Default
NullMaker
(
fieldsL3
,
nullableFieldsR2
)
nullableFieldsR1
,
cond56
::
(
NodeRead
,
(
NodeRead
,
(
NodeReadNull
,
(
NodeReadNull
,
(
NodeNodeReadNull
,
NodeSearchReadNull
)))))
->
Column
PGBool
Default
NullMaker
(
fieldsL4
,
nullableFieldsR3
)
nullableFieldsR2
,
cond56
=
undefined
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment