module Database.Persist.ODBCTypes where
import Data.Text (Text)
import Database.Persist.Sql
data DBType = MySQL | Postgres | MSSQL { mssql2012::Bool} | Oracle { oracle12c::Bool } | DB2 | Sqlite { sqlite3619::Bool } deriving (Show,Read)
mysql,postgres,mssqlMin2012,mssql,oracleMin12c,oracle,db2,sqlite,sqliteMin3619::DBType
mysql = MySQL
postgres = Postgres
mssqlMin2012 = MSSQL True
mssql = MSSQL False
oracleMin12c = Oracle True
oracle = Oracle False
db2 = DB2
sqlite = Sqlite False
sqliteMin3619 = Sqlite True
data MigrationStrategy = MigrationStrategy {
dbmsLimitOffset :: (Int,Int) -> Bool -> Text -> Text
,dbmsMigrate :: [EntityDef] -> (Text -> IO Statement) -> EntityDef -> IO (Either [Text] [(Bool, Text)])
,dbmsInsertSql :: EntityDef -> [PersistValue] -> InsertSqlResult
,dbmsEscape :: DBName -> Text
,dbmsType :: DBType
}