handle inserting no data correctly

with "insert into [table] default values"
This commit is contained in:
Adam C. Baker
2014-10-10 16:52:01 -07:00
parent 0879ed7110
commit a973020748
2 changed files with 10 additions and 2 deletions
+4 -2
View File
@@ -165,9 +165,11 @@ placeholders :: String -> SqlRow -> String
placeholders symbol = intercalate ", " . map (const symbol) . getRow
insertClause :: Schema -> Text -> SqlRow -> QuotedSql
insertClause schema table (SqlRow []) =
("insert into %I.%I default values returning *", [toSql schema, toSql table])
insertClause schema table row =
("insert into %I.%I (" ++ placeholders "%I" row ++ ")",
map toSql $ cs schema : table : sqlRowColumns row)
("insert into %I.%I (" ++ placeholders "%I" row ++ ")",
map toSql $ cs schema : table : sqlRowColumns row)
<> (" values (" ++ placeholders "?" row ++ ") returning *", sqlRowValues row)