beam-core 0.11.0.0 → 0.11.1.0
raw patch · 11 files changed
+726/−12 lines, 11 filesdep −ghc-primdep ~aesonPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies removed: ghc-prim
Dependency ranges changed: aeson
API changes (from Hackage documentation)
- Database.Beam.Backend.SQL: instance (Database.Beam.Backend.SQL.MonadBeam be m, GHC.Base.Monoid s) => Database.Beam.Backend.SQL.MonadBeam be (Control.Monad.Trans.Writer.Lazy.WriterT s m)
- Database.Beam.Backend.SQL: instance (Database.Beam.Backend.SQL.MonadBeam be m, GHC.Base.Monoid s) => Database.Beam.Backend.SQL.MonadBeam be (Control.Monad.Trans.Writer.Strict.WriterT s m)
- Database.Beam.Backend.SQL: instance (Database.Beam.Backend.SQL.MonadBeam be m, GHC.Base.Monoid w) => Database.Beam.Backend.SQL.MonadBeam be (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
- Database.Beam.Backend.SQL: instance (Database.Beam.Backend.SQL.MonadBeam be m, GHC.Base.Monoid w) => Database.Beam.Backend.SQL.MonadBeam be (Control.Monad.Trans.RWS.Strict.RWST r w s m)
- Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Base.String
- Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Int.Int16
- Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Int.Int32
- Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Int.Int64
- Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Word.Word16
- Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Word.Word32
- Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Word.Word64
- Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value x => Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value (GHC.Maybe.Maybe x)
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.Command
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.ComparatorQuantifier
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.DataType
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.Delete
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.Expression
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.ExtractField
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.FieldName
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.From
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.Grouping
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.Insert
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.InsertValues
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.Ordering
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.Projection
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.SchemaName
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.Select
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.SelectTable
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.SetQuantifier
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.TableName
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.TableSource
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.Update
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.Value
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.WindowFrame
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.WindowFrameBound
- Database.Beam.Backend.SQL.AST: instance GHC.Show.Show Database.Beam.Backend.SQL.AST.WindowFrameBounds
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be m, GHC.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be (Control.Monad.Trans.Writer.Lazy.WriterT r m)
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be m, GHC.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be (Control.Monad.Trans.Writer.Strict.WriterT r m)
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be m, GHC.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be m, GHC.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be (Control.Monad.Trans.RWS.Strict.RWST r w s m)
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be m, GHC.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be (Control.Monad.Trans.Writer.Lazy.WriterT r m)
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be m, GHC.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be (Control.Monad.Trans.Writer.Strict.WriterT r m)
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be m, GHC.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be m, GHC.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be (Control.Monad.Trans.RWS.Strict.RWST r w s m)
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be m, GHC.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be (Control.Monad.Trans.Writer.Lazy.WriterT r m)
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be m, GHC.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be (Control.Monad.Trans.Writer.Strict.WriterT r m)
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be m, GHC.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
- Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be m, GHC.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be (Control.Monad.Trans.RWS.Strict.RWST r w s m)
- Database.Beam.Backend.SQL.BeamExtensions: instance GHC.Base.Monoid (Database.Beam.Backend.SQL.BeamExtensions.InaccessibleQAssignment be)
- Database.Beam.Backend.SQL.BeamExtensions: instance GHC.Base.Semigroup (Database.Beam.Backend.SQL.BeamExtensions.InaccessibleQAssignment be)
- Database.Beam.Backend.SQL.Builder: instance Control.Monad.Fail.MonadFail Database.Beam.Backend.SQL.Builder.SqlSyntaxM
- Database.Beam.Backend.SQL.Builder: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder GHC.Int.Int32
- Database.Beam.Backend.SQL.Builder: instance GHC.Base.Applicative Database.Beam.Backend.SQL.Builder.SqlSyntaxM
- Database.Beam.Backend.SQL.Builder: instance GHC.Base.Functor Database.Beam.Backend.SQL.Builder.SqlSyntaxM
- Database.Beam.Backend.SQL.Builder: instance GHC.Base.Monad Database.Beam.Backend.SQL.Builder.SqlSyntaxM
- Database.Beam.Backend.SQL.Builder: instance GHC.Base.Monoid Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder
- Database.Beam.Backend.SQL.Builder: instance GHC.Base.Semigroup Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder
- Database.Beam.Backend.SQL.Builder: instance GHC.Show.Show Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder
- Database.Beam.Backend.SQL.Builder: instance GHC.Show.Show Database.Beam.Backend.SQL.Builder.SqlWindowFrameBound
- Database.Beam.Backend.SQL.Row: instance (Database.Beam.Backend.SQL.Row.FromBackendRow be x, Database.Beam.Backend.SQL.Row.FromBackendRow be Database.Beam.Backend.SQL.Types.SqlNull) => Database.Beam.Backend.SQL.Row.FromBackendRow be (GHC.Maybe.Maybe x)
- Database.Beam.Backend.SQL.Row: instance (Database.Beam.Backend.SQL.Row.GFromBackendRow be aExp a, Database.Beam.Backend.SQL.Row.GFromBackendRow be bExp b) => Database.Beam.Backend.SQL.Row.GFromBackendRow be (aExp GHC.Generics.:*: bExp) (a GHC.Generics.:*: b)
- Database.Beam.Backend.SQL.Row: instance (Database.Beam.Backend.Types.BeamBackend be, GHC.Generics.Generic (tbl (Database.Beam.Backend.Types.Nullable Data.Functor.Identity.Identity)), GHC.Generics.Generic (tbl (Database.Beam.Backend.Types.Nullable Database.Beam.Backend.Types.Exposed)), Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Generics.Rep (tbl (Database.Beam.Backend.Types.Nullable Database.Beam.Backend.Types.Exposed))) (GHC.Generics.Rep (tbl (Database.Beam.Backend.Types.Nullable Data.Functor.Identity.Identity)))) => Database.Beam.Backend.SQL.Row.FromBackendRow be (tbl (Database.Beam.Backend.Types.Nullable Data.Functor.Identity.Identity))
- Database.Beam.Backend.SQL.Row: instance (Database.Beam.Backend.Types.BeamBackend be, GHC.Generics.Generic (tbl Data.Functor.Identity.Identity), GHC.Generics.Generic (tbl Database.Beam.Backend.Types.Exposed), Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Generics.Rep (tbl Database.Beam.Backend.Types.Exposed)) (GHC.Generics.Rep (tbl Data.Functor.Identity.Identity))) => Database.Beam.Backend.SQL.Row.FromBackendRow be (tbl Data.Functor.Identity.Identity)
- Database.Beam.Backend.SQL.Row: instance (Database.Beam.Backend.Types.BeamBackend be, GHC.TypeNats.KnownNat n, Database.Beam.Backend.SQL.Row.FromBackendRow be a) => Database.Beam.Backend.SQL.Row.FromBackendRow be (Data.Vector.Sized.Vector n a)
- Database.Beam.Backend.SQL.Row: instance Control.Monad.Fail.MonadFail (Database.Beam.Backend.SQL.Row.FromBackendRowM be)
- Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.FromBackendRow be (t (Database.Beam.Backend.Types.Nullable Data.Functor.Identity.Identity)) => Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Generics.K1 GHC.Generics.R (t (Database.Beam.Backend.Types.Nullable Database.Beam.Backend.Types.Exposed))) (GHC.Generics.K1 GHC.Generics.R (t (Database.Beam.Backend.Types.Nullable Data.Functor.Identity.Identity)))
- Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.FromBackendRow be (t Data.Functor.Identity.Identity) => Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Generics.K1 GHC.Generics.R (t Database.Beam.Backend.Types.Exposed)) (GHC.Generics.K1 GHC.Generics.R (t Data.Functor.Identity.Identity))
- 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.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 x)
- Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.GFromBackendRow be e GHC.Generics.U1
- Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.GFromBackendRow be e p => Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Generics.M1 t f e) (GHC.Generics.M1 t f p)
- Database.Beam.Backend.SQL.Row: instance GHC.Base.Alternative (Database.Beam.Backend.SQL.Row.FromBackendRowM be)
- Database.Beam.Backend.SQL.Row: instance GHC.Base.Applicative (Database.Beam.Backend.SQL.Row.FromBackendRowM be)
- Database.Beam.Backend.SQL.Row: instance GHC.Base.Functor (Database.Beam.Backend.SQL.Row.FromBackendRowF be)
- Database.Beam.Backend.SQL.Row: instance GHC.Base.Functor (Database.Beam.Backend.SQL.Row.FromBackendRowM be)
- Database.Beam.Backend.SQL.Row: instance GHC.Base.Monad (Database.Beam.Backend.SQL.Row.FromBackendRowM be)
- Database.Beam.Backend.SQL.Row: instance GHC.Exception.Type.Exception Database.Beam.Backend.SQL.Row.BeamRowReadError
- Database.Beam.Backend.SQL.Row: instance GHC.Show.Show Database.Beam.Backend.SQL.Row.BeamRowReadError
- Database.Beam.Backend.SQL.Row: instance GHC.Show.Show Database.Beam.Backend.SQL.Row.ColumnParseError
- Database.Beam.Backend.SQL.Types: instance GHC.Bits.Bits Database.Beam.Backend.SQL.Types.SqlBitString
- Database.Beam.Backend.SQL.Types: instance GHC.Enum.Bounded Database.Beam.Backend.SQL.Types.SqlNull
- Database.Beam.Backend.SQL.Types: instance GHC.Enum.Enum Database.Beam.Backend.SQL.Types.SqlBitString
- Database.Beam.Backend.SQL.Types: instance GHC.Enum.Enum Database.Beam.Backend.SQL.Types.SqlNull
- Database.Beam.Backend.SQL.Types: instance GHC.Enum.Enum a => GHC.Enum.Enum (Database.Beam.Backend.SQL.Types.SqlSerial a)
- Database.Beam.Backend.SQL.Types: instance GHC.Generics.Generic (Database.Beam.Backend.SQL.Types.SqlSerial a)
- Database.Beam.Backend.SQL.Types: instance GHC.Generics.Generic Database.Beam.Backend.SQL.Types.SqlBitString
- Database.Beam.Backend.SQL.Types: instance GHC.Generics.Generic Database.Beam.Backend.SQL.Types.SqlNull
- Database.Beam.Backend.SQL.Types: instance GHC.Num.Num a => GHC.Num.Num (Database.Beam.Backend.SQL.Types.SqlSerial a)
- Database.Beam.Backend.SQL.Types: instance GHC.Read.Read a => GHC.Read.Read (Database.Beam.Backend.SQL.Types.SqlSerial a)
- Database.Beam.Backend.SQL.Types: instance GHC.Real.Integral a => GHC.Real.Integral (Database.Beam.Backend.SQL.Types.SqlSerial a)
- Database.Beam.Backend.SQL.Types: instance GHC.Real.Real a => GHC.Real.Real (Database.Beam.Backend.SQL.Types.SqlSerial a)
- Database.Beam.Backend.SQL.Types: instance GHC.Show.Show Database.Beam.Backend.SQL.Types.SqlBitString
- Database.Beam.Backend.SQL.Types: instance GHC.Show.Show Database.Beam.Backend.SQL.Types.SqlNull
- Database.Beam.Backend.SQL.Types: instance GHC.Show.Show a => GHC.Show.Show (Database.Beam.Backend.SQL.Types.SqlSerial a)
- Database.Beam.Backend.URI: instance GHC.Base.Monoid (Database.Beam.Backend.URI.BeamURIOpeners c)
- Database.Beam.Backend.URI: instance GHC.Base.Semigroup (Database.Beam.Backend.URI.BeamURIOpeners c)
- Database.Beam.Backend.URI: instance GHC.Exception.Type.Exception Database.Beam.Backend.URI.BeamOpenURIInvalid
- Database.Beam.Backend.URI: instance GHC.Exception.Type.Exception Database.Beam.Backend.URI.BeamOpenURIUnsupportedScheme
- Database.Beam.Backend.URI: instance GHC.Exception.Type.Exception Database.Beam.Backend.URI.BeamResourceNotFound
- Database.Beam.Backend.URI: instance GHC.Show.Show Database.Beam.Backend.URI.BeamOpenURIInvalid
- Database.Beam.Backend.URI: instance GHC.Show.Show Database.Beam.Backend.URI.BeamOpenURIUnsupportedScheme
- Database.Beam.Backend.URI: instance GHC.Show.Show Database.Beam.Backend.URI.BeamResourceNotFound
- Database.Beam.Query.CTE: instance Database.Beam.Backend.SQL.SQL99.IsSql99RecursiveCommonTableExpressionSelectSyntax (Database.Beam.Backend.SQL.BeamSqlBackendSelectSyntax be) => Control.Monad.Fix.MonadFix (Database.Beam.Query.CTE.With be db)
- Database.Beam.Query.CTE: instance GHC.Base.Applicative (Database.Beam.Query.CTE.With be db)
- Database.Beam.Query.CTE: instance GHC.Base.Functor (Database.Beam.Query.CTE.With be db)
- Database.Beam.Query.CTE: instance GHC.Base.Monad (Database.Beam.Query.CTE.With be db)
- Database.Beam.Query.CTE: instance GHC.Base.Monoid (Database.Beam.Query.CTE.Recursiveness be)
- Database.Beam.Query.CTE: instance GHC.Base.Semigroup (Database.Beam.Query.CTE.Recursiveness be)
- Database.Beam.Query.CustomSQL: instance Data.String.IsString (Database.Beam.Query.CustomSQL.CustomSqlSyntax Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder)
- Database.Beam.Query.CustomSQL: instance Database.Beam.Query.CustomSQL.IsCustomSqlSyntax (Database.Beam.Backend.SQL.BeamSqlBackendExpressionSyntax be) => Data.String.IsString (Database.Beam.Query.CustomSQL.CustomSqlSnippet be)
- Database.Beam.Query.CustomSQL: instance Database.Beam.Query.CustomSQL.IsCustomSqlSyntax (Database.Beam.Backend.SQL.BeamSqlBackendExpressionSyntax be) => GHC.Base.Monoid (Database.Beam.Query.CustomSQL.CustomSqlSnippet be)
- Database.Beam.Query.CustomSQL: instance Database.Beam.Query.CustomSQL.IsCustomSqlSyntax (Database.Beam.Backend.SQL.BeamSqlBackendExpressionSyntax be) => GHC.Base.Semigroup (Database.Beam.Query.CustomSQL.CustomSqlSnippet be)
- Database.Beam.Query.CustomSQL: instance GHC.Base.Monoid (Database.Beam.Query.CustomSQL.CustomSqlSyntax Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder)
- Database.Beam.Query.CustomSQL: instance GHC.Base.Semigroup (Database.Beam.Query.CustomSQL.CustomSqlSyntax Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder)
- Database.Beam.Query.DataTypes: instance Database.Beam.Backend.SQL.SQL92.Sql92DisplaySyntax (Database.Beam.Backend.SQL.BeamSqlBackendCastTargetSyntax be) => GHC.Show.Show (Database.Beam.Query.DataTypes.DataType be a)
- Database.Beam.Query.Internal: instance (Data.Typeable.Internal.Typeable context, Database.Beam.Query.Internal.IsWindowFrameContext context, context GHC.Types.~ Database.Beam.Query.Internal.QWindowFrameContext) => Database.Beam.Query.Internal.WindowFrameContext context
- Database.Beam.Query.Internal: instance (Database.Beam.Backend.SQL.BeamSqlBackend backend, Database.Beam.Backend.SQL.BeamSqlBackendCanSerialize backend [GHC.Types.Char]) => Data.String.IsString (Database.Beam.Query.Internal.QGenExpr context backend s Data.Text.Internal.Text)
- Database.Beam.Query.Internal: instance (Database.Beam.Query.Internal.ContextRewritable a, GHC.TypeNats.KnownNat n) => Database.Beam.Query.Internal.ContextRewritable (Data.Vector.Sized.Vector n a)
- Database.Beam.Query.Internal: instance (Database.Beam.Query.Internal.IsAggregateContext a, Data.Typeable.Internal.Typeable a) => Database.Beam.Query.Internal.AggregateContext a
- Database.Beam.Query.Internal: instance (Database.Beam.Query.Internal.IsValueContext a, Data.Typeable.Internal.Typeable a, a GHC.Types.~ Database.Beam.Query.Internal.QValueContext) => Database.Beam.Query.Internal.ValueContext a
- Database.Beam.Query.Internal: instance (Database.Beam.Query.Internal.ProjectibleWithPredicate contextPredicate be res a, GHC.TypeNats.KnownNat n) => Database.Beam.Query.Internal.ProjectibleWithPredicate contextPredicate be res (Data.Vector.Sized.Vector n a)
- Database.Beam.Query.Internal: instance (Database.Beam.Query.Internal.ThreadRewritable s a, GHC.TypeNats.KnownNat n) => Database.Beam.Query.Internal.ThreadRewritable s (Data.Vector.Sized.Vector n a)
- Database.Beam.Query.Internal: instance (GHC.Num.Num a, Database.Beam.Backend.SQL.BeamSqlBackend be, Database.Beam.Backend.SQL.BeamSqlBackendCanSerialize be a) => GHC.Num.Num (Database.Beam.Query.Internal.QGenExpr context be s a)
- Database.Beam.Query.Internal: instance (GHC.Real.Fractional a, Database.Beam.Backend.SQL.BeamSqlBackend be, Database.Beam.Backend.SQL.BeamSqlBackendCanSerialize be a) => GHC.Real.Fractional (Database.Beam.Query.Internal.QGenExpr context be s a)
- Database.Beam.Query.Internal: instance Database.Beam.Query.Internal.ProjectibleWithPredicate Database.Beam.Query.Internal.AnyType () res (Data.Functor.Const.Const res a)
- Database.Beam.Query.Internal: instance Database.Beam.Schema.Tables.Beamable t => Database.Beam.Query.Internal.ProjectibleWithPredicate Database.Beam.Query.Internal.AnyType () Data.Text.Internal.Text (t (Database.Beam.Backend.Types.Nullable (Data.Functor.Const.Const Data.Text.Internal.Text)))
- Database.Beam.Query.Internal: instance Database.Beam.Schema.Tables.Beamable t => Database.Beam.Query.Internal.ProjectibleWithPredicate Database.Beam.Query.Internal.AnyType () res (t (Data.Functor.Const.Const res))
- Database.Beam.Query.Internal: instance GHC.Base.Applicative (Database.Beam.Query.Internal.Q be db s)
- Database.Beam.Query.Internal: instance GHC.Base.Functor (Database.Beam.Query.Internal.Q be db s)
- Database.Beam.Query.Internal: instance GHC.Base.Functor (Database.Beam.Query.Internal.QF be db s)
- Database.Beam.Query.Internal: instance GHC.Base.Monad (Database.Beam.Query.Internal.Q be db s)
- Database.Beam.Query.Internal: instance GHC.Base.Monoid (Database.Beam.Query.Internal.QAssignment be s)
- Database.Beam.Query.Internal: instance GHC.Base.Semigroup (Database.Beam.Query.Internal.QAssignment be s)
- Database.Beam.Query.Internal: instance GHC.Show.Show (Database.Beam.Query.Internal.QField s ty)
- Database.Beam.Query.SQL92: instance (GHC.Base.Monoid a, Database.Beam.Query.Internal.ProjectibleWithPredicate c syntax res b) => Database.Beam.Query.Internal.ProjectibleWithPredicate c syntax res (Database.Beam.Query.SQL92.PreserveLeft a b)
- Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.Database be embedded, GHC.Generics.Generic (Database.Beam.Schema.Tables.DatabaseSettings be embedded), Database.Beam.Schema.Tables.GAutoDbSettings (GHC.Generics.Rep (Database.Beam.Schema.Tables.DatabaseSettings be embedded) ())) => Database.Beam.Schema.Tables.GAutoDbSettings (GHC.Generics.S1 f (GHC.Generics.K1 GHC.Generics.R (embedded (Database.Beam.Schema.Tables.DatabaseEntity be super))) p)
- Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GAutoDbSettings (x p), Database.Beam.Schema.Tables.GAutoDbSettings (y p)) => Database.Beam.Schema.Tables.GAutoDbSettings ((GHC.Generics.:*:) x y p)
- Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GDefaultTableFieldSettings (a p), Database.Beam.Schema.Tables.GDefaultTableFieldSettings (b p)) => Database.Beam.Schema.Tables.GDefaultTableFieldSettings ((GHC.Generics.:*:) a b p)
- Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GFieldsFulfillConstraint c aExp aC, Database.Beam.Schema.Tables.GFieldsFulfillConstraint c bExp bC) => Database.Beam.Schema.Tables.GFieldsFulfillConstraint c (aExp GHC.Generics.:*: bExp) (aC GHC.Generics.:*: bC)
- Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GTableSkeleton a, Database.Beam.Schema.Tables.GTableSkeleton b) => Database.Beam.Schema.Tables.GTableSkeleton (a GHC.Generics.:*: b)
- Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GZipDatabase be f g h ax ay az, Database.Beam.Schema.Tables.GZipDatabase be f g h bx by bz) => Database.Beam.Schema.Tables.GZipDatabase be f g h (ax GHC.Generics.:*: bx) (ay GHC.Generics.:*: by) (az GHC.Generics.:*: bz)
- Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GZipTables f g h exp1 f1 g1 h1, Database.Beam.Schema.Tables.GZipTables f g h exp2 f2 g2 h2) => Database.Beam.Schema.Tables.GZipTables f g h (exp1 GHC.Generics.:*: exp2) (f1 GHC.Generics.:*: f2) (g1 GHC.Generics.:*: g2) (h1 GHC.Generics.:*: h2)
- Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.IsDatabaseEntity be tbl, Database.Beam.Schema.Tables.DatabaseEntityRegularRequirements be tbl) => Database.Beam.Schema.Tables.GZipDatabase be f g h (GHC.Generics.K1 GHC.Generics.R (f tbl)) (GHC.Generics.K1 GHC.Generics.R (g tbl)) (GHC.Generics.K1 GHC.Generics.R (h tbl))
- Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.Table rel, GHC.Generics.Generic (rel (Database.Beam.Schema.Tables.TableField rel)), Database.Beam.Schema.Tables.TagReducesTo f (Database.Beam.Schema.Tables.TableField tbl), Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Generics.Rep (rel (Database.Beam.Schema.Tables.TableField rel)) ())) => Database.Beam.Schema.Tables.SubTableStrategyImpl 'Database.Beam.Schema.Tables.PrimaryKeyStrategy f (Database.Beam.Schema.Tables.PrimaryKey rel)
- Database.Beam.Schema.Tables: instance (GHC.Generics.Generic (sub f), Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Generics.Rep (sub f) ())) => Database.Beam.Schema.Tables.SubTableStrategyImpl 'Database.Beam.Schema.Tables.BeamableStrategy f sub
- Database.Beam.Schema.Tables: instance (GHC.Generics.Selector f', Database.Beam.Schema.Tables.ChooseSubTableStrategy tbl sub GHC.Types.~ strategy, Database.Beam.Schema.Tables.SubTableStrategyImpl strategy f sub, Database.Beam.Schema.Tables.TagReducesTo f (Database.Beam.Schema.Tables.TableField tbl), Database.Beam.Schema.Tables.Beamable sub) => Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Generics.S1 f' (GHC.Generics.K1 GHC.Generics.R (sub f)) p)
- Database.Beam.Schema.Tables: instance (GHC.Generics.Selector f, Database.Beam.Schema.Tables.IsDatabaseEntity be x, Database.Beam.Schema.Tables.DatabaseEntityDefaultRequirements be x) => Database.Beam.Schema.Tables.GAutoDbSettings (GHC.Generics.S1 f (GHC.Generics.K1 GHC.Generics.R (Database.Beam.Schema.Tables.DatabaseEntity be db x)) p)
- Database.Beam.Schema.Tables: instance (TypeError ...) => Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Generics.K1 r f p)
- Database.Beam.Schema.Tables: instance (fa GHC.Types.~ Database.Beam.Schema.Tables.Columnar f a, ga GHC.Types.~ Database.Beam.Schema.Tables.Columnar g a, ha GHC.Types.~ Database.Beam.Schema.Tables.Columnar h a, ha GHC.Types.~ Database.Beam.Schema.Tables.Columnar h a) => Database.Beam.Schema.Tables.GZipTables f g h (GHC.Generics.K1 GHC.Generics.R (Database.Beam.Backend.Types.Exposed a)) (GHC.Generics.K1 GHC.Generics.R fa) (GHC.Generics.K1 GHC.Generics.R ga) (GHC.Generics.K1 GHC.Generics.R ha)
- Database.Beam.Schema.Tables: instance Data.String.IsString (Database.Beam.Schema.Tables.FieldModification (Database.Beam.Schema.Tables.TableField tbl) a)
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.Beamable tbl => Database.Beam.Schema.Tables.GTableSkeleton (GHC.Generics.K1 GHC.Generics.R (tbl (Database.Beam.Backend.Types.Nullable Database.Beam.Schema.Tables.Ignored)))
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.Beamable tbl => Database.Beam.Schema.Tables.GTableSkeleton (GHC.Generics.K1 GHC.Generics.R (tbl Database.Beam.Schema.Tables.Ignored))
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.Beamable tbl => Database.Beam.Schema.Tables.GZipTables f g h (GHC.Generics.K1 GHC.Generics.R (tbl (Database.Beam.Backend.Types.Nullable Database.Beam.Backend.Types.Exposed))) (GHC.Generics.K1 GHC.Generics.R (tbl (Database.Beam.Backend.Types.Nullable f))) (GHC.Generics.K1 GHC.Generics.R (tbl (Database.Beam.Backend.Types.Nullable g))) (GHC.Generics.K1 GHC.Generics.R (tbl (Database.Beam.Backend.Types.Nullable h)))
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.Beamable tbl => Database.Beam.Schema.Tables.GZipTables f g h (GHC.Generics.K1 GHC.Generics.R (tbl Database.Beam.Backend.Types.Exposed)) (GHC.Generics.K1 GHC.Generics.R (tbl f)) (GHC.Generics.K1 GHC.Generics.R (tbl g)) (GHC.Generics.K1 GHC.Generics.R (tbl h))
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.Database be db => Database.Beam.Schema.Tables.GZipDatabase be f g h (GHC.Generics.K1 GHC.Generics.R (db f)) (GHC.Generics.K1 GHC.Generics.R (db g)) (GHC.Generics.K1 GHC.Generics.R (db h))
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.FieldsFulfillConstraint c t => Database.Beam.Schema.Tables.GFieldsFulfillConstraint c (GHC.Generics.K1 GHC.Generics.R (t Database.Beam.Backend.Types.Exposed)) (GHC.Generics.K1 GHC.Generics.R (t (Database.Beam.Schema.Tables.HasConstraint c)))
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.FieldsFulfillConstraintNullable c t => Database.Beam.Schema.Tables.GFieldsFulfillConstraint c (GHC.Generics.K1 GHC.Generics.R (t (Database.Beam.Backend.Types.Nullable Database.Beam.Backend.Types.Exposed))) (GHC.Generics.K1 GHC.Generics.R (t (Database.Beam.Backend.Types.Nullable (Database.Beam.Schema.Tables.HasConstraint c))))
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GAutoDbSettings (x p) => Database.Beam.Schema.Tables.GAutoDbSettings (GHC.Generics.C1 f x p)
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GAutoDbSettings (x p) => Database.Beam.Schema.Tables.GAutoDbSettings (GHC.Generics.D1 f x p)
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GDefaultTableFieldSettings (p x) => Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Generics.C1 f p x)
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GDefaultTableFieldSettings (p x) => Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Generics.D1 f p x)
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GFieldsFulfillConstraint c GHC.Generics.U1 GHC.Generics.U1
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GFieldsFulfillConstraint c exposed withconstraint => Database.Beam.Schema.Tables.GFieldsFulfillConstraint c (GHC.Generics.M1 s m exposed) (GHC.Generics.M1 s m withconstraint)
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GTableSkeleton (GHC.Generics.K1 GHC.Generics.R (Database.Beam.Schema.Tables.Ignored field))
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GTableSkeleton GHC.Generics.U1
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GTableSkeleton p => Database.Beam.Schema.Tables.GTableSkeleton (GHC.Generics.M1 t f p)
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GZipDatabase be f g h x y z => Database.Beam.Schema.Tables.GZipDatabase be f g h (GHC.Generics.M1 a b x) (GHC.Generics.M1 a b y) (GHC.Generics.M1 a b z)
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GZipTables f g h GHC.Generics.U1 GHC.Generics.U1 GHC.Generics.U1 GHC.Generics.U1
- Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GZipTables f g h exp fRep gRep hRep => Database.Beam.Schema.Tables.GZipTables f g h (GHC.Generics.M1 x y exp) (GHC.Generics.M1 x y fRep) (GHC.Generics.M1 x y gRep) (GHC.Generics.M1 x y hRep)
- Database.Beam.Schema.Tables: instance GHC.Base.Monoid (Database.Beam.Schema.Tables.EntityModification f be e)
- Database.Beam.Schema.Tables: instance GHC.Base.Semigroup (Database.Beam.Schema.Tables.EntityModification f be e)
- Database.Beam.Schema.Tables: instance GHC.Generics.Selector f => Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Generics.S1 f (GHC.Generics.K1 GHC.Generics.R (Database.Beam.Schema.Tables.TableField table field)) p)
- Database.Beam.Schema.Tables: instance GHC.Show.Show (Database.Beam.Schema.Tables.TableField table ty)
- Database.Beam.Schema.Tables: instance c x => Database.Beam.Schema.Tables.GFieldsFulfillConstraint c (GHC.Generics.K1 GHC.Generics.R (Database.Beam.Backend.Types.Exposed x)) (GHC.Generics.K1 GHC.Generics.R (Database.Beam.Schema.Tables.HasConstraint c x))
+ Database.Beam.Backend.SQL: instance (Database.Beam.Backend.SQL.MonadBeam be m, GHC.Internal.Base.Monoid s) => Database.Beam.Backend.SQL.MonadBeam be (Control.Monad.Trans.Writer.Lazy.WriterT s m)
+ Database.Beam.Backend.SQL: instance (Database.Beam.Backend.SQL.MonadBeam be m, GHC.Internal.Base.Monoid s) => Database.Beam.Backend.SQL.MonadBeam be (Control.Monad.Trans.Writer.Strict.WriterT s m)
+ Database.Beam.Backend.SQL: instance (Database.Beam.Backend.SQL.MonadBeam be m, GHC.Internal.Base.Monoid w) => Database.Beam.Backend.SQL.MonadBeam be (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
+ Database.Beam.Backend.SQL: instance (Database.Beam.Backend.SQL.MonadBeam be m, GHC.Internal.Base.Monoid w) => Database.Beam.Backend.SQL.MonadBeam be (Control.Monad.Trans.RWS.Strict.RWST r w s m)
+ Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Internal.Base.String
+ Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Internal.Int.Int16
+ Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Internal.Int.Int32
+ Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Internal.Int.Int64
+ Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Internal.Word.Word16
+ Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Internal.Word.Word32
+ Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value GHC.Internal.Word.Word64
+ Database.Beam.Backend.SQL.AST: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value x => Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.AST.Value (GHC.Internal.Maybe.Maybe x)
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.Command
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.ComparatorQuantifier
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.DataType
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.Delete
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.Expression
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.ExtractField
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.FieldName
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.From
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.Grouping
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.Insert
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.InsertValues
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.Ordering
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.Projection
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.SchemaName
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.Select
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.SelectTable
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.SetQuantifier
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.TableName
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.TableSource
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.Update
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.Value
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.WindowFrame
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.WindowFrameBound
+ Database.Beam.Backend.SQL.AST: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.AST.WindowFrameBounds
+ Database.Beam.Backend.SQL.BeamExtensions: -- <tt>SELECT</tt> query.
+ Database.Beam.Backend.SQL.BeamExtensions: -- COPY, this can be a table (perhaps with a projection) or a
+ Database.Beam.Backend.SQL.BeamExtensions: -- can be either a table (and optional projection), or a select
+ Database.Beam.Backend.SQL.BeamExtensions: -- chunks flow through the connection.
+ Database.Beam.Backend.SQL.BeamExtensions: -- performed (format, delimiter, etc.). Unlike the file-mode params,
+ Database.Beam.Backend.SQL.BeamExtensions: -- performed, including the source of the data (e.g. a filepath).
+ Database.Beam.Backend.SQL.BeamExtensions: -- performed. Unlike the file-mode params, there is no source path —
+ Database.Beam.Backend.SQL.BeamExtensions: -- statement.
+ Database.Beam.Backend.SQL.BeamExtensions: -- there is no destination — chunks flow through the connection.
+ Database.Beam.Backend.SQL.BeamExtensions: SqlCopyFrom :: !BeamSqlBackendCopyFromSyntax be -> SqlCopyFrom be a
+ Database.Beam.Backend.SQL.BeamExtensions: SqlCopyFromNoColumns :: SqlCopyFrom be a
+ Database.Beam.Backend.SQL.BeamExtensions: SqlCopyFromStream :: !BeamSqlBackendCopyFromStreamSyntax be -> SqlCopyFromStream be a
+ Database.Beam.Backend.SQL.BeamExtensions: SqlCopyFromStreamNoColumns :: SqlCopyFromStream be a
+ Database.Beam.Backend.SQL.BeamExtensions: SqlCopyTo :: !BeamSqlBackendCopyToSyntax be -> SqlCopyTo be a
+ Database.Beam.Backend.SQL.BeamExtensions: SqlCopyToNoColumns :: SqlCopyTo be a
+ Database.Beam.Backend.SQL.BeamExtensions: SqlCopyToStream :: !BeamSqlBackendCopyToStreamSyntax be -> SqlCopyToStream be a
+ Database.Beam.Backend.SQL.BeamExtensions: SqlCopyToStreamNoColumns :: SqlCopyToStream be a
+ Database.Beam.Backend.SQL.BeamExtensions: class IsSqlCopyFromSourceSyntax syntax
+ Database.Beam.Backend.SQL.BeamExtensions: class IsSqlCopyFromSourceSyntax SqlCopyFromStreamSourceSyntax cmd => IsSqlCopyFromStreamSyntax cmd where {
+ Database.Beam.Backend.SQL.BeamExtensions: class IsSqlCopyFromSourceSyntax SqlCopyFromSourceSyntax cmd => IsSqlCopyFromSyntax cmd where {
+ Database.Beam.Backend.SQL.BeamExtensions: class IsSqlCopyToSourceSyntax syntax where {
+ Database.Beam.Backend.SQL.BeamExtensions: class IsSqlCopyToSourceSyntax SqlCopyToStreamSourceSyntax cmd => IsSqlCopyToStreamSyntax cmd where {
+ Database.Beam.Backend.SQL.BeamExtensions: class IsSqlCopyToSourceSyntax SqlCopyToSourceSyntax cmd => IsSqlCopyToSyntax cmd where {
+ Database.Beam.Backend.SQL.BeamExtensions: class MonadBeam be m => MonadBeamCopyFrom be (m :: Type -> Type) | m -> be
+ Database.Beam.Backend.SQL.BeamExtensions: class MonadBeam be m => MonadBeamCopyFromStream be (m :: Type -> Type) | m -> be
+ Database.Beam.Backend.SQL.BeamExtensions: class MonadBeam be m => MonadBeamCopyTo be (m :: Type -> Type) | m -> be
+ Database.Beam.Backend.SQL.BeamExtensions: class MonadBeam be m => MonadBeamCopyToStream be (m :: Type -> Type) | m -> be
+ Database.Beam.Backend.SQL.BeamExtensions: copyFromStmt :: IsSqlCopyFromSyntax cmd => SqlCopyFromSourceSyntax cmd -> SqlCopyFromParams cmd -> cmd
+ Database.Beam.Backend.SQL.BeamExtensions: copyFromStreamStmt :: IsSqlCopyFromStreamSyntax cmd => SqlCopyFromStreamSourceSyntax cmd -> SqlCopyFromStreamParams cmd -> cmd
+ Database.Beam.Backend.SQL.BeamExtensions: copySelectTo :: (IsSqlCopyToSyntax (BeamSqlBackendCopyToSyntax be), SqlCopyToSourceSelectSyntax (SqlCopyToSourceSyntax (BeamSqlBackendCopyToSyntax be)) ~ BeamSqlBackendSelectSyntax be) => SqlSelect be a -> SqlCopyToParams (BeamSqlBackendCopyToSyntax be) -> SqlCopyTo be a
+ Database.Beam.Backend.SQL.BeamExtensions: copySelectToStream :: (IsSqlCopyToStreamSyntax (BeamSqlBackendCopyToStreamSyntax be), SqlCopyToSourceSelectSyntax (SqlCopyToStreamSourceSyntax (BeamSqlBackendCopyToStreamSyntax be)) ~ BeamSqlBackendSelectSyntax be) => SqlSelect be a -> SqlCopyToStreamParams (BeamSqlBackendCopyToStreamSyntax be) -> SqlCopyToStream be a
+ Database.Beam.Backend.SQL.BeamExtensions: copySelectToSyntax :: IsSqlCopyToSourceSyntax syntax => SqlCopyToSourceSelectSyntax syntax -> syntax
+ Database.Beam.Backend.SQL.BeamExtensions: copyTableFrom :: forall be proj (db :: (Type -> Type) -> Type) table s. (IsSqlCopyFromSyntax (BeamSqlBackendCopyFromSyntax be), ProjectibleWithPredicate AnyType () Text proj) => DatabaseEntity be db (TableEntity table) -> (table (QField s) -> proj) -> SqlCopyFromParams (BeamSqlBackendCopyFromSyntax be) -> SqlCopyFrom be proj
+ Database.Beam.Backend.SQL.BeamExtensions: copyTableFromStream :: forall be proj (db :: (Type -> Type) -> Type) table s. (IsSqlCopyFromStreamSyntax (BeamSqlBackendCopyFromStreamSyntax be), ProjectibleWithPredicate AnyType () Text proj) => DatabaseEntity be db (TableEntity table) -> (table (QField s) -> proj) -> SqlCopyFromStreamParams (BeamSqlBackendCopyFromStreamSyntax be) -> SqlCopyFromStream be proj
+ Database.Beam.Backend.SQL.BeamExtensions: copyTableFromSyntax :: IsSqlCopyFromSourceSyntax syntax => Maybe Text -> Text -> Maybe (NonEmpty Text) -> syntax
+ Database.Beam.Backend.SQL.BeamExtensions: copyTableTo :: forall be proj (db :: (Type -> Type) -> Type) table s. (IsSqlCopyToSyntax (BeamSqlBackendCopyToSyntax be), ProjectibleWithPredicate AnyType () Text proj) => DatabaseEntity be db (TableEntity table) -> (table (QField s) -> proj) -> SqlCopyToParams (BeamSqlBackendCopyToSyntax be) -> SqlCopyTo be proj
+ Database.Beam.Backend.SQL.BeamExtensions: copyTableToStream :: forall be proj (db :: (Type -> Type) -> Type) table s. (IsSqlCopyToStreamSyntax (BeamSqlBackendCopyToStreamSyntax be), ProjectibleWithPredicate AnyType () Text proj) => DatabaseEntity be db (TableEntity table) -> (table (QField s) -> proj) -> SqlCopyToStreamParams (BeamSqlBackendCopyToStreamSyntax be) -> SqlCopyToStream be proj
+ Database.Beam.Backend.SQL.BeamExtensions: copyTableToSyntax :: IsSqlCopyToSourceSyntax syntax => Maybe Text -> Text -> Maybe (NonEmpty Text) -> syntax
+ Database.Beam.Backend.SQL.BeamExtensions: copyToStmt :: IsSqlCopyToSyntax cmd => SqlCopyToSourceSyntax cmd -> SqlCopyToParams cmd -> cmd
+ Database.Beam.Backend.SQL.BeamExtensions: copyToStreamStmt :: IsSqlCopyToStreamSyntax cmd => SqlCopyToStreamSourceSyntax cmd -> SqlCopyToStreamParams cmd -> cmd
+ Database.Beam.Backend.SQL.BeamExtensions: data SqlCopyFrom be a
+ Database.Beam.Backend.SQL.BeamExtensions: data SqlCopyFromStream be a
+ Database.Beam.Backend.SQL.BeamExtensions: data SqlCopyTo be a
+ Database.Beam.Backend.SQL.BeamExtensions: data SqlCopyToStream be a
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be m, GHC.Internal.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be (Control.Monad.Trans.Writer.Lazy.WriterT r m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be m, GHC.Internal.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be (Control.Monad.Trans.Writer.Strict.WriterT r m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be m, GHC.Internal.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be m, GHC.Internal.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamDeleteReturning be (Control.Monad.Trans.RWS.Strict.RWST r w s m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be m, GHC.Internal.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be (Control.Monad.Trans.Writer.Lazy.WriterT r m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be m, GHC.Internal.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be (Control.Monad.Trans.Writer.Strict.WriterT r m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be m, GHC.Internal.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be m, GHC.Internal.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning be (Control.Monad.Trans.RWS.Strict.RWST r w s m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be m, GHC.Internal.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be (Control.Monad.Trans.Writer.Lazy.WriterT r m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be m, GHC.Internal.Base.Monoid r) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be (Control.Monad.Trans.Writer.Strict.WriterT r m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be m, GHC.Internal.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance (Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be m, GHC.Internal.Base.Monoid w) => Database.Beam.Backend.SQL.BeamExtensions.MonadBeamUpdateReturning be (Control.Monad.Trans.RWS.Strict.RWST r w s m)
+ Database.Beam.Backend.SQL.BeamExtensions: instance GHC.Internal.Base.Monoid (Database.Beam.Backend.SQL.BeamExtensions.InaccessibleQAssignment be)
+ Database.Beam.Backend.SQL.BeamExtensions: instance GHC.Internal.Base.Semigroup (Database.Beam.Backend.SQL.BeamExtensions.InaccessibleQAssignment be)
+ Database.Beam.Backend.SQL.BeamExtensions: runCopyFrom :: MonadBeamCopyFrom be m => SqlCopyFrom be proj -> m ()
+ Database.Beam.Backend.SQL.BeamExtensions: runCopyFromStream :: MonadBeamCopyFromStream be m => SqlCopyFromStream be a -> IO (Maybe ByteString) -> m ()
+ Database.Beam.Backend.SQL.BeamExtensions: runCopyTo :: MonadBeamCopyTo be m => SqlCopyTo be res -> m ()
+ Database.Beam.Backend.SQL.BeamExtensions: runCopyToStream :: MonadBeamCopyToStream be m => SqlCopyToStream be a -> (ByteString -> IO ()) -> m ()
+ Database.Beam.Backend.SQL.BeamExtensions: type SqlCopyFromParams cmd;
+ Database.Beam.Backend.SQL.BeamExtensions: type SqlCopyFromSourceSyntax cmd;
+ Database.Beam.Backend.SQL.BeamExtensions: type SqlCopyFromStreamParams cmd;
+ Database.Beam.Backend.SQL.BeamExtensions: type SqlCopyFromStreamSourceSyntax cmd;
+ Database.Beam.Backend.SQL.BeamExtensions: type SqlCopyToParams cmd;
+ Database.Beam.Backend.SQL.BeamExtensions: type SqlCopyToSourceSelectSyntax syntax;
+ Database.Beam.Backend.SQL.BeamExtensions: type SqlCopyToSourceSyntax cmd;
+ Database.Beam.Backend.SQL.BeamExtensions: type SqlCopyToStreamParams cmd;
+ Database.Beam.Backend.SQL.BeamExtensions: type SqlCopyToStreamSourceSyntax cmd;
+ Database.Beam.Backend.SQL.BeamExtensions: type family SqlCopyFromStreamParams cmd
+ Database.Beam.Backend.SQL.Builder: instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder GHC.Internal.Int.Int32
+ Database.Beam.Backend.SQL.Builder: instance GHC.Internal.Base.Applicative Database.Beam.Backend.SQL.Builder.SqlSyntaxM
+ Database.Beam.Backend.SQL.Builder: instance GHC.Internal.Base.Functor Database.Beam.Backend.SQL.Builder.SqlSyntaxM
+ Database.Beam.Backend.SQL.Builder: instance GHC.Internal.Base.Monad Database.Beam.Backend.SQL.Builder.SqlSyntaxM
+ Database.Beam.Backend.SQL.Builder: instance GHC.Internal.Base.Monoid Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder
+ Database.Beam.Backend.SQL.Builder: instance GHC.Internal.Base.Semigroup Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder
+ Database.Beam.Backend.SQL.Builder: instance GHC.Internal.Control.Monad.Fail.MonadFail Database.Beam.Backend.SQL.Builder.SqlSyntaxM
+ Database.Beam.Backend.SQL.Builder: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder
+ Database.Beam.Backend.SQL.Builder: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.Builder.SqlWindowFrameBound
+ Database.Beam.Backend.SQL.Row: instance (Database.Beam.Backend.SQL.Row.FromBackendRow be x, Database.Beam.Backend.SQL.Row.FromBackendRow be Database.Beam.Backend.SQL.Types.SqlNull) => Database.Beam.Backend.SQL.Row.FromBackendRow be (GHC.Internal.Maybe.Maybe x)
+ Database.Beam.Backend.SQL.Row: instance (Database.Beam.Backend.SQL.Row.GFromBackendRow be aExp a, Database.Beam.Backend.SQL.Row.GFromBackendRow be bExp b) => Database.Beam.Backend.SQL.Row.GFromBackendRow be (aExp GHC.Internal.Generics.:*: bExp) (a GHC.Internal.Generics.:*: b)
+ Database.Beam.Backend.SQL.Row: instance (Database.Beam.Backend.Types.BeamBackend be, GHC.Internal.Generics.Generic (tbl (Database.Beam.Backend.Types.Nullable GHC.Internal.Data.Functor.Identity.Identity)), GHC.Internal.Generics.Generic (tbl (Database.Beam.Backend.Types.Nullable Database.Beam.Backend.Types.Exposed)), Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Internal.Generics.Rep (tbl (Database.Beam.Backend.Types.Nullable Database.Beam.Backend.Types.Exposed))) (GHC.Internal.Generics.Rep (tbl (Database.Beam.Backend.Types.Nullable GHC.Internal.Data.Functor.Identity.Identity)))) => Database.Beam.Backend.SQL.Row.FromBackendRow be (tbl (Database.Beam.Backend.Types.Nullable GHC.Internal.Data.Functor.Identity.Identity))
+ Database.Beam.Backend.SQL.Row: instance (Database.Beam.Backend.Types.BeamBackend be, GHC.Internal.Generics.Generic (tbl GHC.Internal.Data.Functor.Identity.Identity), GHC.Internal.Generics.Generic (tbl Database.Beam.Backend.Types.Exposed), Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Internal.Generics.Rep (tbl Database.Beam.Backend.Types.Exposed)) (GHC.Internal.Generics.Rep (tbl GHC.Internal.Data.Functor.Identity.Identity))) => Database.Beam.Backend.SQL.Row.FromBackendRow be (tbl GHC.Internal.Data.Functor.Identity.Identity)
+ Database.Beam.Backend.SQL.Row: instance (Database.Beam.Backend.Types.BeamBackend be, GHC.Internal.TypeNats.KnownNat n, Database.Beam.Backend.SQL.Row.FromBackendRow be a) => Database.Beam.Backend.SQL.Row.FromBackendRow be (Data.Vector.Sized.Vector n a)
+ Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.FromBackendRow be (t (Database.Beam.Backend.Types.Nullable GHC.Internal.Data.Functor.Identity.Identity)) => Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (t (Database.Beam.Backend.Types.Nullable Database.Beam.Backend.Types.Exposed))) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (t (Database.Beam.Backend.Types.Nullable GHC.Internal.Data.Functor.Identity.Identity)))
+ Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.FromBackendRow be (t GHC.Internal.Data.Functor.Identity.Identity) => Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (t Database.Beam.Backend.Types.Exposed)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (t GHC.Internal.Data.Functor.Identity.Identity))
+ Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.FromBackendRow be a => Database.Beam.Backend.SQL.Row.FromBackendRow be (GHC.Internal.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.Internal.Generics.K1 GHC.Internal.Generics.R (Database.Beam.Backend.Types.Exposed x)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (GHC.Internal.Data.Functor.Identity.Identity x))
+ Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.FromBackendRow be x => Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (Database.Beam.Backend.Types.Exposed x)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R x)
+ Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.GFromBackendRow be e GHC.Internal.Generics.U1
+ Database.Beam.Backend.SQL.Row: instance Database.Beam.Backend.SQL.Row.GFromBackendRow be e p => Database.Beam.Backend.SQL.Row.GFromBackendRow be (GHC.Internal.Generics.M1 t f e) (GHC.Internal.Generics.M1 t f p)
+ Database.Beam.Backend.SQL.Row: instance GHC.Internal.Base.Alternative (Database.Beam.Backend.SQL.Row.FromBackendRowM be)
+ Database.Beam.Backend.SQL.Row: instance GHC.Internal.Base.Applicative (Database.Beam.Backend.SQL.Row.FromBackendRowM be)
+ Database.Beam.Backend.SQL.Row: instance GHC.Internal.Base.Functor (Database.Beam.Backend.SQL.Row.FromBackendRowF be)
+ Database.Beam.Backend.SQL.Row: instance GHC.Internal.Base.Functor (Database.Beam.Backend.SQL.Row.FromBackendRowM be)
+ Database.Beam.Backend.SQL.Row: instance GHC.Internal.Base.Monad (Database.Beam.Backend.SQL.Row.FromBackendRowM be)
+ Database.Beam.Backend.SQL.Row: instance GHC.Internal.Control.Monad.Fail.MonadFail (Database.Beam.Backend.SQL.Row.FromBackendRowM be)
+ Database.Beam.Backend.SQL.Row: instance GHC.Internal.Exception.Type.Exception Database.Beam.Backend.SQL.Row.BeamRowReadError
+ Database.Beam.Backend.SQL.Row: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.Row.BeamRowReadError
+ Database.Beam.Backend.SQL.Row: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.Row.ColumnParseError
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Bits.Bits Database.Beam.Backend.SQL.Types.SqlBitString
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Enum.Bounded Database.Beam.Backend.SQL.Types.SqlNull
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Enum.Enum Database.Beam.Backend.SQL.Types.SqlBitString
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Enum.Enum Database.Beam.Backend.SQL.Types.SqlNull
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Enum.Enum a => GHC.Internal.Enum.Enum (Database.Beam.Backend.SQL.Types.SqlSerial a)
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Generics.Generic (Database.Beam.Backend.SQL.Types.SqlSerial a)
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Generics.Generic Database.Beam.Backend.SQL.Types.SqlBitString
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Generics.Generic Database.Beam.Backend.SQL.Types.SqlNull
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Num.Num a => GHC.Internal.Num.Num (Database.Beam.Backend.SQL.Types.SqlSerial a)
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Read.Read a => GHC.Internal.Read.Read (Database.Beam.Backend.SQL.Types.SqlSerial a)
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Real.Integral a => GHC.Internal.Real.Integral (Database.Beam.Backend.SQL.Types.SqlSerial a)
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Real.Real a => GHC.Internal.Real.Real (Database.Beam.Backend.SQL.Types.SqlSerial a)
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.Types.SqlBitString
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Show.Show Database.Beam.Backend.SQL.Types.SqlNull
+ Database.Beam.Backend.SQL.Types: instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Database.Beam.Backend.SQL.Types.SqlSerial a)
+ Database.Beam.Backend.URI: instance GHC.Internal.Base.Monoid (Database.Beam.Backend.URI.BeamURIOpeners c)
+ Database.Beam.Backend.URI: instance GHC.Internal.Base.Semigroup (Database.Beam.Backend.URI.BeamURIOpeners c)
+ Database.Beam.Backend.URI: instance GHC.Internal.Exception.Type.Exception Database.Beam.Backend.URI.BeamOpenURIInvalid
+ Database.Beam.Backend.URI: instance GHC.Internal.Exception.Type.Exception Database.Beam.Backend.URI.BeamOpenURIUnsupportedScheme
+ Database.Beam.Backend.URI: instance GHC.Internal.Exception.Type.Exception Database.Beam.Backend.URI.BeamResourceNotFound
+ Database.Beam.Backend.URI: instance GHC.Internal.Show.Show Database.Beam.Backend.URI.BeamOpenURIInvalid
+ Database.Beam.Backend.URI: instance GHC.Internal.Show.Show Database.Beam.Backend.URI.BeamOpenURIUnsupportedScheme
+ Database.Beam.Backend.URI: instance GHC.Internal.Show.Show Database.Beam.Backend.URI.BeamResourceNotFound
+ Database.Beam.Query.CTE: instance Database.Beam.Backend.SQL.SQL99.IsSql99RecursiveCommonTableExpressionSelectSyntax (Database.Beam.Backend.SQL.BeamSqlBackendSelectSyntax be) => GHC.Internal.Control.Monad.Fix.MonadFix (Database.Beam.Query.CTE.With be db)
+ Database.Beam.Query.CTE: instance GHC.Internal.Base.Applicative (Database.Beam.Query.CTE.With be db)
+ Database.Beam.Query.CTE: instance GHC.Internal.Base.Functor (Database.Beam.Query.CTE.With be db)
+ Database.Beam.Query.CTE: instance GHC.Internal.Base.Monad (Database.Beam.Query.CTE.With be db)
+ Database.Beam.Query.CTE: instance GHC.Internal.Base.Monoid (Database.Beam.Query.CTE.Recursiveness be)
+ Database.Beam.Query.CTE: instance GHC.Internal.Base.Semigroup (Database.Beam.Query.CTE.Recursiveness be)
+ Database.Beam.Query.CustomSQL: instance Database.Beam.Query.CustomSQL.IsCustomSqlSyntax (Database.Beam.Backend.SQL.BeamSqlBackendExpressionSyntax be) => GHC.Internal.Base.Monoid (Database.Beam.Query.CustomSQL.CustomSqlSnippet be)
+ Database.Beam.Query.CustomSQL: instance Database.Beam.Query.CustomSQL.IsCustomSqlSyntax (Database.Beam.Backend.SQL.BeamSqlBackendExpressionSyntax be) => GHC.Internal.Base.Semigroup (Database.Beam.Query.CustomSQL.CustomSqlSnippet be)
+ Database.Beam.Query.CustomSQL: instance Database.Beam.Query.CustomSQL.IsCustomSqlSyntax (Database.Beam.Backend.SQL.BeamSqlBackendExpressionSyntax be) => GHC.Internal.Data.String.IsString (Database.Beam.Query.CustomSQL.CustomSqlSnippet be)
+ Database.Beam.Query.CustomSQL: instance GHC.Internal.Base.Monoid (Database.Beam.Query.CustomSQL.CustomSqlSyntax Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder)
+ Database.Beam.Query.CustomSQL: instance GHC.Internal.Base.Semigroup (Database.Beam.Query.CustomSQL.CustomSqlSyntax Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder)
+ Database.Beam.Query.CustomSQL: instance GHC.Internal.Data.String.IsString (Database.Beam.Query.CustomSQL.CustomSqlSyntax Database.Beam.Backend.SQL.Builder.SqlSyntaxBuilder)
+ Database.Beam.Query.DataTypes: instance Database.Beam.Backend.SQL.SQL92.Sql92DisplaySyntax (Database.Beam.Backend.SQL.BeamSqlBackendCastTargetSyntax be) => GHC.Internal.Show.Show (Database.Beam.Query.DataTypes.DataType be a)
+ Database.Beam.Query.Internal: instance (Database.Beam.Backend.SQL.BeamSqlBackend backend, Database.Beam.Backend.SQL.BeamSqlBackendCanSerialize backend [GHC.Types.Char]) => GHC.Internal.Data.String.IsString (Database.Beam.Query.Internal.QGenExpr context backend s Data.Text.Internal.Text)
+ Database.Beam.Query.Internal: instance (Database.Beam.Query.Internal.ContextRewritable a, GHC.Internal.TypeNats.KnownNat n) => Database.Beam.Query.Internal.ContextRewritable (Data.Vector.Sized.Vector n a)
+ Database.Beam.Query.Internal: instance (Database.Beam.Query.Internal.IsAggregateContext a, GHC.Internal.Data.Typeable.Internal.Typeable a) => Database.Beam.Query.Internal.AggregateContext a
+ Database.Beam.Query.Internal: instance (Database.Beam.Query.Internal.IsValueContext a, GHC.Internal.Data.Typeable.Internal.Typeable a, a GHC.Types.~ Database.Beam.Query.Internal.QValueContext) => Database.Beam.Query.Internal.ValueContext a
+ Database.Beam.Query.Internal: instance (Database.Beam.Query.Internal.ProjectibleWithPredicate contextPredicate be res a, GHC.Internal.TypeNats.KnownNat n) => Database.Beam.Query.Internal.ProjectibleWithPredicate contextPredicate be res (Data.Vector.Sized.Vector n a)
+ Database.Beam.Query.Internal: instance (Database.Beam.Query.Internal.ThreadRewritable s a, GHC.Internal.TypeNats.KnownNat n) => Database.Beam.Query.Internal.ThreadRewritable s (Data.Vector.Sized.Vector n a)
+ Database.Beam.Query.Internal: instance (GHC.Internal.Data.Typeable.Internal.Typeable context, Database.Beam.Query.Internal.IsWindowFrameContext context, context GHC.Types.~ Database.Beam.Query.Internal.QWindowFrameContext) => Database.Beam.Query.Internal.WindowFrameContext context
+ Database.Beam.Query.Internal: instance (GHC.Internal.Num.Num a, Database.Beam.Backend.SQL.BeamSqlBackend be, Database.Beam.Backend.SQL.BeamSqlBackendCanSerialize be a) => GHC.Internal.Num.Num (Database.Beam.Query.Internal.QGenExpr context be s a)
+ Database.Beam.Query.Internal: instance (GHC.Internal.Real.Fractional a, Database.Beam.Backend.SQL.BeamSqlBackend be, Database.Beam.Backend.SQL.BeamSqlBackendCanSerialize be a) => GHC.Internal.Real.Fractional (Database.Beam.Query.Internal.QGenExpr context be s a)
+ Database.Beam.Query.Internal: instance Database.Beam.Query.Internal.ProjectibleWithPredicate Database.Beam.Query.Internal.AnyType () res (GHC.Internal.Data.Functor.Const.Const res a)
+ Database.Beam.Query.Internal: instance Database.Beam.Schema.Tables.Beamable t => Database.Beam.Query.Internal.ProjectibleWithPredicate Database.Beam.Query.Internal.AnyType () Data.Text.Internal.Text (t (Database.Beam.Backend.Types.Nullable (GHC.Internal.Data.Functor.Const.Const Data.Text.Internal.Text)))
+ Database.Beam.Query.Internal: instance Database.Beam.Schema.Tables.Beamable t => Database.Beam.Query.Internal.ProjectibleWithPredicate Database.Beam.Query.Internal.AnyType () res (t (GHC.Internal.Data.Functor.Const.Const res))
+ Database.Beam.Query.Internal: instance GHC.Internal.Base.Applicative (Database.Beam.Query.Internal.Q be db s)
+ Database.Beam.Query.Internal: instance GHC.Internal.Base.Functor (Database.Beam.Query.Internal.Q be db s)
+ Database.Beam.Query.Internal: instance GHC.Internal.Base.Functor (Database.Beam.Query.Internal.QF be db s)
+ Database.Beam.Query.Internal: instance GHC.Internal.Base.Monad (Database.Beam.Query.Internal.Q be db s)
+ Database.Beam.Query.Internal: instance GHC.Internal.Base.Monoid (Database.Beam.Query.Internal.QAssignment be s)
+ Database.Beam.Query.Internal: instance GHC.Internal.Base.Semigroup (Database.Beam.Query.Internal.QAssignment be s)
+ Database.Beam.Query.Internal: instance GHC.Internal.Show.Show (Database.Beam.Query.Internal.QField s ty)
+ Database.Beam.Query.SQL92: instance (GHC.Internal.Base.Monoid a, Database.Beam.Query.Internal.ProjectibleWithPredicate c syntax res b) => Database.Beam.Query.Internal.ProjectibleWithPredicate c syntax res (Database.Beam.Query.SQL92.PreserveLeft a b)
+ Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.Database be embedded, GHC.Internal.Generics.Generic (Database.Beam.Schema.Tables.DatabaseSettings be embedded), Database.Beam.Schema.Tables.GAutoDbSettings (GHC.Internal.Generics.Rep (Database.Beam.Schema.Tables.DatabaseSettings be embedded) ())) => Database.Beam.Schema.Tables.GAutoDbSettings (GHC.Internal.Generics.S1 f (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (embedded (Database.Beam.Schema.Tables.DatabaseEntity be super))) p)
+ Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GAutoDbSettings (x p), Database.Beam.Schema.Tables.GAutoDbSettings (y p)) => Database.Beam.Schema.Tables.GAutoDbSettings ((GHC.Internal.Generics.:*:) x y p)
+ Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GDefaultTableFieldSettings (a p), Database.Beam.Schema.Tables.GDefaultTableFieldSettings (b p)) => Database.Beam.Schema.Tables.GDefaultTableFieldSettings ((GHC.Internal.Generics.:*:) a b p)
+ Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GFieldsFulfillConstraint c aExp aC, Database.Beam.Schema.Tables.GFieldsFulfillConstraint c bExp bC) => Database.Beam.Schema.Tables.GFieldsFulfillConstraint c (aExp GHC.Internal.Generics.:*: bExp) (aC GHC.Internal.Generics.:*: bC)
+ Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GTableSkeleton a, Database.Beam.Schema.Tables.GTableSkeleton b) => Database.Beam.Schema.Tables.GTableSkeleton (a GHC.Internal.Generics.:*: b)
+ Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GZipDatabase be f g h ax ay az, Database.Beam.Schema.Tables.GZipDatabase be f g h bx by bz) => Database.Beam.Schema.Tables.GZipDatabase be f g h (ax GHC.Internal.Generics.:*: bx) (ay GHC.Internal.Generics.:*: by) (az GHC.Internal.Generics.:*: bz)
+ Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.GZipTables f g h exp1 f1 g1 h1, Database.Beam.Schema.Tables.GZipTables f g h exp2 f2 g2 h2) => Database.Beam.Schema.Tables.GZipTables f g h (exp1 GHC.Internal.Generics.:*: exp2) (f1 GHC.Internal.Generics.:*: f2) (g1 GHC.Internal.Generics.:*: g2) (h1 GHC.Internal.Generics.:*: h2)
+ Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.IsDatabaseEntity be tbl, Database.Beam.Schema.Tables.DatabaseEntityRegularRequirements be tbl) => Database.Beam.Schema.Tables.GZipDatabase be f g h (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (f tbl)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (g tbl)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (h tbl))
+ Database.Beam.Schema.Tables: instance (Database.Beam.Schema.Tables.Table rel, GHC.Internal.Generics.Generic (rel (Database.Beam.Schema.Tables.TableField rel)), Database.Beam.Schema.Tables.TagReducesTo f (Database.Beam.Schema.Tables.TableField tbl), Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Internal.Generics.Rep (rel (Database.Beam.Schema.Tables.TableField rel)) ())) => Database.Beam.Schema.Tables.SubTableStrategyImpl 'Database.Beam.Schema.Tables.PrimaryKeyStrategy f (Database.Beam.Schema.Tables.PrimaryKey rel)
+ Database.Beam.Schema.Tables: instance (GHC.Internal.Generics.Generic (sub f), Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Internal.Generics.Rep (sub f) ())) => Database.Beam.Schema.Tables.SubTableStrategyImpl 'Database.Beam.Schema.Tables.BeamableStrategy f sub
+ Database.Beam.Schema.Tables: instance (GHC.Internal.Generics.Selector f', Database.Beam.Schema.Tables.ChooseSubTableStrategy tbl sub GHC.Types.~ strategy, Database.Beam.Schema.Tables.SubTableStrategyImpl strategy f sub, Database.Beam.Schema.Tables.TagReducesTo f (Database.Beam.Schema.Tables.TableField tbl), Database.Beam.Schema.Tables.Beamable sub) => Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Internal.Generics.S1 f' (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (sub f)) p)
+ Database.Beam.Schema.Tables: instance (GHC.Internal.Generics.Selector f, Database.Beam.Schema.Tables.IsDatabaseEntity be x, Database.Beam.Schema.Tables.DatabaseEntityDefaultRequirements be x) => Database.Beam.Schema.Tables.GAutoDbSettings (GHC.Internal.Generics.S1 f (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (Database.Beam.Schema.Tables.DatabaseEntity be db x)) p)
+ Database.Beam.Schema.Tables: instance (TypeError ...) => Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Internal.Generics.K1 r f p)
+ Database.Beam.Schema.Tables: instance (fa GHC.Types.~ Database.Beam.Schema.Tables.Columnar f a, ga GHC.Types.~ Database.Beam.Schema.Tables.Columnar g a, ha GHC.Types.~ Database.Beam.Schema.Tables.Columnar h a, ha GHC.Types.~ Database.Beam.Schema.Tables.Columnar h a) => Database.Beam.Schema.Tables.GZipTables f g h (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (Database.Beam.Backend.Types.Exposed a)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R fa) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R ga) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R ha)
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.Beamable tbl => Database.Beam.Schema.Tables.GTableSkeleton (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (tbl (Database.Beam.Backend.Types.Nullable Database.Beam.Schema.Tables.Ignored)))
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.Beamable tbl => Database.Beam.Schema.Tables.GTableSkeleton (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (tbl Database.Beam.Schema.Tables.Ignored))
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.Beamable tbl => Database.Beam.Schema.Tables.GZipTables f g h (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (tbl (Database.Beam.Backend.Types.Nullable Database.Beam.Backend.Types.Exposed))) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (tbl (Database.Beam.Backend.Types.Nullable f))) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (tbl (Database.Beam.Backend.Types.Nullable g))) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (tbl (Database.Beam.Backend.Types.Nullable h)))
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.Beamable tbl => Database.Beam.Schema.Tables.GZipTables f g h (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (tbl Database.Beam.Backend.Types.Exposed)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (tbl f)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (tbl g)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (tbl h))
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.Database be db => Database.Beam.Schema.Tables.GZipDatabase be f g h (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (db f)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (db g)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (db h))
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.FieldsFulfillConstraint c t => Database.Beam.Schema.Tables.GFieldsFulfillConstraint c (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (t Database.Beam.Backend.Types.Exposed)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (t (Database.Beam.Schema.Tables.HasConstraint c)))
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.FieldsFulfillConstraintNullable c t => Database.Beam.Schema.Tables.GFieldsFulfillConstraint c (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (t (Database.Beam.Backend.Types.Nullable Database.Beam.Backend.Types.Exposed))) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (t (Database.Beam.Backend.Types.Nullable (Database.Beam.Schema.Tables.HasConstraint c))))
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GAutoDbSettings (x p) => Database.Beam.Schema.Tables.GAutoDbSettings (GHC.Internal.Generics.C1 f x p)
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GAutoDbSettings (x p) => Database.Beam.Schema.Tables.GAutoDbSettings (GHC.Internal.Generics.D1 f x p)
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GDefaultTableFieldSettings (p x) => Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Internal.Generics.C1 f p x)
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GDefaultTableFieldSettings (p x) => Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Internal.Generics.D1 f p x)
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GFieldsFulfillConstraint c GHC.Internal.Generics.U1 GHC.Internal.Generics.U1
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GFieldsFulfillConstraint c exposed withconstraint => Database.Beam.Schema.Tables.GFieldsFulfillConstraint c (GHC.Internal.Generics.M1 s m exposed) (GHC.Internal.Generics.M1 s m withconstraint)
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GTableSkeleton (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (Database.Beam.Schema.Tables.Ignored field))
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GTableSkeleton GHC.Internal.Generics.U1
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GTableSkeleton p => Database.Beam.Schema.Tables.GTableSkeleton (GHC.Internal.Generics.M1 t f p)
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GZipDatabase be f g h x y z => Database.Beam.Schema.Tables.GZipDatabase be f g h (GHC.Internal.Generics.M1 a b x) (GHC.Internal.Generics.M1 a b y) (GHC.Internal.Generics.M1 a b z)
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GZipTables f g h GHC.Internal.Generics.U1 GHC.Internal.Generics.U1 GHC.Internal.Generics.U1 GHC.Internal.Generics.U1
+ Database.Beam.Schema.Tables: instance Database.Beam.Schema.Tables.GZipTables f g h exp fRep gRep hRep => Database.Beam.Schema.Tables.GZipTables f g h (GHC.Internal.Generics.M1 x y exp) (GHC.Internal.Generics.M1 x y fRep) (GHC.Internal.Generics.M1 x y gRep) (GHC.Internal.Generics.M1 x y hRep)
+ Database.Beam.Schema.Tables: instance GHC.Internal.Base.Monoid (Database.Beam.Schema.Tables.EntityModification f be e)
+ Database.Beam.Schema.Tables: instance GHC.Internal.Base.Semigroup (Database.Beam.Schema.Tables.EntityModification f be e)
+ Database.Beam.Schema.Tables: instance GHC.Internal.Data.String.IsString (Database.Beam.Schema.Tables.FieldModification (Database.Beam.Schema.Tables.TableField tbl) a)
+ Database.Beam.Schema.Tables: instance GHC.Internal.Generics.Selector f => Database.Beam.Schema.Tables.GDefaultTableFieldSettings (GHC.Internal.Generics.S1 f (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (Database.Beam.Schema.Tables.TableField table field)) p)
+ Database.Beam.Schema.Tables: instance GHC.Internal.Show.Show (Database.Beam.Schema.Tables.TableField table ty)
+ Database.Beam.Schema.Tables: instance c x => Database.Beam.Schema.Tables.GFieldsFulfillConstraint c (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (Database.Beam.Backend.Types.Exposed x)) (GHC.Internal.Generics.K1 GHC.Internal.Generics.R (Database.Beam.Schema.Tables.HasConstraint c x))
- Database.Beam.Backend.SQL.BeamExtensions: -- | What to do when an <tt>INSERT</tt> statement inserts a row into the
+ Database.Beam.Backend.SQL.BeamExtensions: -- | All backend-specific options which determine HOW the streaming copy is
Files
- ChangeLog.md +24/−0
- Database/Beam/Backend/SQL/BeamExtensions.hs +7/−0
- Database/Beam/Backend/SQL/BeamExtensions/Copy/File.hs +320/−0
- Database/Beam/Backend/SQL/BeamExtensions/Copy/Stream.hs +289/−0
- Database/Beam/Backend/Types.hs +1/−1
- Database/Beam/Query/CTE.hs +1/−1
- Database/Beam/Query/Internal.hs +1/−1
- Database/Beam/Query/SQL92.hs +17/−1
- Database/Beam/Schema/Tables.hs +2/−2
- beam-core.cabal +6/−4
- test/Database/Beam/Test/SQL.hs +58/−2
ChangeLog.md view
@@ -1,3 +1,27 @@+# 0.11.1.0++## New features++* Added a cross-backend abstraction for the `COPY` statement in+ `Database.Beam.Backend.SQL.BeamExtensions`:+ * file-mode `COPY ... TO 'file'` / `COPY ... FROM 'file'`. Defines+ `MonadBeamCopyTo` / `MonadBeamCopyFrom`, and the user-facing+ `copyTableTo` / `copySelectTo` / `copyTableFrom` builders.+ * streaming `COPY ... TO STDOUT` / `COPY ... FROM STDIN`. Mirrors the file-mode+ API: `MonadBeamCopyToStream` / `MonadBeamCopyFromStream`,+ and the `copyTableToStream` / `copySelectToStream` / `copyTableFromStream` builders.++## Bug fixes++* Fixed an issue where a window function applied over the result of `nub_` (or+ the Postgres-specific `pgNubBy_`) would emit `DISTINCT` and the window+ expression in the same `SELECT`, causing the window to evaluate against the+ pre-deduplicated rows. The inner select is now materialised as a subquery+ whenever it carries `DISTINCT`, `GROUP BY`, or `HAVING` (#756).++## Dependencies++* Removed dependency on `ghc-prim`. # 0.11.0.0
Database/Beam/Backend/SQL/BeamExtensions.hs view
@@ -16,6 +16,11 @@ , runDeleteReturningList , BeamHasInsertOnConflict(..) + -- * Support for copying to external files+ , module Database.Beam.Backend.SQL.BeamExtensions.Copy.File+ -- * Support for streaming copy+ , module Database.Beam.Backend.SQL.BeamExtensions.Copy.Stream+ , SqlSerial(..) , onConflictUpdateInstead , onConflictUpdateAll@@ -41,6 +46,8 @@ import Data.Kind (Type) import Data.Proxy import Data.Semigroup+import Database.Beam.Backend.SQL.BeamExtensions.Copy.File hiding (projection) -- internal function+import Database.Beam.Backend.SQL.BeamExtensions.Copy.Stream --import GHC.Generics
+ Database/Beam/Backend/SQL/BeamExtensions/Copy/File.hs view
@@ -0,0 +1,320 @@+{-# LANGUAGE UndecidableInstances #-}++-- | File-mode @COPY@: the data lives on the database server's filesystem.+--+-- For the variant that streams data through the client connection instead, see+-- "Database.Beam.Backend.SQL.BeamExtensions.Copy.Stream".+module Database.Beam.Backend.SQL.BeamExtensions.Copy.File+ ( -- * Building a COPY statement+ copyTableTo,+ copySelectTo,+ SqlCopyTo (..),+ copyTableFrom,+ SqlCopyFrom (..),++ -- * Source-syntax classes (shared with streaming COPY)+ IsSqlCopyToSourceSyntax (..),+ IsSqlCopyFromSourceSyntax (..),++ -- * File-mode statement-level syntax classes+ IsSqlCopyToSyntax (..),+ IsSqlCopyFromSyntax (..),+ BeamSqlBackendCopyToSyntax,+ BeamSqlBackendCopyFromSyntax,++ -- * Runner classes+ MonadBeamCopyTo (..),+ MonadBeamCopyFrom (..),++ -- * Internal — exposed for use by sibling modules+ projection,+ )+where++import Control.Monad.Cont (ContT)+import Control.Monad.Except (ExceptT)+import qualified Control.Monad.RWS.Lazy as Lazy+import qualified Control.Monad.RWS.Strict as Strict+import Control.Monad.Reader (ReaderT)+import qualified Control.Monad.State.Lazy as Lazy+import qualified Control.Monad.State.Strict as Strict+import Control.Monad.Trans (lift)+import qualified Control.Monad.Writer.Lazy as Lazy+import qualified Control.Monad.Writer.Strict as Strict+import Data.Data (Proxy (..))+import Data.Kind (Type)+import Data.List.NonEmpty (NonEmpty, nonEmpty)+import Data.Text (Text)+import Database.Beam.Backend.SQL (BeamSqlBackendSelectSyntax, MonadBeam (..))+import Database.Beam.Query (QField, SqlSelect (..))+import Database.Beam.Query.Internal (AnyType, ProjectibleWithPredicate, QField (..), project')+import Database.Beam.Schema (TableEntity)+import Database.Beam.Schema.Tables+ ( Beamable,+ Columnar' (..),+ DatabaseEntity (..),+ DatabaseEntityDescriptor (DatabaseTable, dbTableSettings),+ IsDatabaseEntity (dbEntityName, dbEntitySchema),+ changeBeamRep,+ fieldName,+ )+import Lens.Micro ((^.))++-- | This class allows to express the source of a `COPY ... TO` statement.+-- The options are either from a table (with a possible projection),+-- or from the result of a select query.+--+-- Reused by both file-mode and streaming COPY: the source shape (a table or+-- a @SELECT@) is the same regardless of where the data ends up.+class IsSqlCopyToSourceSyntax syntax where+ -- | Expected to be equal to `BeamSqlBackendSelectSyntax be`+ type SqlCopyToSourceSelectSyntax syntax :: Type++ -- Copy an entire table, perhaps with some column projections+ copyTableToSyntax ::+ Maybe Text -> -- schema (Nothing = default search path)+ Text -> -- table name+ Maybe (NonEmpty Text) -> -- column list; `Nothing` means "all columns"+ syntax++ -- Copy the result of a select statement+ copySelectToSyntax ::+ SqlCopyToSourceSelectSyntax syntax ->+ syntax++-- | This class allows to express the source of a `COPY ... FROM` statement.+-- Reused by both file-mode and streaming COPY.+class IsSqlCopyFromSourceSyntax syntax where+ -- Copy data into a table, perhaps with some column projections+ copyTableFromSyntax ::+ Maybe Text -> -- schema (Nothing = default search path)+ Text -> -- table name+ Maybe (NonEmpty Text) -> -- column list; `Nothing` means "all columns"+ syntax++-- | Statement-level syntax for backends that support @COPY ... TO@ file.+class (IsSqlCopyToSourceSyntax (SqlCopyToSourceSyntax cmd)) => IsSqlCopyToSyntax cmd where+ -- | The syntax for the source of the copy. For example, in Postgres,+ -- this can be either a table (and optional projection), or a select statement.+ type SqlCopyToSourceSyntax cmd :: Type++ -- | All backend-specific options which determine HOW the copy is performed,+ -- including the destination of the data (e.g. a filepath).+ type SqlCopyToParams cmd :: Type++ -- | Combine a source and a parameters value into a complete+ -- @COPY ... TO ...@ statement.+ copyToStmt ::+ SqlCopyToSourceSyntax cmd ->+ SqlCopyToParams cmd ->+ cmd++-- | Statement-level syntax for backends that support file-mode @COPY ... FROM@ file.+--+-- Symmetric to 'IsSqlCopyToSyntax', but the data flows in the opposite+-- direction: the params value supplies the source path and any+-- format-specific options.+class (IsSqlCopyFromSourceSyntax (SqlCopyFromSourceSyntax cmd)) => IsSqlCopyFromSyntax cmd where+ -- | The syntax for the destination table of the copy.+ type SqlCopyFromSourceSyntax cmd :: Type++ -- | All backend-specific options which determine HOW the copy is performed,+ -- including the source of the data (e.g. a filepath).+ type SqlCopyFromParams cmd :: Type++ -- | Combine a destination and a parameters value into a complete+ -- @COPY ... FROM ...@ statement.+ copyFromStmt ::+ SqlCopyFromSourceSyntax cmd ->+ SqlCopyFromParams cmd ->+ cmd++-- | Type-family selector for the backend's file-mode @COPY ... TO@ syntax.+-- A backend instance binds this to the concrete syntax type that implements+-- 'IsSqlCopyToSyntax'.+type family BeamSqlBackendCopyToSyntax be :: Type++-- | Type-family selector for the backend's file-mode @COPY ... FROM@ syntax.+-- See 'BeamSqlBackendCopyToSyntax'.+type family BeamSqlBackendCopyFromSyntax be :: Type++-- | A built file-mode @COPY ... TO@ statement, ready to be executed by+-- 'runCopyTo'. Construct via 'copyTableTo' or 'copySelectTo'; the @table@+-- and @proj@ phantom parameters track which table the statement applies to+-- and which columns it projects.+data SqlCopyTo be a+ = SqlCopyTo !(BeamSqlBackendCopyToSyntax be)+ | -- | A projection covering zero columns. 'runCopyTo' should treat this as a+ -- no-op rather than emit an empty @COPY tbl () TO ...@ statement.+ SqlCopyToNoColumns++-- | A built file-mode @COPY ... FROM@ statement, ready to be executed by+-- 'runCopyFrom'. Construct via 'copyTableFrom'.+data SqlCopyFrom be a+ = SqlCopyFrom !(BeamSqlBackendCopyFromSyntax be)+ | -- | A projection covering zero columns. 'runCopyFrom' should treat this as+ -- a no-op rather than emit an empty @COPY tbl () FROM ...@ statement.+ SqlCopyFromNoColumns++-- | Express the copy from a table, to a destination (typically a file).+--+-- To copy the result of a @SELECT@ query instead, see `copySelectTo`.+--+-- @since 0.11.1.0+copyTableTo ::+ ( IsSqlCopyToSyntax (BeamSqlBackendCopyToSyntax be),+ ProjectibleWithPredicate AnyType () Text proj+ ) =>+ DatabaseEntity be db (TableEntity table) ->+ -- | Projection from table to columns. If you want+ -- to copy the entire table, use 'id'.+ (table (QField s) -> proj) ->+ -- | Backend-specific options. The output is also determined by this value+ SqlCopyToParams (BeamSqlBackendCopyToSyntax be) ->+ SqlCopyTo be proj+copyTableTo (DatabaseEntity dt@(DatabaseTable {})) mkProj options =+ case nonEmpty (projection dt mkProj) of+ Nothing -> SqlCopyToNoColumns+ Just cols ->+ let source = copyTableToSyntax (dt ^. dbEntitySchema) (dt ^. dbEntityName) (Just cols)+ in SqlCopyTo+ (copyToStmt source options)++-- | Express the copy from the result of a @SELECT@ statement to a destination+-- (typically a file). Use this when the source rows are produced by a query+-- rather than read directly from a table.+--+-- To copy a table, or a subset of columns, see `copyTableTo`.+--+-- @since 0.11.1.0+copySelectTo ::+ ( IsSqlCopyToSyntax (BeamSqlBackendCopyToSyntax be),+ SqlCopyToSourceSelectSyntax (SqlCopyToSourceSyntax (BeamSqlBackendCopyToSyntax be))+ ~ BeamSqlBackendSelectSyntax be+ ) =>+ SqlSelect be a ->+ -- | Backend-specific options. The format is pinned by this value+ SqlCopyToParams (BeamSqlBackendCopyToSyntax be) ->+ SqlCopyTo be a+copySelectTo (SqlSelect selectSyntax) options =+ let source = copySelectToSyntax selectSyntax+ in SqlCopyTo (copyToStmt source options)++-- | Express the copy to a table, from an external source (typically a file).+--+-- @since 0.11.1.0+copyTableFrom ::+ ( IsSqlCopyFromSyntax (BeamSqlBackendCopyFromSyntax be),+ ProjectibleWithPredicate AnyType () Text proj+ ) =>+ DatabaseEntity be db (TableEntity table) ->+ -- | Projection from table to columns. If you want+ -- to copy into the entire table, use 'id'.+ (table (QField s) -> proj) ->+ -- | Backend-specific options. The format is pinned by this value+ SqlCopyFromParams (BeamSqlBackendCopyFromSyntax be) ->+ SqlCopyFrom be proj+copyTableFrom (DatabaseEntity dt@(DatabaseTable {})) mkProj options =+ case nonEmpty (projection dt mkProj) of+ Nothing -> SqlCopyFromNoColumns+ Just cols ->+ let source = copyTableFromSyntax (dt ^. dbEntitySchema) (dt ^. dbEntityName) (Just cols)+ in SqlCopyFrom+ (copyFromStmt source options)++-- | Walk a projection and collect the names of the columns it touches.+--+-- This is the building block 'copyTableTo' / 'copyTableFrom' (and their+-- streaming counterparts) use to derive the column list for the emitted+-- @COPY@ statement. Exposed here so that the streaming submodule can reuse+-- the same logic without duplication.+projection ::+ (ProjectibleWithPredicate AnyType () Text proj, Beamable table) =>+ DatabaseEntityDescriptor be (TableEntity table) ->+ (table (QField s) -> proj) ->+ [Text]+projection dt mkProj =+ Strict.execWriter+ ( project'+ (Proxy @AnyType)+ (Proxy @((), Text))+ (\_ _ f -> Strict.tell [f] >> pure f)+ (mkProj tblFields)+ )+ where+ tblFields =+ changeBeamRep+ (\(Columnar' fd) -> Columnar' (QField False (dt ^. dbEntityName) (fd ^. fieldName)))+ (dbTableSettings dt)++-- | 'MonadBeam's that support copying data out of a database, to some other location.+--+-- See 'MonadBeamCopyFrom' for the inverse operation.+--+-- @since 0.11.1.0+class (MonadBeam be m) => MonadBeamCopyTo be m | m -> be where+ -- | Execute a built @COPY ... TO@ file statement.+ runCopyTo :: SqlCopyTo be res -> m ()++instance (MonadBeamCopyTo be m) => MonadBeamCopyTo be (ExceptT e m) where+ runCopyTo = lift . runCopyTo++instance (MonadBeamCopyTo be m) => MonadBeamCopyTo be (ContT r m) where+ runCopyTo = lift . runCopyTo++instance (MonadBeamCopyTo be m) => MonadBeamCopyTo be (ReaderT r m) where+ runCopyTo = lift . runCopyTo++instance (MonadBeamCopyTo be m) => MonadBeamCopyTo be (Lazy.StateT r m) where+ runCopyTo = lift . runCopyTo++instance (MonadBeamCopyTo be m) => MonadBeamCopyTo be (Strict.StateT r m) where+ runCopyTo = lift . runCopyTo++instance (MonadBeamCopyTo be m, Monoid r) => MonadBeamCopyTo be (Lazy.WriterT r m) where+ runCopyTo = lift . runCopyTo++instance (MonadBeamCopyTo be m, Monoid r) => MonadBeamCopyTo be (Strict.WriterT r m) where+ runCopyTo = lift . runCopyTo++instance (MonadBeamCopyTo be m, Monoid w) => MonadBeamCopyTo be (Lazy.RWST r w s m) where+ runCopyTo = lift . runCopyTo++instance (MonadBeamCopyTo be m, Monoid w) => MonadBeamCopyTo be (Strict.RWST r w s m) where+ runCopyTo = lift . runCopyTo++-- | 'MonadBeam's that support copying data into database, from other location.+--+-- See 'MonadBeamCopyTo' for the inverse operation.+--+-- @since 0.11.1.0+class (MonadBeam be m) => MonadBeamCopyFrom be m | m -> be where+ -- | Execute a built @COPY ... FROM@ file statement.+ runCopyFrom :: SqlCopyFrom be proj -> m ()++instance (MonadBeamCopyFrom be m) => MonadBeamCopyFrom be (ExceptT e m) where+ runCopyFrom = lift . runCopyFrom++instance (MonadBeamCopyFrom be m) => MonadBeamCopyFrom be (ContT r m) where+ runCopyFrom = lift . runCopyFrom++instance (MonadBeamCopyFrom be m) => MonadBeamCopyFrom be (ReaderT r m) where+ runCopyFrom = lift . runCopyFrom++instance (MonadBeamCopyFrom be m) => MonadBeamCopyFrom be (Lazy.StateT r m) where+ runCopyFrom = lift . runCopyFrom++instance (MonadBeamCopyFrom be m) => MonadBeamCopyFrom be (Strict.StateT r m) where+ runCopyFrom = lift . runCopyFrom++instance (MonadBeamCopyFrom be m, Monoid r) => MonadBeamCopyFrom be (Lazy.WriterT r m) where+ runCopyFrom = lift . runCopyFrom++instance (MonadBeamCopyFrom be m, Monoid r) => MonadBeamCopyFrom be (Strict.WriterT r m) where+ runCopyFrom = lift . runCopyFrom++instance (MonadBeamCopyFrom be m, Monoid w) => MonadBeamCopyFrom be (Lazy.RWST r w s m) where+ runCopyFrom = lift . runCopyFrom++instance (MonadBeamCopyFrom be m, Monoid w) => MonadBeamCopyFrom be (Strict.RWST r w s m) where+ runCopyFrom = lift . runCopyFrom
+ Database/Beam/Backend/SQL/BeamExtensions/Copy/Stream.hs view
@@ -0,0 +1,289 @@+{-# LANGUAGE UndecidableInstances #-}++-- | Streaming-mode @COPY@: the data flows through the client connection+-- rather than to or from a file on the database server.+--+-- For the file-mode variant, see+-- "Database.Beam.Backend.SQL.BeamExtensions.Copy.File".+module Database.Beam.Backend.SQL.BeamExtensions.Copy.Stream+ ( -- * Building a streaming COPY statement+ copyTableToStream,+ copySelectToStream,+ SqlCopyToStream (..),+ copyTableFromStream,+ SqlCopyFromStream (..),++ -- * Streaming statement-level syntax classes+ IsSqlCopyToStreamSyntax (..),+ IsSqlCopyFromStreamSyntax (..),+ BeamSqlBackendCopyToStreamSyntax,+ BeamSqlBackendCopyFromStreamSyntax,++ -- * Runner classes+ MonadBeamCopyToStream (..),+ MonadBeamCopyFromStream (..),+ )+where++import Control.Monad.Cont (ContT)+import Control.Monad.Except (ExceptT)+import qualified Control.Monad.RWS.Lazy as Lazy+import qualified Control.Monad.RWS.Strict as Strict+import Control.Monad.Reader (ReaderT)+import qualified Control.Monad.State.Lazy as Lazy+import qualified Control.Monad.State.Strict as Strict+import Control.Monad.Trans (lift)+import qualified Control.Monad.Writer.Lazy as Lazy+import qualified Control.Monad.Writer.Strict as Strict+import Data.ByteString (ByteString)+import Data.Kind (Type)+import Data.List.NonEmpty (nonEmpty)+import Data.Text (Text)+import Database.Beam.Backend.SQL (BeamSqlBackendSelectSyntax, MonadBeam)+import Database.Beam.Backend.SQL.BeamExtensions.Copy.File+ ( IsSqlCopyFromSourceSyntax (..),+ IsSqlCopyToSourceSyntax (..),+ projection,+ )+import Database.Beam.Query (QField, SqlSelect (..))+import Database.Beam.Query.Internal (AnyType, ProjectibleWithPredicate)+import Database.Beam.Schema (TableEntity)+import Database.Beam.Schema.Tables+ ( DatabaseEntity (..),+ DatabaseEntityDescriptor (DatabaseTable),+ IsDatabaseEntity (dbEntityName, dbEntitySchema),+ )+import Lens.Micro ((^.))++-- | Statement-level syntax for backends that support streaming+-- @COPY ... TO@ (data leaving the database through the client connection).+--+-- Mirrors 'Database.Beam.Backend.SQL.BeamExtensions.Copy.File.IsSqlCopyToSyntax',+-- but the params value carries only format options — no destination path,+-- since chunks travel through the wire.+class (IsSqlCopyToSourceSyntax (SqlCopyToStreamSourceSyntax cmd)) => IsSqlCopyToStreamSyntax cmd where+ -- | The syntax for the source of the streaming copy. As with file-mode+ -- COPY, this can be a table (perhaps with a projection) or a @SELECT@+ -- query.+ type SqlCopyToStreamSourceSyntax cmd :: Type++ -- | All backend-specific options which determine HOW the streaming copy+ -- is performed (format, delimiter, etc.). Unlike the file-mode params,+ -- there is no destination — chunks flow through the connection.+ type SqlCopyToStreamParams cmd :: Type++ -- | Combine a source and a parameters value into a complete+ -- streaming @COPY ... TO@ stream statement.+ copyToStreamStmt ::+ SqlCopyToStreamSourceSyntax cmd ->+ SqlCopyToStreamParams cmd ->+ cmd++-- | Statement-level syntax for backends that support streaming+-- @COPY ... FROM@ (data entering the database through the client connection).+--+-- Mirrors 'Database.Beam.Backend.SQL.BeamExtensions.Copy.File.IsSqlCopyFromSyntax'.+class (IsSqlCopyFromSourceSyntax (SqlCopyFromStreamSourceSyntax cmd)) => IsSqlCopyFromStreamSyntax cmd where+ -- | The syntax for the destination table of the streaming copy.+ type SqlCopyFromStreamSourceSyntax cmd :: Type++ -- | All backend-specific options which determine HOW the streaming copy+ -- is performed. Unlike the file-mode params, there is no source path —+ -- chunks flow through the connection.+ type SqlCopyFromStreamParams cmd :: Type++ -- | Combine a destination and a parameters value into a complete+ -- streaming @COPY ... FROM@ stream statement.+ copyFromStreamStmt ::+ SqlCopyFromStreamSourceSyntax cmd ->+ SqlCopyFromStreamParams cmd ->+ cmd++-- | Type-family selector for the backend's streaming @COPY ... TO@ syntax.+-- A backend instance binds this to the concrete syntax type that+-- implements 'IsSqlCopyToStreamSyntax'.+type family BeamSqlBackendCopyToStreamSyntax be :: Type++-- | Type-family selector for the backend's streaming @COPY ... FROM@ syntax.+-- See 'BeamSqlBackendCopyToStreamSyntax'.+type family BeamSqlBackendCopyFromStreamSyntax be :: Type++-- | A built streaming-mode @COPY ... TO@ statement, ready to be executed by+-- 'runCopyToStream'.+data SqlCopyToStream be a+ = SqlCopyToStream !(BeamSqlBackendCopyToStreamSyntax be)+ | -- | A projection covering zero columns. 'runCopyToStream' should treat+ -- this as a no-op (it must still call the sink zero times) rather+ -- than emit an empty @COPY tbl () TO STDOUT@ statement.+ SqlCopyToStreamNoColumns++-- | A built streaming-mode @COPY ... FROM@ statement, ready to be executed+-- by 'runCopyFromStream'.+data SqlCopyFromStream be a+ = SqlCopyFromStream !(BeamSqlBackendCopyFromStreamSyntax be)+ | -- | A projection covering zero columns. 'runCopyFromStream' should+ -- treat this as a no-op (it should not pull from the source) rather+ -- than emit an empty @COPY tbl () FROM STDIN@ statement.+ SqlCopyFromStreamNoColumns++-- | Express a streaming copy from a table, the data flowing through the+-- client connection rather than to a server-side file.+--+-- To stream the result of a @SELECT@ query instead, see 'copySelectToStream'.+--+-- @since 0.11.1.0+copyTableToStream ::+ ( IsSqlCopyToStreamSyntax (BeamSqlBackendCopyToStreamSyntax be),+ ProjectibleWithPredicate AnyType () Text proj+ ) =>+ DatabaseEntity be db (TableEntity table) ->+ -- | Projection from table to columns. If you want+ -- to copy the entire table, use 'id'.+ (table (QField s) -> proj) ->+ -- | Backend-specific options.+ SqlCopyToStreamParams (BeamSqlBackendCopyToStreamSyntax be) ->+ SqlCopyToStream be proj+copyTableToStream (DatabaseEntity dt@(DatabaseTable {})) mkProj options =+ case nonEmpty (projection dt mkProj) of+ Nothing -> SqlCopyToStreamNoColumns+ Just cols ->+ let source = copyTableToSyntax (dt ^. dbEntitySchema) (dt ^. dbEntityName) (Just cols)+ in SqlCopyToStream+ (copyToStreamStmt source options)++-- | Express a streaming copy from the result of a @SELECT@ statement.+--+-- To stream a table, or a subset of columns, see 'copyTableToStream'.+--+-- @since 0.11.1.0+copySelectToStream ::+ ( IsSqlCopyToStreamSyntax (BeamSqlBackendCopyToStreamSyntax be),+ SqlCopyToSourceSelectSyntax (SqlCopyToStreamSourceSyntax (BeamSqlBackendCopyToStreamSyntax be))+ ~ BeamSqlBackendSelectSyntax be+ ) =>+ SqlSelect be a ->+ SqlCopyToStreamParams (BeamSqlBackendCopyToStreamSyntax be) ->+ SqlCopyToStream be a+copySelectToStream (SqlSelect selectSyntax) options =+ let source = copySelectToSyntax selectSyntax+ in SqlCopyToStream (copyToStreamStmt source options)++-- | Express a streaming copy into a table, the data flowing through the+-- client connection rather than from a server-side file.+--+-- @since 0.11.1.0+copyTableFromStream ::+ ( IsSqlCopyFromStreamSyntax (BeamSqlBackendCopyFromStreamSyntax be),+ ProjectibleWithPredicate AnyType () Text proj+ ) =>+ DatabaseEntity be db (TableEntity table) ->+ -- | Projection from which to copy columns. Other columns+ -- will have their default value inserted.+ --+ -- To copy the stream into the entire table, use 'id'.+ (table (QField s) -> proj) ->+ SqlCopyFromStreamParams (BeamSqlBackendCopyFromStreamSyntax be) ->+ SqlCopyFromStream be proj+copyTableFromStream (DatabaseEntity dt@(DatabaseTable {})) mkProj options =+ case nonEmpty (projection dt mkProj) of+ Nothing -> SqlCopyFromStreamNoColumns+ Just cols ->+ let source = copyTableFromSyntax (dt ^. dbEntitySchema) (dt ^. dbEntityName) (Just cols)+ in SqlCopyFromStream+ (copyFromStreamStmt source options)++-- | 'MonadBeam's that support streaming data out of a database through the+-- client connection (e.g. PostgreSQL's @COPY ... TO STDOUT@).+--+-- The supplied @ByteString -> IO ()@ callback is invoked once per chunk+-- received. The 'runCopyToStream' call blocks until the COPY completes; on+-- failure it raises the underlying backend's exception.+--+-- See 'MonadBeamCopyFromStream' for the inverse operation.+--+-- @since 0.11.1.0+class (MonadBeam be m) => MonadBeamCopyToStream be m | m -> be where+ -- | Execute a built streaming @COPY ... TO@ stream statement. The supplied sink+ -- is invoked from 'IO' once per chunk emitted by the server, in order;+ -- 'runCopyToStream' returns once the server signals end of stream.+ runCopyToStream ::+ SqlCopyToStream be a ->+ -- | Sink. Called once for each chunk of bytes the server emits.+ (ByteString -> IO ()) ->+ m ()++instance (MonadBeamCopyToStream be m) => MonadBeamCopyToStream be (ExceptT e m) where+ runCopyToStream s cb = lift (runCopyToStream s cb)++instance (MonadBeamCopyToStream be m) => MonadBeamCopyToStream be (ContT r m) where+ runCopyToStream s cb = lift (runCopyToStream s cb)++instance (MonadBeamCopyToStream be m) => MonadBeamCopyToStream be (ReaderT r m) where+ runCopyToStream s cb = lift (runCopyToStream s cb)++instance (MonadBeamCopyToStream be m) => MonadBeamCopyToStream be (Lazy.StateT r m) where+ runCopyToStream s cb = lift (runCopyToStream s cb)++instance (MonadBeamCopyToStream be m) => MonadBeamCopyToStream be (Strict.StateT r m) where+ runCopyToStream s cb = lift (runCopyToStream s cb)++instance (MonadBeamCopyToStream be m, Monoid r) => MonadBeamCopyToStream be (Lazy.WriterT r m) where+ runCopyToStream s cb = lift (runCopyToStream s cb)++instance (MonadBeamCopyToStream be m, Monoid r) => MonadBeamCopyToStream be (Strict.WriterT r m) where+ runCopyToStream s cb = lift (runCopyToStream s cb)++instance (MonadBeamCopyToStream be m, Monoid w) => MonadBeamCopyToStream be (Lazy.RWST r w s m) where+ runCopyToStream s cb = lift (runCopyToStream s cb)++instance (MonadBeamCopyToStream be m, Monoid w) => MonadBeamCopyToStream be (Strict.RWST r w s m) where+ runCopyToStream s cb = lift (runCopyToStream s cb)++-- | 'MonadBeam's that support streaming data into a database through the+-- client connection (e.g. PostgreSQL's @COPY ... FROM STDIN@).+--+-- The supplied @IO (Maybe ByteString)@ source is pulled repeatedly until it+-- returns 'Nothing', signalling end of data. 'runCopyFromStream' blocks+-- until the COPY commits; on failure it raises the underlying backend's+-- exception.+--+-- See 'MonadBeamCopyToStream' for the inverse operation.+--+-- @since 0.11.1.0+class (MonadBeam be m) => MonadBeamCopyFromStream be m | m -> be where+ -- | Execute a built streaming @COPY ... FROM@ statement. The supplied+ -- producer is pulled from 'IO' until it returns 'Nothing'; each 'Just'+ -- chunk is forwarded to the server in order. 'runCopyFromStream' returns+ -- once the server has acknowledged the end of stream.+ runCopyFromStream ::+ SqlCopyFromStream be a ->+ -- | Source. Called repeatedly. 'Nothing' signals end of data.+ IO (Maybe ByteString) ->+ m ()++instance (MonadBeamCopyFromStream be m) => MonadBeamCopyFromStream be (ExceptT e m) where+ runCopyFromStream s producer = lift (runCopyFromStream s producer)++instance (MonadBeamCopyFromStream be m) => MonadBeamCopyFromStream be (ContT r m) where+ runCopyFromStream s producer = lift (runCopyFromStream s producer)++instance (MonadBeamCopyFromStream be m) => MonadBeamCopyFromStream be (ReaderT r m) where+ runCopyFromStream s producer = lift (runCopyFromStream s producer)++instance (MonadBeamCopyFromStream be m) => MonadBeamCopyFromStream be (Lazy.StateT r m) where+ runCopyFromStream s producer = lift (runCopyFromStream s producer)++instance (MonadBeamCopyFromStream be m) => MonadBeamCopyFromStream be (Strict.StateT r m) where+ runCopyFromStream s producer = lift (runCopyFromStream s producer)++instance (MonadBeamCopyFromStream be m, Monoid r) => MonadBeamCopyFromStream be (Lazy.WriterT r m) where+ runCopyFromStream s producer = lift (runCopyFromStream s producer)++instance (MonadBeamCopyFromStream be m, Monoid r) => MonadBeamCopyFromStream be (Strict.WriterT r m) where+ runCopyFromStream s producer = lift (runCopyFromStream s producer)++instance (MonadBeamCopyFromStream be m, Monoid w) => MonadBeamCopyFromStream be (Lazy.RWST r w s m) where+ runCopyFromStream s producer = lift (runCopyFromStream s producer)++instance (MonadBeamCopyFromStream be m, Monoid w) => MonadBeamCopyFromStream be (Strict.RWST r w s m) where+ runCopyFromStream s producer = lift (runCopyFromStream s producer)
Database/Beam/Backend/Types.hs view
@@ -6,8 +6,8 @@ , Exposed, Nullable ) where+import Data.Kind (Type, Constraint) -import GHC.Types -- | Class for all Beam backends class BeamBackend be where
Database/Beam/Query/CTE.hs view
@@ -10,7 +10,7 @@ import Control.Monad.Fix import Control.Monad.Free.Church-import Control.Monad.Writer hiding ((<>))+import Control.Monad.Writer (WriterT, tell) import Control.Monad.State.Strict import Data.Kind (Type)
Database/Beam/Query/Internal.hs view
@@ -9,6 +9,7 @@ import qualified Data.DList as DList import Data.Functor.Const+import Data.Kind (Type, Constraint) import Data.String import qualified Data.Text as T import Data.Typeable@@ -20,7 +21,6 @@ import Control.Monad.Writer import GHC.TypeLits-import GHC.Types import Unsafe.Coerce
Database/Beam/Query/SQL92.hs view
@@ -322,7 +322,12 @@ _ -> doJoined buildQuery tblPfx (Free (QWindowOver mkWindows mkProjection q' next)) =- let sb = buildQuery tblPfx (fromF q')+ -- If the inner select carries DISTINCT, GROUP BY, or HAVING, those must+ -- apply to the row set *before* the window function. Emitting them in+ -- the same SELECT as the window projection inverts that order in SQL,+ -- yielding wrong results (issue #746). Materialise the inner select as+ -- a subquery in that case so the window evaluates over its output.+ let sb = forceSubqueryIfGrouping (buildQuery tblPfx (fromF q')) x = sbProj sb windows = mkWindows x@@ -336,6 +341,17 @@ _ -> let (x', qb) = selectBuilderToQueryBuilder tblPfx (setSelectBuilderProjection sb projection) in buildJoinedQuery tblPfx (next x') qb+ where+ forceSubqueryIfGrouping :: Projectible be x' => SelectBuilder be db x' -> SelectBuilder be db x'+ forceSubqueryIfGrouping sb0+ | hasGroupingClause sb0 = uncurry SelectBuilderQ $ selectBuilderToQueryBuilder tblPfx sb0+ | otherwise = sb0+ where+ hasGroupingClause :: SelectBuilder be db x' -> Bool+ hasGroupingClause (SelectBuilderGrouping _ _ grouping having distinct) =+ isJust grouping || isJust having || isJust distinct+ hasGroupingClause (SelectBuilderTopLevel _ _ _ inner _) = hasGroupingClause inner+ hasGroupingClause _ = False buildQuery tblPfx (Free (QLimit limit q' next)) = let sb = limitSelectBuilder limit (buildQuery tblPfx (fromF q'))
Database/Beam/Schema/Tables.hs view
@@ -79,10 +79,11 @@ import Control.Applicative (liftA2) import Control.Arrow (first) import Control.Monad.Identity-import Control.Monad.Writer hiding ((<>))+import Control.Monad.Writer (Writer, execWriter, tell) import Data.Char (isUpper, toLower) import Data.Foldable (fold)+import Data.Kind (Type, Constraint) import qualified Data.List.NonEmpty as NE import Data.Monoid import Data.Proxy@@ -94,7 +95,6 @@ import qualified GHC.Generics as Generic import GHC.Generics hiding (R, C) import GHC.TypeLits-import GHC.Types import Lens.Micro hiding (to)
beam-core.cabal view
@@ -1,5 +1,5 @@ name: beam-core-version: 0.11.0.0+version: 0.11.1.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@@ -47,7 +47,10 @@ Database.Beam.Backend.Internal.Compat - other-modules: Database.Beam.Query.Aggregate+ other-modules: Database.Beam.Backend.SQL.BeamExtensions.Copy.File+ Database.Beam.Backend.SQL.BeamExtensions.Copy.Stream++ Database.Beam.Query.Aggregate Database.Beam.Query.Combinators Database.Beam.Query.Extensions Database.Beam.Query.Extract@@ -63,10 +66,9 @@ bytestring >=0.10 && <0.13, mtl >=2.2.1 && <2.4, microlens >=0.4 && <0.6,- ghc-prim >=0.5 && <0.14, free >=4.12 && <5.3, dlist >=0.7.1.2 && <1.1,- time >=1.6 && <1.15,+ time >=1.6 && <1.17, hashable >=1.2.4.0 && <1.6, network-uri >=2.6 && <2.7, containers >=0.5 && <0.9,
test/Database/Beam/Test/SQL.hs view
@@ -31,6 +31,7 @@ , leftJoinSingle , aggregates , orderBy+ , innerNub , joinHaving @@ -127,7 +128,7 @@ simpleWhereNoFrom = testCase "WHERE clause not dropped if there is no FROM" $ do SqlSelect Select { selectTable = SelectTable { .. }, .. } <- pure $ selectMock simple- + selectGrouping @?= Nothing selectOrdering @?= [] selectLimit @?= Nothing@@ -137,7 +138,7 @@ -- Important point: no FROM clause, yet WHERE clause should still be here selectFrom @?= Nothing selectWhere @?= (Just (ExpressionValue (Value False)))- + where simple :: Q (MockSqlBackend Command) EmptyDb s (QExpr (MockSqlBackend Command) s Bool) simple = do@@ -769,6 +770,61 @@ selectFrom s @?= Just (InnerJoin (FromTable (TableNamed (TableName Nothing "roles")) (Just ("t0", Nothing))) (FromTable (TableFromSubSelect subselect) (Just ("t1", Nothing))) Nothing)+++-- | Ensure that a SQL DISTINCT in a subquery does not propagate up (see issue #746)+innerNub :: TestTree+innerNub =+ testCase "DISTINCT clause on inner SELECT" $ do+ stmt@(SqlSelect Select{selectTable = SelectTable{..}, ..}) <- pure $ selectMock query++ selectGrouping @?= Nothing+ selectOrdering @?= []+ selectLimit @?= Nothing+ selectOffset @?= Nothing+ selectHaving @?= Nothing+ selectQuantifier @?= Nothing -- quantifier should be in the subquery+ selectFrom+ @?= Just+ ( FromTable+ ( TableFromSubSelect+ ( Select+ { selectTable =+ SelectTable+ { selectQuantifier = Just SetQuantifierDistinct+ , selectProjection = ProjExprs [(ExpressionFieldName (QualifiedField "t0" "first_name"), Just "res0")]+ , selectFrom = Just (FromTable (TableNamed (TableName Nothing "employees")) (Just ("t0", Nothing)))+ , selectWhere = Nothing+ , selectGrouping = Nothing+ , selectHaving = Nothing+ }+ , selectOrdering = []+ , selectLimit = Nothing+ , selectOffset = Nothing+ }+ )+ )+ (Just ("t0", Nothing))+ )+ selectWhere+ @?= Just+ ( ExpressionCompOp+ "=="+ Nothing+ (ExpressionFieldName (QualifiedField "t0" "res0"))+ (ExpressionValue (Value @Text "Alice"))+ )+ where+ query :: Q (MockSqlBackend Command) EmployeeDb s (QExpr (MockSqlBackend Command) s Text)+ query = do+ name <- subQuery+ guard_ (name ==. val_ "Alice")+ pure name++ -- This sub query contains a DISTINCT clause via `nub_`+ subQuery :: Q (MockSqlBackend Command) EmployeeDb s (QExpr (MockSqlBackend Command) s Text)+ subQuery = nub_ $ _employeeFirstName <$> (all_ (_employees employeeDbSettings))+ -- | HAVING clause should not be floated out of a join