-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | PostgreSQL AST parsing and rendering -- -- Postgres syntax tree and related utils extracted from the "hasql-th" -- package. The API is in a rather raw "guts out" state with most -- documentation lacking, but the codebase is well tested. @package postgresql-syntax @version 0.3.0.1 module PostgresqlSyntax.KeywordSet keyword :: HashSet Text unreservedKeyword :: HashSet Text colNameKeyword :: HashSet Text typeFuncNameKeyword :: HashSet Text reservedKeyword :: HashSet Text symbolicBinOp :: HashSet Text lexicalBinOp :: HashSet Text colId :: HashSet Text typeFunctionName :: HashSet Text -- | As per the following comment from the original scanner definition: -- -- /* * Likewise, if what we have left is two chars, and * those match -- the tokens ">=", ""=", "<>" or * "!=", then we must -- return the appropriate token * rather than the generic Op. */ nonOp :: (Hashable a, Eq a, IsString a) => HashSet a mathOp :: (Eq a, Hashable a, IsString a) => HashSet a -- | Names for nodes mostly resemble the according definitions in the -- gram.y original Postgres parser file, except for the cases -- where we can optimize on that. -- -- For reasoning see the docs of the parsing module of this project. module PostgresqlSyntax.Ast data PreparableStmt SelectPreparableStmt :: SelectStmt -> PreparableStmt InsertPreparableStmt :: InsertStmt -> PreparableStmt UpdatePreparableStmt :: UpdateStmt -> PreparableStmt DeletePreparableStmt :: DeleteStmt -> PreparableStmt data InsertStmt InsertStmt :: Maybe WithClause -> InsertTarget -> InsertRest -> Maybe OnConflict -> Maybe ReturningClause -> InsertStmt data InsertTarget InsertTarget :: QualifiedName -> Maybe ColId -> InsertTarget data InsertRest SelectInsertRest :: Maybe InsertColumnList -> Maybe OverrideKind -> SelectStmt -> InsertRest DefaultValuesInsertRest :: InsertRest data OverrideKind UserOverrideKind :: OverrideKind SystemOverrideKind :: OverrideKind type InsertColumnList = NonEmpty InsertColumnItem data InsertColumnItem InsertColumnItem :: ColId -> Maybe Indirection -> InsertColumnItem data OnConflict OnConflict :: Maybe ConfExpr -> OnConflictDo -> OnConflict data OnConflictDo UpdateOnConflictDo :: SetClauseList -> Maybe WhereClause -> OnConflictDo NothingOnConflictDo :: OnConflictDo data ConfExpr WhereConfExpr :: IndexParams -> Maybe WhereClause -> ConfExpr ConstraintConfExpr :: Name -> ConfExpr type ReturningClause = TargetList data UpdateStmt UpdateStmt :: Maybe WithClause -> RelationExprOptAlias -> SetClauseList -> Maybe FromClause -> Maybe WhereOrCurrentClause -> Maybe ReturningClause -> UpdateStmt type SetClauseList = NonEmpty SetClause data SetClause TargetSetClause :: SetTarget -> AExpr -> SetClause TargetListSetClause :: SetTargetList -> AExpr -> SetClause data SetTarget SetTarget :: ColId -> Maybe Indirection -> SetTarget type SetTargetList = NonEmpty SetTarget data DeleteStmt DeleteStmt :: Maybe WithClause -> RelationExprOptAlias -> Maybe UsingClause -> Maybe WhereOrCurrentClause -> Maybe ReturningClause -> DeleteStmt type UsingClause = FromList type SelectStmt = Either SelectNoParens SelectWithParens data SelectWithParens NoParensSelectWithParens :: SelectNoParens -> SelectWithParens WithParensSelectWithParens :: SelectWithParens -> SelectWithParens -- | Covers the following cases: -- --
-- select_no_parens: -- | simple_select -- | select_clause sort_clause -- | select_clause opt_sort_clause for_locking_clause opt_select_limit -- | select_clause opt_sort_clause select_limit opt_for_locking_clause -- | with_clause select_clause -- | with_clause select_clause sort_clause -- | with_clause select_clause opt_sort_clause for_locking_clause opt_select_limit -- | with_clause select_clause opt_sort_clause select_limit opt_for_locking_clause --data SelectNoParens SelectNoParens :: Maybe WithClause -> SelectClause -> Maybe SortClause -> Maybe SelectLimit -> Maybe ForLockingClause -> SelectNoParens -- |
-- select_clause: -- | simple_select -- | select_with_parens --type SelectClause = Either SimpleSelect SelectWithParens data SimpleSelect NormalSimpleSelect :: Maybe Targeting -> Maybe IntoClause -> Maybe FromClause -> Maybe WhereClause -> Maybe GroupClause -> Maybe HavingClause -> Maybe WindowClause -> SimpleSelect ValuesSimpleSelect :: ValuesClause -> SimpleSelect TableSimpleSelect :: RelationExpr -> SimpleSelect BinSimpleSelect :: SelectBinOp -> SelectClause -> Maybe Bool -> SelectClause -> SimpleSelect -- | Covers these parts of spec: -- --
-- simple_select:
-- | SELECT opt_all_clause opt_target_list
-- into_clause from_clause where_clause
-- group_clause having_clause window_clause
-- | SELECT distinct_clause target_list
-- into_clause from_clause where_clause
-- group_clause having_clause window_clause
--
-- distinct_clause:
-- | DISTINCT
-- | DISTINCT ON '(' expr_list ')'
--
data Targeting
NormalTargeting :: TargetList -> Targeting
AllTargeting :: Maybe TargetList -> Targeting
DistinctTargeting :: Maybe ExprList -> TargetList -> Targeting
type TargetList = NonEmpty TargetEl
data TargetEl
AliasedExprTargetEl :: AExpr -> Ident -> TargetEl
ImplicitlyAliasedExprTargetEl :: AExpr -> Ident -> TargetEl
ExprTargetEl :: AExpr -> TargetEl
AsteriskTargetEl :: TargetEl
data SelectBinOp
UnionSelectBinOp :: SelectBinOp
IntersectSelectBinOp :: SelectBinOp
ExceptSelectBinOp :: SelectBinOp
data WithClause
WithClause :: Bool -> NonEmpty CommonTableExpr -> WithClause
data CommonTableExpr
CommonTableExpr :: Ident -> Maybe (NonEmpty Ident) -> Maybe Bool -> PreparableStmt -> CommonTableExpr
type IntoClause = OptTempTableName
data OptTempTableName
TemporaryOptTempTableName :: Bool -> QualifiedName -> OptTempTableName
TempOptTempTableName :: Bool -> QualifiedName -> OptTempTableName
LocalTemporaryOptTempTableName :: Bool -> QualifiedName -> OptTempTableName
LocalTempOptTempTableName :: Bool -> QualifiedName -> OptTempTableName
GlobalTemporaryOptTempTableName :: Bool -> QualifiedName -> OptTempTableName
GlobalTempOptTempTableName :: Bool -> QualifiedName -> OptTempTableName
UnloggedOptTempTableName :: Bool -> QualifiedName -> OptTempTableName
TableOptTempTableName :: QualifiedName -> OptTempTableName
QualifedOptTempTableName :: QualifiedName -> OptTempTableName
type FromClause = NonEmpty TableRef
type GroupClause = NonEmpty GroupByItem
data GroupByItem
ExprGroupByItem :: AExpr -> GroupByItem
EmptyGroupingSetGroupByItem :: GroupByItem
RollupGroupByItem :: ExprList -> GroupByItem
CubeGroupByItem :: ExprList -> GroupByItem
GroupingSetsGroupByItem :: NonEmpty GroupByItem -> GroupByItem
-- | -- having_clause: -- | HAVING a_expr -- | EMPTY --type HavingClause = AExpr -- |
-- window_clause: -- | WINDOW window_definition_list -- | EMPTY -- -- window_definition_list: -- | window_definition -- | window_definition_list ',' window_definition --type WindowClause = NonEmpty WindowDefinition -- |
-- window_definition: -- | ColId AS window_specification --data WindowDefinition WindowDefinition :: Ident -> WindowSpecification -> WindowDefinition -- |
-- window_specification:
-- | '(' opt_existing_window_name opt_partition_clause
-- opt_sort_clause opt_frame_clause ')'
--
-- opt_existing_window_name:
-- | ColId
-- | EMPTY
--
-- opt_partition_clause:
-- | PARTITION BY expr_list
-- | EMPTY
--
data WindowSpecification
WindowSpecification :: Maybe ExistingWindowName -> Maybe PartitionClause -> Maybe SortClause -> Maybe FrameClause -> WindowSpecification
type ExistingWindowName = ColId
type PartitionClause = ExprList
data FrameClause
FrameClause :: FrameClauseMode -> FrameExtent -> Maybe WindowExclusionClause -> FrameClause
data FrameClauseMode
RangeFrameClauseMode :: FrameClauseMode
RowsFrameClauseMode :: FrameClauseMode
GroupsFrameClauseMode :: FrameClauseMode
data FrameExtent
SingularFrameExtent :: FrameBound -> FrameExtent
BetweenFrameExtent :: FrameBound -> FrameBound -> FrameExtent
data FrameBound
UnboundedPrecedingFrameBound :: FrameBound
UnboundedFollowingFrameBound :: FrameBound
CurrentRowFrameBound :: FrameBound
PrecedingFrameBound :: AExpr -> FrameBound
FollowingFrameBound :: AExpr -> FrameBound
data WindowExclusionClause
CurrentRowWindowExclusionClause :: WindowExclusionClause
GroupWindowExclusionClause :: WindowExclusionClause
TiesWindowExclusionClause :: WindowExclusionClause
NoOthersWindowExclusionClause :: WindowExclusionClause
type ValuesClause = NonEmpty ExprList
-- | sort_clause: | ORDER BY sortby_list
--
-- sortby_list: | sortby | sortby_list ',' sortby
type SortClause = NonEmpty SortBy
data SortBy
UsingSortBy :: AExpr -> QualAllOp -> Maybe NullsOrder -> SortBy
AscDescSortBy :: AExpr -> Maybe AscDesc -> Maybe NullsOrder -> SortBy
data SelectLimit
LimitOffsetSelectLimit :: LimitClause -> OffsetClause -> SelectLimit
OffsetLimitSelectLimit :: OffsetClause -> LimitClause -> SelectLimit
LimitSelectLimit :: LimitClause -> SelectLimit
OffsetSelectLimit :: OffsetClause -> SelectLimit
data LimitClause
LimitLimitClause :: SelectLimitValue -> Maybe AExpr -> LimitClause
FetchOnlyLimitClause :: Bool -> Maybe SelectFetchFirstValue -> Bool -> LimitClause
data SelectFetchFirstValue
ExprSelectFetchFirstValue :: CExpr -> SelectFetchFirstValue
NumSelectFetchFirstValue :: Bool -> Either Int64 Double -> SelectFetchFirstValue
data SelectLimitValue
ExprSelectLimitValue :: AExpr -> SelectLimitValue
AllSelectLimitValue :: SelectLimitValue
data OffsetClause
ExprOffsetClause :: AExpr -> OffsetClause
FetchFirstOffsetClause :: SelectFetchFirstValue -> Bool -> OffsetClause
data ForLockingClause
ItemsForLockingClause :: NonEmpty ForLockingItem -> ForLockingClause
ReadOnlyForLockingClause :: ForLockingClause
data ForLockingItem
ForLockingItem :: ForLockingStrength -> Maybe (NonEmpty QualifiedName) -> Maybe Bool -> ForLockingItem
data ForLockingStrength
UpdateForLockingStrength :: ForLockingStrength
NoKeyUpdateForLockingStrength :: ForLockingStrength
ShareForLockingStrength :: ForLockingStrength
KeyForLockingStrength :: ForLockingStrength
type FromList = NonEmpty TableRef
data TableRef
RelationExprTableRef :: RelationExpr -> Maybe AliasClause -> Maybe TablesampleClause -> TableRef
FuncTableRef :: Bool -> FuncTable -> Maybe FuncAliasClause -> TableRef
SelectTableRef :: Bool -> SelectWithParens -> Maybe AliasClause -> TableRef
JoinTableRef :: JoinedTable -> Maybe AliasClause -> TableRef
data RelationExpr
SimpleRelationExpr :: QualifiedName -> Bool -> RelationExpr
OnlyRelationExpr :: QualifiedName -> Bool -> RelationExpr
data RelationExprOptAlias
RelationExprOptAlias :: RelationExpr -> Maybe (Bool, ColId) -> RelationExprOptAlias
data TablesampleClause
TablesampleClause :: FuncName -> ExprList -> Maybe RepeatableClause -> TablesampleClause
type RepeatableClause = AExpr
data FuncTable
FuncExprFuncTable :: FuncExprWindowless -> OptOrdinality -> FuncTable
RowsFromFuncTable :: RowsfromList -> OptOrdinality -> FuncTable
data RowsfromItem
RowsfromItem :: FuncExprWindowless -> Maybe ColDefList -> RowsfromItem
type RowsfromList = NonEmpty RowsfromItem
type ColDefList = TableFuncElementList
type OptOrdinality = Bool
type TableFuncElementList = NonEmpty TableFuncElement
data TableFuncElement
TableFuncElement :: ColId -> Typename -> Maybe CollateClause -> TableFuncElement
type CollateClause = AnyName
data AliasClause
AliasClause :: Bool -> ColId -> Maybe NameList -> AliasClause
data FuncAliasClause
AliasFuncAliasClause :: AliasClause -> FuncAliasClause
AsFuncAliasClause :: TableFuncElementList -> FuncAliasClause
AsColIdFuncAliasClause :: ColId -> TableFuncElementList -> FuncAliasClause
ColIdFuncAliasClause :: ColId -> TableFuncElementList -> FuncAliasClause
data JoinedTable
InParensJoinedTable :: JoinedTable -> JoinedTable
MethJoinedTable :: JoinMeth -> TableRef -> TableRef -> JoinedTable
data JoinMeth
CrossJoinMeth :: JoinMeth
QualJoinMeth :: Maybe JoinType -> JoinQual -> JoinMeth
NaturalJoinMeth :: Maybe JoinType -> JoinMeth
data JoinType
FullJoinType :: Bool -> JoinType
LeftJoinType :: Bool -> JoinType
RightJoinType :: Bool -> JoinType
InnerJoinType :: JoinType
data JoinQual
UsingJoinQual :: NonEmpty Ident -> JoinQual
OnJoinQual :: AExpr -> JoinQual
type WhereClause = AExpr
data WhereOrCurrentClause
ExprWhereOrCurrentClause :: AExpr -> WhereOrCurrentClause
CursorWhereOrCurrentClause :: CursorName -> WhereOrCurrentClause
type ExprList = NonEmpty AExpr
data AExpr
CExprAExpr :: CExpr -> AExpr
TypecastAExpr :: AExpr -> Typename -> AExpr
CollateAExpr :: AExpr -> AnyName -> AExpr
AtTimeZoneAExpr :: AExpr -> AExpr -> AExpr
PlusAExpr :: AExpr -> AExpr
MinusAExpr :: AExpr -> AExpr
SymbolicBinOpAExpr :: AExpr -> SymbolicExprBinOp -> AExpr -> AExpr
PrefixQualOpAExpr :: QualOp -> AExpr -> AExpr
SuffixQualOpAExpr :: AExpr -> QualOp -> AExpr
AndAExpr :: AExpr -> AExpr -> AExpr
OrAExpr :: AExpr -> AExpr -> AExpr
NotAExpr :: AExpr -> AExpr
VerbalExprBinOpAExpr :: AExpr -> Bool -> VerbalExprBinOp -> AExpr -> Maybe AExpr -> AExpr
ReversableOpAExpr :: AExpr -> Bool -> AExprReversableOp -> AExpr
IsnullAExpr :: AExpr -> AExpr
NotnullAExpr :: AExpr -> AExpr
OverlapsAExpr :: Row -> Row -> AExpr
SubqueryAExpr :: AExpr -> SubqueryOp -> SubType -> Either SelectWithParens AExpr -> AExpr
UniqueAExpr :: SelectWithParens -> AExpr
DefaultAExpr :: AExpr
data BExpr
CExprBExpr :: CExpr -> BExpr
TypecastBExpr :: BExpr -> Typename -> BExpr
PlusBExpr :: BExpr -> BExpr
MinusBExpr :: BExpr -> BExpr
SymbolicBinOpBExpr :: BExpr -> SymbolicExprBinOp -> BExpr -> BExpr
QualOpBExpr :: QualOp -> BExpr -> BExpr
IsOpBExpr :: BExpr -> Bool -> BExprIsOp -> BExpr
data CExpr
ColumnrefCExpr :: Columnref -> CExpr
AexprConstCExpr :: AexprConst -> CExpr
ParamCExpr :: Int -> Maybe Indirection -> CExpr
InParensCExpr :: AExpr -> Maybe Indirection -> CExpr
CaseCExpr :: CaseExpr -> CExpr
FuncCExpr :: FuncExpr -> CExpr
SelectWithParensCExpr :: SelectWithParens -> Maybe Indirection -> CExpr
ExistsCExpr :: SelectWithParens -> CExpr
ArrayCExpr :: Either SelectWithParens ArrayExpr -> CExpr
ExplicitRowCExpr :: ExplicitRow -> CExpr
ImplicitRowCExpr :: ImplicitRow -> CExpr
GroupingCExpr :: ExprList -> CExpr
data InExpr
SelectInExpr :: SelectWithParens -> InExpr
ExprListInExpr :: ExprList -> InExpr
data SubType
AnySubType :: SubType
SomeSubType :: SubType
AllSubType :: SubType
data ArrayExpr
ExprListArrayExpr :: ExprList -> ArrayExpr
ArrayExprListArrayExpr :: ArrayExprList -> ArrayExpr
EmptyArrayExpr :: ArrayExpr
type ArrayExprList = NonEmpty ArrayExpr
data Row
ExplicitRowRow :: ExplicitRow -> Row
ImplicitRowRow :: ImplicitRow -> Row
type ExplicitRow = Maybe ExprList
data ImplicitRow
ImplicitRow :: ExprList -> AExpr -> ImplicitRow
data FuncExpr
ApplicationFuncExpr :: FuncApplication -> Maybe WithinGroupClause -> Maybe FilterClause -> Maybe OverClause -> FuncExpr
SubexprFuncExpr :: FuncExprCommonSubexpr -> FuncExpr
data FuncExprWindowless
ApplicationFuncExprWindowless :: FuncApplication -> FuncExprWindowless
CommonSubexprFuncExprWindowless :: FuncExprCommonSubexpr -> FuncExprWindowless
type WithinGroupClause = SortClause
type FilterClause = AExpr
data OverClause
WindowOverClause :: WindowSpecification -> OverClause
ColIdOverClause :: ColId -> OverClause
data FuncExprCommonSubexpr
CollationForFuncExprCommonSubexpr :: AExpr -> FuncExprCommonSubexpr
CurrentDateFuncExprCommonSubexpr :: FuncExprCommonSubexpr
CurrentTimeFuncExprCommonSubexpr :: Maybe Int64 -> FuncExprCommonSubexpr
CurrentTimestampFuncExprCommonSubexpr :: Maybe Int64 -> FuncExprCommonSubexpr
LocalTimeFuncExprCommonSubexpr :: Maybe Int64 -> FuncExprCommonSubexpr
LocalTimestampFuncExprCommonSubexpr :: Maybe Int64 -> FuncExprCommonSubexpr
CurrentRoleFuncExprCommonSubexpr :: FuncExprCommonSubexpr
CurrentUserFuncExprCommonSubexpr :: FuncExprCommonSubexpr
SessionUserFuncExprCommonSubexpr :: FuncExprCommonSubexpr
UserFuncExprCommonSubexpr :: FuncExprCommonSubexpr
CurrentCatalogFuncExprCommonSubexpr :: FuncExprCommonSubexpr
CurrentSchemaFuncExprCommonSubexpr :: FuncExprCommonSubexpr
CastFuncExprCommonSubexpr :: AExpr -> Typename -> FuncExprCommonSubexpr
ExtractFuncExprCommonSubexpr :: Maybe ExtractList -> FuncExprCommonSubexpr
OverlayFuncExprCommonSubexpr :: OverlayList -> FuncExprCommonSubexpr
PositionFuncExprCommonSubexpr :: Maybe PositionList -> FuncExprCommonSubexpr
SubstringFuncExprCommonSubexpr :: Maybe SubstrList -> FuncExprCommonSubexpr
TreatFuncExprCommonSubexpr :: AExpr -> Typename -> FuncExprCommonSubexpr
TrimFuncExprCommonSubexpr :: Maybe TrimModifier -> TrimList -> FuncExprCommonSubexpr
NullIfFuncExprCommonSubexpr :: AExpr -> AExpr -> FuncExprCommonSubexpr
CoalesceFuncExprCommonSubexpr :: ExprList -> FuncExprCommonSubexpr
GreatestFuncExprCommonSubexpr :: ExprList -> FuncExprCommonSubexpr
LeastFuncExprCommonSubexpr :: ExprList -> FuncExprCommonSubexpr
data ExtractList
ExtractList :: ExtractArg -> AExpr -> ExtractList
data ExtractArg
IdentExtractArg :: Ident -> ExtractArg
YearExtractArg :: ExtractArg
MonthExtractArg :: ExtractArg
DayExtractArg :: ExtractArg
HourExtractArg :: ExtractArg
MinuteExtractArg :: ExtractArg
SecondExtractArg :: ExtractArg
SconstExtractArg :: Sconst -> ExtractArg
data OverlayList
OverlayList :: AExpr -> OverlayPlacing -> SubstrFrom -> Maybe SubstrFor -> OverlayList
type OverlayPlacing = AExpr
data PositionList
PositionList :: BExpr -> BExpr -> PositionList
data SubstrList
ExprSubstrList :: AExpr -> SubstrListFromFor -> SubstrList
ExprListSubstrList :: ExprList -> SubstrList
data SubstrListFromFor
FromForSubstrListFromFor :: SubstrFrom -> SubstrFor -> SubstrListFromFor
ForFromSubstrListFromFor :: SubstrFor -> SubstrFrom -> SubstrListFromFor
FromSubstrListFromFor :: SubstrFrom -> SubstrListFromFor
ForSubstrListFromFor :: SubstrFor -> SubstrListFromFor
type SubstrFrom = AExpr
type SubstrFor = AExpr
data TrimModifier
BothTrimModifier :: TrimModifier
LeadingTrimModifier :: TrimModifier
TrailingTrimModifier :: TrimModifier
data TrimList
ExprFromExprListTrimList :: AExpr -> ExprList -> TrimList
FromExprListTrimList :: ExprList -> TrimList
ExprListTrimList :: ExprList -> TrimList
data CaseExpr
CaseExpr :: Maybe CaseArg -> WhenClauseList -> Maybe CaseDefault -> CaseExpr
type CaseArg = AExpr
type WhenClauseList = NonEmpty WhenClause
type CaseDefault = AExpr
data WhenClause
WhenClause :: AExpr -> AExpr -> WhenClause
data FuncApplication
FuncApplication :: FuncName -> Maybe FuncApplicationParams -> FuncApplication
data FuncApplicationParams
NormalFuncApplicationParams :: Maybe Bool -> NonEmpty FuncArgExpr -> Maybe SortClause -> FuncApplicationParams
VariadicFuncApplicationParams :: Maybe (NonEmpty FuncArgExpr) -> FuncArgExpr -> Maybe SortClause -> FuncApplicationParams
StarFuncApplicationParams :: FuncApplicationParams
data FuncArgExpr
ExprFuncArgExpr :: AExpr -> FuncArgExpr
ColonEqualsFuncArgExpr :: Ident -> AExpr -> FuncArgExpr
EqualsGreaterFuncArgExpr :: Ident -> AExpr -> FuncArgExpr
type Sconst = Text
type Iconst = Int64
type Fconst = Double
type Bconst = Text
type Xconst = Text
-- | AexprConst: | Iconst | FCONST | Sconst | BCONST | XCONST | func_name
-- Sconst | func_name '(' func_arg_list opt_sort_clause ')' Sconst |
-- ConstTypename Sconst | ConstInterval Sconst opt_interval |
-- ConstInterval '(' Iconst ')' Sconst | TRUE_P | FALSE_P | NULL_P
data AexprConst
IAexprConst :: Iconst -> AexprConst
FAexprConst :: Fconst -> AexprConst
SAexprConst :: Sconst -> AexprConst
BAexprConst :: Bconst -> AexprConst
XAexprConst :: Xconst -> AexprConst
FuncAexprConst :: FuncName -> Maybe FuncConstArgs -> Sconst -> AexprConst
ConstTypenameAexprConst :: ConstTypename -> Sconst -> AexprConst
StringIntervalAexprConst :: Sconst -> Maybe Interval -> AexprConst
IntIntervalAexprConst :: Iconst -> Sconst -> AexprConst
BoolAexprConst :: Bool -> AexprConst
NullAexprConst :: AexprConst
data FuncConstArgs
FuncConstArgs :: NonEmpty FuncArgExpr -> Maybe SortClause -> FuncConstArgs
data ConstTypename
NumericConstTypename :: Numeric -> ConstTypename
ConstBitConstTypename :: ConstBit -> ConstTypename
ConstCharacterConstTypename :: ConstCharacter -> ConstTypename
ConstDatetimeConstTypename :: ConstDatetime -> ConstTypename
data Numeric
IntNumeric :: Numeric
IntegerNumeric :: Numeric
SmallintNumeric :: Numeric
BigintNumeric :: Numeric
RealNumeric :: Numeric
FloatNumeric :: Maybe Int64 -> Numeric
DoublePrecisionNumeric :: Numeric
DecimalNumeric :: Maybe TypeModifiers -> Numeric
DecNumeric :: Maybe TypeModifiers -> Numeric
NumericNumeric :: Maybe TypeModifiers -> Numeric
BooleanNumeric :: Numeric
data Bit
Bit :: OptVarying -> Maybe ExprList -> Bit
type ConstBit = Bit
type OptVarying = Bool
data ConstCharacter
ConstCharacter :: Character -> Maybe Int64 -> ConstCharacter
data Character
CharacterCharacter :: OptVarying -> Character
CharCharacter :: OptVarying -> Character
VarcharCharacter :: Character
NationalCharacterCharacter :: OptVarying -> Character
NationalCharCharacter :: OptVarying -> Character
NcharCharacter :: OptVarying -> Character
data ConstDatetime
TimestampConstDatetime :: Maybe Int64 -> Maybe Timezone -> ConstDatetime
TimeConstDatetime :: Maybe Int64 -> Maybe Timezone -> ConstDatetime
type Timezone = Bool
data Interval
YearInterval :: Interval
MonthInterval :: Interval
DayInterval :: Interval
HourInterval :: Interval
MinuteInterval :: Interval
SecondInterval :: IntervalSecond -> Interval
YearToMonthInterval :: Interval
DayToHourInterval :: Interval
DayToMinuteInterval :: Interval
DayToSecondInterval :: IntervalSecond -> Interval
HourToMinuteInterval :: Interval
HourToSecondInterval :: IntervalSecond -> Interval
MinuteToSecondInterval :: IntervalSecond -> Interval
type IntervalSecond = Maybe Int64
data Ident
QuotedIdent :: Text -> Ident
UnquotedIdent :: Text -> Ident
type ColId = Ident
type ColLabel = Ident
type Name = ColId
type NameList = NonEmpty Name
type CursorName = Name
data Columnref
Columnref :: ColId -> Maybe Indirection -> Columnref
data AnyName
AnyName :: ColId -> Maybe Attrs -> AnyName
data FuncName
TypeFuncName :: TypeFunctionName -> FuncName
IndirectedFuncName :: ColId -> Indirection -> FuncName
type TypeFunctionName = Ident
data QualifiedName
SimpleQualifiedName :: Ident -> QualifiedName
IndirectedQualifiedName :: Ident -> Indirection -> QualifiedName
type Indirection = NonEmpty IndirectionEl
data IndirectionEl
AttrNameIndirectionEl :: Ident -> IndirectionEl
AllIndirectionEl :: IndirectionEl
ExprIndirectionEl :: AExpr -> IndirectionEl
SliceIndirectionEl :: Maybe AExpr -> Maybe AExpr -> IndirectionEl
-- | Typename definition extended with custom question-marks for
-- nullability specification.
--
-- To match the standard Postgres syntax simply interpret their presence
-- as a parsing error.
data Typename
Typename :: Bool -> SimpleTypename -> Bool -> Maybe (TypenameArrayDimensions, Bool) -> Typename
data TypenameArrayDimensions
BoundsTypenameArrayDimensions :: ArrayBounds -> TypenameArrayDimensions
ExplicitTypenameArrayDimensions :: Maybe Iconst -> TypenameArrayDimensions
type ArrayBounds = NonEmpty (Maybe Iconst)
data SimpleTypename
GenericTypeSimpleTypename :: GenericType -> SimpleTypename
NumericSimpleTypename :: Numeric -> SimpleTypename
BitSimpleTypename :: Bit -> SimpleTypename
CharacterSimpleTypename :: Character -> SimpleTypename
ConstDatetimeSimpleTypename :: ConstDatetime -> SimpleTypename
ConstIntervalSimpleTypename :: Either (Maybe Interval) Iconst -> SimpleTypename
data GenericType
GenericType :: TypeFunctionName -> Maybe Attrs -> Maybe TypeModifiers -> GenericType
type Attrs = NonEmpty AttrName
type AttrName = ColLabel
type TypeModifiers = ExprList
type TypeList = NonEmpty Typename
data QualOp
OpQualOp :: Op -> QualOp
OperatorQualOp :: AnyOperator -> QualOp
data QualAllOp
AllQualAllOp :: AllOp -> QualAllOp
AnyQualAllOp :: AnyOperator -> QualAllOp
type Op = Text
data AnyOperator
AllOpAnyOperator :: AllOp -> AnyOperator
QualifiedAnyOperator :: ColId -> AnyOperator -> AnyOperator
data AllOp
OpAllOp :: Op -> AllOp
MathAllOp :: MathOp -> AllOp
data MathOp
PlusMathOp :: MathOp
MinusMathOp :: MathOp
AsteriskMathOp :: MathOp
SlashMathOp :: MathOp
PercentMathOp :: MathOp
ArrowUpMathOp :: MathOp
ArrowLeftMathOp :: MathOp
ArrowRightMathOp :: MathOp
EqualsMathOp :: MathOp
LessEqualsMathOp :: MathOp
GreaterEqualsMathOp :: MathOp
ArrowLeftArrowRightMathOp :: MathOp
ExclamationEqualsMathOp :: MathOp
data SymbolicExprBinOp
MathSymbolicExprBinOp :: MathOp -> SymbolicExprBinOp
QualSymbolicExprBinOp :: QualOp -> SymbolicExprBinOp
data VerbalExprBinOp
LikeVerbalExprBinOp :: VerbalExprBinOp
IlikeVerbalExprBinOp :: VerbalExprBinOp
SimilarToVerbalExprBinOp :: VerbalExprBinOp
data AExprReversableOp
NullAExprReversableOp :: AExprReversableOp
TrueAExprReversableOp :: AExprReversableOp
FalseAExprReversableOp :: AExprReversableOp
UnknownAExprReversableOp :: AExprReversableOp
DistinctFromAExprReversableOp :: AExpr -> AExprReversableOp
OfAExprReversableOp :: TypeList -> AExprReversableOp
BetweenAExprReversableOp :: Bool -> BExpr -> AExpr -> AExprReversableOp
BetweenSymmetricAExprReversableOp :: BExpr -> AExpr -> AExprReversableOp
InAExprReversableOp :: InExpr -> AExprReversableOp
DocumentAExprReversableOp :: AExprReversableOp
data BExprIsOp
DistinctFromBExprIsOp :: BExpr -> BExprIsOp
OfBExprIsOp :: TypeList -> BExprIsOp
DocumentBExprIsOp :: BExprIsOp
data SubqueryOp
AllSubqueryOp :: AllOp -> SubqueryOp
AnySubqueryOp :: AnyOperator -> SubqueryOp
LikeSubqueryOp :: Bool -> SubqueryOp
IlikeSubqueryOp :: Bool -> SubqueryOp
type IndexParams = NonEmpty IndexElem
data IndexElem
IndexElem :: IndexElemDef -> Maybe Collate -> Maybe Class -> Maybe AscDesc -> Maybe NullsOrder -> IndexElem
data IndexElemDef
IdIndexElemDef :: ColId -> IndexElemDef
FuncIndexElemDef :: FuncExprWindowless -> IndexElemDef
ExprIndexElemDef :: AExpr -> IndexElemDef
type Collate = AnyName
type Class = AnyName
data AscDesc
AscAscDesc :: AscDesc
DescAscDesc :: AscDesc
data NullsOrder
FirstNullsOrder :: NullsOrder
LastNullsOrder :: NullsOrder
instance GHC.Classes.Ord PostgresqlSyntax.Ast.Row
instance GHC.Classes.Eq PostgresqlSyntax.Ast.Row
instance GHC.Generics.Generic PostgresqlSyntax.Ast.Row
instance GHC.Show.Show PostgresqlSyntax.Ast.Row
instance GHC.Classes.Ord PostgresqlSyntax.Ast.Targeting
instance GHC.Classes.Eq PostgresqlSyntax.Ast.Targeting
instance GHC.Generics.Generic PostgresqlSyntax.Ast.Targeting
instance GHC.Show.Show PostgresqlSyntax.Ast.Targeting
instance GHC.Classes.Ord PostgresqlSyntax.Ast.OptTempTableName
instance GHC.Classes.Eq PostgresqlSyntax.Ast.OptTempTableName
instance GHC.Generics.Generic PostgresqlSyntax.Ast.OptTempTableName
instance GHC.Show.Show PostgresqlSyntax.Ast.OptTempTableName
instance GHC.Classes.Ord PostgresqlSyntax.Ast.GroupByItem
instance GHC.Classes.Eq PostgresqlSyntax.Ast.GroupByItem
instance GHC.Generics.Generic PostgresqlSyntax.Ast.GroupByItem
instance GHC.Show.Show PostgresqlSyntax.Ast.GroupByItem
instance GHC.Classes.Ord PostgresqlSyntax.Ast.WindowDefinition
instance GHC.Classes.Eq PostgresqlSyntax.Ast.WindowDefinition
instance GHC.Generics.Generic PostgresqlSyntax.Ast.WindowDefinition
instance GHC.Show.Show PostgresqlSyntax.Ast.WindowDefinition
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SimpleSelect
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SimpleSelect
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SimpleSelect
instance GHC.Show.Show PostgresqlSyntax.Ast.SimpleSelect
instance GHC.Classes.Ord PostgresqlSyntax.Ast.InsertTarget
instance GHC.Classes.Eq PostgresqlSyntax.Ast.InsertTarget
instance GHC.Generics.Generic PostgresqlSyntax.Ast.InsertTarget
instance GHC.Show.Show PostgresqlSyntax.Ast.InsertTarget
instance GHC.Classes.Ord PostgresqlSyntax.Ast.InsertColumnItem
instance GHC.Classes.Eq PostgresqlSyntax.Ast.InsertColumnItem
instance GHC.Generics.Generic PostgresqlSyntax.Ast.InsertColumnItem
instance GHC.Show.Show PostgresqlSyntax.Ast.InsertColumnItem
instance GHC.Classes.Ord PostgresqlSyntax.Ast.InsertRest
instance GHC.Classes.Eq PostgresqlSyntax.Ast.InsertRest
instance GHC.Generics.Generic PostgresqlSyntax.Ast.InsertRest
instance GHC.Show.Show PostgresqlSyntax.Ast.InsertRest
instance GHC.Classes.Ord PostgresqlSyntax.Ast.OnConflictDo
instance GHC.Classes.Eq PostgresqlSyntax.Ast.OnConflictDo
instance GHC.Generics.Generic PostgresqlSyntax.Ast.OnConflictDo
instance GHC.Show.Show PostgresqlSyntax.Ast.OnConflictDo
instance GHC.Classes.Ord PostgresqlSyntax.Ast.IndexElemDef
instance GHC.Classes.Eq PostgresqlSyntax.Ast.IndexElemDef
instance GHC.Generics.Generic PostgresqlSyntax.Ast.IndexElemDef
instance GHC.Show.Show PostgresqlSyntax.Ast.IndexElemDef
instance GHC.Classes.Ord PostgresqlSyntax.Ast.IndexElem
instance GHC.Classes.Eq PostgresqlSyntax.Ast.IndexElem
instance GHC.Generics.Generic PostgresqlSyntax.Ast.IndexElem
instance GHC.Show.Show PostgresqlSyntax.Ast.IndexElem
instance GHC.Classes.Ord PostgresqlSyntax.Ast.ConfExpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.ConfExpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.ConfExpr
instance GHC.Show.Show PostgresqlSyntax.Ast.ConfExpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.OnConflict
instance GHC.Classes.Eq PostgresqlSyntax.Ast.OnConflict
instance GHC.Generics.Generic PostgresqlSyntax.Ast.OnConflict
instance GHC.Show.Show PostgresqlSyntax.Ast.OnConflict
instance GHC.Classes.Ord PostgresqlSyntax.Ast.InsertStmt
instance GHC.Classes.Eq PostgresqlSyntax.Ast.InsertStmt
instance GHC.Generics.Generic PostgresqlSyntax.Ast.InsertStmt
instance GHC.Show.Show PostgresqlSyntax.Ast.InsertStmt
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SetTarget
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SetTarget
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SetTarget
instance GHC.Show.Show PostgresqlSyntax.Ast.SetTarget
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SetClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SetClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SetClause
instance GHC.Show.Show PostgresqlSyntax.Ast.SetClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.UpdateStmt
instance GHC.Classes.Eq PostgresqlSyntax.Ast.UpdateStmt
instance GHC.Generics.Generic PostgresqlSyntax.Ast.UpdateStmt
instance GHC.Show.Show PostgresqlSyntax.Ast.UpdateStmt
instance GHC.Classes.Ord PostgresqlSyntax.Ast.TargetEl
instance GHC.Classes.Eq PostgresqlSyntax.Ast.TargetEl
instance GHC.Generics.Generic PostgresqlSyntax.Ast.TargetEl
instance GHC.Show.Show PostgresqlSyntax.Ast.TargetEl
instance GHC.Classes.Ord PostgresqlSyntax.Ast.TablesampleClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.TablesampleClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.TablesampleClause
instance GHC.Show.Show PostgresqlSyntax.Ast.TablesampleClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.RowsfromItem
instance GHC.Classes.Eq PostgresqlSyntax.Ast.RowsfromItem
instance GHC.Generics.Generic PostgresqlSyntax.Ast.RowsfromItem
instance GHC.Show.Show PostgresqlSyntax.Ast.RowsfromItem
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FuncExprWindowless
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FuncExprWindowless
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FuncExprWindowless
instance GHC.Show.Show PostgresqlSyntax.Ast.FuncExprWindowless
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FuncTable
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FuncTable
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FuncTable
instance GHC.Show.Show PostgresqlSyntax.Ast.FuncTable
instance GHC.Classes.Ord PostgresqlSyntax.Ast.TableFuncElement
instance GHC.Classes.Eq PostgresqlSyntax.Ast.TableFuncElement
instance GHC.Generics.Generic PostgresqlSyntax.Ast.TableFuncElement
instance GHC.Show.Show PostgresqlSyntax.Ast.TableFuncElement
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FuncAliasClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FuncAliasClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FuncAliasClause
instance GHC.Show.Show PostgresqlSyntax.Ast.FuncAliasClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.JoinQual
instance GHC.Classes.Eq PostgresqlSyntax.Ast.JoinQual
instance GHC.Generics.Generic PostgresqlSyntax.Ast.JoinQual
instance GHC.Show.Show PostgresqlSyntax.Ast.JoinQual
instance GHC.Classes.Ord PostgresqlSyntax.Ast.JoinMeth
instance GHC.Classes.Eq PostgresqlSyntax.Ast.JoinMeth
instance GHC.Generics.Generic PostgresqlSyntax.Ast.JoinMeth
instance GHC.Show.Show PostgresqlSyntax.Ast.JoinMeth
instance GHC.Classes.Ord PostgresqlSyntax.Ast.JoinedTable
instance GHC.Classes.Eq PostgresqlSyntax.Ast.JoinedTable
instance GHC.Generics.Generic PostgresqlSyntax.Ast.JoinedTable
instance GHC.Show.Show PostgresqlSyntax.Ast.JoinedTable
instance GHC.Classes.Ord PostgresqlSyntax.Ast.TableRef
instance GHC.Classes.Eq PostgresqlSyntax.Ast.TableRef
instance GHC.Generics.Generic PostgresqlSyntax.Ast.TableRef
instance GHC.Show.Show PostgresqlSyntax.Ast.TableRef
instance GHC.Classes.Ord PostgresqlSyntax.Ast.RelationExpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.RelationExpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.RelationExpr
instance GHC.Show.Show PostgresqlSyntax.Ast.RelationExpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.RelationExprOptAlias
instance GHC.Classes.Eq PostgresqlSyntax.Ast.RelationExprOptAlias
instance GHC.Generics.Generic PostgresqlSyntax.Ast.RelationExprOptAlias
instance GHC.Show.Show PostgresqlSyntax.Ast.RelationExprOptAlias
instance GHC.Classes.Ord PostgresqlSyntax.Ast.WhereOrCurrentClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.WhereOrCurrentClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.WhereOrCurrentClause
instance GHC.Show.Show PostgresqlSyntax.Ast.WhereOrCurrentClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.DeleteStmt
instance GHC.Classes.Eq PostgresqlSyntax.Ast.DeleteStmt
instance GHC.Generics.Generic PostgresqlSyntax.Ast.DeleteStmt
instance GHC.Show.Show PostgresqlSyntax.Ast.DeleteStmt
instance GHC.Classes.Ord PostgresqlSyntax.Ast.PreparableStmt
instance GHC.Classes.Eq PostgresqlSyntax.Ast.PreparableStmt
instance GHC.Generics.Generic PostgresqlSyntax.Ast.PreparableStmt
instance GHC.Show.Show PostgresqlSyntax.Ast.PreparableStmt
instance GHC.Classes.Ord PostgresqlSyntax.Ast.CommonTableExpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.CommonTableExpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.CommonTableExpr
instance GHC.Show.Show PostgresqlSyntax.Ast.CommonTableExpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.WithClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.WithClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.WithClause
instance GHC.Show.Show PostgresqlSyntax.Ast.WithClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SelectLimitValue
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SelectLimitValue
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SelectLimitValue
instance GHC.Show.Show PostgresqlSyntax.Ast.SelectLimitValue
instance GHC.Classes.Ord PostgresqlSyntax.Ast.LimitClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.LimitClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.LimitClause
instance GHC.Show.Show PostgresqlSyntax.Ast.LimitClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.ArrayExpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.ArrayExpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.ArrayExpr
instance GHC.Show.Show PostgresqlSyntax.Ast.ArrayExpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.ImplicitRow
instance GHC.Classes.Eq PostgresqlSyntax.Ast.ImplicitRow
instance GHC.Generics.Generic PostgresqlSyntax.Ast.ImplicitRow
instance GHC.Show.Show PostgresqlSyntax.Ast.ImplicitRow
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FrameBound
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FrameBound
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FrameBound
instance GHC.Show.Show PostgresqlSyntax.Ast.FrameBound
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FrameExtent
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FrameExtent
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FrameExtent
instance GHC.Show.Show PostgresqlSyntax.Ast.FrameExtent
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FrameClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FrameClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FrameClause
instance GHC.Show.Show PostgresqlSyntax.Ast.FrameClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.WindowSpecification
instance GHC.Classes.Eq PostgresqlSyntax.Ast.WindowSpecification
instance GHC.Generics.Generic PostgresqlSyntax.Ast.WindowSpecification
instance GHC.Show.Show PostgresqlSyntax.Ast.WindowSpecification
instance GHC.Classes.Ord PostgresqlSyntax.Ast.OverClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.OverClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.OverClause
instance GHC.Show.Show PostgresqlSyntax.Ast.OverClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.ExtractList
instance GHC.Classes.Eq PostgresqlSyntax.Ast.ExtractList
instance GHC.Generics.Generic PostgresqlSyntax.Ast.ExtractList
instance GHC.Show.Show PostgresqlSyntax.Ast.ExtractList
instance GHC.Classes.Ord PostgresqlSyntax.Ast.OverlayList
instance GHC.Classes.Eq PostgresqlSyntax.Ast.OverlayList
instance GHC.Generics.Generic PostgresqlSyntax.Ast.OverlayList
instance GHC.Show.Show PostgresqlSyntax.Ast.OverlayList
instance GHC.Classes.Ord PostgresqlSyntax.Ast.BExprIsOp
instance GHC.Classes.Eq PostgresqlSyntax.Ast.BExprIsOp
instance GHC.Generics.Generic PostgresqlSyntax.Ast.BExprIsOp
instance GHC.Show.Show PostgresqlSyntax.Ast.BExprIsOp
instance GHC.Classes.Ord PostgresqlSyntax.Ast.BExpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.BExpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.BExpr
instance GHC.Show.Show PostgresqlSyntax.Ast.BExpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.PositionList
instance GHC.Classes.Eq PostgresqlSyntax.Ast.PositionList
instance GHC.Generics.Generic PostgresqlSyntax.Ast.PositionList
instance GHC.Show.Show PostgresqlSyntax.Ast.PositionList
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SubstrListFromFor
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SubstrListFromFor
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SubstrListFromFor
instance GHC.Show.Show PostgresqlSyntax.Ast.SubstrListFromFor
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SubstrList
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SubstrList
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SubstrList
instance GHC.Show.Show PostgresqlSyntax.Ast.SubstrList
instance GHC.Classes.Ord PostgresqlSyntax.Ast.TrimList
instance GHC.Classes.Eq PostgresqlSyntax.Ast.TrimList
instance GHC.Generics.Generic PostgresqlSyntax.Ast.TrimList
instance GHC.Show.Show PostgresqlSyntax.Ast.TrimList
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FuncExprCommonSubexpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FuncExprCommonSubexpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FuncExprCommonSubexpr
instance GHC.Show.Show PostgresqlSyntax.Ast.FuncExprCommonSubexpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FuncApplicationParams
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FuncApplicationParams
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FuncApplicationParams
instance GHC.Show.Show PostgresqlSyntax.Ast.FuncApplicationParams
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FuncApplication
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FuncApplication
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FuncApplication
instance GHC.Show.Show PostgresqlSyntax.Ast.FuncApplication
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FuncExpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FuncExpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FuncExpr
instance GHC.Show.Show PostgresqlSyntax.Ast.FuncExpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.WhenClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.WhenClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.WhenClause
instance GHC.Show.Show PostgresqlSyntax.Ast.WhenClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.CaseExpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.CaseExpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.CaseExpr
instance GHC.Show.Show PostgresqlSyntax.Ast.CaseExpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FuncArgExpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FuncArgExpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FuncArgExpr
instance GHC.Show.Show PostgresqlSyntax.Ast.FuncArgExpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FuncConstArgs
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FuncConstArgs
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FuncConstArgs
instance GHC.Show.Show PostgresqlSyntax.Ast.FuncConstArgs
instance GHC.Classes.Ord PostgresqlSyntax.Ast.ConstTypename
instance GHC.Classes.Eq PostgresqlSyntax.Ast.ConstTypename
instance GHC.Generics.Generic PostgresqlSyntax.Ast.ConstTypename
instance GHC.Show.Show PostgresqlSyntax.Ast.ConstTypename
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FuncName
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FuncName
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FuncName
instance GHC.Show.Show PostgresqlSyntax.Ast.FuncName
instance GHC.Classes.Ord PostgresqlSyntax.Ast.AexprConst
instance GHC.Classes.Eq PostgresqlSyntax.Ast.AexprConst
instance GHC.Generics.Generic PostgresqlSyntax.Ast.AexprConst
instance GHC.Show.Show PostgresqlSyntax.Ast.AexprConst
instance GHC.Classes.Ord PostgresqlSyntax.Ast.Columnref
instance GHC.Classes.Eq PostgresqlSyntax.Ast.Columnref
instance GHC.Generics.Generic PostgresqlSyntax.Ast.Columnref
instance GHC.Show.Show PostgresqlSyntax.Ast.Columnref
instance GHC.Classes.Ord PostgresqlSyntax.Ast.CExpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.CExpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.CExpr
instance GHC.Show.Show PostgresqlSyntax.Ast.CExpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SelectFetchFirstValue
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SelectFetchFirstValue
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SelectFetchFirstValue
instance GHC.Show.Show PostgresqlSyntax.Ast.SelectFetchFirstValue
instance GHC.Classes.Ord PostgresqlSyntax.Ast.OffsetClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.OffsetClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.OffsetClause
instance GHC.Show.Show PostgresqlSyntax.Ast.OffsetClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SelectLimit
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SelectLimit
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SelectLimit
instance GHC.Show.Show PostgresqlSyntax.Ast.SelectLimit
instance GHC.Classes.Ord PostgresqlSyntax.Ast.IndirectionEl
instance GHC.Classes.Eq PostgresqlSyntax.Ast.IndirectionEl
instance GHC.Generics.Generic PostgresqlSyntax.Ast.IndirectionEl
instance GHC.Show.Show PostgresqlSyntax.Ast.IndirectionEl
instance GHC.Classes.Ord PostgresqlSyntax.Ast.QualifiedName
instance GHC.Classes.Eq PostgresqlSyntax.Ast.QualifiedName
instance GHC.Generics.Generic PostgresqlSyntax.Ast.QualifiedName
instance GHC.Show.Show PostgresqlSyntax.Ast.QualifiedName
instance GHC.Classes.Ord PostgresqlSyntax.Ast.ForLockingItem
instance GHC.Classes.Eq PostgresqlSyntax.Ast.ForLockingItem
instance GHC.Generics.Generic PostgresqlSyntax.Ast.ForLockingItem
instance GHC.Show.Show PostgresqlSyntax.Ast.ForLockingItem
instance GHC.Classes.Ord PostgresqlSyntax.Ast.ForLockingClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.ForLockingClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.ForLockingClause
instance GHC.Show.Show PostgresqlSyntax.Ast.ForLockingClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SelectNoParens
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SelectNoParens
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SelectNoParens
instance GHC.Show.Show PostgresqlSyntax.Ast.SelectNoParens
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SelectWithParens
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SelectWithParens
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SelectWithParens
instance GHC.Show.Show PostgresqlSyntax.Ast.SelectWithParens
instance GHC.Classes.Ord PostgresqlSyntax.Ast.InExpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.InExpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.InExpr
instance GHC.Show.Show PostgresqlSyntax.Ast.InExpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.Numeric
instance GHC.Classes.Eq PostgresqlSyntax.Ast.Numeric
instance GHC.Generics.Generic PostgresqlSyntax.Ast.Numeric
instance GHC.Show.Show PostgresqlSyntax.Ast.Numeric
instance GHC.Classes.Ord PostgresqlSyntax.Ast.Bit
instance GHC.Classes.Eq PostgresqlSyntax.Ast.Bit
instance GHC.Generics.Generic PostgresqlSyntax.Ast.Bit
instance GHC.Show.Show PostgresqlSyntax.Ast.Bit
instance GHC.Classes.Ord PostgresqlSyntax.Ast.GenericType
instance GHC.Classes.Eq PostgresqlSyntax.Ast.GenericType
instance GHC.Generics.Generic PostgresqlSyntax.Ast.GenericType
instance GHC.Show.Show PostgresqlSyntax.Ast.GenericType
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SimpleTypename
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SimpleTypename
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SimpleTypename
instance GHC.Show.Show PostgresqlSyntax.Ast.SimpleTypename
instance GHC.Classes.Ord PostgresqlSyntax.Ast.Typename
instance GHC.Classes.Eq PostgresqlSyntax.Ast.Typename
instance GHC.Generics.Generic PostgresqlSyntax.Ast.Typename
instance GHC.Show.Show PostgresqlSyntax.Ast.Typename
instance GHC.Classes.Ord PostgresqlSyntax.Ast.AExprReversableOp
instance GHC.Classes.Eq PostgresqlSyntax.Ast.AExprReversableOp
instance GHC.Generics.Generic PostgresqlSyntax.Ast.AExprReversableOp
instance GHC.Show.Show PostgresqlSyntax.Ast.AExprReversableOp
instance GHC.Classes.Ord PostgresqlSyntax.Ast.AExpr
instance GHC.Classes.Eq PostgresqlSyntax.Ast.AExpr
instance GHC.Generics.Generic PostgresqlSyntax.Ast.AExpr
instance GHC.Show.Show PostgresqlSyntax.Ast.AExpr
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SortBy
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SortBy
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SortBy
instance GHC.Show.Show PostgresqlSyntax.Ast.SortBy
instance GHC.Enum.Bounded PostgresqlSyntax.Ast.NullsOrder
instance GHC.Enum.Enum PostgresqlSyntax.Ast.NullsOrder
instance GHC.Classes.Ord PostgresqlSyntax.Ast.NullsOrder
instance GHC.Classes.Eq PostgresqlSyntax.Ast.NullsOrder
instance GHC.Generics.Generic PostgresqlSyntax.Ast.NullsOrder
instance GHC.Show.Show PostgresqlSyntax.Ast.NullsOrder
instance GHC.Enum.Bounded PostgresqlSyntax.Ast.AscDesc
instance GHC.Enum.Enum PostgresqlSyntax.Ast.AscDesc
instance GHC.Classes.Ord PostgresqlSyntax.Ast.AscDesc
instance GHC.Classes.Eq PostgresqlSyntax.Ast.AscDesc
instance GHC.Generics.Generic PostgresqlSyntax.Ast.AscDesc
instance GHC.Show.Show PostgresqlSyntax.Ast.AscDesc
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SubqueryOp
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SubqueryOp
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SubqueryOp
instance GHC.Show.Show PostgresqlSyntax.Ast.SubqueryOp
instance GHC.Enum.Bounded PostgresqlSyntax.Ast.VerbalExprBinOp
instance GHC.Enum.Enum PostgresqlSyntax.Ast.VerbalExprBinOp
instance GHC.Classes.Ord PostgresqlSyntax.Ast.VerbalExprBinOp
instance GHC.Classes.Eq PostgresqlSyntax.Ast.VerbalExprBinOp
instance GHC.Generics.Generic PostgresqlSyntax.Ast.VerbalExprBinOp
instance GHC.Show.Show PostgresqlSyntax.Ast.VerbalExprBinOp
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SymbolicExprBinOp
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SymbolicExprBinOp
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SymbolicExprBinOp
instance GHC.Show.Show PostgresqlSyntax.Ast.SymbolicExprBinOp
instance GHC.Classes.Ord PostgresqlSyntax.Ast.QualAllOp
instance GHC.Classes.Eq PostgresqlSyntax.Ast.QualAllOp
instance GHC.Generics.Generic PostgresqlSyntax.Ast.QualAllOp
instance GHC.Show.Show PostgresqlSyntax.Ast.QualAllOp
instance GHC.Classes.Ord PostgresqlSyntax.Ast.QualOp
instance GHC.Classes.Eq PostgresqlSyntax.Ast.QualOp
instance GHC.Generics.Generic PostgresqlSyntax.Ast.QualOp
instance GHC.Show.Show PostgresqlSyntax.Ast.QualOp
instance GHC.Classes.Ord PostgresqlSyntax.Ast.AnyOperator
instance GHC.Classes.Eq PostgresqlSyntax.Ast.AnyOperator
instance GHC.Generics.Generic PostgresqlSyntax.Ast.AnyOperator
instance GHC.Show.Show PostgresqlSyntax.Ast.AnyOperator
instance GHC.Classes.Ord PostgresqlSyntax.Ast.AllOp
instance GHC.Classes.Eq PostgresqlSyntax.Ast.AllOp
instance GHC.Generics.Generic PostgresqlSyntax.Ast.AllOp
instance GHC.Show.Show PostgresqlSyntax.Ast.AllOp
instance GHC.Enum.Bounded PostgresqlSyntax.Ast.MathOp
instance GHC.Enum.Enum PostgresqlSyntax.Ast.MathOp
instance GHC.Classes.Ord PostgresqlSyntax.Ast.MathOp
instance GHC.Classes.Eq PostgresqlSyntax.Ast.MathOp
instance GHC.Generics.Generic PostgresqlSyntax.Ast.MathOp
instance GHC.Show.Show PostgresqlSyntax.Ast.MathOp
instance GHC.Classes.Ord PostgresqlSyntax.Ast.AnyName
instance GHC.Classes.Eq PostgresqlSyntax.Ast.AnyName
instance GHC.Generics.Generic PostgresqlSyntax.Ast.AnyName
instance GHC.Show.Show PostgresqlSyntax.Ast.AnyName
instance GHC.Classes.Ord PostgresqlSyntax.Ast.TypenameArrayDimensions
instance GHC.Classes.Eq PostgresqlSyntax.Ast.TypenameArrayDimensions
instance GHC.Generics.Generic PostgresqlSyntax.Ast.TypenameArrayDimensions
instance GHC.Show.Show PostgresqlSyntax.Ast.TypenameArrayDimensions
instance GHC.Classes.Ord PostgresqlSyntax.Ast.AliasClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.AliasClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.AliasClause
instance GHC.Show.Show PostgresqlSyntax.Ast.AliasClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.ExtractArg
instance GHC.Classes.Eq PostgresqlSyntax.Ast.ExtractArg
instance GHC.Generics.Generic PostgresqlSyntax.Ast.ExtractArg
instance GHC.Show.Show PostgresqlSyntax.Ast.ExtractArg
instance GHC.Classes.Ord PostgresqlSyntax.Ast.Ident
instance GHC.Classes.Eq PostgresqlSyntax.Ast.Ident
instance GHC.Generics.Generic PostgresqlSyntax.Ast.Ident
instance GHC.Show.Show PostgresqlSyntax.Ast.Ident
instance GHC.Classes.Ord PostgresqlSyntax.Ast.Interval
instance GHC.Classes.Eq PostgresqlSyntax.Ast.Interval
instance GHC.Generics.Generic PostgresqlSyntax.Ast.Interval
instance GHC.Show.Show PostgresqlSyntax.Ast.Interval
instance GHC.Classes.Ord PostgresqlSyntax.Ast.ConstDatetime
instance GHC.Classes.Eq PostgresqlSyntax.Ast.ConstDatetime
instance GHC.Generics.Generic PostgresqlSyntax.Ast.ConstDatetime
instance GHC.Show.Show PostgresqlSyntax.Ast.ConstDatetime
instance GHC.Classes.Ord PostgresqlSyntax.Ast.ConstCharacter
instance GHC.Classes.Eq PostgresqlSyntax.Ast.ConstCharacter
instance GHC.Generics.Generic PostgresqlSyntax.Ast.ConstCharacter
instance GHC.Show.Show PostgresqlSyntax.Ast.ConstCharacter
instance GHC.Classes.Ord PostgresqlSyntax.Ast.Character
instance GHC.Classes.Eq PostgresqlSyntax.Ast.Character
instance GHC.Generics.Generic PostgresqlSyntax.Ast.Character
instance GHC.Show.Show PostgresqlSyntax.Ast.Character
instance GHC.Enum.Bounded PostgresqlSyntax.Ast.TrimModifier
instance GHC.Enum.Enum PostgresqlSyntax.Ast.TrimModifier
instance GHC.Classes.Ord PostgresqlSyntax.Ast.TrimModifier
instance GHC.Classes.Eq PostgresqlSyntax.Ast.TrimModifier
instance GHC.Generics.Generic PostgresqlSyntax.Ast.TrimModifier
instance GHC.Show.Show PostgresqlSyntax.Ast.TrimModifier
instance GHC.Enum.Bounded PostgresqlSyntax.Ast.SubType
instance GHC.Enum.Enum PostgresqlSyntax.Ast.SubType
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SubType
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SubType
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SubType
instance GHC.Show.Show PostgresqlSyntax.Ast.SubType
instance GHC.Classes.Ord PostgresqlSyntax.Ast.JoinType
instance GHC.Classes.Eq PostgresqlSyntax.Ast.JoinType
instance GHC.Generics.Generic PostgresqlSyntax.Ast.JoinType
instance GHC.Show.Show PostgresqlSyntax.Ast.JoinType
instance GHC.Classes.Ord PostgresqlSyntax.Ast.ForLockingStrength
instance GHC.Classes.Eq PostgresqlSyntax.Ast.ForLockingStrength
instance GHC.Generics.Generic PostgresqlSyntax.Ast.ForLockingStrength
instance GHC.Show.Show PostgresqlSyntax.Ast.ForLockingStrength
instance GHC.Classes.Ord PostgresqlSyntax.Ast.WindowExclusionClause
instance GHC.Classes.Eq PostgresqlSyntax.Ast.WindowExclusionClause
instance GHC.Generics.Generic PostgresqlSyntax.Ast.WindowExclusionClause
instance GHC.Show.Show PostgresqlSyntax.Ast.WindowExclusionClause
instance GHC.Classes.Ord PostgresqlSyntax.Ast.FrameClauseMode
instance GHC.Classes.Eq PostgresqlSyntax.Ast.FrameClauseMode
instance GHC.Generics.Generic PostgresqlSyntax.Ast.FrameClauseMode
instance GHC.Show.Show PostgresqlSyntax.Ast.FrameClauseMode
instance GHC.Classes.Ord PostgresqlSyntax.Ast.SelectBinOp
instance GHC.Classes.Eq PostgresqlSyntax.Ast.SelectBinOp
instance GHC.Generics.Generic PostgresqlSyntax.Ast.SelectBinOp
instance GHC.Show.Show PostgresqlSyntax.Ast.SelectBinOp
instance GHC.Enum.Bounded PostgresqlSyntax.Ast.OverrideKind
instance GHC.Enum.Enum PostgresqlSyntax.Ast.OverrideKind
instance GHC.Classes.Ord PostgresqlSyntax.Ast.OverrideKind
instance GHC.Classes.Eq PostgresqlSyntax.Ast.OverrideKind
instance GHC.Generics.Generic PostgresqlSyntax.Ast.OverrideKind
instance GHC.Show.Show PostgresqlSyntax.Ast.OverrideKind
module PostgresqlSyntax.Rendering
toByteString :: Builder -> ByteString
toText :: Builder -> Text
text :: Text -> Builder
commaNonEmpty :: (a -> Builder) -> NonEmpty a -> Builder
spaceNonEmpty :: (a -> Builder) -> NonEmpty a -> Builder
lexemes :: [Builder] -> Builder
optLexemes :: [Maybe Builder] -> Builder
inParens :: Builder -> Builder
inBrackets :: Builder -> Builder
prefixMaybe :: (a -> Builder) -> Maybe a -> Builder
suffixMaybe :: (a -> Builder) -> Maybe a -> Builder
preparableStmt :: PreparableStmt -> Builder
insertStmt :: InsertStmt -> Builder
insertTarget :: InsertTarget -> Builder
insertRest :: InsertRest -> Builder
insertRestOverriding :: (Semigroup a, IsString a) => OverrideKind -> a
overrideKind :: IsString p => OverrideKind -> p
insertColumnList :: InsertColumnList -> Builder
insertColumnItem :: InsertColumnItem -> Builder
onConflict :: OnConflict -> Builder
onConflictDo :: OnConflictDo -> Builder
confExpr :: ConfExpr -> Builder
returningClause :: ReturningClause -> Builder
updateStmt :: UpdateStmt -> Builder
setClauseList :: SetClauseList -> Builder
setClause :: SetClause -> Builder
setTarget :: SetTarget -> Builder
setTargetList :: SetTargetList -> Builder
deleteStmt :: DeleteStmt -> Builder
usingClause :: UsingClause -> Builder
selectStmt :: SelectStmt -> Builder
selectNoParens :: SelectNoParens -> Builder
selectWithParens :: SelectWithParens -> Builder
withClause :: WithClause -> Builder
commonTableExpr :: CommonTableExpr -> Builder
materialization :: IsString a => Bool -> a
selectLimit :: SelectLimit -> Builder
limitClause :: LimitClause -> Builder
firstOrNext :: IsString a => Bool -> a
rowOrRows :: IsString a => Bool -> a
selectFetchFirstValue :: SelectFetchFirstValue -> Builder
intOrFloat :: Either Int64 Double -> Builder
selectLimitValue :: SelectLimitValue -> Builder
offsetClause :: OffsetClause -> Builder
forLockingClause :: ForLockingClause -> Builder
forLockingItem :: ForLockingItem -> Builder
forLockingStrength :: IsString p => ForLockingStrength -> p
lockedRelsList :: NonEmpty QualifiedName -> Builder
nowaitOrSkip :: IsString a => Bool -> a
selectClause :: SelectClause -> Builder
simpleSelect :: SimpleSelect -> Builder
selectBinOp :: IsString p => SelectBinOp -> p
targeting :: Targeting -> Builder
targetList :: ReturningClause -> Builder
onExpressionsClause :: ExprList -> Builder
targetEl :: TargetEl -> Builder
intoClause :: IntoClause -> Builder
optTempTableName :: IntoClause -> Builder
fromClause :: FromClause -> Builder
fromList :: FromClause -> Builder
tableRef :: TableRef -> Builder
relationExpr :: RelationExpr -> Builder
relationExprOptAlias :: RelationExprOptAlias -> Builder
optAlias :: (Bool, Ident) -> Builder
tablesampleClause :: TablesampleClause -> Builder
repeatableClause :: RepeatableClause -> Builder
funcTable :: FuncTable -> Builder
rowsfromItem :: RowsfromItem -> Builder
rowsfromList :: RowsfromList -> Builder
colDefList :: ColDefList -> Builder
tableFuncElementList :: ColDefList -> Builder
tableFuncElement :: TableFuncElement -> Builder
collateClause :: AnyName -> Builder
aliasClause :: AliasClause -> Builder
funcAliasClause :: FuncAliasClause -> Builder
joinedTable :: JoinedTable -> Builder
joinType :: (Semigroup p, IsString p) => JoinType -> p
joinQual :: JoinQual -> Builder
whereClause :: WhereClause -> Builder
whereOrCurrentClause :: WhereOrCurrentClause -> Builder
groupClause :: GroupClause -> Builder
groupByItem :: GroupByItem -> Builder
havingClause :: HavingClause -> Builder
windowClause :: WindowClause -> Builder
windowDefinition :: WindowDefinition -> Builder
windowSpecification :: WindowSpecification -> Builder
partitionClause :: PartitionClause -> Builder
frameClause :: FrameClause -> Builder
frameClauseMode :: IsString p => FrameClauseMode -> p
frameExtent :: FrameExtent -> Builder
frameBound :: FrameBound -> Builder
windowExclusionCause :: IsString p => WindowExclusionClause -> p
sortClause :: SortClause -> Builder
sortBy :: SortBy -> Builder
valuesClause :: ValuesClause -> Builder
exprList :: TypeModifiers -> Builder
aExpr :: AExpr -> Builder
bExpr :: BExpr -> Builder
cExpr :: CExpr -> Builder
aExprReversableOp :: Bool -> AExprReversableOp -> Builder
verbalExprBinOp :: (Monoid b, IsString b) => Bool -> VerbalExprBinOp -> b
subqueryOp :: SubqueryOp -> Builder
bExprIsOp :: Bool -> BExprIsOp -> Builder
symbolicExprBinOp :: SymbolicExprBinOp -> Builder
qualOp :: QualOp -> Builder
qualAllOp :: QualAllOp -> Builder
op :: Text -> Builder
anyOperator :: AnyOperator -> Builder
allOp :: AllOp -> Builder
mathOp :: MathOp -> Builder
inExpr :: InExpr -> Builder
caseExpr :: CaseExpr -> Builder
whenClause :: WhenClause -> Builder
caseDefault :: CaseDefault -> Builder
arrayExpr :: ArrayExpr -> Builder
arrayExprList :: ArrayExprList -> Builder
row :: Row -> Builder
explicitRow :: ExplicitRow -> Builder
implicitRow :: ImplicitRow -> Builder
funcApplication :: FuncApplication -> Builder
funcApplicationParams :: FuncApplicationParams -> Builder
allOrDistinct :: IsString p => Bool -> p
funcArgExpr :: FuncArgExpr -> Builder
funcExpr :: FuncExpr -> Builder
funcExprWindownless :: FuncExprWindowless -> Builder
withinGroupClause :: WithinGroupClause -> Builder
filterClause :: FilterClause -> Builder
overClause :: OverClause -> Builder
funcExprCommonSubexpr :: FuncExprCommonSubexpr -> Builder
extractList :: ExtractList -> Builder
extractArg :: ExtractArg -> Builder
overlayList :: OverlayList -> Builder
overlayPlacing :: OverlayPlacing -> Builder
positionList :: PositionList -> Builder
substrList :: SubstrList -> Builder
substrListFromFor :: SubstrListFromFor -> Builder
substrFrom :: SubstrFrom -> Builder
substrFor :: SubstrFor -> Builder
trimModifier :: IsString p => TrimModifier -> p
trimList :: TrimList -> Builder
aexprConst :: AexprConst -> Builder
iconst :: Int64 -> Builder
fconst :: Double -> Builder
sconst :: Text -> Builder
funcAexprConstArgList :: FuncConstArgs -> Builder
constTypename :: ConstTypename -> Builder
numeric :: Numeric -> Builder
bit :: ConstBit -> Builder
constBit :: ConstBit -> Builder
constCharacter :: ConstCharacter -> Builder
character :: (Semigroup p, IsString p) => Character -> p
constDatetime :: ConstDatetime -> Builder
timezone :: IsString p => Bool -> p
interval :: Interval -> Builder
intervalSecond :: Maybe Int64 -> Builder
columnref :: Columnref -> Builder
ident :: Ident -> Builder
qualifiedName :: QualifiedName -> Builder
indirection :: Indirection -> Builder
indirectionEl :: IndirectionEl -> Builder
colId :: Ident -> Builder
name :: Ident -> Builder
cursorName :: Ident -> Builder
colLabel :: Ident -> Builder
attrName :: Ident -> Builder
typeFunctionName :: Ident -> Builder
funcName :: FuncName -> Builder
anyName :: AnyName -> Builder
typename :: Typename -> Builder
typenameArrayDimensionsWithQuestionMark :: () => (TypenameArrayDimensions, b) -> Builder
typenameArrayDimensions :: TypenameArrayDimensions -> Builder
arrayBounds :: Foldable t => NonEmpty (t Int64) -> Builder
simpleTypename :: SimpleTypename -> Builder
genericType :: GenericType -> Builder
attrs :: Foldable t => t Ident -> Builder
typeModifiers :: TypeModifiers -> Builder
typeList :: TypeList -> Builder
subType :: IsString p => SubType -> p
indexParams :: IndexParams -> Builder
indexElem :: IndexElem -> Builder
indexElemDef :: IndexElemDef -> Builder
collate :: AnyName -> Builder
class_ :: AnyName -> Builder
ascDesc :: IsString p => AscDesc -> p
nullsOrder :: IsString p => NullsOrder -> p
module PostgresqlSyntax.Validation
op :: Text -> Maybe Text
-- | Our parsing strategy is to port the original Postgres parser as
-- closely as possible.
--
-- We're using the gram.y Postgres source file, which is the
-- closest thing we have to a Postgres syntax spec. Here's a link to it:
-- https:/github.compostgrespostgresblobmastersrcbackendparser/gram.y.
--
-- Here's the essence of how the original parser is implemented, citing
-- from [PostgreSQL
-- Wiki](https:/wiki.postgresql.orgwiki/Developer_FAQ):
--
-- scan.l defines the lexer, i.e. the algorithm that splits a string
-- (containing an SQL statement) into a stream of tokens. A token is
-- usually a single word (i.e., doesn't contain spaces but is delimited
-- by spaces), but can also be a whole single or double-quoted string for
-- example. The lexer is basically defined in terms of regular
-- expressions which describe the different token types.
--
-- gram.y defines the grammar (the syntactical structure) of SQL
-- statements, using the tokens generated by the lexer as basic building
-- blocks. The grammar is defined in BNF notation. BNF resembles regular
-- expressions but works on the level of tokens, not characters. Also,
-- patterns (called rules or productions in BNF) are named, and may be
-- recursive, i.e. use themselves as sub-patterns.
module PostgresqlSyntax.Parsing
type Parser = HeadedParsec Void Text
run :: Parser a -> Text -> Either String a
commaSeparator :: Parser ()
dotSeparator :: Parser ()
inBrackets :: Parser a -> Parser a
inBracketsCont :: Parser a -> Parser (Parser a)
inParens :: Parser a -> Parser a
inParensCont :: Parser a -> Parser (Parser a)
inParensWithLabel :: (label -> content -> result) -> Parser label -> Parser content -> Parser result
inParensWithClause :: Parser clause -> Parser content -> Parser content
trueIfPresent :: Parser a -> Parser Bool
-- | -- >>> testParser (quotedString '\'') "'abc''d'" -- "abc'd" --quotedString :: Char -> Parser Text atEnd :: Parser a -> Parser a preparableStmt :: Parser PreparableStmt insertStmt :: HeadedParsec Void Text InsertStmt insertTarget :: HeadedParsec Void Text InsertTarget insertRest :: HeadedParsec Void Text InsertRest overrideKind :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s OverrideKind insertColumnList :: Parser InsertColumnList insertColumnItem :: HeadedParsec Void Text InsertColumnItem onConflict :: HeadedParsec Void Text OnConflict confExpr :: HeadedParsec Void Text ConfExpr onConflictDo :: HeadedParsec Void Text OnConflictDo returningClause :: HeadedParsec Void Text ReturningClause updateStmt :: HeadedParsec Void Text UpdateStmt setClauseList :: HeadedParsec Void Text (NonEmpty SetClause) setClause :: HeadedParsec Void Text SetClause setTarget :: HeadedParsec Void Text SetTarget setTargetList :: Parser SetTargetList deleteStmt :: HeadedParsec Void Text DeleteStmt usingClause :: HeadedParsec Void Text UsingClause -- |
-- >>> test = testParser selectStmt ---- --
-- >>> test "select id from as" -- ... -- | -- 1 | select id from as -- | ^ -- Reserved keyword "as" used as an identifier. If that's what you intend, you have to wrap it in double quotes. --selectStmt :: HeadedParsec Void Text SelectStmt selectWithParens :: HeadedParsec Void Text SelectWithParens selectNoParens :: HeadedParsec Void Text SelectNoParens sharedSelectNoParens :: Maybe WithClause -> HeadedParsec Void Text SelectNoParens -- | The one that doesn't start with "WITH". simpleSelectNoParens :: HeadedParsec Void Text SelectNoParens withSelectNoParens :: HeadedParsec Void Text SelectNoParens selectClause :: HeadedParsec Void Text SelectClause baseSimpleSelect :: HeadedParsec Void Text SimpleSelect extensionSimpleSelect :: Either SimpleSelect SelectWithParens -> HeadedParsec Void Text SimpleSelect allOrDistinct :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s Bool selectBinOp :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s SelectBinOp valuesClause :: HeadedParsec Void Text ValuesClause withClause :: HeadedParsec Void Text WithClause commonTableExpr :: HeadedParsec Void Text CommonTableExpr materialized :: (Ord e, Stream s, FoldCase (Tokens s), Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s Bool targeting :: HeadedParsec Void Text Targeting targetList :: HeadedParsec Void Text (NonEmpty TargetEl) -- |
-- >>> testParser targetEl "a.b as c" -- AliasedExprTargetEl (CExprAExpr (ColumnrefCExpr (Columnref (UnquotedIdent "a") (Just (AttrNameIndirectionEl (UnquotedIdent "b") :| []))))) (UnquotedIdent "c") --targetEl :: HeadedParsec Void Text TargetEl onExpressionsClause :: HeadedParsec Void Text ExprList optTempTableName :: HeadedParsec Void Text IntoClause groupByItem :: HeadedParsec Void Text GroupByItem windowDefinition :: HeadedParsec Void Text WindowDefinition windowSpecification :: HeadedParsec Void Text WindowSpecification partitionByClause :: HeadedParsec Void Text PartitionClause frameClause :: HeadedParsec Void Text FrameClause frameClauseMode :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s FrameClauseMode frameExtent :: HeadedParsec Void Text FrameExtent frameBound :: HeadedParsec Void Text FrameBound windowExclusionClause :: (Ord e, Stream s, FoldCase (Tokens s), Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s WindowExclusionClause fromList :: HeadedParsec Void Text FromClause fromClause :: HeadedParsec Void Text FromClause -- |
-- >>> testParser tableRef "a left join b on (a.i = b.i)" -- JoinTableRef (MethJoinedTable (QualJoinMeth... --tableRef :: HeadedParsec Void Text TableRef nonTrailingTableRef :: HeadedParsec Void Text TableRef trailingTableRef :: TableRef -> HeadedParsec Void Text TableRef relationExpr :: HeadedParsec Void Text RelationExpr relationExprOptAlias :: [Text] -> HeadedParsec Void Text RelationExprOptAlias tablesampleClause :: HeadedParsec Void Text TablesampleClause repeatableClause :: HeadedParsec Void Text RepeatableClause funcTable :: HeadedParsec Void Text FuncTable rowsfromItem :: HeadedParsec Void Text RowsfromItem rowsfromList :: HeadedParsec Void Text (NonEmpty RowsfromItem) colDefList :: HeadedParsec Void Text ColDefList optOrdinality :: (Ord e, Stream s, Token s ~# Char, Tokens s ~# Text) => HeadedParsec e s Text tableFuncElementList :: HeadedParsec Void Text ColDefList tableFuncElement :: HeadedParsec Void Text TableFuncElement collateClause :: HeadedParsec Void Text AnyName funcAliasClause :: HeadedParsec Void Text FuncAliasClause joinedTable :: Parser JoinedTable inParensJoinedTable :: HeadedParsec Void Text JoinedTable trailingJoinedTable :: TableRef -> HeadedParsec Void Text JoinedTable joinType :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s JoinType joinQual :: HeadedParsec Void Text JoinQual aliasClause :: HeadedParsec Void Text AliasClause whereClause :: HeadedParsec Void Text WhereClause whereOrCurrentClause :: HeadedParsec Void Text WhereOrCurrentClause sortClause :: HeadedParsec Void Text SortClause sortBy :: HeadedParsec Void Text SortBy exprList :: HeadedParsec Void Text ExprList exprListInParens :: HeadedParsec Void Text TypeModifiers -- | Notice that the tree constructed by this parser does not reflect the -- precedence order of Postgres. For the purposes of this library it -- simply doesn't matter, so we're not bothering with that. -- -- Composite on the right: >>> testParser aExpr "a = b :: int4" -- SymbolicBinOpAExpr (CExprAExpr (ColumnrefCExpr (Columnref -- (UnquotedIdent "a") Nothing))) (MathSymbolicExprBinOp EqualsMathOp) -- (TypecastAExpr (CExprAExpr (ColumnrefCExpr (Columnref (UnquotedIdent -- "b") Nothing))) (Typename False (GenericTypeSimpleTypename -- (GenericType (UnquotedIdent "int4") Nothing Nothing)) False Nothing)) -- -- Composite on the left: >>> testParser aExpr "a = b :: int4 -- and c" SymbolicBinOpAExpr (CExprAExpr (ColumnrefCExpr (Columnref -- (UnquotedIdent "a") Nothing))) (MathSymbolicExprBinOp EqualsMathOp) -- (AndAExpr (TypecastAExpr (CExprAExpr (ColumnrefCExpr (Columnref -- (UnquotedIdent "b") Nothing))) (Typename False -- (GenericTypeSimpleTypename (GenericType (UnquotedIdent "int4") Nothing -- Nothing)) False Nothing)) (CExprAExpr (ColumnrefCExpr (Columnref -- (UnquotedIdent "c") Nothing)))) aExpr :: Parser AExpr filteredAExpr :: [Text] -> HeadedParsec Void Text AExpr customizedAExpr :: HeadedParsec Void Text CExpr -> Parser AExpr bExpr :: HeadedParsec Void Text BExpr customizedBExpr :: HeadedParsec Void Text CExpr -> HeadedParsec Void Text BExpr cExpr :: HeadedParsec Void Text CExpr customizedCExpr :: HeadedParsec Void Text Columnref -> HeadedParsec Void Text CExpr subqueryOp :: HeadedParsec Void Text SubqueryOp subType :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s SubType inExpr :: HeadedParsec Void Text InExpr symbolicBinOpExpr :: () => t1 -> HeadedParsec Void Text t2 -> (t1 -> SymbolicExprBinOp -> t2 -> b) -> HeadedParsec Void Text b typecastExpr :: a -> (a -> Typename -> a) -> HeadedParsec Void Text a plusedExpr :: (Stream strm, Ord err, Token strm ~# Char) => HeadedParsec err strm b -> HeadedParsec err strm b minusedExpr :: (Stream strm, Ord err, Token strm ~# Char) => HeadedParsec err strm b -> HeadedParsec err strm b qualOpExpr :: () => HeadedParsec Void Text a -> (QualOp -> a -> b) -> HeadedParsec Void Text b row :: HeadedParsec Void Text Row explicitRow :: HeadedParsec Void Text ExplicitRow implicitRow :: HeadedParsec Void Text ImplicitRow arrayExprCont :: HeadedParsec Void Text (HeadedParsec Void Text ArrayExpr) caseExpr :: HeadedParsec Void Text CaseExpr whenClause :: HeadedParsec Void Text WhenClause elseClause :: HeadedParsec Void Text CaseDefault funcExpr :: HeadedParsec Void Text FuncExpr funcExprWindowless :: HeadedParsec Void Text FuncExprWindowless withinGroupClause :: HeadedParsec Void Text WithinGroupClause filterClause :: HeadedParsec Void Text FilterClause overClause :: HeadedParsec Void Text OverClause funcExprCommonSubexpr :: HeadedParsec Void Text FuncExprCommonSubexpr extractList :: HeadedParsec Void Text ExtractList extractArg :: HeadedParsec Void Text ExtractArg overlayList :: HeadedParsec Void Text OverlayList overlayPlacing :: HeadedParsec Void Text AExpr positionList :: HeadedParsec Void Text PositionList substrList :: HeadedParsec Void Text SubstrList substrListFromFor :: HeadedParsec Void Text SubstrListFromFor substrFrom :: HeadedParsec Void Text AExpr substrFor :: HeadedParsec Void Text SubstrFor trimModifier :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s TrimModifier trimList :: HeadedParsec Void Text TrimList funcApplication :: HeadedParsec Void Text FuncApplication funcApplicationParams :: HeadedParsec Void Text FuncApplicationParams normalFuncApplicationParams :: HeadedParsec Void Text FuncApplicationParams singleVariadicFuncApplicationParams :: HeadedParsec Void Text FuncApplicationParams listVariadicFuncApplicationParams :: HeadedParsec Void Text FuncApplicationParams starFuncApplicationParams :: (Stream strm, Ord err, Token strm ~# Char) => HeadedParsec err strm FuncApplicationParams funcArgExpr :: HeadedParsec Void Text FuncArgExpr symbolicExprBinOp :: HeadedParsec Void Text SymbolicExprBinOp lexicalExprBinOp :: (Ord e, Stream s, FoldCase (Tokens s), Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s Text qualOp :: HeadedParsec Void Text QualOp qualAllOp :: HeadedParsec Void Text QualAllOp op :: (Ord err, Stream strm, Token strm ~# Char, Tokens strm ~# Text) => HeadedParsec err strm Text anyOperator :: HeadedParsec Void Text AnyOperator allOp :: (Ord err, Stream strm, FoldCase (Tokens strm), IsString (Tokens strm), Token strm ~# Char, Tokens strm ~# Text) => HeadedParsec err strm AllOp mathOp :: (Stream strm, FoldCase (Tokens strm), IsString (Tokens strm), Ord err, Token strm ~# Char) => HeadedParsec err strm MathOp -- |
-- >>> testParser aexprConst "32948023849023" -- IAexprConst 32948023849023 ---- --
-- >>> testParser aexprConst "'abc''de'" -- SAexprConst "abc'de" ---- --
-- >>> testParser aexprConst "23.43234" -- FAexprConst 23.43234 ---- --
-- >>> testParser aexprConst "32423423.324324872" -- FAexprConst 3.2423423324324872e7 ---- --
-- >>> testParser aexprConst "NULL" -- NullAexprConst --aexprConst :: HeadedParsec Void Text AexprConst iconstOrFconst :: (Stream strm, RealFloat b, Integral a, Ord err, Token strm ~# Char) => HeadedParsec err strm (Either a b) iconst :: (Stream strm, Integral decimal, Ord err, Token strm ~# Char) => HeadedParsec err strm decimal fconst :: (Stream strm, RealFloat float, Ord err, Token strm ~# Char) => HeadedParsec err strm float sconst :: Parser Text constTypename :: HeadedParsec Void Text ConstTypename numeric :: HeadedParsec Void Text Numeric bit :: HeadedParsec Void Text Bit constBit :: HeadedParsec Void Text ConstBit constCharacter :: HeadedParsec Void Text ConstCharacter character :: (Ord e, Stream s, FoldCase (Tokens s), Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s Character constDatetime :: HeadedParsec Void Text ConstDatetime timezone :: (Ord e, Stream s, FoldCase (Tokens s), Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s Bool interval :: HeadedParsec Void Text Interval intervalSecond :: Integral a => HeadedParsec Void Text (Maybe a) selectLimit :: HeadedParsec Void Text SelectLimit limitClause :: HeadedParsec Void Text LimitClause offsetClause :: HeadedParsec Void Text OffsetClause offsetClauseParams :: HeadedParsec Void Text OffsetClause selectLimitValue :: HeadedParsec Void Text SelectLimitValue rowOrRows :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s Bool firstOrNext :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s Bool selectFetchFirstValue :: HeadedParsec Void Text SelectFetchFirstValue plusOrMinus :: (Stream strm, Ord err, Token strm ~# Char) => HeadedParsec err strm Bool forLockingClause :: HeadedParsec Void Text ForLockingClause forLockingItem :: HeadedParsec Void Text ForLockingItem forLockingStrength :: (Ord e, Stream s, FoldCase (Tokens s), Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s ForLockingStrength nowaitOrSkip :: (Ord e, Stream s, FoldCase (Tokens s), Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s Bool quotedName :: HeadedParsec Void Text Ident ident :: HeadedParsec Void Text Ident colId :: HeadedParsec Void Text Ident filteredColId :: Foldable t => t Text -> HeadedParsec Void Text Ident colLabel :: HeadedParsec Void Text Ident -- |
-- >>> testParser qualifiedName "a.b" -- IndirectedQualifiedName (UnquotedIdent "a") (AttrNameIndirectionEl (UnquotedIdent "b") :| []) ---- --
-- >>> testParser qualifiedName "a.-" -- ... -- expecting '*', column label, or white space --qualifiedName :: HeadedParsec Void Text QualifiedName columnref :: HeadedParsec Void Text Columnref filteredColumnref :: [Text] -> HeadedParsec Void Text Columnref customizedColumnref :: HeadedParsec Void Text Ident -> HeadedParsec Void Text Columnref anyName :: HeadedParsec Void Text AnyName filteredAnyName :: Foldable t => t Text -> HeadedParsec Void Text AnyName customizedAnyName :: HeadedParsec Void Text ColId -> HeadedParsec Void Text AnyName name :: HeadedParsec Void Text Ident nameList :: HeadedParsec Void Text (NonEmpty Ident) cursorName :: HeadedParsec Void Text Ident funcName :: Parser FuncName typeFunctionName :: HeadedParsec Void Text Ident indirection :: HeadedParsec Void Text Indirection indirectionEl :: HeadedParsec Void Text IndirectionEl attrName :: HeadedParsec Void Text Ident keywordNameFromSet :: (Ord err, Stream strm, Tokens strm ~# Text, Token strm ~# Char) => HashSet Text -> HeadedParsec err strm Ident keywordNameByPredicate :: (Ord err, Stream strm, Tokens strm ~# Text, Token strm ~# Char) => (Text -> Bool) -> HeadedParsec err strm Ident anyKeyword :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s Text -- | Expected keyword keyword :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => Text -> HeadedParsec e s Text -- | Consume a keyphrase, ignoring case and types of spaces between words. keyphrase :: (FoldCase (Tokens s), Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => Text -> HeadedParsec e s Text typeList :: Parser TypeList typename :: HeadedParsec Void Text Typename arrayBounds :: Integral a => HeadedParsec Void Text (NonEmpty (Maybe a)) simpleTypename :: HeadedParsec Void Text SimpleTypename genericType :: HeadedParsec Void Text GenericType attrs :: HeadedParsec Void Text (NonEmpty Ident) typeModifiers :: HeadedParsec Void Text TypeModifiers indexParams :: HeadedParsec Void Text (NonEmpty IndexElem) indexElem :: HeadedParsec Void Text IndexElem indexElemDef :: HeadedParsec Void Text IndexElemDef collate :: HeadedParsec Void Text AnyName class_ :: HeadedParsec Void Text AnyName ascDesc :: (Ord e, Stream s, Tokens s ~# Text, Token s ~# Char) => HeadedParsec e s AscDesc nullsOrder :: (Ord e, Stream s, Token s ~# Char, Tokens s ~# Text) => HeadedParsec e s NullsOrder