packages feed

psql-utils 0.2.0.0 → 0.2.0.1

raw patch · 2 files changed

+49/−19 lines, 2 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ Database.PSQL.Types: From :: Int64 -> From
+ Database.PSQL.Types: Size :: Int64 -> Size
+ Database.PSQL.Types: [unFrom] :: From -> Int64
+ Database.PSQL.Types: [unSize] :: Size -> Int64
+ Database.PSQL.Types: as :: TableName -> String -> TableName
+ Database.PSQL.Types: instance Data.Hashable.Class.Hashable Database.PSQL.Types.From
+ Database.PSQL.Types: instance Data.Hashable.Class.Hashable Database.PSQL.Types.Size
+ Database.PSQL.Types: instance GHC.Classes.Eq Database.PSQL.Types.From
+ Database.PSQL.Types: instance GHC.Classes.Eq Database.PSQL.Types.Size
+ Database.PSQL.Types: instance GHC.Classes.Ord Database.PSQL.Types.From
+ Database.PSQL.Types: instance GHC.Classes.Ord Database.PSQL.Types.Size
+ Database.PSQL.Types: instance GHC.Enum.Enum Database.PSQL.Types.From
+ Database.PSQL.Types: instance GHC.Enum.Enum Database.PSQL.Types.Size
+ Database.PSQL.Types: instance GHC.Generics.Generic Database.PSQL.Types.From
+ Database.PSQL.Types: instance GHC.Generics.Generic Database.PSQL.Types.Size
+ Database.PSQL.Types: instance GHC.Num.Num Database.PSQL.Types.From
+ Database.PSQL.Types: instance GHC.Num.Num Database.PSQL.Types.Size
+ Database.PSQL.Types: instance GHC.Real.Integral Database.PSQL.Types.From
+ Database.PSQL.Types: instance GHC.Real.Integral Database.PSQL.Types.Size
+ Database.PSQL.Types: instance GHC.Real.Real Database.PSQL.Types.From
+ Database.PSQL.Types: instance GHC.Real.Real Database.PSQL.Types.Size
+ Database.PSQL.Types: instance GHC.Show.Show Database.PSQL.Types.From
+ Database.PSQL.Types: instance GHC.Show.Show Database.PSQL.Types.Size
+ Database.PSQL.Types: join :: TableName -> TableName -> TableName
+ Database.PSQL.Types: newtype From
+ Database.PSQL.Types: newtype Size

Files

psql-utils.cabal view
@@ -1,5 +1,5 @@ name:                psql-utils-version:             0.2.0.0+version:             0.2.0.1 synopsis:            PostgreSQL Simple util tools. description:         An easy way to use postgresql-simple library. homepage:            https://github.com/Lupino/yuntan-common/tree/master/psql-utils#readme
src/Database/PSQL/Types.hs view
@@ -1,10 +1,11 @@-{-# LANGUAGE DeriveGeneric         #-}-{-# LANGUAGE FlexibleContexts      #-}-{-# LANGUAGE FlexibleInstances     #-}-{-# LANGUAGE GADTs                 #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings     #-}-{-# LANGUAGE TypeFamilies          #-}+{-# LANGUAGE DeriveGeneric              #-}+{-# LANGUAGE FlexibleContexts           #-}+{-# LANGUAGE FlexibleInstances          #-}+{-# LANGUAGE GADTs                      #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses      #-}+{-# LANGUAGE OverloadedStrings          #-}+{-# LANGUAGE TypeFamilies               #-}  module Database.PSQL.Types   ( TablePrefix@@ -26,6 +27,8 @@   , otherEnv    , TableName+  , as+  , join   , getTableName   , Columns   , createTable@@ -62,6 +65,8 @@   , Only (..)   , SqlError (..) +  , From (..)+  , Size (..)   , OrderBy   , asc   , desc@@ -84,16 +89,31 @@ import           Database.PostgreSQL.Simple.FromRow (FromRow (..), field) import           GHC.Generics                       (Generic) -type From = Int64-type Size = Int64+newtype From = From { unFrom :: Int64 }+  deriving (Generic, Eq, Num, Integral, Real, Ord, Enum)+instance Show From where+  show = show . unFrom +instance Hashable From +newtype Size = Size {unSize :: Int64}+  deriving (Generic, Eq, Num, Integral, Real, Ord, Enum)++instance Show Size where+  show = show . unSize++instance Hashable Size+ newtype TablePrefix = TablePrefix String   deriving (Show)  instance IsString TablePrefix where   fromString = TablePrefix +getPrefix :: TablePrefix -> String+getPrefix (TablePrefix "") = ""+getPrefix (TablePrefix x)  = x ++ "_"+ type PSQLPool = Pool Connection  newtype PSQL a = PSQL {unPSQL :: TablePrefix -> Connection -> IO a}@@ -159,17 +179,28 @@ simpleEnv :: Pool Connection -> TablePrefix -> u -> SimpleEnv u simpleEnv pool prefix env0 = SimpleEnv{pc=pool, pf = prefix, pu = env0} -newtype TableName = TableName String+data TableName =+  TableName String+  | TableNameAs TableName String+  | TableNameJoin TableName TableName   deriving (Show)  instance IsString TableName where   fromString = TableName +as :: TableName -> String -> TableName+tn `as` asName = TableNameAs tn asName++join :: TableName -> TableName -> TableName+name1 `join` name2 = TableNameJoin name1 name2+ getTableName :: TablePrefix -> TableName -> String-getTableName (TablePrefix "") (TableName name) =-  concat ["\"", name, "\"" ]-getTableName (TablePrefix prefix) (TableName name) =-  concat ["\"", prefix, "_", name, "\"" ]+getTableName prefix (TableName name) =+  concat ["\"", getPrefix prefix, name, "\"" ]+getTableName prefix (TableNameAs name asName) =+  concat [ getTableName prefix name, " AS ", asName ]+getTableName prefix (TableNameJoin name1 name2) =+  concat [ getTableName prefix name1, ", ", getTableName prefix name2 ]  newtype Column = Column { unColumn :: String }   deriving (Show)@@ -204,10 +235,9 @@   fromString = IndexName  getIndexName :: TablePrefix -> TableName -> IndexName -> String-getIndexName (TablePrefix "") (TableName tn) (IndexName name) =-  concat [ "\"", tn, "_", name, "\"" ]-getIndexName (TablePrefix prefix) (TableName tn) (IndexName name) =-  concat [ "\"", prefix, "_", tn , "_", name, "\"" ]+getIndexName prefix (TableName tn) (IndexName name) =+  concat [ "\"", getPrefix prefix, tn , "_", name, "\"" ]+getIndexName _ _ _ = error "no implement"   createIndex :: Bool -> TableName -> IndexName -> Columns -> PSQL Int64