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
160
Issues
160
List
Board
Labels
Milestones
Merge Requests
8
Merge Requests
8
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
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
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