HulkImport-0.1.0.0: src/CSV/SQL.hs
module CSV.SQL
(toSQL)
where
import CSV.Types
import Text.PrettyPrint
import qualified Data.Text as T
-- | Converts CSV data to the Values clause of an insert statement
toSQL :: CSV T.Text -> String
toSQL = render . csvDoc
csvDoc :: CSV T.Text -> Doc
csvDoc (CSV rows) = hcat (text "VALUES " : fmap rowDoc rows)
<> text "\nGO"
rowDoc :: [T.Text] -> Doc
rowDoc =
(<> text ", ") .
parens
. hcat
. punctuate (text ",")
. map (text . T.unpack)