1
Fork 0

adjust makeSelect helper to be new type, lib and tests now compile without any warnings

This commit is contained in:
Jake Wheat 2024-01-11 14:45:20 +00:00
parent a3d1ba7e5c
commit 858c7723b0
14 changed files with 274 additions and 243 deletions
Language/SQL/SimpleSQL

View file

@ -231,11 +231,10 @@ import Data.Maybe (catMaybes, isJust)
import Data.Text (Text)
import qualified Data.Text as T
import Language.SQL.SimpleSQL.Syntax
import Language.SQL.SimpleSQL.Syntax
import Language.SQL.SimpleSQL.Dialect
import qualified Language.SQL.SimpleSQL.Lex as L
------------------------------------------------------------------------------
-- = Public API
@ -1522,7 +1521,7 @@ queryExpr = E.makeExprParser qeterm qeOpTable
<*> selectList
<*> (optional tableExpression) <?> "table expression"
mkSelect d sl Nothing =
makeSelect{qeSetQuantifier = d, qeSelectList = sl}
toQueryExpr $ makeSelect {msSetQuantifier = d, msSelectList = sl}
mkSelect d sl (Just (TableExpression f w g h od ofs fe)) =
Select d sl f w g h od ofs fe
values = keyword_ "values"

View file

@ -23,7 +23,6 @@ module Language.SQL.SimpleSQL.Syntax
,OdbcLiteralType(..)
-- * Query expressions
,QueryExpr(..)
,makeSelect
,SetOperatorName(..)
,Corresponding(..)
,Alias(..)
@ -60,6 +59,10 @@ module Language.SQL.SimpleSQL.Syntax
,GrantOptionFor(..)
-- * Comment
,Comment(..)
,makeSelect
,toQueryExpr
,MakeSelect(..)
) where
import Data.Text (Text)
@ -377,31 +380,6 @@ TODO: add queryexpr parens to deal with e.g.
I'm not sure if this is valid syntax or not.
-}
-- | Helper/'default' value for query exprs to make creating query
-- expr values a little easier. It is defined like this:
--
-- > makeSelect :: QueryExpr
-- > makeSelect = Select {qeSetQuantifier = SQDefault
-- > ,qeSelectList = []
-- > ,qeFrom = []
-- > ,qeWhere = Nothing
-- > ,qeGroupBy = []
-- > ,qeHaving = Nothing
-- > ,qeOrderBy = []
-- > ,qeOffset = Nothing
-- > ,qeFetchFirst = Nothing}
makeSelect :: QueryExpr
makeSelect = Select {qeSetQuantifier = SQDefault
,qeSelectList = []
,qeFrom = []
,qeWhere = Nothing
,qeGroupBy = []
,qeHaving = Nothing
,qeOrderBy = []
,qeOffset = Nothing
,qeFetchFirst = Nothing}
-- | Represents the Distinct or All keywords, which can be used
-- before a select list, in an aggregate/window function
-- application, or in a query expression set operator.
@ -744,3 +722,50 @@ data PrivilegeAction =
newtype Comment = BlockComment Text
deriving (Eq,Show,Read,Data,Typeable)
data MakeSelect
= MakeSelect
{msSetQuantifier :: SetQuantifier
,msSelectList :: [(ScalarExpr,Maybe Name)]
,msFrom :: [TableRef]
,msWhere :: Maybe ScalarExpr
,msGroupBy :: [GroupingExpr]
,msHaving :: Maybe ScalarExpr
,msOrderBy :: [SortSpec]
,msOffset :: Maybe ScalarExpr
,msFetchFirst :: Maybe ScalarExpr
}
-- | Helper/'default' value for query exprs to make creating query
-- expr values a little easier. It is defined like this:
--
-- > makeSelect :: MakeSelect
-- > makeSelect
-- > = MakeSelect
-- > {msSetQuantifier = SQDefault
-- > ,msSelectList = []
-- > ,msFrom = []
-- > ,msWhere = Nothing
-- > ,msGroupBy = []
-- > ,msHaving = Nothing
-- > ,msOrderBy = []
-- > ,msOffset = Nothing
-- > ,msFetchFirst = Nothing}
-- >
-- > Example, to create a select query expression with a select list 'sl':
-- > toQueryExpr $ makeSelect {msSelectList = sl}
makeSelect :: MakeSelect
makeSelect
= MakeSelect
{msSetQuantifier = SQDefault
,msSelectList = []
,msFrom = []
,msWhere = Nothing
,msGroupBy = []
,msHaving = Nothing
,msOrderBy = []
,msOffset = Nothing
,msFetchFirst = Nothing}
toQueryExpr :: MakeSelect -> QueryExpr
toQueryExpr (MakeSelect q sl f w g h o ff fetch) = Select q sl f w g h o ff fetch