| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Hpgsql.ParsingInternal
Description
This module contains parsers that are helpful to separate SQL statements from each other by finding query boundaries: semi-colons, but not when inside a string or a parenthesised expression, for example.
Synopsis
- parseSql :: ParsingOpts -> Text -> [BlockOrNotBlock]
- data BlockOrNotBlock
- data ParsingOpts
- data QQExprKind
- blockListText :: [BlockOrNotBlock] -> Text
- blockText :: BlockOrNotBlock -> Text
- flattenBlocks :: [BlockOrNotBlock] -> [BlockOrNotBlock]
Documentation
parseSql :: ParsingOpts -> Text -> [BlockOrNotBlock] Source #
Parses one or more SQL statements (separated by semi-colons).
data BlockOrNotBlock Source #
Constructors
| StaticSql !Text | |
| DollarNumberedArg !Int | |
| QuestionMarkArg | |
| QuasiQuoterExpression !QQExprKind !Text | |
| SemiColon | |
| CommentsOrWhitespace !Text |
Instances
| Show BlockOrNotBlock Source # | |
Defined in Hpgsql.ParsingInternal Methods showsPrec :: Int -> BlockOrNotBlock -> ShowS # show :: BlockOrNotBlock -> String # showList :: [BlockOrNotBlock] -> ShowS # | |
| Eq BlockOrNotBlock Source # | |
Defined in Hpgsql.ParsingInternal Methods (==) :: BlockOrNotBlock -> BlockOrNotBlock -> Bool # (/=) :: BlockOrNotBlock -> BlockOrNotBlock -> Bool # | |
data ParsingOpts Source #
Constructors
| AcceptQuestionMarksAsQueryArgs | |
| AcceptOnlyDollarNumberedArgs | |
| AcceptQuasiQuoterExpressions |
Instances
| Show ParsingOpts Source # | |
Defined in Hpgsql.ParsingInternal Methods showsPrec :: Int -> ParsingOpts -> ShowS # show :: ParsingOpts -> String # showList :: [ParsingOpts] -> ShowS # | |
data QQExprKind Source #
Constructors
| QQInterpolation | |
| QQEmbeddedQuery |
Instances
| Show QQExprKind Source # | |
Defined in Hpgsql.ParsingInternal Methods showsPrec :: Int -> QQExprKind -> ShowS # show :: QQExprKind -> String # showList :: [QQExprKind] -> ShowS # | |
| Eq QQExprKind Source # | |
Defined in Hpgsql.ParsingInternal | |
blockListText :: [BlockOrNotBlock] -> Text Source #
blockText :: BlockOrNotBlock -> Text Source #
flattenBlocks :: [BlockOrNotBlock] -> [BlockOrNotBlock] Source #