-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A parser for SQL queries -- -- A parser for SQL queries. Parses most SQL:2011 queries. Please see the -- homepage for more information -- http://jakewheat.github.io/simple-sql-parser/latest. @package simple-sql-parser @version 0.4.4 -- | The AST for SQL queries. module Language.SQL.SimpleSQL.Syntax -- | Represents a value expression. This is used for the expressions in -- select lists. It is also used for expressions in where, group by, -- having, order by and so on. data ValueExpr -- | a numeric literal optional decimal point, e+- integral exponent, e.g -- --
-- makeSelect :: QueryExpr
-- makeSelect = Select {qeSetQuantifier = SQDefault
-- ,qeSelectList = []
-- ,qeFrom = []
-- ,qeWhere = Nothing
-- ,qeGroupBy = []
-- ,qeHaving = Nothing
-- ,qeOrderBy = []
-- ,qeOffset = Nothing
-- ,qeFetchFirst = Nothing}
--
makeSelect :: QueryExpr
-- | Query expression set operators.
data CombineOp
Union :: CombineOp
Except :: CombineOp
Intersect :: CombineOp
-- | Corresponding, an option for the set operators.
data Corresponding
Corresponding :: Corresponding
Respectively :: Corresponding
-- | Represents an alias for a table valued expression, used in with
-- queries and in from alias, e.g. select a from t u, select a from t
-- u(b), with a(c) as select 1, select * from a.
data Alias
Alias :: Name -> (Maybe [Name]) -> Alias
-- | Represents an item in a group by clause.
data GroupingExpr
GroupingParens :: [GroupingExpr] -> GroupingExpr
Cube :: [GroupingExpr] -> GroupingExpr
Rollup :: [GroupingExpr] -> GroupingExpr
GroupingSets :: [GroupingExpr] -> GroupingExpr
SimpleGroup :: ValueExpr -> GroupingExpr
-- | Represents a entry in the csv of tables in the from clause.
data TableRef
-- | from t / from s.t
TRSimple :: [Name] -> TableRef
-- | from a join b, the bool is true if natural was used
TRJoin :: TableRef -> Bool -> JoinType -> TableRef -> (Maybe JoinCondition) -> TableRef
-- | from (a)
TRParens :: TableRef -> TableRef
-- | from a as b(c,d)
TRAlias :: TableRef -> Alias -> TableRef
-- | from (query expr)
TRQueryExpr :: QueryExpr -> TableRef
-- | from function(args)
TRFunction :: [Name] -> [ValueExpr] -> TableRef
-- | from lateral t
TRLateral :: TableRef -> TableRef
-- | The type of a join.
data JoinType
JInner :: JoinType
JLeft :: JoinType
JRight :: JoinType
JFull :: JoinType
JCross :: JoinType
-- | The join condition.
data JoinCondition
-- | on expr
JoinOn :: ValueExpr -> JoinCondition
-- | using (column list)
JoinUsing :: [Name] -> JoinCondition
-- | Used to set the dialect used for parsing and pretty printing, very
-- unfinished at the moment.
data Dialect
SQL2011 :: Dialect
MySQL :: Dialect
-- | Comment. Useful when generating SQL code programmatically.
data Comment
BlockComment :: String -> Comment
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.InPredValue
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.InPredValue
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.InPredValue
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.InPredValue
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.FramePos
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.FramePos
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.FramePos
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.FramePos
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.Frame
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.Frame
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.Frame
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.Frame
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.SortSpec
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.SortSpec
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.SortSpec
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.SortSpec
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.GroupingExpr
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.GroupingExpr
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.GroupingExpr
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.GroupingExpr
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.JoinCondition
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.JoinCondition
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.JoinCondition
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.JoinCondition
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.TableRef
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.TableRef
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.TableRef
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.TableRef
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.QueryExpr
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.QueryExpr
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.QueryExpr
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.QueryExpr
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.ValueExpr
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.ValueExpr
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.ValueExpr
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.ValueExpr
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.Comment
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.Comment
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.Comment
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.Comment
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.Dialect
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.Dialect
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.Dialect
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.Dialect
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.JoinType
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.JoinType
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.JoinType
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.JoinType
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.Alias
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.Alias
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.Alias
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.Alias
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.Corresponding
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.Corresponding
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.Corresponding
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.Corresponding
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.CombineOp
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.CombineOp
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.CombineOp
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.CombineOp
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.Direction
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.Direction
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.Direction
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.Direction
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.SetQuantifier
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.SetQuantifier
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.SetQuantifier
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.SetQuantifier
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.FrameRows
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.FrameRows
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.FrameRows
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.FrameRows
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.NullsOrder
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.NullsOrder
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.NullsOrder
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.NullsOrder
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.CompPredQuantifier
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.CompPredQuantifier
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.CompPredQuantifier
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.CompPredQuantifier
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.SubQueryExprType
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.SubQueryExprType
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.SubQueryExprType
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.SubQueryExprType
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.TypeName
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.TypeName
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.TypeName
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.TypeName
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.PrecUnits
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.PrecUnits
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.PrecUnits
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.PrecUnits
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.PrecMultiplier
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.PrecMultiplier
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.PrecMultiplier
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.PrecMultiplier
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.IntervalTypeField
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.IntervalTypeField
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.IntervalTypeField
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.IntervalTypeField
instance Data.Data.Data Language.SQL.SimpleSQL.Syntax.Name
instance GHC.Read.Read Language.SQL.SimpleSQL.Syntax.Name
instance GHC.Show.Show Language.SQL.SimpleSQL.Syntax.Name
instance GHC.Classes.Eq Language.SQL.SimpleSQL.Syntax.Name
-- | These is the pretty printing functions, which produce SQL source from
-- ASTs. The code attempts to format the output in a readable way.
module Language.SQL.SimpleSQL.Pretty
-- | Convert a query expr ast to concrete syntax.
prettyQueryExpr :: Dialect -> QueryExpr -> String
-- | Convert a value expr ast to concrete syntax.
prettyValueExpr :: Dialect -> ValueExpr -> String
-- | Convert a list of query exprs to concrete syntax. A semi colon is
-- inserted after each query expr.
prettyQueryExprs :: Dialect -> [QueryExpr] -> String
-- | This is the module with the parser functions.
module Language.SQL.SimpleSQL.Parser
-- | Parses a query expr, trailing semicolon optional.
parseQueryExpr :: Dialect -> FilePath -> Maybe (Int, Int) -> String -> Either ParseError QueryExpr
-- | Parses a value expression.
parseValueExpr :: Dialect -> FilePath -> Maybe (Int, Int) -> String -> Either ParseError ValueExpr
-- | Parses a list of query expressions, with semi colons between them. The
-- final semicolon is optional.
parseQueryExprs :: Dialect -> FilePath -> Maybe (Int, Int) -> String -> Either ParseError [QueryExpr]
-- | Type to represent parse errors.
data ParseError
ParseError :: String -> FilePath -> (Int, Int) -> String -> ParseError
-- | contains the error message
[peErrorString] :: ParseError -> String
-- | filename location for the error
[peFilename] :: ParseError -> FilePath
-- | line number and column number location for the error
[pePosition] :: ParseError -> (Int, Int)
-- | formatted error with the position, error message and source context
[peFormattedError] :: ParseError -> String