@ -84,8 +84,11 @@ getData db tickerId interval@(TimeInterval start end) (Timeframe tfSec) = do
@@ -84,8 +84,11 @@ getData db tickerId interval@(TimeInterval start end) (Timeframe tfSec) = do
getDataConduit :: ( MonadIO m ) => MdsHandle -> TickerId -> TimeInterval -> Timeframe -> ConduitT () Bar m ()
getDataConduit db tickerId ( TimeInterval start end ) ( Timeframe tfSec ) = do
liftIO $ debugM " DB " " Preparing query "
stmt <- liftIO $ prepare db " SELECT timestamp, timeframe, open, high, low, close, volume FROM bars WHERE ticker LIKE ? AND timeframe == ? AND timestamp >= ? AND timestamp <= ? ORDER BY timestamp ASC; "
liftIO $ debugM " DB " " Executing query "
_ <- liftIO $ execute stmt [ ( toSql . T . unpack ) tickerId , toSql tfSec , ( toSql . utcTimeToPOSIXSeconds ) start , ( toSql . utcTimeToPOSIXSeconds ) end ]
liftIO $ debugM " DB " " Query executed "
whileJust_ ( liftIO $ fetchRow stmt ) $ \ row -> case barFromResult tickerId row of
Just bar -> yield bar
Nothing -> return ()