Skip to content

Instantly share code, notes, and snippets.

@kakkun61
Created January 20, 2017 20:08
Show Gist options
  • Save kakkun61/2fec454887b4a8f5d6537f0f9f4a9d9d to your computer and use it in GitHub Desktop.
Save kakkun61/2fec454887b4a8f5d6537f0f9f4a9d9d to your computer and use it in GitHub Desktop.
root@2aaacf161943:/wd/app# stack ghc -- -XTemplateHaskell -XRecordWildCards -XNoImplicitPrelude -XMultiParamTypeClasses -XOverloadedStrings -XFlexibleContexts -ddump-splices Model/Tweet.hs
[1 of 5] Compiling DataSource ( DataSource.hs, DataSource.o )
[2 of 5] Compiling Model.Table.Tweet ( Model/Table/Tweet.hs, Model/Table/Tweet.o )
Model/Table/Tweet.hs:12:3-21: Splicing declarations
defineTable "tweet"
======>
data Tweet
= Tweet {id :: !Int64,
accountId :: !Int64,
userId :: !Int64,
status :: !Int8,
created :: !LocalTime}
deriving (GHC.Show.Show)
columnOffsetsTweet :: GHC.Arr.Array Int Int
columnOffsetsTweet
= ((GHC.Arr.listArray (0 :: Int, 5))
GHC.Base.$
(GHC.List.scanl
(GHC.Num.+)
(0 :: Int)
[Database.Record.Persistable.runPersistableRecordWidth
(Database.Record.Persistable.persistableWidth ::
Database.Record.Persistable.PersistableRecordWidth Int64),
Database.Record.Persistable.runPersistableRecordWidth
(Database.Record.Persistable.persistableWidth ::
Database.Record.Persistable.PersistableRecordWidth Int64),
Database.Record.Persistable.runPersistableRecordWidth
(Database.Record.Persistable.persistableWidth ::
Database.Record.Persistable.PersistableRecordWidth Int64),
Database.Record.Persistable.runPersistableRecordWidth
(Database.Record.Persistable.persistableWidth ::
Database.Record.Persistable.PersistableRecordWidth Int8),
Database.Record.Persistable.runPersistableRecordWidth
(Database.Record.Persistable.persistableWidth ::
Database.Record.Persistable.PersistableRecordWidth LocalTime)]))
instance Database.Record.Persistable.PersistableWidth Tweet where
Database.Record.Persistable.persistableWidth
= (Database.Record.Persistable.unsafePersistableRecordWidth
GHC.Base.$ (columnOffsetsTweet GHC.Arr.! 5))
instance ProductConstructor (Int64
-> Int64 -> Int64 -> Int8 -> LocalTime -> Tweet) where
productConstructor = Tweet
instance TableDerivable Tweet where
derivedTable
= Database.Relational.Query.Table.table
"`twitter-review`.`tweet`"
["`id`", "`account_id`", "`user_id`", "`status`", "`created`"]
tableOfTweet :: Table Tweet
tableOfTweet = derivedTable
tweet :: Relation () Tweet
tweet = derivedRelation
insertTweet :: Insert Tweet
insertTweet = derivedInsert id'
insertQueryTweet ::
forall p_a7Qm. Relation p_a7Qm Tweet -> InsertQuery p_a7Qm
insertQueryTweet = derivedInsertQuery id'
id' :: Pi Tweet Int64
id'
= Database.Relational.Query.Pi.Unsafe.definePi
(columnOffsetsTweet Data.Array.Base.! 0)
accountId' :: Pi Tweet Int64
accountId'
= Database.Relational.Query.Pi.Unsafe.definePi
(columnOffsetsTweet Data.Array.Base.! 1)
userId' :: Pi Tweet Int64
userId'
= Database.Relational.Query.Pi.Unsafe.definePi
(columnOffsetsTweet Data.Array.Base.! 2)
status' :: Pi Tweet Int8
status'
= Database.Relational.Query.Pi.Unsafe.definePi
(columnOffsetsTweet Data.Array.Base.! 3)
created' :: Pi Tweet LocalTime
created'
= Database.Relational.Query.Pi.Unsafe.definePi
(columnOffsetsTweet Data.Array.Base.! 4)
instance Database.Record.KeyConstraint.HasColumnConstraint Primary Tweet where
Database.Record.KeyConstraint.columnConstraint
= Database.Record.KeyConstraint.unsafeSpecifyColumnConstraint 0
instance Database.Record.KeyConstraint.HasKeyConstraint Primary Tweet where
Database.Record.KeyConstraint.keyConstraint
= Database.Record.KeyConstraint.derivedCompositePrimary
instance HasConstraintKey Primary Tweet Int64 where
constraintKey
= Database.Relational.Query.Constraint.unsafeDefineConstraintKey
[0]
selectTweet :: Query Int64 Tweet
selectTweet = relationalQuery (primary tweet)
updateTweet :: KeyUpdate Int64 Tweet
updateTweet = primaryUpdate tableOfTweet
instance Database.Record.KeyConstraint.HasColumnConstraint NotNull Tweet where
Database.Record.KeyConstraint.columnConstraint
= Database.Record.KeyConstraint.unsafeSpecifyColumnConstraint 0
fromSqlOfTweet ::
Database.Record.FromSql.RecordFromSql Database.HDBC.SqlValue.SqlValue Tweet
fromSqlOfTweet
= ((((((GHC.Base.pure Tweet)
GHC.Base.<*> Database.Record.FromSql.recordFromSql)
GHC.Base.<*> Database.Record.FromSql.recordFromSql)
GHC.Base.<*> Database.Record.FromSql.recordFromSql)
GHC.Base.<*> Database.Record.FromSql.recordFromSql)
GHC.Base.<*> Database.Record.FromSql.recordFromSql)
toSqlOfTweet ::
Database.Record.ToSql.RecordToSql Database.HDBC.SqlValue.SqlValue Tweet
toSqlOfTweet
= Database.Record.ToSql.wrapToSql
(\ (Tweet f1_a7Qn f2_a7Qo f3_a7Qp f4_a7Qq f5_a7Qr)
-> ((Database.Record.ToSql.putRecord f1_a7Qn)
GHC.Base.>>
((Database.Record.ToSql.putRecord f2_a7Qo)
GHC.Base.>>
((Database.Record.ToSql.putRecord f3_a7Qp)
GHC.Base.>>
((Database.Record.ToSql.putRecord f4_a7Qq)
GHC.Base.>>
((Database.Record.ToSql.putRecord f5_a7Qr)
GHC.Base.>> (Database.Record.ToSql.putEmpty GHC.Tuple.())))))))
instance Database.Record.FromSql.FromSql Database.HDBC.SqlValue.SqlValue Tweet where
Database.Record.FromSql.recordFromSql = fromSqlOfTweet
instance Database.Record.ToSql.ToSql Database.HDBC.SqlValue.SqlValue Tweet where
Database.Record.ToSql.recordToSql = toSqlOfTweet
Model/Table/Tweet.hs:15:3-42: Splicing declarations
makeRecordPersistableDefault ''TweetNoId
======>
columnOffsetsTweetNoId :: GHC.Arr.Array Int Int
columnOffsetsTweetNoId
= ((GHC.Arr.listArray (0 :: Int, 4))
GHC.Base.$
(GHC.List.scanl
(GHC.Num.+)
(0 :: Int)
[Database.Record.Persistable.runPersistableRecordWidth
(Database.Record.Persistable.persistableWidth ::
Database.Record.Persistable.PersistableRecordWidth Int64),
Database.Record.Persistable.runPersistableRecordWidth
(Database.Record.Persistable.persistableWidth ::
Database.Record.Persistable.PersistableRecordWidth Int64),
Database.Record.Persistable.runPersistableRecordWidth
(Database.Record.Persistable.persistableWidth ::
Database.Record.Persistable.PersistableRecordWidth Int8),
Database.Record.Persistable.runPersistableRecordWidth
(Database.Record.Persistable.persistableWidth ::
Database.Record.Persistable.PersistableRecordWidth LocalTime)]))
instance Database.Record.Persistable.PersistableWidth TweetNoId where
Database.Record.Persistable.persistableWidth
= (Database.Record.Persistable.unsafePersistableRecordWidth
GHC.Base.$ (columnOffsetsTweetNoId GHC.Arr.! 4))
tweetNoIdAccountId' :: Pi TweetNoId Int64
tweetNoIdAccountId'
= Database.Relational.Query.Pi.Unsafe.definePi
(columnOffsetsTweetNoId Data.Array.Base.! 0)
tweetNoIdUserId' :: Pi TweetNoId Int64
tweetNoIdUserId'
= Database.Relational.Query.Pi.Unsafe.definePi
(columnOffsetsTweetNoId Data.Array.Base.! 1)
tweetNoIdStatus' :: Pi TweetNoId Int8
tweetNoIdStatus'
= Database.Relational.Query.Pi.Unsafe.definePi
(columnOffsetsTweetNoId Data.Array.Base.! 2)
tweetNoIdCreated' :: Pi TweetNoId LocalTime
tweetNoIdCreated'
= Database.Relational.Query.Pi.Unsafe.definePi
(columnOffsetsTweetNoId Data.Array.Base.! 3)
instance ProductConstructor (Int64
-> Int64 -> Int8 -> LocalTime -> TweetNoId) where
productConstructor = TweetNoId
fromSqlOfTweetNoId ::
Database.Record.FromSql.RecordFromSql Database.HDBC.SqlValue.SqlValue TweetNoId
fromSqlOfTweetNoId
= (((((GHC.Base.pure TweetNoId)
GHC.Base.<*> Database.Record.FromSql.recordFromSql)
GHC.Base.<*> Database.Record.FromSql.recordFromSql)
GHC.Base.<*> Database.Record.FromSql.recordFromSql)
GHC.Base.<*> Database.Record.FromSql.recordFromSql)
toSqlOfTweetNoId ::
Database.Record.ToSql.RecordToSql Database.HDBC.SqlValue.SqlValue TweetNoId
toSqlOfTweetNoId
= Database.Record.ToSql.wrapToSql
(\ (TweetNoId f1_aa9F f2_aa9G f3_aa9H f4_aa9I)
-> ((Database.Record.ToSql.putRecord f1_aa9F)
GHC.Base.>>
((Database.Record.ToSql.putRecord f2_aa9G)
GHC.Base.>>
((Database.Record.ToSql.putRecord f3_aa9H)
GHC.Base.>>
((Database.Record.ToSql.putRecord f4_aa9I)
GHC.Base.>> (Database.Record.ToSql.putEmpty GHC.Tuple.()))))))
instance Database.Record.FromSql.FromSql Database.HDBC.SqlValue.SqlValue TweetNoId where
Database.Record.FromSql.recordFromSql = fromSqlOfTweetNoId
instance Database.Record.ToSql.ToSql Database.HDBC.SqlValue.SqlValue TweetNoId where
Database.Record.ToSql.recordToSql = toSqlOfTweetNoId
[3 of 5] Compiling Model ( Model.hs, Model.o )
[4 of 5] Compiling Model.TweetStatus ( Model/TweetStatus.hs, Model/TweetStatus.o )
Model/TweetStatus.hs:14:1-32: Splicing declarations
derivePersistField "TweetStatus"
======>
instance PersistField TweetStatus where
toPersistValue
= (PersistText GHC.Base.. (Data.Text.pack GHC.Base.. show))
fromPersistValue
= \ dt_andE v_andF
-> case fromPersistValue v_andF of {
Left e_andG -> Left e_andG
Right s'_andH
-> case
(Text.Read.reads $ (text-1.2.2.0:Data.Text.Show.unpack s'_andH))
of {
((x_andI, _) GHC.Types.: _) -> Right x_andI
GHC.Types.[]
-> (Left
$ ((Data.Text.pack "Invalid ")
Database.Persist.TH.++
((Data.Text.pack dt_andE)
Database.Persist.TH.++
((Data.Text.pack ": ") Database.Persist.TH.++ s'_andH)))) } }
"TweetStatus"
instance persistent-2.2.4:Database.Persist.Sql.Class.PersistFieldSql TweetStatus where
persistent-2.2.4:Database.Persist.Sql.Class.sqlType _ = SqlString
[5 of 5] Compiling Model.Tweet ( Model/Tweet.hs, Model/Tweet.o )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment