@@ -586,29 +586,6 @@ subselect
586 -> TableExpression params schema '[table]
586 -> TableExpression params schema '[table]
587subselect selection = join (Subselect selection)
587subselect selection = join (Subselect selection)
589−{-----------------------------------------
591−-----------------------------------------}
594− :: (SListI columns, HasTable table schema columns)
596− -> NP (Aliased (Expression params '[])) columns
597− -> Statement params '[] schema schema
598−insertInto (Alias table) expressions = UnsafeStatement $ "INSERT INTO "
599− <> fromString (symbolVal' table)
600− <> " (" <> ByteString.intercalate ", " aliases
602− <> ByteString.intercalate ", " values
605− aliases = hcollapse $ hmap
606− (\ (_ `As` Alias name) -> K (fromString (symbolVal' name)))
608− values = hcollapse $ hmap
609− (\ (expression `As` _) -> K (renderExpression expression))
612{-----------------------------------------
589{-----------------------------------------
613CREATE statements
590CREATE statements
614-----------------------------------------}
591-----------------------------------------}
@@ -773,6 +750,58 @@ instance {-# OVERLAPPABLE #-}
773 DropTable table schema0 schema1
750 DropTable table schema0 schema1
774 => DropTable table (table' ': schema0) (table' ': schema1)
751 => DropTable table (table' ': schema0) (table' ': schema1)
753+{-----------------------------------------
755+-----------------------------------------}
758+ :: (SListI columns, HasTable table schema columns)
760+ -> NP (Aliased (Expression params '[])) columns
761+ -> Statement params '[] schema schema
762+insertInto (Alias table) expressions = UnsafeStatement $ "INSERT INTO "
763+ <> fromString (symbolVal' table)
764+ <> " (" <> ByteString.intercalate ", " aliases
766+ <> ByteString.intercalate ", " values
769+ aliases = hcollapse $ hmap
770+ (\ (_ `As` Alias name) -> K (fromString (symbolVal' name)))
772+ values = hcollapse $ hmap
773+ (\ (expression `As` _) -> K (renderExpression expression))
777+ :: (SListI columns, SListI results, HasTable table schema columns)
779+ -> NP (Aliased (Expression params '[])) columns
780+ -> NP (Aliased (Expression params '[table ::: columns])) results
781+ -> Statement params results schema schema
782+insertIntoReturning (Alias table) inserts results
783+ = UnsafeStatement . mconcat $
785+ , fromString (symbolVal' table)
786+ , " (" <> ByteString.intercalate ", " aliases
788+ , ByteString.intercalate ", " values
790+ , renderList results
794+ aliases = hcollapse $ hmap
795+ (\ (_ `As` Alias name) -> K (fromString (symbolVal' name)))
797+ values = hcollapse $ hmap
798+ (\ (expression `As` _) -> K (renderExpression expression))
801+ = ByteString.intercalate ", "
803+ . hmap (K . renderAliased renderExpression)
776{-----------------------------------------
805{-----------------------------------------
777UPDATE statements
806UPDATE statements
778-----------------------------------------}
807-----------------------------------------}