-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | PostgreSQL backend for the groundhog library.
--
-- This package uses postgresql-simple and postgresql-libpq.
@package groundhog-postgresql
@version 0.3.1
module Database.Groundhog.Postgresql.Geometry
data Point
Point :: Double -> Double -> Point
-- | It is not fully implemented in PostgreSQL yet. It is kept just to
-- match all geometric types.
data Line
Line :: Point -> Point -> Line
data Lseg
Lseg :: Point -> Point -> Lseg
data Box
Box :: Point -> Point -> Box
data Path
ClosedPath :: [Point] -> Path
OpenPath :: [Point] -> Path
data Polygon
Polygon :: [Point] -> Polygon
data Circle
Circle :: Point -> Double -> Circle
instance Eq Point
instance Show Point
instance Eq Line
instance Show Line
instance Eq Lseg
instance Show Lseg
instance Eq Box
instance Show Box
instance Eq Path
instance Show Path
instance Eq Polygon
instance Show Polygon
instance Eq Circle
instance Show Circle
instance PurePersistField Circle
instance SinglePersistField Circle
instance PrimitivePersistField Circle
instance PersistField Circle
instance PurePersistField Polygon
instance SinglePersistField Polygon
instance PrimitivePersistField Polygon
instance PersistField Polygon
instance PurePersistField Path
instance SinglePersistField Path
instance PrimitivePersistField Path
instance PersistField Path
instance PurePersistField Box
instance SinglePersistField Box
instance PrimitivePersistField Box
instance PersistField Box
instance PurePersistField Lseg
instance SinglePersistField Lseg
instance PrimitivePersistField Lseg
instance PersistField Lseg
instance PurePersistField Line
instance SinglePersistField Line
instance PrimitivePersistField Line
instance PersistField Line
instance PurePersistField Point
instance SinglePersistField Point
instance PrimitivePersistField Point
instance PersistField Point
module Database.Groundhog.Postgresql
withPostgresqlPool :: (MonadBaseControl IO m, MonadIO m) => String -> Int -> (Pool Postgresql -> m a) -> m a
withPostgresqlConn :: (MonadBaseControl IO m, MonadIO m) => String -> (Postgresql -> m a) -> m a
-- | Runs action within connection. It can handle a simple connection, a
-- pool of them, etc.
runDbConn :: (MonadBaseControl IO m, MonadIO m, ConnectionManager cm conn) => DbPersist conn m a -> cm -> m a
data Postgresql
instance ToField P
instance SingleConnectionManager Postgresql Postgresql
instance ConnectionManager (Pool Postgresql) Postgresql
instance ConnectionManager Postgresql Postgresql
instance Savepoint Postgresql
instance (MonadBaseControl IO m, MonadIO m) => SchemaAnalyzer (DbPersist Postgresql m)
instance (MonadBaseControl IO m, MonadIO m) => PersistBackend (DbPersist Postgresql m)
instance SqlDb Postgresql
instance DbDescriptor Postgresql
-- | See detailed documentation for PostgreSQL arrays at
-- http:www.postgresql.orgdocs9.2staticarrays.html
-- and
-- http:www.postgresql.orgdocs9.2staticfunctions-array.html
module Database.Groundhog.Postgresql.Array
-- | Represents PostgreSQL arrays
newtype Array a
Array :: [a] -> Array a
(!) :: (ExpressionOf Postgresql r a (Array elem), ExpressionOf Postgresql r b Int) => a -> b -> Expr Postgresql r elem
(!:) :: (ExpressionOf Postgresql r a (Array elem), ExpressionOf Postgresql r i1 Int, ExpressionOf Postgresql r i2 Int) => a -> (i1, i2) -> Expr Postgresql r (Array elem)
append :: (ExpressionOf Postgresql r a (Array elem), ExpressionOf Postgresql r b elem) => a -> b -> Expr Postgresql r (Array elem)
prepend :: (ExpressionOf Postgresql r a elem, ExpressionOf Postgresql r b (Array elem)) => a -> b -> Expr Postgresql r (Array elem)
arrayCat :: (ExpressionOf Postgresql r a (Array elem), ExpressionOf Postgresql r b (Array elem)) => a -> b -> Expr Postgresql r (Array elem)
arrayDims :: ExpressionOf Postgresql r a (Array elem) => a -> Expr Postgresql r String
arrayNDims :: ExpressionOf Postgresql r a (Array elem) => a -> Expr Postgresql r Int
arrayLower :: ExpressionOf Postgresql r a (Array elem) => a -> Int -> Expr Postgresql r Int
arrayUpper :: ExpressionOf Postgresql r a (Array elem) => a -> Int -> Expr Postgresql r Int
arrayLength :: ExpressionOf Postgresql r a (Array elem) => a -> Int -> Expr Postgresql r Int
-- | Concatenates array elements using supplied delimiter.
-- array_to_string(ARRAY[1, 2, 3], ~^~) = 1~^~2~^~3
arrayToString :: ExpressionOf Postgresql r a (Array elem) => a -> String -> Expr Postgresql r String
-- | Splits string into array elements using supplied delimiter.
-- string_to_array('xx~^~yy~^~zz', ~^~) = {xx,yy,zz}
stringToArray :: ExpressionOf Postgresql r a String => a -> String -> Expr Postgresql r (Array String)
any :: (ExpressionOf Postgresql r a elem, ExpressionOf Postgresql r b (Array elem)) => a -> b -> Cond Postgresql r
all :: (ExpressionOf Postgresql r a elem, ExpressionOf Postgresql r b (Array elem)) => a -> b -> Cond Postgresql r
(@>) :: (ExpressionOf Postgresql r a (Array elem), ExpressionOf Postgresql r b (Array elem)) => a -> b -> Cond Postgresql r
(<@) :: (ExpressionOf Postgresql r a (Array elem), ExpressionOf Postgresql r b (Array elem)) => a -> b -> Cond Postgresql r
-- | Overlap (have elements in common). ARRAY[1,4,3] && ARRAY[2,1]
-- = t
overlaps :: (ExpressionOf Postgresql r a (Array elem), ExpressionOf Postgresql r b (Array elem)) => a -> b -> Cond Postgresql r
instance [overlap ok] Eq a => Eq (Array a)
instance [overlap ok] Show a => Show (Array a)
instance [overlap ok] (ArrayElem a, PersistField a) => PurePersistField (Array a)
instance [overlap ok] (ArrayElem a, PersistField a) => SinglePersistField (Array a)
instance [overlap ok] (ArrayElem a, PersistField a) => PrimitivePersistField (Array a)
instance [overlap ok] PrimitivePersistField a => ArrayElem a
instance [overlap ok] ArrayElem a => ArrayElem (Array a)
instance [overlap ok] (ArrayElem a, PersistField a) => PersistField (Array a)