DSH 0.6.2 → 0.6.6
raw patch · 4 files changed
+16/−7 lines, 4 files
Files
- DSH.cabal +1/−1
- src/Database/DSH.hs +1/−1
- src/Database/DSH/CSV.hs +13/−4
- src/Database/DSH/QQ.hs +1/−1
DSH.cabal view
@@ -1,5 +1,5 @@ Name: DSH-Version: 0.6.2+Version: 0.6.6 Synopsis: Database Supported Haskell Description: This is a Haskell library for database-supported program execution. Using
src/Database/DSH.hs view
@@ -43,7 +43,7 @@ import Database.DSH.Data (Q, QA, TA, table, tableDB, tableCSV, tableWithKeys, BasicType, View, view, fromView, tuple, record) import Database.DSH.QQ (qc) import Database.DSH.TH (generateRecords, generateInstances)-import Database.DSH.CSV (csvExport)+import Database.DSH.CSV (csvExport, csvExportHandle, csvExportStdout) import Database.DSH.Combinators
src/Database/DSH/CSV.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE TemplateHaskell, RelaxedPolyRec, OverloadedStrings #-} -module Database.DSH.CSV (csvImport, csvExport) where+module Database.DSH.CSV (csvImport, csvExport, csvExportHandle, csvExportStdout) where import Database.DSH.Data import Database.DSH.Impossible@@ -10,8 +10,17 @@ import qualified Data.Text as T import qualified Data.Text.IO as T -csvExport :: (TA a) => FilePath -> [a] -> IO ()-csvExport file as = T.writeFile file csvContent+import qualified System.IO as IO+import System.IO (Handle)++csvExport :: (QA a) => FilePath -> [a] -> IO ()+csvExport file as = IO.withFile file IO.WriteMode (\handle -> csvExportHandle handle as)++csvExportStdout :: (QA a) => [a] -> IO ()+csvExportStdout = csvExportHandle IO.stdout++csvExportHandle :: (QA a) => Handle -> [a] -> IO ()+csvExportHandle handle as = T.hPutStr handle csvContent where csvContent :: Text csvContent = T.unlines (map (toRow . toNorm) as) @@ -26,7 +35,7 @@ toRow :: Norm -> Text toRow e = case e of- ListN _ _ -> $impossible+ ListN _ _ -> "Nesting" UnitN _ -> quote "()" BoolN b _ -> quote (T.pack (show b)) CharN c _ -> quote (escape (T.singleton c))
src/Database/DSH/QQ.hs view
@@ -260,7 +260,7 @@ patToExp :: Pat -> Exp patToExp (PVar x) = var x-patToExp (PTuple [x, y]) = fromViewF $ tuple [patToExp x, patToExp y]+patToExp (PTuple ps) = fromViewF $ tuple $ map patToExp ps patToExp (PApp (Special UnitCon) []) = unit patToExp PWildCard = unit patToExp p = error $ "Pattern not suppoted by ferry: " ++ show p