-- 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