packages feed

mssql-simple 0.1.0.2 → 0.1.0.3

raw patch · 4 files changed

+51/−52 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

README.md view
@@ -33,7 +33,7 @@  * 7.1 Revision 1 (SQL Server 2000 SP1 and later) -* Tested with SQL Server 2008 R2+* Tested with SQL Server 2008 R2, SQL Server 2014   
mssql-simple.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 4c754e412dcc65dfd60204d142f6236964b73631861dd5cd8396f44c739a2cb8+-- hash: a2df8ed81dd9de80929250fca8c1a1e6d0f352cead28b201c8aa6ed2f1c96799  name:           mssql-simple-version:        0.1.0.2+version:        0.1.0.3 synopsis:       SQL Server client library implemented in Haskell description:    Please see the README on GitHub at <https://github.com/mitsuji/mssql-simple#readme> category:       Database
src/Database/MSSQLServer/Query/ResultSet.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE FlexibleInstances #-}  module Database.MSSQLServer.Query.ResultSet ( ResultSet (..)+                                            , extractTableStreams                                             , Row (..)                                             ) where @@ -18,89 +19,75 @@   instance ResultSet () where-  fromTokenStreams = f . extractStreams+  fromTokenStreams = f . extractTableStreams     where       f [] = ()       f _ = error "fromTokenStreams: List length must be 0"  instance (Row a) => ResultSet [a] where-  fromTokenStreams = f . extractStreams+  fromTokenStreams = f . extractTableStreams     where-      f [v1] = b1+      f [(m1,r1)] = b1         where-          !b1 = rowList v1+          !b1 = fromListOfRawBytes m1 <$> r1       f _ = error "fromTokenStreams: List length must be 1"  instance (Row a, Row b) => ResultSet ([a],[b]) where-  fromTokenStreams = f . extractStreams+  fromTokenStreams = f . extractTableStreams     where-      f [v1,v2] = (b1,b2)+      f [(m1,r1),(m2,r2)] = (b1,b2)         where-          !b1 = rowList v1-          !b2 = rowList v2+          !b1 = fromListOfRawBytes m1 <$> r1+          !b2 = fromListOfRawBytes m2 <$> r2       f _ = error "fromTokenStreams: List length must be 2"  instance (Row a, Row b, Row c) => ResultSet ([a],[b],[c]) where-  fromTokenStreams = f . extractStreams+  fromTokenStreams = f . extractTableStreams     where-      f [v1,v2,v3] = (b1,b2,b3)+      f [(m1,r1),(m2,r2),(m3,r3)] = (b1,b2,b3)         where-          !b1 = rowList v1-          !b2 = rowList v2-          !b3 = rowList v3+          !b1 = fromListOfRawBytes m1 <$> r1+          !b2 = fromListOfRawBytes m2 <$> r2+          !b3 = fromListOfRawBytes m3 <$> r3       f _ = error "fromTokenStreams: List length must be 3"  instance (Row a, Row b, Row c, Row d) => ResultSet ([a],[b],[c],[d]) where-  fromTokenStreams = f . extractStreams+  fromTokenStreams = f . extractTableStreams     where-      f [v1,v2,v3,v4] = (b1,b2,b3,b4)+      f [(m1,r1),(m2,r2),(m3,r3),(m4,r4)] = (b1,b2,b3,b4)         where-          !b1 = rowList v1-          !b2 = rowList v2-          !b3 = rowList v3-          !b4 = rowList v4+          !b1 = fromListOfRawBytes m1 <$> r1+          !b2 = fromListOfRawBytes m2 <$> r2+          !b3 = fromListOfRawBytes m3 <$> r3+          !b4 = fromListOfRawBytes m4 <$> r4       f _ = error "fromTokenStreams: List length must be 4"  instance (Row a, Row b, Row c, Row d, Row e) => ResultSet ([a],[b],[c],[d],[e]) where-  fromTokenStreams = f . extractStreams+  fromTokenStreams = f . extractTableStreams     where-      f [v1,v2,v3,v4,v5] = (b1,b2,b3,b4,b5)+      f [(m1,r1),(m2,r2),(m3,r3),(m4,r4),(m5,r5)] = (b1,b2,b3,b4,b5)         where-          !b1 = rowList v1-          !b2 = rowList v2-          !b3 = rowList v3-          !b4 = rowList v4-          !b5 = rowList v5+          !b1 = fromListOfRawBytes m1 <$> r1+          !b2 = fromListOfRawBytes m2 <$> r2+          !b3 = fromListOfRawBytes m3 <$> r3+          !b4 = fromListOfRawBytes m4 <$> r4+          !b5 = fromListOfRawBytes m5 <$> r5       f _ = error "fromTokenStreams: List length must be 5" -       --- (TSColMetaData,[TSRow])-rowList :: (Row a) => (TokenStream,[TokenStream]) -> [a]-rowList = \(tsCmd,tsRss) ->-  let (TSColMetaData (maybeCmd)) = tsCmd-      cds = case (\(ColMetaData x) -> x) <$> maybeCmd of-        Nothing -> error "rowList: ColMetaData is necessary"-        Just cds' -> cds'-      datas = (\(TSRow row) -> rawBytes <$> row) <$> tsRss-  in map (fromListOfRawBytes cds) datas-  where-    rawBytes :: RowColumnData -> RawBytes-    rawBytes (RCDOrdinal dt) = dt-    rawBytes (RCDLarge _ _ dt) = dt  ---- [(TSColMetaData,[TSRow])]-extractStreams :: [TokenStream] -> [(TokenStream,[TokenStream])]-extractStreams = f . ( filter $ \x -> isTSColMetaData x || isTSRow x )+extractTableStreams :: [TokenStream] -> [([MetaColumnData],[[RawBytes]])]+extractTableStreams = map extract . span' . ( filter $ \x -> isTSColMetaData x || isTSRow x )   where-    f :: [TokenStream] -> [(TokenStream,[TokenStream])]-    f [] = []-    f (cmd:xs) =+    -- [(TSColMetaData,[TSRow])]+    span' :: [TokenStream] -> [(TokenStream,[TokenStream])]+    span' [] = []+    span' (cmd@TSColMetaData{}:xs) =       let         (rs,xs') = span isTSRow xs-      in (cmd,rs):f xs'+      in (cmd,rs):span' xs'+    span' _ = error "extractTableStrams: TSColMetaData is necesarry"      isTSColMetaData :: TokenStream -> Bool     isTSColMetaData (TSColMetaData{}) = True@@ -110,7 +97,18 @@     isTSRow (TSRow{}) = True     isTSRow _ = False -+    extract :: (TokenStream,[TokenStream]) -> ([MetaColumnData],[[RawBytes]])+    extract = \(tsCmd,tsRss) ->+      let (TSColMetaData (maybeCmd)) = tsCmd+          cds = case (\(ColMetaData x) -> x) <$> maybeCmd of+            Nothing -> error "extractTableStrams: ColMetaData is necessary"+            Just cds' -> cds'+          datas = (\(TSRow row) -> rawBytes <$> row) <$> tsRss+      in (cds, datas)+      where+        rawBytes :: RowColumnData -> RawBytes+        rawBytes (RCDOrdinal dt) = dt+        rawBytes (RCDLarge _ _ dt) = dt   mcdTypeInfo :: MetaColumnData -> TypeInfo
src/Database/MSSQLServer/Query/RpcQuerySet.hs view
@@ -11,6 +11,7 @@                                               , RpcParamSet (..)                                               , RpcParam (..)                                               , RpcParamName+                                              , rpcReqBatchParam                                               ) where