on dev help sign in
factor out renderSet
ca36834Eitan Chatav
squeel-postgresql/src/Squeel/PostgreSQL/Statement.hs+12−21
@@ -783,6 +783,17 @@ set = Comp . Just
783same :: (Maybe :.: Expression params tables) x
783same :: (Maybe :.: Expression params tables) x
784same = Comp Nothing
784same = Comp Nothing
785
785
786+renderSet
787+ :: Aliased (Maybe :.: Expression params '[table ::: columns]) column
788+ -> Maybe ByteString
789+renderSet = \case
790+ Comp (Just expression) `As` Alias column -> Just $ mconcat
791+ [ fromString $ symbolVal' column
792+ , " = "
793+ , renderExpression expression
794+ ]
795+ Comp Nothing `As` _ -> Nothing
796+
786update
797update
787 :: (HasTable table schema columns, SListI columns)
798 :: (HasTable table schema columns, SListI columns)
788 => Alias table
799 => Alias table
@@ -796,17 +807,7 @@ update (Alias table) columns wh = UnsafeStatement $ mconcat
796 , ByteString.intercalate ", " . catMaybes . hcollapse $
807 , ByteString.intercalate ", " . catMaybes . hcollapse $
797 hmap (K . renderSet) columns
808 hmap (K . renderSet) columns
798 , " WHERE ", renderExpression wh, ";"
809 , " WHERE ", renderExpression wh, ";"
799− ] where
810+ ]
800− renderSet
801− :: Aliased (Maybe :.: Expression params tables) column
802− -> Maybe ByteString
803− renderSet = \case
804− Comp (Just expression) `As` Alias column -> Just $ mconcat
805− [ fromString $ symbolVal' column
806− , " = "
807− , renderExpression expression
808− ]
809− Comp Nothing `As` _ -> Nothing
810
811
811upsertInto
812upsertInto
812 :: (SListI columns, HasTable table schema columns)
813 :: (SListI columns, HasTable table schema columns)
@@ -828,16 +829,6 @@ upsertInto (Alias table) inserts updates wh = UnsafeStatement . mconcat $
828 hmap (K . renderSet) updates
829 hmap (K . renderSet) updates
829 , " WHERE ", renderExpression wh, ";"
830 , " WHERE ", renderExpression wh, ";"
830 ] where
831 ] where
831− renderSet
832− :: Aliased (Maybe :.: Expression params '[table ::: columns]) column
833− -> Maybe ByteString
834− renderSet = \case
835− Comp (Just expression) `As` Alias column -> Just $ mconcat
836− [ fromString $ symbolVal' column
837− , " = "
838− , renderExpression expression
839− ]
840− Comp Nothing `As` _ -> Nothing
841 aliases = hcollapse $ hmap
832 aliases = hcollapse $ hmap
842 (\ (_ `As` Alias name) -> K (fromString (symbolVal' name)))
833 (\ (_ `As` Alias name) -> K (fromString (symbolVal' name)))
843 inserts
834 inserts