Revert "custom primary keys (not composite, yet) supported on projections"

This reverts commit 3f31f41a71.
This commit is contained in:
Alberto Valverde 2014-12-23 23:57:03 +01:00
parent 965c7a55c7
commit 761ef03b03

View File

@ -8,7 +8,6 @@
, OverloadedStrings , OverloadedStrings
, UndecidableInstances , UndecidableInstances
, ScopedTypeVariables , ScopedTypeVariables
, InstanceSigs
#-} #-}
-- | This is an internal module, anything exported by this module -- | This is an internal module, anything exported by this module
-- may change without a major version bump. Please use only -- may change without a major version bump. Please use only
@ -61,8 +60,7 @@ import Data.Monoid (Monoid(..), (<>))
import Data.Proxy (Proxy(..)) import Data.Proxy (Proxy(..))
import Database.Esqueleto.Internal.PersistentImport import Database.Esqueleto.Internal.PersistentImport
import Database.Persist.Sql.Util ( import Database.Persist.Sql.Util (
entityColumnNames, entityColumnCount, parseEntityValues, isIdField entityColumnNames, entityColumnCount, parseEntityValues)
, hasCompositeKey)
import qualified Control.Monad.Trans.State as S import qualified Control.Monad.Trans.State as S
import qualified Control.Monad.Trans.Writer as W import qualified Control.Monad.Trans.Writer as W
import qualified Data.Conduit as C import qualified Data.Conduit as C
@ -338,16 +336,8 @@ instance Esqueleto SqlQuery SqlExpr SqlBackend where
sub_select = sub SELECT sub_select = sub SELECT
sub_selectDistinct = sub SELECT_DISTINCT sub_selectDistinct = sub SELECT_DISTINCT
(^.) :: forall val typ. (PersistEntity val, PersistField typ) => EEntity ident ^. field =
SqlExpr (Entity val) -> EntityField val typ -> SqlExpr (Value typ) ERaw Never $ \info -> (useIdent info ident <> ("." <> fieldName info field), [])
EEntity ident ^. field
| isIdField field && hasCompositeKey ed
= ERaw Parens $
\info@(conn,_) -> (uncommas (map (\a -> useIdent info ident <> "." <> TLB.fromText (connEscapeName conn (fieldDB a))) (compositeFields pdef)), [])
| otherwise = ERaw Never $ \info -> (useIdent info ident <> ("." <> fieldName info field), [])
where
ed = entityDef $ getEntityVal $ (Proxy :: Proxy (SqlExpr (Entity val)))
Just pdef = entityPrimary ed
EMaybe r ?. field = maybelize (r ^. field) EMaybe r ?. field = maybelize (r ^. field)
where where