hydra-0.8.0: src/gen-main/haskell/Hydra/Pg/Query.hs
-- | A common model for pattern-matching queries over property graphs
module Hydra.Pg.Query where
import qualified Hydra.Core as Core
import qualified Hydra.Pg.Model as Model
import Data.Int
import Data.List as L
import Data.Map as M
import Data.Set as S
data AggregationQuery =
AggregationQueryCount
deriving (Eq, Ord, Read, Show)
_AggregationQuery = (Core.Name "hydra/pg/query.AggregationQuery")
_AggregationQuery_count = (Core.Name "count")
newtype ApplicationQuery =
ApplicationQuery {
unApplicationQuery :: [Query]}
deriving (Eq, Ord, Read, Show)
_ApplicationQuery = (Core.Name "hydra/pg/query.ApplicationQuery")
data AssociativeExpression =
AssociativeExpression {
associativeExpressionOperator :: BinaryOperator,
associativeExpressionOperands :: [Expression]}
deriving (Eq, Ord, Read, Show)
_AssociativeExpression = (Core.Name "hydra/pg/query.AssociativeExpression")
_AssociativeExpression_operator = (Core.Name "operator")
_AssociativeExpression_operands = (Core.Name "operands")
data BinaryExpression =
BinaryExpression {
binaryExpressionLeft :: Expression,
binaryExpressionOperator :: BinaryOperator,
binaryExpressionRight :: Expression}
deriving (Eq, Ord, Read, Show)
_BinaryExpression = (Core.Name "hydra/pg/query.BinaryExpression")
_BinaryExpression_left = (Core.Name "left")
_BinaryExpression_operator = (Core.Name "operator")
_BinaryExpression_right = (Core.Name "right")
data BinaryBooleanOperator =
BinaryBooleanOperatorAnd |
BinaryBooleanOperatorOr |
BinaryBooleanOperatorXor
deriving (Eq, Ord, Read, Show)
_BinaryBooleanOperator = (Core.Name "hydra/pg/query.BinaryBooleanOperator")
_BinaryBooleanOperator_and = (Core.Name "and")
_BinaryBooleanOperator_or = (Core.Name "or")
_BinaryBooleanOperator_xor = (Core.Name "xor")
data BinaryOperator =
BinaryOperatorBoolean BinaryBooleanOperator |
BinaryOperatorComparison ComparisonOperator |
BinaryOperatorPower
deriving (Eq, Ord, Read, Show)
_BinaryOperator = (Core.Name "hydra/pg/query.BinaryOperator")
_BinaryOperator_boolean = (Core.Name "boolean")
_BinaryOperator_comparison = (Core.Name "comparison")
_BinaryOperator_power = (Core.Name "power")
data Binding =
Binding {
bindingKey :: Variable,
bindingValue :: Query}
deriving (Eq, Ord, Read, Show)
_Binding = (Core.Name "hydra/pg/query.Binding")
_Binding_key = (Core.Name "key")
_Binding_value = (Core.Name "value")
data ComparisonOperator =
ComparisonOperatorEq |
ComparisonOperatorNeq |
ComparisonOperatorLt |
ComparisonOperatorLte |
ComparisonOperatorGt |
ComparisonOperatorGte
deriving (Eq, Ord, Read, Show)
_ComparisonOperator = (Core.Name "hydra/pg/query.ComparisonOperator")
_ComparisonOperator_eq = (Core.Name "eq")
_ComparisonOperator_neq = (Core.Name "neq")
_ComparisonOperator_lt = (Core.Name "lt")
_ComparisonOperator_lte = (Core.Name "lte")
_ComparisonOperator_gt = (Core.Name "gt")
_ComparisonOperator_gte = (Core.Name "gte")
data EdgeProjectionPattern =
EdgeProjectionPattern {
edgeProjectionPatternDirection :: Model.Direction,
edgeProjectionPatternLabel :: (Maybe Model.EdgeLabel),
edgeProjectionPatternProperties :: [PropertyPattern],
edgeProjectionPatternVertex :: (Maybe VertexPattern)}
deriving (Eq, Ord, Read, Show)
_EdgeProjectionPattern = (Core.Name "hydra/pg/query.EdgeProjectionPattern")
_EdgeProjectionPattern_direction = (Core.Name "direction")
_EdgeProjectionPattern_label = (Core.Name "label")
_EdgeProjectionPattern_properties = (Core.Name "properties")
_EdgeProjectionPattern_vertex = (Core.Name "vertex")
data Expression =
ExpressionAssociative AssociativeExpression |
ExpressionBinary BinaryExpression |
ExpressionProperty PropertyProjection |
ExpressionUnary UnaryExpression |
ExpressionVariable Variable |
ExpressionVertex VertexPattern
deriving (Eq, Ord, Read, Show)
_Expression = (Core.Name "hydra/pg/query.Expression")
_Expression_associative = (Core.Name "associative")
_Expression_binary = (Core.Name "binary")
_Expression_property = (Core.Name "property")
_Expression_unary = (Core.Name "unary")
_Expression_variable = (Core.Name "variable")
_Expression_vertex = (Core.Name "vertex")
data LetQuery =
LetQuery {
letQueryBindings :: [Binding],
letQueryEnvironment :: Query}
deriving (Eq, Ord, Read, Show)
_LetQuery = (Core.Name "hydra/pg/query.LetQuery")
_LetQuery_bindings = (Core.Name "bindings")
_LetQuery_environment = (Core.Name "environment")
data MatchQuery =
MatchQuery {
matchQueryOptional :: Bool,
matchQueryPattern :: [Projection],
matchQueryWhere :: (Maybe Expression)}
deriving (Eq, Ord, Read, Show)
_MatchQuery = (Core.Name "hydra/pg/query.MatchQuery")
_MatchQuery_optional = (Core.Name "optional")
_MatchQuery_pattern = (Core.Name "pattern")
_MatchQuery_where = (Core.Name "where")
data Projection =
Projection {
projectionValue :: Expression,
projectionAs :: (Maybe Variable)}
deriving (Eq, Ord, Read, Show)
_Projection = (Core.Name "hydra/pg/query.Projection")
_Projection_value = (Core.Name "value")
_Projection_as = (Core.Name "as")
data Projections =
Projections {
projectionsAll :: Bool,
projectionsExplicit :: [Projection]}
deriving (Eq, Ord, Read, Show)
_Projections = (Core.Name "hydra/pg/query.Projections")
_Projections_all = (Core.Name "all")
_Projections_explicit = (Core.Name "explicit")
data PropertyPattern =
PropertyPattern {
propertyPatternKey :: Model.PropertyKey,
propertyPatternValue :: PropertyValuePattern}
deriving (Eq, Ord, Read, Show)
_PropertyPattern = (Core.Name "hydra/pg/query.PropertyPattern")
_PropertyPattern_key = (Core.Name "key")
_PropertyPattern_value = (Core.Name "value")
data PropertyProjection =
PropertyProjection {
propertyProjectionBase :: Expression,
propertyProjectionKey :: Model.PropertyKey}
deriving (Eq, Ord, Read, Show)
_PropertyProjection = (Core.Name "hydra/pg/query.PropertyProjection")
_PropertyProjection_base = (Core.Name "base")
_PropertyProjection_key = (Core.Name "key")
newtype PropertyValue =
PropertyValue {
unPropertyValue :: String}
deriving (Eq, Ord, Read, Show)
_PropertyValue = (Core.Name "hydra/pg/query.PropertyValue")
data PropertyValuePattern =
PropertyValuePatternVariable Model.PropertyKey |
PropertyValuePatternValue String
deriving (Eq, Ord, Read, Show)
_PropertyValuePattern = (Core.Name "hydra/pg/query.PropertyValuePattern")
_PropertyValuePattern_variable = (Core.Name "variable")
_PropertyValuePattern_value = (Core.Name "value")
data Query =
QueryApplication ApplicationQuery |
QueryAggregate AggregationQuery |
QueryLetQuery LetQuery |
QueryMatch MatchQuery |
QuerySelect SelectQuery |
QueryValue String
deriving (Eq, Ord, Read, Show)
_Query = (Core.Name "hydra/pg/query.Query")
_Query_application = (Core.Name "application")
_Query_aggregate = (Core.Name "aggregate")
_Query_LetQuery = (Core.Name "LetQuery")
_Query_match = (Core.Name "match")
_Query_select = (Core.Name "select")
_Query_value = (Core.Name "value")
data SelectQuery =
SelectQuery {
selectQueryDistinct :: Bool,
selectQueryProjection :: Projections}
deriving (Eq, Ord, Read, Show)
_SelectQuery = (Core.Name "hydra/pg/query.SelectQuery")
_SelectQuery_distinct = (Core.Name "distinct")
_SelectQuery_projection = (Core.Name "projection")
data UnaryExpression =
UnaryExpression {
unaryExpressionOperator :: UnaryOperator,
unaryExpressionOperand :: Expression}
deriving (Eq, Ord, Read, Show)
_UnaryExpression = (Core.Name "hydra/pg/query.UnaryExpression")
_UnaryExpression_operator = (Core.Name "operator")
_UnaryExpression_operand = (Core.Name "operand")
data UnaryOperator =
UnaryOperatorNegate
deriving (Eq, Ord, Read, Show)
_UnaryOperator = (Core.Name "hydra/pg/query.UnaryOperator")
_UnaryOperator_negate = (Core.Name "negate")
newtype Variable =
Variable {
unVariable :: String}
deriving (Eq, Ord, Read, Show)
_Variable = (Core.Name "hydra/pg/query.Variable")
data VertexPattern =
VertexPattern {
vertexPatternVariable :: (Maybe Variable),
vertexPatternLabel :: (Maybe Model.VertexLabel),
vertexPatternProperties :: [PropertyPattern],
vertexPatternEdges :: [EdgeProjectionPattern]}
deriving (Eq, Ord, Read, Show)
_VertexPattern = (Core.Name "hydra/pg/query.VertexPattern")
_VertexPattern_variable = (Core.Name "variable")
_VertexPattern_label = (Core.Name "label")
_VertexPattern_properties = (Core.Name "properties")
_VertexPattern_edges = (Core.Name "edges")