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