beam-core 0.10.1.0 → 0.10.2.0
raw patch · 7 files changed
+38/−11 lines, 7 filesnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value Data.ByteString.Internal.ByteString
+ Database.Beam.Backend.SQL.AST: SchemaName :: Text -> SchemaName
+ Database.Beam.Backend.SQL.AST: data SchemaName
+ Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value Data.ByteString.Internal.Type.ByteString
+ Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.IsSql92SchemaNameSyntax Database.Beam.Backend.SQL.AST.SchemaName
+ Database.Beam.Backend.SQL.AST: instance GHC.Classes.Eq Database.Beam.Backend.SQL.AST.SchemaName
+ Database.Beam.Backend.SQL.AST: instance GHC.Classes.Ord Database.Beam.Backend.SQL.AST.SchemaName
+ Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.SchemaName
+ Database.Beam.Backend.SQL.Builder: instance Database.Beam.Backend.SQL.SQL92.IsSql92SchemaNameSyntax Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder
+ Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.FromBackendRow be a => Database.Beam.Backend.SQL.Row.FromBackendRow be (Data.Functor.Identity.Identity a)
+ Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.FromBackendRow be x => Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Generics.K1 GHC.Generics.R (Database.Beam.Backend.Types.Exposed x)) (GHC.Generics.K1 GHC.Generics.R (Data.Functor.Identity.Identity x))
+ Database.Beam.Backend.SQL.SQL92: class IsSql92SchemaNameSyntax schemaName
+ Database.Beam.Backend.SQL.SQL92: schemaName :: IsSql92SchemaNameSyntax schemaName => Text -> schemaName
- Database.Beam: class Generic a
+ Database.Beam: class () => Generic a
- Database.Beam: class Typeable (a :: k)
+ Database.Beam: class () => Typeable (a :: k)
- Database.Beam: data Identity a
+ Database.Beam: data () => Identity a
- Database.Beam.Backend.Internal.Compat: type PreferExplicitSize implicit explicit = 'Text "The size of " :<>: 'ShowType implicit :<>: 'Text " is machine-dependent. Use an explicitly sized integer such as " :<>: 'ShowType explicit :<>: 'Text " instead."
+ Database.Beam.Backend.Internal.Compat: type PreferExplicitSize implicit explicit = 'Text "The size of " ':<>: 'ShowType implicit ':<>: 'Text " is machine-dependent. Use an explicitly sized integer such as " ':<>: 'ShowType explicit ':<>: 'Text " instead."
- Database.Beam.Schema.Tables: data ( (f :: k -> Type) :*: (g :: k -> Type) ) (p :: k)
+ Database.Beam.Schema.Tables: data () => ( (f :: k -> Type) :*: (g :: k -> Type) ) (p :: k)
Files
- ChangeLog.md +10/−3
- Database/Beam/Backend/SQL/AST.hs +6/−0
- Database/Beam/Backend/SQL/Builder.hs +3/−0
- Database/Beam/Backend/SQL/Row.hs +5/−0
- Database/Beam/Backend/SQL/SQL92.hs +4/−0
- Database/Beam/Schema/Tables.hs +3/−1
- beam-core.cabal +7/−7
ChangeLog.md view
@@ -1,17 +1,24 @@+# 0.10.2.0++## Added features++ * Added support for creating database schemas and associated tables with `createDatabaseSchema`, `createTableWithSchema`, and `existingDatabaseSchema` (#716).+ * Added `FromBackendRow` instance for `Identity` (#717).+ # 0.10.1.0 -# Added features+## Added features * Allow embedding database types * Loosen some version bounds # 0.10.0.0 -# Bug fixes+## Bug fixes * Make sure lateral join names do not overlap -# Addded features+## Addded features * Add `runSelectReturningFirst` * `IN (SELECT ...)` syntax via `inQuery_`
Database/Beam/Backend/SQL/AST.hs view
@@ -464,6 +464,12 @@ groupByExpressions = Grouping +data SchemaName = SchemaName Text+ deriving (Show, Eq, Ord)++instance IsSql92SchemaNameSyntax SchemaName where+ schemaName = SchemaName+ data TableName = TableName (Maybe Text) Text deriving (Show, Eq, Ord)
Database/Beam/Backend/SQL/Builder.hs view
@@ -405,6 +405,9 @@ buildSepBy (byteString ", ") (map buildSql vs) <> byteString ")") vss) +instance IsSql92SchemaNameSyntax SqlSyntaxBuilder where+ schemaName = SqlSyntaxBuilder . quoteSql+ instance IsSql92TableNameSyntax SqlSyntaxBuilder where tableName Nothing t = SqlSyntaxBuilder $ quoteSql t tableName (Just s) t = SqlSyntaxBuilder $ quoteSql s <> byteString "." <> quoteSql t
Database/Beam/Backend/SQL/Row.hs view
@@ -102,6 +102,8 @@ valuesNeeded :: Proxy be -> Proxy a -> Int valuesNeeded _ _ = 1 +deriving instance FromBackendRow be a => FromBackendRow be (Identity a)+ class GFromBackendRow be (exposed :: Type -> Type) rep where gFromBackendRow :: Proxy exposed -> FromBackendRowM be (rep ()) gValuesNeeded :: Proxy be -> Proxy exposed -> Proxy rep -> Int@@ -115,6 +117,9 @@ gFromBackendRow _ = (:*:) <$> gFromBackendRow (Proxy @aExp) <*> gFromBackendRow (Proxy @bExp) gValuesNeeded be _ _ = gValuesNeeded be (Proxy @aExp) (Proxy @a) + gValuesNeeded be (Proxy @bExp) (Proxy @b) instance FromBackendRow be x => GFromBackendRow be (K1 R (Exposed x)) (K1 R x) where+ gFromBackendRow _ = K1 <$> fromBackendRow+ gValuesNeeded be _ _ = valuesNeeded be (Proxy @x)+instance FromBackendRow be x => GFromBackendRow be (K1 R (Exposed x)) (K1 R (Identity x)) where gFromBackendRow _ = K1 <$> fromBackendRow gValuesNeeded be _ _ = valuesNeeded be (Proxy @x) instance FromBackendRow be (t Identity) => GFromBackendRow be (K1 R (t Exposed)) (K1 R (t Identity)) where
Database/Beam/Backend/SQL/SQL92.hs view
@@ -343,6 +343,10 @@ ascOrdering, descOrdering :: Sql92OrderingExpressionSyntax ord -> ord +class IsSql92SchemaNameSyntax schemaName where+ schemaName :: Text {-^ Schema name -}+ -> schemaName+ class IsSql92TableNameSyntax tblName where tableName :: Maybe Text {-^ Schema -} -> Text {-^ Table name -}
Database/Beam/Schema/Tables.hs view
@@ -187,7 +187,9 @@ -- > db = defaultDbSettings `withDbModification` -- > dbModification { -- > -- Change default name "table1" to "Table_1". Change the name of "table1Field1" to "first_name"--- > table1 = modifyTable (\_ -> "Table_1") (tableModification { table1Field1 = "first_name" }+-- > table1 = setEntityName "Table_1" <> modifyTableFields tableModification { +-- > table1Field1 = "first_name" +-- > } -- > } withDbModification :: forall db be entity . Database be db
beam-core.cabal view
@@ -2,7 +2,7 @@ -- see http://haskell.org/cabal/users-guide/ name: beam-core-version: 0.10.1.0+version: 0.10.2.0 synopsis: Type-safe, feature-complete SQL query and manipulation interface for Haskell description: Beam is a Haskell library for type-safe querying and manipulation of SQL databases. Beam is modular and supports various backends. In order to use beam, you will need to use@@ -61,21 +61,21 @@ Database.Beam.Schema.Lenses build-depends: base >=4.11 && <5.0,- aeson >=0.11 && <2.2,- text >=1.2.2.0 && <2.1,- bytestring >=0.10 && <0.12,+ aeson >=0.11 && <2.3,+ text >=1.2.2.0 && <2.2,+ bytestring >=0.10 && <0.13, mtl >=2.2.1 && <2.4, microlens >=0.4 && <0.5,- ghc-prim >=0.5 && <0.11,+ ghc-prim >=0.5 && <0.12, free >=4.12 && <5.3, dlist >=0.7.1.2 && <1.1, time >=1.6 && <1.13, hashable >=1.2.4.0 && <1.5, network-uri >=2.6 && <2.7,- containers >=0.5 && <0.7,+ containers >=0.5 && <0.8, scientific >=0.3 && <0.4, vector >=0.11 && <0.14,- vector-sized >=0.5 && <1.6,+ vector-sized >=0.5 && <1.7, tagged >=0.8 && <0.9 Default-language: Haskell2010