-- 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.4.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, IsString a) => HashSet a mathOp :: (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 -- |
-- PreparableStmt: -- | SelectStmt -- | InsertStmt -- | UpdateStmt -- | DeleteStmt -- | CallStmt --data PreparableStmt SelectPreparableStmt :: SelectStmt -> PreparableStmt InsertPreparableStmt :: InsertStmt -> PreparableStmt UpdatePreparableStmt :: UpdateStmt -> PreparableStmt DeletePreparableStmt :: DeleteStmt -> PreparableStmt CallPreparableStmt :: CallStmt -> PreparableStmt newtype CallStmt CallStmt :: FuncApplication -> CallStmt -- |
-- InsertStmt: -- | opt_with_clause INSERT INTO insert_target insert_rest -- opt_on_conflict returning_clause --data InsertStmt InsertStmt :: Maybe WithClause -> InsertTarget -> InsertRest -> Maybe OnConflict -> Maybe ReturningClause -> InsertStmt -- |
-- insert_target: -- | qualified_name -- | qualified_name AS ColId --data InsertTarget InsertTarget :: QualifiedName -> Maybe ColId -> InsertTarget -- |
-- insert_rest:
-- | SelectStmt
-- | OVERRIDING override_kind VALUE_P SelectStmt
-- | '(' insert_column_list ')' SelectStmt
-- | '(' insert_column_list ')' OVERRIDING override_kind VALUE_P SelectStmt
-- | DEFAULT VALUES
--
data InsertRest
SelectInsertRest :: Maybe InsertColumnList -> Maybe OverrideKind -> SelectStmt -> InsertRest
DefaultValuesInsertRest :: InsertRest
-- | -- override_kind: -- | USER -- | SYSTEM_P --data OverrideKind UserOverrideKind :: OverrideKind SystemOverrideKind :: OverrideKind -- |
-- insert_column_list: -- | insert_column_item -- | insert_column_list ',' insert_column_item --type InsertColumnList = NonEmpty InsertColumnItem -- |
-- insert_column_item: -- | ColId opt_indirection --data InsertColumnItem InsertColumnItem :: ColId -> Maybe Indirection -> InsertColumnItem -- |
-- opt_on_conflict: -- | ON CONFLICT opt_conf_expr DO UPDATE SET set_clause_list where_clause -- | ON CONFLICT opt_conf_expr DO NOTHING -- | EMPTY --data OnConflict OnConflict :: Maybe ConfExpr -> OnConflictDo -> OnConflict -- |
-- opt_on_conflict: -- | ON CONFLICT opt_conf_expr DO UPDATE SET set_clause_list where_clause -- | ON CONFLICT opt_conf_expr DO NOTHING -- | EMPTY --data OnConflictDo UpdateOnConflictDo :: SetClauseList -> Maybe WhereClause -> OnConflictDo NothingOnConflictDo :: OnConflictDo -- |
-- opt_conf_expr:
-- | '(' index_params ')' where_clause
-- | ON CONSTRAINT name
-- | EMPTY
--
data ConfExpr
WhereConfExpr :: IndexParams -> Maybe WhereClause -> ConfExpr
ConstraintConfExpr :: Name -> ConfExpr
-- | -- returning_clause: -- | RETURNING target_list -- | EMPTY --type ReturningClause = TargetList -- |
-- UpdateStmt: -- | opt_with_clause UPDATE relation_expr_opt_alias -- SET set_clause_list -- from_clause -- where_or_current_clause -- returning_clause --data UpdateStmt UpdateStmt :: Maybe WithClause -> RelationExprOptAlias -> SetClauseList -> Maybe FromClause -> Maybe WhereOrCurrentClause -> Maybe ReturningClause -> UpdateStmt -- |
-- set_clause_list: -- | set_clause -- | set_clause_list ',' set_clause --type SetClauseList = NonEmpty SetClause -- |
-- set_clause:
-- | set_target '=' a_expr
-- | '(' set_target_list ')' '=' a_expr
--
data SetClause
TargetSetClause :: SetTarget -> AExpr -> SetClause
TargetListSetClause :: SetTargetList -> AExpr -> SetClause
-- | -- set_target: -- | ColId opt_indirection --data SetTarget SetTarget :: ColId -> Maybe Indirection -> SetTarget -- |
-- set_target_list: -- | set_target -- | set_target_list ',' set_target --type SetTargetList = NonEmpty SetTarget -- |
-- DeleteStmt: -- | opt_with_clause DELETE_P FROM relation_expr_opt_alias -- using_clause where_or_current_clause returning_clause --data DeleteStmt DeleteStmt :: Maybe WithClause -> RelationExprOptAlias -> Maybe UsingClause -> Maybe WhereOrCurrentClause -> Maybe ReturningClause -> DeleteStmt -- |
-- using_clause: -- | USING from_list -- | EMPTY --type UsingClause = FromList -- |
-- SelectStmt: -- | select_no_parens -- | select_with_parens --type SelectStmt = Either SelectNoParens SelectWithParens -- |
-- select_with_parens:
-- | '(' select_no_parens ')'
-- | '(' select_with_parens ')'
--
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 -- |
-- 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 -- | values_clause -- | TABLE relation_expr -- | select_clause UNION all_or_distinct select_clause -- | select_clause INTERSECT all_or_distinct select_clause -- | select_clause EXCEPT all_or_distinct select_clause --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
-- | -- target_list: -- | target_el -- | target_list ',' target_el --type TargetList = NonEmpty TargetEl -- |
-- target_el: -- | a_expr AS ColLabel -- | a_expr IDENT -- | a_expr -- | * --data TargetEl AliasedExprTargetEl :: AExpr -> Ident -> TargetEl ImplicitlyAliasedExprTargetEl :: AExpr -> Ident -> TargetEl ExprTargetEl :: AExpr -> TargetEl AsteriskTargetEl :: TargetEl -- |
-- | select_clause UNION all_or_distinct select_clause -- | select_clause INTERSECT all_or_distinct select_clause -- | select_clause EXCEPT all_or_distinct select_clause --data SelectBinOp UnionSelectBinOp :: SelectBinOp IntersectSelectBinOp :: SelectBinOp ExceptSelectBinOp :: SelectBinOp -- |
-- with_clause: -- | WITH cte_list -- | WITH_LA cte_list -- | WITH RECURSIVE cte_list --data WithClause WithClause :: Bool -> NonEmpty CommonTableExpr -> WithClause -- |
-- common_table_expr:
-- | name opt_name_list AS opt_materialized '(' PreparableStmt ')'
-- opt_materialized:
-- | MATERIALIZED
-- | NOT MATERIALIZED
-- | EMPTY
--
data CommonTableExpr
CommonTableExpr :: Ident -> Maybe (NonEmpty Ident) -> Maybe Bool -> PreparableStmt -> CommonTableExpr
type IntoClause = OptTempTableName
-- | -- OptTempTableName: -- | TEMPORARY opt_table qualified_name -- | TEMP opt_table qualified_name -- | LOCAL TEMPORARY opt_table qualified_name -- | LOCAL TEMP opt_table qualified_name -- | GLOBAL TEMPORARY opt_table qualified_name -- | GLOBAL TEMP opt_table qualified_name -- | UNLOGGED opt_table qualified_name -- | TABLE qualified_name -- | qualified_name --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 -- |
-- group_by_item:
-- | a_expr
-- | empty_grouping_set
-- | cube_clause
-- | rollup_clause
-- | grouping_sets_clause
-- empty_grouping_set:
-- | '(' ')'
-- rollup_clause:
-- | ROLLUP '(' expr_list ')'
-- cube_clause:
-- | CUBE '(' expr_list ')'
-- grouping_sets_clause:
-- | GROUPING SETS '(' group_by_list ')'
--
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
-- | -- opt_frame_clause: -- | RANGE frame_extent opt_window_exclusion_clause -- | ROWS frame_extent opt_window_exclusion_clause -- | GROUPS frame_extent opt_window_exclusion_clause -- | EMPTY --data FrameClause FrameClause :: FrameClauseMode -> FrameExtent -> Maybe WindowExclusionClause -> FrameClause -- |
-- opt_frame_clause: -- | RANGE frame_extent opt_window_exclusion_clause -- | ROWS frame_extent opt_window_exclusion_clause -- | GROUPS frame_extent opt_window_exclusion_clause -- | EMPTY --data FrameClauseMode RangeFrameClauseMode :: FrameClauseMode RowsFrameClauseMode :: FrameClauseMode GroupsFrameClauseMode :: FrameClauseMode -- |
-- frame_extent: -- | frame_bound -- | BETWEEN frame_bound AND frame_bound --data FrameExtent SingularFrameExtent :: FrameBound -> FrameExtent BetweenFrameExtent :: FrameBound -> FrameBound -> FrameExtent -- |
-- frame_bound: -- | UNBOUNDED PRECEDING -- | UNBOUNDED FOLLOWING -- | CURRENT_P ROW -- | a_expr PRECEDING -- | a_expr FOLLOWING --data FrameBound UnboundedPrecedingFrameBound :: FrameBound UnboundedFollowingFrameBound :: FrameBound CurrentRowFrameBound :: FrameBound PrecedingFrameBound :: AExpr -> FrameBound FollowingFrameBound :: AExpr -> FrameBound -- |
-- opt_window_exclusion_clause: -- | EXCLUDE CURRENT_P ROW -- | EXCLUDE GROUP_P -- | EXCLUDE TIES -- | EXCLUDE NO OTHERS -- | EMPTY --data WindowExclusionClause CurrentRowWindowExclusionClause :: WindowExclusionClause GroupWindowExclusionClause :: WindowExclusionClause TiesWindowExclusionClause :: WindowExclusionClause NoOthersWindowExclusionClause :: WindowExclusionClause -- |
-- values_clause:
-- | VALUES '(' expr_list ')'
-- | values_clause ',' '(' expr_list ')'
--
type ValuesClause = NonEmpty ExprList
-- | sort_clause: | ORDER BY sortby_list
--
-- sortby_list: | sortby | sortby_list ',' sortby
type SortClause = NonEmpty SortBy
-- | -- sortby: -- | a_expr USING qual_all_Op opt_nulls_order -- | a_expr opt_asc_desc opt_nulls_order --data SortBy UsingSortBy :: AExpr -> QualAllOp -> Maybe NullsOrder -> SortBy AscDescSortBy :: AExpr -> Maybe AscDesc -> Maybe NullsOrder -> SortBy -- |
-- select_limit: -- | limit_clause offset_clause -- | offset_clause limit_clause -- | limit_clause -- | offset_clause --data SelectLimit LimitOffsetSelectLimit :: LimitClause -> OffsetClause -> SelectLimit OffsetLimitSelectLimit :: OffsetClause -> LimitClause -> SelectLimit LimitSelectLimit :: LimitClause -> SelectLimit OffsetSelectLimit :: OffsetClause -> SelectLimit -- |
-- limit_clause: -- | LIMIT select_limit_value -- | LIMIT select_limit_value ',' select_offset_value -- | FETCH first_or_next select_fetch_first_value row_or_rows ONLY -- | FETCH first_or_next row_or_rows ONLY -- select_offset_value: -- | a_expr -- first_or_next: -- | FIRST_P -- | NEXT -- row_or_rows: -- | ROW -- | ROWS --data LimitClause LimitLimitClause :: SelectLimitValue -> Maybe AExpr -> LimitClause FetchOnlyLimitClause :: Bool -> Maybe SelectFetchFirstValue -> Bool -> LimitClause -- |
-- select_fetch_first_value: -- | c_expr -- | + I_or_F_const -- | - I_or_F_const --data SelectFetchFirstValue ExprSelectFetchFirstValue :: CExpr -> SelectFetchFirstValue NumSelectFetchFirstValue :: Bool -> Either Int64 Double -> SelectFetchFirstValue -- |
-- select_limit_value: -- | a_expr -- | ALL --data SelectLimitValue ExprSelectLimitValue :: AExpr -> SelectLimitValue AllSelectLimitValue :: SelectLimitValue -- |
-- offset_clause: -- | OFFSET select_offset_value -- | OFFSET select_fetch_first_value row_or_rows -- select_offset_value: -- | a_expr -- row_or_rows: -- | ROW -- | ROWS --data OffsetClause ExprOffsetClause :: AExpr -> OffsetClause FetchFirstOffsetClause :: SelectFetchFirstValue -> Bool -> OffsetClause -- |
-- for_locking_clause: -- | for_locking_items -- | FOR READ ONLY -- for_locking_items: -- | for_locking_item -- | for_locking_items for_locking_item --data ForLockingClause ItemsForLockingClause :: NonEmpty ForLockingItem -> ForLockingClause ReadOnlyForLockingClause :: ForLockingClause -- |
-- for_locking_item: -- | for_locking_strength locked_rels_list opt_nowait_or_skip -- locked_rels_list: -- | OF qualified_name_list -- | EMPTY -- opt_nowait_or_skip: -- | NOWAIT -- | SKIP LOCKED -- | EMPTY --data ForLockingItem ForLockingItem :: ForLockingStrength -> Maybe (NonEmpty QualifiedName) -> Maybe Bool -> ForLockingItem -- |
-- for_locking_strength: -- | FOR UPDATE -- | FOR NO KEY UPDATE -- | FOR SHARE -- | FOR KEY SHARE --data ForLockingStrength UpdateForLockingStrength :: ForLockingStrength NoKeyUpdateForLockingStrength :: ForLockingStrength ShareForLockingStrength :: ForLockingStrength KeyForLockingStrength :: ForLockingStrength -- |
-- from_list: -- | table_ref -- | from_list ',' table_ref --type FromList = NonEmpty TableRef -- |
-- | relation_expr opt_alias_clause
-- | relation_expr opt_alias_clause tablesample_clause
-- | func_table func_alias_clause
-- | LATERAL_P func_table func_alias_clause
-- | xmltable opt_alias_clause
-- | LATERAL_P xmltable opt_alias_clause
-- | select_with_parens opt_alias_clause
-- | LATERAL_P select_with_parens opt_alias_clause
-- | joined_table
-- | '(' joined_table ')' alias_clause
--
-- TODO: Add xmltable
--
data TableRef
-- | -- | relation_expr opt_alias_clause -- | relation_expr opt_alias_clause tablesample_clause --RelationExprTableRef :: RelationExpr -> Maybe AliasClause -> Maybe TablesampleClause -> TableRef -- |
-- | func_table func_alias_clause -- | LATERAL_P func_table func_alias_clause --FuncTableRef :: Bool -> FuncTable -> Maybe FuncAliasClause -> TableRef -- |
-- | select_with_parens opt_alias_clause -- | LATERAL_P select_with_parens opt_alias_clause --SelectTableRef :: Bool -> SelectWithParens -> Maybe AliasClause -> TableRef -- |
-- | joined_table
-- | '(' joined_table ')' alias_clause
--
JoinTableRef :: JoinedTable -> Maybe AliasClause -> TableRef
-- |
-- | qualified_name
-- | qualified_name *
-- | ONLY qualified_name
-- | ONLY '(' qualified_name ')'
--
data RelationExpr
SimpleRelationExpr :: QualifiedName -> Bool -> RelationExpr
OnlyRelationExpr :: QualifiedName -> Bool -> RelationExpr
-- | -- relation_expr_opt_alias: -- | relation_expr -- | relation_expr ColId -- | relation_expr AS ColId --data RelationExprOptAlias RelationExprOptAlias :: RelationExpr -> Maybe (Bool, ColId) -> RelationExprOptAlias -- |
-- tablesample_clause:
-- | TABLESAMPLE func_name '(' expr_list ')' opt_repeatable_clause
--
data TablesampleClause
TablesampleClause :: FuncName -> ExprList -> Maybe RepeatableClause -> TablesampleClause
-- |
-- opt_repeatable_clause:
-- | REPEATABLE '(' a_expr ')'
-- | EMPTY
--
type RepeatableClause = AExpr
-- |
-- func_table:
-- | func_expr_windowless opt_ordinality
-- | ROWS FROM '(' rowsfrom_list ')' opt_ordinality
--
data FuncTable
FuncExprFuncTable :: FuncExprWindowless -> OptOrdinality -> FuncTable
RowsFromFuncTable :: RowsfromList -> OptOrdinality -> FuncTable
-- | -- rowsfrom_item: -- | func_expr_windowless opt_col_def_list --data RowsfromItem RowsfromItem :: FuncExprWindowless -> Maybe ColDefList -> RowsfromItem -- |
-- rowsfrom_list: -- | rowsfrom_item -- | rowsfrom_list ',' rowsfrom_item --type RowsfromList = NonEmpty RowsfromItem -- |
-- opt_col_def_list:
-- | AS '(' TableFuncElementList ')'
-- | EMPTY
--
type ColDefList = TableFuncElementList
-- | -- opt_ordinality: -- | WITH_LA ORDINALITY -- | EMPTY --type OptOrdinality = Bool -- |
-- TableFuncElementList: -- | TableFuncElement -- | TableFuncElementList ',' TableFuncElement --type TableFuncElementList = NonEmpty TableFuncElement -- |
-- TableFuncElement: -- | ColId Typename opt_collate_clause --data TableFuncElement TableFuncElement :: ColId -> Typename -> Maybe CollateClause -> TableFuncElement -- |
-- opt_collate_clause: -- | COLLATE any_name -- | EMPTY --type CollateClause = AnyName -- |
-- alias_clause:
-- | AS ColId '(' name_list ')'
-- | AS ColId
-- | ColId '(' name_list ')'
-- | ColId
--
data AliasClause
AliasClause :: Bool -> ColId -> Maybe NameList -> AliasClause
-- |
-- func_alias_clause:
-- | alias_clause
-- | AS '(' TableFuncElementList ')'
-- | AS ColId '(' TableFuncElementList ')'
-- | ColId '(' TableFuncElementList ')'
-- | EMPTY
--
data FuncAliasClause
AliasFuncAliasClause :: AliasClause -> FuncAliasClause
AsFuncAliasClause :: TableFuncElementList -> FuncAliasClause
AsColIdFuncAliasClause :: ColId -> TableFuncElementList -> FuncAliasClause
ColIdFuncAliasClause :: ColId -> TableFuncElementList -> FuncAliasClause
-- |
-- | '(' joined_table ')'
-- | table_ref CROSS JOIN table_ref
-- | table_ref join_type JOIN table_ref join_qual
-- | table_ref JOIN table_ref join_qual
-- | table_ref NATURAL join_type JOIN table_ref
-- | table_ref NATURAL JOIN table_ref
--
-- The options are covered by the JoinMeth type.
--
data JoinedTable
InParensJoinedTable :: JoinedTable -> JoinedTable
MethJoinedTable :: JoinMeth -> TableRef -> TableRef -> JoinedTable
-- | -- | table_ref CROSS JOIN table_ref -- | table_ref join_type JOIN table_ref join_qual -- | table_ref JOIN table_ref join_qual -- | table_ref NATURAL join_type JOIN table_ref -- | table_ref NATURAL JOIN table_ref --data JoinMeth CrossJoinMeth :: JoinMeth QualJoinMeth :: Maybe JoinType -> JoinQual -> JoinMeth NaturalJoinMeth :: Maybe JoinType -> JoinMeth -- |
-- | FULL join_outer -- | LEFT join_outer -- | RIGHT join_outer -- | INNER_P --data JoinType FullJoinType :: Bool -> JoinType LeftJoinType :: Bool -> JoinType RightJoinType :: Bool -> JoinType InnerJoinType :: JoinType -- |
-- join_qual:
-- | USING '(' name_list ')'
-- | ON a_expr
--
data JoinQual
UsingJoinQual :: NonEmpty Ident -> JoinQual
OnJoinQual :: AExpr -> JoinQual
type WhereClause = AExpr
-- | -- | WHERE a_expr -- | WHERE CURRENT_P OF cursor_name -- | *EMPTY* --data WhereOrCurrentClause ExprWhereOrCurrentClause :: AExpr -> WhereOrCurrentClause CursorWhereOrCurrentClause :: CursorName -> WhereOrCurrentClause type ExprList = NonEmpty AExpr -- |
-- a_expr:
-- | c_expr
-- | a_expr TYPECAST Typename
-- | a_expr COLLATE any_name
-- | a_expr AT TIME ZONE a_expr
-- | + a_expr
-- | - a_expr
-- | a_expr + a_expr
-- | a_expr - a_expr
-- | a_expr * a_expr
-- | a_expr / a_expr
-- | a_expr % a_expr
-- | a_expr ^ a_expr
-- | a_expr < a_expr
-- | a_expr > a_expr
-- | a_expr '=' a_expr
-- | a_expr LESS_EQUALS a_expr
-- | a_expr GREATER_EQUALS a_expr
-- | a_expr NOT_EQUALS a_expr
-- | a_expr qual_Op a_expr
-- | qual_Op a_expr
-- | a_expr qual_Op
-- | a_expr AND a_expr
-- | a_expr OR a_expr
-- | NOT a_expr
-- | NOT_LA a_expr
-- | a_expr LIKE a_expr
-- | a_expr LIKE a_expr ESCAPE a_expr
-- | a_expr NOT_LA LIKE a_expr
-- | a_expr NOT_LA LIKE a_expr ESCAPE a_expr
-- | a_expr ILIKE a_expr
-- | a_expr ILIKE a_expr ESCAPE a_expr
-- | a_expr NOT_LA ILIKE a_expr
-- | a_expr NOT_LA ILIKE a_expr ESCAPE a_expr
-- | a_expr SIMILAR TO a_expr
-- | a_expr SIMILAR TO a_expr ESCAPE a_expr
-- | a_expr NOT_LA SIMILAR TO a_expr
-- | a_expr NOT_LA SIMILAR TO a_expr ESCAPE a_expr
-- | a_expr IS NULL_P
-- | a_expr ISNULL
-- | a_expr IS NOT NULL_P
-- | a_expr NOTNULL
-- | row OVERLAPS row
-- | a_expr IS TRUE_P
-- | a_expr IS NOT TRUE_P
-- | a_expr IS FALSE_P
-- | a_expr IS NOT FALSE_P
-- | a_expr IS UNKNOWN
-- | a_expr IS NOT UNKNOWN
-- | a_expr IS DISTINCT FROM a_expr
-- | a_expr IS NOT DISTINCT FROM a_expr
-- | a_expr IS OF '(' type_list ')'
-- | a_expr IS NOT OF '(' type_list ')'
-- | a_expr BETWEEN opt_asymmetric b_expr AND a_expr
-- | a_expr NOT_LA BETWEEN opt_asymmetric b_expr AND a_expr
-- | a_expr BETWEEN SYMMETRIC b_expr AND a_expr
-- | a_expr NOT_LA BETWEEN SYMMETRIC b_expr AND a_expr
-- | a_expr IN_P in_expr
-- | a_expr NOT_LA IN_P in_expr
-- | a_expr subquery_Op sub_type select_with_parens
-- | a_expr subquery_Op sub_type '(' a_expr ')'
-- | UNIQUE select_with_parens
-- | a_expr IS DOCUMENT_P
-- | a_expr IS NOT DOCUMENT_P
-- | DEFAULT
--
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
-- |
-- b_expr:
-- | c_expr
-- | b_expr TYPECAST Typename
-- | + b_expr
-- | - b_expr
-- | b_expr + b_expr
-- | b_expr - b_expr
-- | b_expr * b_expr
-- | b_expr / b_expr
-- | b_expr % b_expr
-- | b_expr ^ b_expr
-- | b_expr < b_expr
-- | b_expr > b_expr
-- | b_expr '=' b_expr
-- | b_expr LESS_EQUALS b_expr
-- | b_expr GREATER_EQUALS b_expr
-- | b_expr NOT_EQUALS b_expr
-- | b_expr qual_Op b_expr
-- | qual_Op b_expr
-- | b_expr qual_Op
-- | b_expr IS DISTINCT FROM b_expr
-- | b_expr IS NOT DISTINCT FROM b_expr
-- | b_expr IS OF '(' type_list ')'
-- | b_expr IS NOT OF '(' type_list ')'
-- | b_expr IS DOCUMENT_P
-- | b_expr IS NOT DOCUMENT_P
--
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
-- |
-- c_expr:
-- | columnref
-- | AexprConst
-- | PARAM opt_indirection
-- | '(' a_expr ')' opt_indirection
-- | case_expr
-- | func_expr
-- | select_with_parens
-- | select_with_parens indirection
-- | EXISTS select_with_parens
-- | ARRAY select_with_parens
-- | ARRAY array_expr
-- | explicit_row
-- | implicit_row
-- | GROUPING '(' expr_list ')'
--
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
-- |
-- in_expr:
-- | select_with_parens
-- | '(' expr_list ')'
--
data InExpr
SelectInExpr :: SelectWithParens -> InExpr
ExprListInExpr :: ExprList -> InExpr
-- | -- sub_type: -- | ANY -- | SOME -- | ALL --data SubType AnySubType :: SubType SomeSubType :: SubType AllSubType :: SubType -- |
-- array_expr: -- | '[' expr_list ']' -- | '[' array_expr_list ']' -- | '[' ']' --data ArrayExpr ExprListArrayExpr :: ExprList -> ArrayExpr ArrayExprListArrayExpr :: ArrayExprList -> ArrayExpr EmptyArrayExpr :: ArrayExpr -- |
-- array_expr_list: -- | array_expr -- | array_expr_list ',' array_expr --type ArrayExprList = NonEmpty ArrayExpr -- |
-- row:
-- | ROW '(' expr_list ')'
-- | ROW '(' ')'
-- | '(' expr_list ',' a_expr ')'
--
data Row
ExplicitRowRow :: ExplicitRow -> Row
ImplicitRowRow :: ImplicitRow -> Row
-- |
-- explicit_row:
-- | ROW '(' expr_list ')'
-- | ROW '(' ')'
--
type ExplicitRow = Maybe ExprList
-- |
-- implicit_row:
-- | '(' expr_list ',' a_expr ')'
--
data ImplicitRow
ImplicitRow :: ExprList -> AExpr -> ImplicitRow
-- | -- func_expr: -- | func_application within_group_clause filter_clause over_clause -- | func_expr_common_subexpr --data FuncExpr ApplicationFuncExpr :: FuncApplication -> Maybe WithinGroupClause -> Maybe FilterClause -> Maybe OverClause -> FuncExpr SubexprFuncExpr :: FuncExprCommonSubexpr -> FuncExpr -- |
-- func_expr_windowless: -- | func_application -- | func_expr_common_subexpr --data FuncExprWindowless ApplicationFuncExprWindowless :: FuncApplication -> FuncExprWindowless CommonSubexprFuncExprWindowless :: FuncExprCommonSubexpr -> FuncExprWindowless -- |
-- within_group_clause:
-- | WITHIN GROUP_P '(' sort_clause ')'
-- | EMPTY
--
type WithinGroupClause = SortClause
-- |
-- filter_clause:
-- | FILTER '(' WHERE a_expr ')'
-- | EMPTY
--
type FilterClause = AExpr
-- | -- over_clause: -- | OVER window_specification -- | OVER ColId -- | EMPTY --data OverClause WindowOverClause :: WindowSpecification -> OverClause ColIdOverClause :: ColId -> OverClause -- |
-- func_expr_common_subexpr:
-- | COLLATION FOR '(' a_expr ')'
-- | CURRENT_DATE
-- | CURRENT_TIME
-- | CURRENT_TIME '(' Iconst ')'
-- | CURRENT_TIMESTAMP
-- | CURRENT_TIMESTAMP '(' Iconst ')'
-- | LOCALTIME
-- | LOCALTIME '(' Iconst ')'
-- | LOCALTIMESTAMP
-- | LOCALTIMESTAMP '(' Iconst ')'
-- | CURRENT_ROLE
-- | CURRENT_USER
-- | SESSION_USER
-- | USER
-- | CURRENT_CATALOG
-- | CURRENT_SCHEMA
-- | CAST '(' a_expr AS Typename ')'
-- | EXTRACT '(' extract_list ')'
-- | OVERLAY '(' overlay_list ')'
-- | POSITION '(' position_list ')'
-- | SUBSTRING '(' substr_list ')'
-- | TREAT '(' a_expr AS Typename ')'
-- | TRIM '(' BOTH trim_list ')'
-- | TRIM '(' LEADING trim_list ')'
-- | TRIM '(' TRAILING trim_list ')'
-- | TRIM '(' trim_list ')'
-- | NULLIF '(' a_expr ',' a_expr ')'
-- | COALESCE '(' expr_list ')'
-- | GREATEST '(' expr_list ')'
-- | LEAST '(' expr_list ')'
-- | XMLCONCAT '(' expr_list ')'
-- | XMLELEMENT '(' NAME_P ColLabel ')'
-- | XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ')'
-- | XMLELEMENT '(' NAME_P ColLabel ',' expr_list ')'
-- | XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ',' expr_list ')'
-- | XMLEXISTS '(' c_expr xmlexists_argument ')'
-- | XMLFOREST '(' xml_attribute_list ')'
-- | XMLPARSE '(' document_or_content a_expr xml_whitespace_option ')'
-- | XMLPI '(' NAME_P ColLabel ')'
-- | XMLPI '(' NAME_P ColLabel ',' a_expr ')'
-- | XMLROOT '(' a_expr ',' xml_root_version opt_xml_root_standalone ')'
-- | XMLSERIALIZE '(' document_or_content a_expr AS SimpleTypename ')'
--
-- TODO: Implement the XML cases
--
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
-- | -- extract_list: -- | extract_arg FROM a_expr -- | EMPTY --data ExtractList ExtractList :: ExtractArg -> AExpr -> ExtractList -- |
-- extract_arg: -- | IDENT -- | YEAR_P -- | MONTH_P -- | DAY_P -- | HOUR_P -- | MINUTE_P -- | SECOND_P -- | Sconst --data ExtractArg IdentExtractArg :: Ident -> ExtractArg YearExtractArg :: ExtractArg MonthExtractArg :: ExtractArg DayExtractArg :: ExtractArg HourExtractArg :: ExtractArg MinuteExtractArg :: ExtractArg SecondExtractArg :: ExtractArg SconstExtractArg :: Sconst -> ExtractArg -- |
-- overlay_list: -- | a_expr overlay_placing substr_from substr_for -- | a_expr overlay_placing substr_from --data OverlayList OverlayList :: AExpr -> OverlayPlacing -> SubstrFrom -> Maybe SubstrFor -> OverlayList -- |
-- overlay_placing: -- | PLACING a_expr --type OverlayPlacing = AExpr -- |
-- position_list: -- | b_expr IN_P b_expr -- | EMPTY --data PositionList PositionList :: BExpr -> BExpr -> PositionList -- |
-- substr_list: -- | a_expr substr_from substr_for -- | a_expr substr_for substr_from -- | a_expr substr_from -- | a_expr substr_for -- | expr_list -- | EMPTY --data SubstrList ExprSubstrList :: AExpr -> SubstrListFromFor -> SubstrList ExprListSubstrList :: ExprList -> SubstrList -- |
-- | a_expr substr_from substr_for -- | a_expr substr_for substr_from -- | a_expr substr_from -- | a_expr substr_for --data SubstrListFromFor FromForSubstrListFromFor :: SubstrFrom -> SubstrFor -> SubstrListFromFor ForFromSubstrListFromFor :: SubstrFor -> SubstrFrom -> SubstrListFromFor FromSubstrListFromFor :: SubstrFrom -> SubstrListFromFor ForSubstrListFromFor :: SubstrFor -> SubstrListFromFor -- |
-- substr_from: -- | FROM a_expr --type SubstrFrom = AExpr -- |
-- substr_for: -- | FOR a_expr --type SubstrFor = AExpr -- |
-- | TRIM '(' BOTH trim_list ')'
-- | TRIM '(' LEADING trim_list ')'
-- | TRIM '(' TRAILING trim_list ')'
--
data TrimModifier
BothTrimModifier :: TrimModifier
LeadingTrimModifier :: TrimModifier
TrailingTrimModifier :: TrimModifier
-- | -- trim_list: -- | a_expr FROM expr_list -- | FROM expr_list -- | expr_list --data TrimList ExprFromExprListTrimList :: AExpr -> ExprList -> TrimList FromExprListTrimList :: ExprList -> TrimList ExprListTrimList :: ExprList -> TrimList -- |
-- case_expr: -- | CASE case_arg when_clause_list case_default END_P --data CaseExpr CaseExpr :: Maybe CaseArg -> WhenClauseList -> Maybe CaseDefault -> CaseExpr -- |
-- case_arg: -- | a_expr -- | EMPTY --type CaseArg = AExpr -- |
-- when_clause_list: -- | when_clause -- | when_clause_list when_clause --type WhenClauseList = NonEmpty WhenClause -- |
-- case_default: -- | ELSE a_expr -- | EMPTY --type CaseDefault = AExpr -- |
-- when_clause: -- | WHEN a_expr THEN a_expr --data WhenClause WhenClause :: AExpr -> AExpr -> WhenClause -- |
-- func_application:
-- | func_name '(' ')'
-- | func_name '(' func_arg_list opt_sort_clause ')'
-- | func_name '(' VARIADIC func_arg_expr opt_sort_clause ')'
-- | func_name '(' func_arg_list ',' VARIADIC func_arg_expr opt_sort_clause ')'
-- | func_name '(' ALL func_arg_list opt_sort_clause ')'
-- | func_name '(' DISTINCT func_arg_list opt_sort_clause ')'
-- | func_name '(' * ')'
--
data FuncApplication
FuncApplication :: FuncName -> Maybe FuncApplicationParams -> FuncApplication
-- |
-- func_application:
-- | func_name '(' ')'
-- | func_name '(' func_arg_list opt_sort_clause ')'
-- | func_name '(' VARIADIC func_arg_expr opt_sort_clause ')'
-- | func_name '(' func_arg_list ',' VARIADIC func_arg_expr opt_sort_clause ')'
-- | func_name '(' ALL func_arg_list opt_sort_clause ')'
-- | func_name '(' DISTINCT func_arg_list opt_sort_clause ')'
-- | func_name '(' * ')'
--
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
-- |
-- | func_name '(' func_arg_list opt_sort_clause ')' Sconst
--
data FuncConstArgs
FuncConstArgs :: NonEmpty FuncArgExpr -> Maybe SortClause -> FuncConstArgs
-- | -- ConstTypename: -- | Numeric -- | ConstBit -- | ConstCharacter -- | ConstDatetime --data ConstTypename NumericConstTypename :: Numeric -> ConstTypename ConstBitConstTypename :: ConstBit -> ConstTypename ConstCharacterConstTypename :: ConstCharacter -> ConstTypename ConstDatetimeConstTypename :: ConstDatetime -> ConstTypename -- |
-- Numeric:
-- | INT_P
-- | INTEGER
-- | SMALLINT
-- | BIGINT
-- | REAL
-- | FLOAT_P opt_float
-- | DOUBLE_P PRECISION
-- | DECIMAL_P opt_type_modifiers
-- | DEC opt_type_modifiers
-- | NUMERIC opt_type_modifiers
-- | BOOLEAN_P
-- opt_float:
-- | '(' Iconst ')'
-- | EMPTY
-- opt_type_modifiers:
-- | '(' expr_list ')'
-- | EMPTY
--
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
-- |
-- Bit:
-- | BitWithLength
-- | BitWithoutLength
-- ConstBit:
-- | BitWithLength
-- | BitWithoutLength
-- BitWithLength:
-- | BIT opt_varying '(' expr_list ')'
-- BitWithoutLength:
-- | BIT opt_varying
--
data Bit
Bit :: OptVarying -> Maybe ExprList -> Bit
type ConstBit = Bit
-- | -- opt_varying: -- | VARYING -- | EMPTY --type OptVarying = Bool -- |
-- Character:
-- | CharacterWithLength
-- | CharacterWithoutLength
-- ConstCharacter:
-- | CharacterWithLength
-- | CharacterWithoutLength
-- CharacterWithLength:
-- | character '(' Iconst ')'
-- CharacterWithoutLength:
-- | character
--
data ConstCharacter
ConstCharacter :: Character -> Maybe Int64 -> ConstCharacter
-- | -- character: -- | CHARACTER opt_varying -- | CHAR_P opt_varying -- | VARCHAR -- | NATIONAL CHARACTER opt_varying -- | NATIONAL CHAR_P opt_varying -- | NCHAR opt_varying --data Character CharacterCharacter :: OptVarying -> Character CharCharacter :: OptVarying -> Character VarcharCharacter :: Character NationalCharacterCharacter :: OptVarying -> Character NationalCharCharacter :: OptVarying -> Character NcharCharacter :: OptVarying -> Character -- |
-- ConstDatetime:
-- | TIMESTAMP '(' Iconst ')' opt_timezone
-- | TIMESTAMP opt_timezone
-- | TIME '(' Iconst ')' opt_timezone
-- | TIME opt_timezone
--
data ConstDatetime
TimestampConstDatetime :: Maybe Int64 -> Maybe Timezone -> ConstDatetime
TimeConstDatetime :: Maybe Int64 -> Maybe Timezone -> ConstDatetime
-- | -- opt_timezone: -- | WITH_LA TIME ZONE -- | WITHOUT TIME ZONE -- | EMPTY --type Timezone = Bool -- |
-- opt_interval: -- | YEAR_P -- | MONTH_P -- | DAY_P -- | HOUR_P -- | MINUTE_P -- | interval_second -- | YEAR_P TO MONTH_P -- | DAY_P TO HOUR_P -- | DAY_P TO MINUTE_P -- | DAY_P TO interval_second -- | HOUR_P TO MINUTE_P -- | HOUR_P TO interval_second -- | MINUTE_P TO interval_second -- | EMPTY --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 -- |
-- interval_second:
-- | SECOND_P
-- | SECOND_P '(' Iconst ')'
--
type IntervalSecond = Maybe Int64
-- | -- IDENT --data Ident QuotedIdent :: Text -> Ident UnquotedIdent :: Text -> Ident -- |
-- ColId: -- | IDENT -- | unreserved_keyword -- | col_name_keyword --type ColId = Ident -- |
-- ColLabel: -- | IDENT -- | unreserved_keyword -- | col_name_keyword -- | type_func_name_keyword -- | reserved_keyword --type ColLabel = Ident -- |
-- name: -- | ColId --type Name = ColId -- |
-- name_list: -- | name -- | name_list ',' name --type NameList = NonEmpty Name -- |
-- cursor_name: -- | name --type CursorName = Name -- |
-- columnref: -- | ColId -- | ColId indirection --data Columnref Columnref :: ColId -> Maybe Indirection -> Columnref -- |
-- any_name: -- | ColId -- | ColId attrs --data AnyName AnyName :: ColId -> Maybe Attrs -> AnyName -- |
-- func_name: -- | type_function_name -- | ColId indirection --data FuncName TypeFuncName :: TypeFunctionName -> FuncName IndirectedFuncName :: ColId -> Indirection -> FuncName -- |
-- type_function_name: -- | IDENT -- | unreserved_keyword -- | type_func_name_keyword --type TypeFunctionName = Ident -- |
-- columnref: -- | ColId -- | ColId indirection -- qualified_name: -- | ColId -- | ColId indirection --data QualifiedName SimpleQualifiedName :: Ident -> QualifiedName IndirectedQualifiedName :: Ident -> Indirection -> QualifiedName -- |
-- indirection: -- | indirection_el -- | indirection indirection_el --type Indirection = NonEmpty IndirectionEl -- |
-- indirection_el: -- | . attr_name -- | . * -- | '[' a_expr ']' -- | '[' opt_slice_bound : opt_slice_bound ']' -- opt_slice_bound: -- | a_expr -- | EMPTY --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. -- --
-- Typename: -- | SimpleTypename opt_array_bounds -- | SETOF SimpleTypename opt_array_bounds -- | SimpleTypename ARRAY '[' Iconst ']' -- | SETOF SimpleTypename ARRAY '[' Iconst ']' -- | SimpleTypename ARRAY -- | SETOF SimpleTypename ARRAY --data Typename Typename :: Bool -> SimpleTypename -> Bool -> Maybe (TypenameArrayDimensions, Bool) -> Typename -- |
-- Part of the Typename specification responsible for the choice between the following: -- | opt_array_bounds -- | ARRAY '[' Iconst ']' -- | ARRAY --data TypenameArrayDimensions BoundsTypenameArrayDimensions :: ArrayBounds -> TypenameArrayDimensions ExplicitTypenameArrayDimensions :: Maybe Iconst -> TypenameArrayDimensions -- |
-- opt_array_bounds: -- | opt_array_bounds '[' ']' -- | opt_array_bounds '[' Iconst ']' -- | EMPTY --type ArrayBounds = NonEmpty (Maybe Iconst) -- |
-- SimpleTypename:
-- | GenericType
-- | Numeric
-- | Bit
-- | Character
-- | ConstDatetime
-- | ConstInterval opt_interval
-- | ConstInterval '(' Iconst ')'
-- ConstInterval:
-- | INTERVAL
--
data SimpleTypename
GenericTypeSimpleTypename :: GenericType -> SimpleTypename
NumericSimpleTypename :: Numeric -> SimpleTypename
BitSimpleTypename :: Bit -> SimpleTypename
CharacterSimpleTypename :: Character -> SimpleTypename
ConstDatetimeSimpleTypename :: ConstDatetime -> SimpleTypename
ConstIntervalSimpleTypename :: Either (Maybe Interval) Iconst -> SimpleTypename
-- | -- GenericType: -- | type_function_name opt_type_modifiers -- | type_function_name attrs opt_type_modifiers --data GenericType GenericType :: TypeFunctionName -> Maybe Attrs -> Maybe TypeModifiers -> GenericType -- |
-- attrs: -- | . attr_name -- | attrs . attr_name --type Attrs = NonEmpty AttrName -- |
-- attr_name: -- | ColLabel --type AttrName = ColLabel -- |
-- opt_type_modifiers:
-- | '(' expr_list ')'
-- | EMPTY
--
type TypeModifiers = ExprList
-- | -- type_list: -- | Typename -- | type_list ',' Typename --type TypeList = NonEmpty Typename -- |
-- qual_Op:
-- | Op
-- | OPERATOR '(' any_operator ')'
--
data QualOp
OpQualOp :: Op -> QualOp
OperatorQualOp :: AnyOperator -> QualOp
-- |
-- qual_all_Op:
-- | all_Op
-- | OPERATOR '(' any_operator ')'
--
data QualAllOp
AllQualAllOp :: AllOp -> QualAllOp
AnyQualAllOp :: AnyOperator -> QualAllOp
-- | -- The operator name is a sequence of up to NAMEDATALEN-1 (63 by default) -- characters from the following list: -- -- + - * / = ~ ! # % ^ & | ` ? -- -- There are a few restrictions on your choice of name: -- -- and /* cannot appear anywhere in an operator name, -- since they will be taken as the start of a comment. -- -- A multicharacter operator name cannot end in + or -, -- unless the name also contains at least one of these characters: -- -- ~ ! # % ^ & | ` ? -- -- For example, @- is an allowed operator name, but *- is not. -- This restriction allows PostgreSQL to parse SQL-compliant -- commands without requiring spaces between tokens. -- The use of => as an operator name is deprecated. -- It may be disallowed altogether in a future release. -- -- The operator != is mapped to <> on input, -- so these two names are always equivalent. --type Op = Text -- |
-- any_operator: -- | all_Op -- | ColId . any_operator --data AnyOperator AllOpAnyOperator :: AllOp -> AnyOperator QualifiedAnyOperator :: ColId -> AnyOperator -> AnyOperator -- |
-- all_Op: -- | Op -- | MathOp --data AllOp OpAllOp :: Op -> AllOp MathAllOp :: MathOp -> AllOp -- |
-- MathOp: -- | + -- | - -- | * -- | / -- | % -- | ^ -- | < -- | > -- | '=' -- | LESS_EQUALS -- | GREATER_EQUALS -- | NOT_EQUALS --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 -- |
-- | a_expr IS NULL_P
-- | a_expr IS TRUE_P
-- | a_expr IS FALSE_P
-- | a_expr IS UNKNOWN
-- | a_expr IS DISTINCT FROM a_expr
-- | a_expr IS OF '(' type_list ')'
-- | a_expr BETWEEN opt_asymmetric b_expr AND a_expr
-- | a_expr BETWEEN SYMMETRIC b_expr AND a_expr
-- | a_expr IN_P in_expr
-- | a_expr IS DOCUMENT_P
--
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
-- |
-- | b_expr IS DISTINCT FROM b_expr
-- | b_expr IS NOT DISTINCT FROM b_expr
-- | b_expr IS OF '(' type_list ')'
-- | b_expr IS NOT OF '(' type_list ')'
-- | b_expr IS DOCUMENT_P
-- | b_expr IS NOT DOCUMENT_P
--
data BExprIsOp
DistinctFromBExprIsOp :: BExpr -> BExprIsOp
OfBExprIsOp :: TypeList -> BExprIsOp
DocumentBExprIsOp :: BExprIsOp
-- |
-- subquery_Op:
-- | all_Op
-- | OPERATOR '(' any_operator ')'
-- | LIKE
-- | NOT_LA LIKE
-- | ILIKE
-- | NOT_LA ILIKE
--
data SubqueryOp
AllSubqueryOp :: AllOp -> SubqueryOp
AnySubqueryOp :: AnyOperator -> SubqueryOp
LikeSubqueryOp :: Bool -> SubqueryOp
IlikeSubqueryOp :: Bool -> SubqueryOp
-- | -- index_params: -- | index_elem -- | index_params ',' index_elem --type IndexParams = NonEmpty IndexElem -- |
-- index_elem:
-- | ColId opt_collate opt_class opt_asc_desc opt_nulls_order
-- | func_expr_windowless opt_collate opt_class opt_asc_desc opt_nulls_order
-- | '(' a_expr ')' opt_collate opt_class opt_asc_desc opt_nulls_order
--
data IndexElem
IndexElem :: IndexElemDef -> Maybe Collate -> Maybe Class -> Maybe AscDesc -> Maybe NullsOrder -> IndexElem
-- |
-- | ColId opt_collate opt_class opt_asc_desc opt_nulls_order
-- | func_expr_windowless opt_collate opt_class opt_asc_desc opt_nulls_order
-- | '(' a_expr ')' opt_collate opt_class opt_asc_desc opt_nulls_order
--
data IndexElemDef
IdIndexElemDef :: ColId -> IndexElemDef
FuncIndexElemDef :: FuncExprWindowless -> IndexElemDef
ExprIndexElemDef :: AExpr -> IndexElemDef
-- | -- opt_collate: -- | COLLATE any_name -- | EMPTY --type Collate = AnyName -- |
-- opt_class: -- | any_name -- | EMPTY --type Class = AnyName -- |
-- opt_asc_desc: -- | ASC -- | DESC -- | EMPTY --data AscDesc AscAscDesc :: AscDesc DescAscDesc :: AscDesc -- |
-- opt_nulls_order: -- | NULLS_LA FIRST_P -- | NULLS_LA LAST_P -- | EMPTY --data NullsOrder FirstNullsOrder :: NullsOrder LastNullsOrder :: NullsOrder 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 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.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.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.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.JoinType instance GHC.Classes.Eq PostgresqlSyntax.Ast.JoinType instance GHC.Generics.Generic PostgresqlSyntax.Ast.JoinType instance GHC.Show.Show PostgresqlSyntax.Ast.JoinType 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.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.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.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.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.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.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.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.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.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.AnyName instance GHC.Classes.Eq PostgresqlSyntax.Ast.AnyName instance GHC.Generics.Generic PostgresqlSyntax.Ast.AnyName instance GHC.Show.Show PostgresqlSyntax.Ast.AnyName 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.AllOp instance GHC.Classes.Eq PostgresqlSyntax.Ast.AllOp instance GHC.Generics.Generic PostgresqlSyntax.Ast.AllOp instance GHC.Show.Show PostgresqlSyntax.Ast.AllOp 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.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.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.SymbolicExprBinOp instance GHC.Classes.Eq PostgresqlSyntax.Ast.SymbolicExprBinOp instance GHC.Generics.Generic PostgresqlSyntax.Ast.SymbolicExprBinOp instance GHC.Show.Show PostgresqlSyntax.Ast.SymbolicExprBinOp 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.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.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.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.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.CallStmt instance GHC.Classes.Eq PostgresqlSyntax.Ast.CallStmt instance GHC.Generics.Generic PostgresqlSyntax.Ast.CallStmt instance GHC.Show.Show PostgresqlSyntax.Ast.CallStmt 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 module PostgresqlSyntax.Rendering toByteString :: Builder -> ByteString toText :: Builder -> Text 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 callStmt :: CallStmt -> 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 :: ExprList -> 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 :: Bit -> 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 :: NonEmpty IndexElem -> 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.com/postgres/postgres/blob/master/src/backend/parser/gram.y. -- -- Here's the essence of how the original parser is implemented, citing -- from PostgreSQL Wiki: -- -- 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 callStmt :: HeadedParsec Void Text CallStmt 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". -- --
-- | 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 --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: -- | TEMPORARY opt_table qualified_name -- | TEMP opt_table qualified_name -- | LOCAL TEMPORARY opt_table qualified_name -- | LOCAL TEMP opt_table qualified_name -- | GLOBAL TEMPORARY opt_table qualified_name -- | GLOBAL TEMP opt_table qualified_name -- | UNLOGGED opt_table qualified_name -- | TABLE qualified_name -- | qualified_name --optTempTableName :: HeadedParsec Void Text IntoClause groupByItem :: HeadedParsec Void Text GroupByItem windowDefinition :: HeadedParsec Void Text WindowDefinition -- |
-- window_specification:
-- | '(' opt_existing_window_name opt_partition_clause
-- opt_sort_clause opt_frame_clause ')'
--
windowSpecification :: HeadedParsec Void Text WindowSpecification
partitionByClause :: HeadedParsec Void Text PartitionClause
-- | -- opt_frame_clause: -- | RANGE frame_extent opt_window_exclusion_clause -- | ROWS frame_extent opt_window_exclusion_clause -- | GROUPS frame_extent opt_window_exclusion_clause -- | EMPTY --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 -- |
-- | UNBOUNDED PRECEDING -- | UNBOUNDED FOLLOWING -- | CURRENT_P ROW -- | a_expr PRECEDING -- | a_expr FOLLOWING --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, Tokens s ~ Text, Token s ~ Char) => 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 -- |
-- | '(' joined_table ')'
--
inParensJoinedTable :: HeadedParsec Void Text JoinedTable
-- | -- | table_ref CROSS JOIN table_ref -- | table_ref join_type JOIN table_ref join_qual -- | table_ref JOIN table_ref join_qual -- | table_ref NATURAL join_type JOIN table_ref -- | table_ref NATURAL JOIN table_ref --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. -- --
-- >>> 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)) ---- --
-- >>> 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 -- |
-- func_arg_expr: -- | a_expr -- | param_name COLON_EQUALS a_expr -- | param_name EQUALS_GREATER a_expr -- param_name: -- | type_function_name --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: 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
--
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:
-- | TIMESTAMP '(' Iconst ')' opt_timezone
-- | TIMESTAMP opt_timezone
-- | TIME '(' Iconst ')' opt_timezone
-- | TIME opt_timezone
--
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)
-- | -- select_limit: -- | limit_clause offset_clause -- | offset_clause limit_clause -- | limit_clause -- | offset_clause --selectLimit :: HeadedParsec Void Text SelectLimit -- |
-- limit_clause: -- | LIMIT select_limit_value -- | LIMIT select_limit_value ',' select_offset_value -- | FETCH first_or_next select_fetch_first_value row_or_rows ONLY -- | FETCH first_or_next row_or_rows ONLY --limitClause :: HeadedParsec Void Text LimitClause offsetClause :: HeadedParsec Void Text OffsetClause offsetClauseParams :: HeadedParsec Void Text OffsetClause -- |
-- select_limit_value: -- | a_expr -- | ALL --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 -- |
-- for_locking_clause: -- | for_locking_items -- | FOR READ ONLY -- for_locking_items: -- | for_locking_item -- | for_locking_items for_locking_item --forLockingClause :: HeadedParsec Void Text ForLockingClause -- |
-- for_locking_item: -- | for_locking_strength locked_rels_list opt_nowait_or_skip -- locked_rels_list: -- | OF qualified_name_list -- | EMPTY -- opt_nowait_or_skip: -- | NOWAIT -- | SKIP LOCKED -- | EMPTY --forLockingItem :: HeadedParsec Void Text ForLockingItem -- |
-- for_locking_strength: -- | FOR UPDATE -- | FOR NO KEY UPDATE -- | FOR SHARE -- | FOR KEY SHARE --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_start [A-Za-z200-377_]
-- ident_cont [A-Za-z200-377_0-9$]
-- identifier {ident_start}{ident_cont}*
--
ident :: HeadedParsec Void Text Ident
-- | -- ColId: -- | IDENT -- | unreserved_keyword -- | col_name_keyword --colId :: HeadedParsec Void Text Ident filteredColId :: Foldable t => t Text -> HeadedParsec Void Text Ident -- |
-- ColLabel: -- | IDENT -- | unreserved_keyword -- | col_name_keyword -- | type_func_name_keyword -- | reserved_keyword --colLabel :: HeadedParsec Void Text Ident -- |
-- >>> testParser qualifiedName "a.b" -- IndirectedQualifiedName (UnquotedIdent "a") (AttrNameIndirectionEl (UnquotedIdent "b") :| []) ---- --
-- >>> testParser qualifiedName "a.-" -- ... -- expecting '*', column label, or white space ---- --
-- qualified_name: -- | ColId -- | ColId indirection --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 -- |
-- func_name: -- | type_function_name -- | ColId indirection --funcName :: Parser FuncName -- |
-- type_function_name: -- | IDENT -- | unreserved_keyword -- | type_func_name_keyword --typeFunctionName :: HeadedParsec Void Text Ident -- |
-- indirection: -- | indirection_el -- | indirection indirection_el --indirection :: HeadedParsec Void Text Indirection -- |
-- indirection_el: -- | . attr_name -- | . * -- | '[' a_expr ']' -- | '[' opt_slice_bound : opt_slice_bound ']' -- opt_slice_bound: -- | a_expr -- | EMPTY --indirectionEl :: HeadedParsec Void Text IndirectionEl -- |
-- attr_name: -- | ColLabel --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, Tokens s ~ Text, Token s ~ Char) => HeadedParsec e s NullsOrder