-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Beam driver for SQLite -- -- Beam driver for the SQLite embedded database. See here -- for more information @package beam-sqlite @version 0.5.3.0 -- | SQLite implementations of the Beam SQL syntax classes -- -- The SQLite command syntax is implemented by -- SQLiteCommandSyntax. module Database.Beam.Sqlite.Syntax -- | The syntax for SQLite is stored as a Builder along with a list -- of data that hasn't been serialized yet. -- -- The first argument is a function that receives a builder for -- SQLData and returns the concrete syntax to embed into the -- query. For queries sent to the backend, this is simply a function that -- returns "?". Thus, the syntax sent to the backend includes -- proper placeholders. The list of data is sent to the SQLite library -- for proper escaping. -- -- When the syntax is being serialized for display (for use in beam -- migrate for example), the data builder attempts to properly format and -- escape the data. This returns syntax suitable for inclusion in -- scripts. In this case, the value list is ignored. data SqliteSyntax SqliteSyntax :: ((SQLData -> Builder) -> Builder) -> DList SQLData -> SqliteSyntax -- | A SQLite command. INSERT is special cased to handle AUTO -- INCREMENT columns. The fromSqliteCommand function will -- take an SqliteCommandSyntax and convert it into the correct -- SqliteSyntax. data SqliteCommandSyntax SqliteCommandSyntax :: SqliteSyntax -> SqliteCommandSyntax SqliteCommandInsert :: SqliteInsertSyntax -> SqliteCommandSyntax -- | SQLite SELECT syntax newtype SqliteSelectSyntax SqliteSelectSyntax :: SqliteSyntax -> SqliteSelectSyntax [fromSqliteSelect] :: SqliteSelectSyntax -> SqliteSyntax -- | SQLite INSERT syntax. This doesn't directly wrap -- SqliteSyntax because we need to do some processing on -- INSERT statements to deal with AUTO INCREMENT -- columns. Use formatSqliteInsert to turn -- SqliteInsertSyntax into SqliteSyntax. data SqliteInsertSyntax SqliteInsertSyntax :: !SqliteTableNameSyntax -> [Text] -> !SqliteInsertValuesSyntax -> !Maybe SqliteOnConflictSyntax -> SqliteInsertSyntax [sqliteInsertTable] :: SqliteInsertSyntax -> !SqliteTableNameSyntax [sqliteInsertFields] :: SqliteInsertSyntax -> [Text] [sqliteInsertValues] :: SqliteInsertSyntax -> !SqliteInsertValuesSyntax [sqliteInsertOnConflict] :: SqliteInsertSyntax -> !Maybe SqliteOnConflictSyntax -- | SQLite UPDATE syntax newtype SqliteUpdateSyntax SqliteUpdateSyntax :: SqliteSyntax -> SqliteUpdateSyntax [fromSqliteUpdate] :: SqliteUpdateSyntax -> SqliteSyntax -- | SQLite DELETE syntax newtype SqliteDeleteSyntax SqliteDeleteSyntax :: SqliteSyntax -> SqliteDeleteSyntax [fromSqliteDelete] :: SqliteDeleteSyntax -> SqliteSyntax -- | SQLite ON CONFLICT syntax newtype SqliteOnConflictSyntax SqliteOnConflictSyntax :: SqliteSyntax -> SqliteOnConflictSyntax [fromSqliteOnConflict] :: SqliteOnConflictSyntax -> SqliteSyntax -- | SQLite VALUES clause in INSERT. Expressions need to -- be handled explicitly in order to deal with DEFAULT values -- and AUTO INCREMENT columns. data SqliteInsertValuesSyntax SqliteInsertExpressions :: [[SqliteExpressionSyntax]] -> SqliteInsertValuesSyntax SqliteInsertFromSql :: SqliteSelectSyntax -> SqliteInsertValuesSyntax -- | SQLite syntax for column schemas in CREATE TABLE or ALTER -- COLUMN ... ADD COLUMN statements data SqliteColumnSchemaSyntax SqliteColumnSchemaSyntax :: SqliteSyntax -> Bool -> SqliteColumnSchemaSyntax [fromSqliteColumnSchema] :: SqliteColumnSchemaSyntax -> SqliteSyntax [sqliteIsSerialColumn] :: SqliteColumnSchemaSyntax -> Bool -- | Implements beam SQL expression syntaxes data SqliteExpressionSyntax SqliteExpressionSyntax :: SqliteSyntax -> SqliteExpressionSyntax SqliteExpressionDefault :: SqliteExpressionSyntax -- | SQLite syntax for values that can be embedded in SqliteSyntax newtype SqliteValueSyntax SqliteValueSyntax :: SqliteSyntax -> SqliteValueSyntax [fromSqliteValue] :: SqliteValueSyntax -> SqliteSyntax newtype SqliteTableNameSyntax SqliteTableNameSyntax :: SqliteSyntax -> SqliteTableNameSyntax [fromSqliteTableName] :: SqliteTableNameSyntax -> SqliteSyntax newtype SqliteFieldNameSyntax SqliteFieldNameSyntax :: SqliteSyntax -> SqliteFieldNameSyntax [fromSqliteFieldNameSyntax] :: SqliteFieldNameSyntax -> SqliteSyntax newtype SqliteAggregationSetQuantifierSyntax SqliteAggregationSetQuantifierSyntax :: SqliteSyntax -> SqliteAggregationSetQuantifierSyntax [fromSqliteAggregationSetQuantifier] :: SqliteAggregationSetQuantifierSyntax -> SqliteSyntax fromSqliteExpression :: SqliteExpressionSyntax -> SqliteSyntax -- | SQLite syntax that implements IsSql92DataTypeSyntax and a good -- portion of IsSql99DataTypeSyntax, except for array and row -- types. data SqliteDataTypeSyntax SqliteDataTypeSyntax :: SqliteSyntax -> HsDataType -> BeamSerializedDataType -> Bool -> SqliteDataTypeSyntax [fromSqliteDataType] :: SqliteDataTypeSyntax -> SqliteSyntax [sqliteDataTypeToHs] :: SqliteDataTypeSyntax -> HsDataType [sqliteDataTypeSerialized] :: SqliteDataTypeSyntax -> BeamSerializedDataType [sqliteDataTypeSerial] :: SqliteDataTypeSyntax -> Bool sqliteTextType :: SqliteDataTypeSyntax sqliteBlobType :: SqliteDataTypeSyntax sqliteBigIntType :: SqliteDataTypeSyntax sqliteSerialType :: SqliteDataTypeSyntax -- | Convert a SqliteCommandSyntax into a renderable -- SqliteSyntax fromSqliteCommand :: SqliteCommandSyntax -> SqliteSyntax -- | Format a SQLite INSERT expression for the given table name, -- fields, and values. formatSqliteInsert :: SqliteTableNameSyntax -> [Text] -> SqliteInsertValuesSyntax -> SqliteSyntax -- | Format a SQLite INSERT expression for the given table name, -- fields, values, and optionally an ON CONFLICT clause. formatSqliteInsertOnConflict :: SqliteTableNameSyntax -> [Text] -> SqliteInsertValuesSyntax -> Maybe SqliteOnConflictSyntax -> SqliteSyntax -- | Embed a ByteString directly in the syntax emit :: ByteString -> SqliteSyntax -- | Emit a properly escaped value into the syntax -- -- This causes a literal ? 3 emitValue :: SQLData -> SqliteSyntax parens :: SqliteSyntax -> SqliteSyntax commas :: [SqliteSyntax] -> SqliteSyntax quotedIdentifier :: Text -> SqliteSyntax -- | A best effort attempt to implement the escaping rules of SQLite. This -- is never used to escape data sent to the database; only for emitting -- scripts or displaying syntax to the user. sqliteEscape :: Text -> Text -- | Convert the first argument of SQLiteSyntax to a -- ByteString Builder, where all the data has been replaced -- by "?" placeholders. withPlaceholders :: ((SQLData -> Builder) -> Builder) -> Builder -- | Render a SqliteSyntax as a lazy ByteString, for purposes -- of displaying to a user. Embedded SQLData is directly embedded -- into the concrete syntax, with a best effort made to escape strings. sqliteRenderSyntaxScript :: SqliteSyntax -> ByteString instance GHC.Classes.Eq Database.Beam.Sqlite.Syntax.SqliteData instance GHC.Generics.Generic Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax instance GHC.Classes.Eq Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax instance GHC.Show.Show Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax instance GHC.Base.Semigroup (Database.Beam.Query.CustomSQL.CustomSqlSyntax Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax) instance GHC.Base.Monoid (Database.Beam.Query.CustomSQL.CustomSqlSyntax Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax) instance GHC.Generics.Generic Database.Beam.Sqlite.Syntax.SqliteColumnSchemaSyntax instance GHC.Classes.Eq Database.Beam.Sqlite.Syntax.SqliteColumnSchemaSyntax instance GHC.Show.Show Database.Beam.Sqlite.Syntax.SqliteColumnSchemaSyntax instance GHC.Generics.Generic Database.Beam.Sqlite.Syntax.SqliteDataTypeSyntax instance GHC.Classes.Eq Database.Beam.Sqlite.Syntax.SqliteDataTypeSyntax instance GHC.Show.Show Database.Beam.Sqlite.Syntax.SqliteDataTypeSyntax instance GHC.Classes.Eq Database.Beam.Sqlite.Syntax.SqliteColumnConstraintDefinitionSyntax instance GHC.Show.Show Database.Beam.Sqlite.Syntax.SqliteColumnConstraintDefinitionSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92Syntax Database.Beam.Sqlite.Syntax.SqliteCommandSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92DdlCommandSyntax Database.Beam.Sqlite.Syntax.SqliteCommandSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92InsertSyntax Database.Beam.Sqlite.Syntax.SqliteInsertSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92TableNameSyntax Database.Beam.Sqlite.Syntax.SqliteTableNameSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92DropTableSyntax Database.Beam.Sqlite.Syntax.SqliteDropTableSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92AlterTableSyntax Database.Beam.Sqlite.Syntax.SqliteAlterTableSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92CreateTableSyntax Database.Beam.Sqlite.Syntax.SqliteCreateTableSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92TableSourceSyntax Database.Beam.Sqlite.Syntax.SqliteTableSourceSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92UpdateSyntax Database.Beam.Sqlite.Syntax.SqliteUpdateSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92DeleteSyntax Database.Beam.Sqlite.Syntax.SqliteDeleteSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92AlterTableActionSyntax Database.Beam.Sqlite.Syntax.SqliteAlterTableActionSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92AlterColumnActionSyntax Database.Beam.Sqlite.Syntax.SqliteAlterColumnActionSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92ColumnConstraintSyntax Database.Beam.Sqlite.Syntax.SqliteColumnConstraintSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92ReferentialActionSyntax Database.Beam.Sqlite.Syntax.SqliteReferentialActionSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92MatchTypeSyntax Database.Beam.Sqlite.Syntax.SqliteMatchTypeSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92TableConstraintSyntax Database.Beam.Sqlite.Syntax.SqliteTableConstraintSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92ColumnConstraintDefinitionSyntax Database.Beam.Sqlite.Syntax.SqliteColumnConstraintDefinitionSyntax instance Data.Hashable.Class.Hashable Database.Beam.Sqlite.Syntax.SqliteColumnConstraintDefinitionSyntax instance Database.Beam.Backend.SQL.SQL92.Sql92DisplaySyntax Database.Beam.Sqlite.Syntax.SqliteColumnConstraintDefinitionSyntax instance Database.Beam.Migrate.SQL.SQL92.IsSql92ColumnSchemaSyntax Database.Beam.Sqlite.Syntax.SqliteColumnSchemaSyntax instance Database.Beam.Migrate.SQL.SQL92.Sql92SerializableConstraintDefinitionSyntax Database.Beam.Sqlite.Syntax.SqliteColumnConstraintDefinitionSyntax instance Data.Hashable.Class.Hashable Database.Beam.Sqlite.Syntax.SqliteDataTypeSyntax instance Database.Beam.Backend.SQL.SQL92.Sql92DisplaySyntax Database.Beam.Sqlite.Syntax.SqliteDataTypeSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92DataTypeSyntax Database.Beam.Sqlite.Syntax.SqliteDataTypeSyntax instance Database.Beam.Backend.SQL.SQL99.IsSql99DataTypeSyntax Database.Beam.Sqlite.Syntax.SqliteDataTypeSyntax instance Database.Beam.Backend.SQL.SQL2003.IsSql2008BigIntDataTypeSyntax Database.Beam.Sqlite.Syntax.SqliteDataTypeSyntax instance Database.Beam.Migrate.SQL.SQL92.Sql92SerializableDataTypeSyntax Database.Beam.Sqlite.Syntax.SqliteDataTypeSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92ExpressionSyntax Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax instance Database.Beam.Migrate.Checks.HasDataTypeCreatedCheck Database.Beam.Sqlite.Syntax.SqliteDataTypeSyntax instance Data.Hashable.Class.Hashable Database.Beam.Sqlite.Syntax.SqliteColumnSchemaSyntax instance Database.Beam.Backend.SQL.SQL92.Sql92DisplaySyntax Database.Beam.Sqlite.Syntax.SqliteColumnSchemaSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92InsertValuesSyntax Database.Beam.Sqlite.Syntax.SqliteInsertValuesSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92FieldNameSyntax Database.Beam.Sqlite.Syntax.SqliteFieldNameSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92FromSyntax Database.Beam.Sqlite.Syntax.SqliteFromSyntax instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Int.Int8 instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Int.Int16 instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Int.Int32 instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Int.Int64 instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Word.Word8 instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Word.Word16 instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Word.Word32 instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Word.Word64 instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax Data.Scientific.Scientific instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Types.Float instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Types.Double instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Types.Bool instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax Database.Beam.Backend.SQL.Types.SqlNull instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Base.String instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax Data.Text.Internal.Text instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax Data.Text.Internal.Lazy.Text instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax x => Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax (GHC.Maybe.Maybe x) instance (TypeError ...) => Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Types.Int instance (TypeError ...) => Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax GHC.Types.Word instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax Data.ByteString.Internal.ByteString instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax Data.Time.Clock.Internal.UTCTime.UTCTime instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax Data.Time.LocalTime.Internal.LocalTime.LocalTime instance Database.Beam.Backend.SQL.SQL92.HasSqlValueSyntax Database.Beam.Sqlite.Syntax.SqliteValueSyntax Data.Time.Calendar.Days.Day instance Database.Beam.Backend.SQL.SQL92.IsSql92SelectSyntax Database.Beam.Sqlite.Syntax.SqliteSelectSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92OrderingSyntax Database.Beam.Sqlite.Syntax.SqliteOrderingSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92SelectTableSyntax Database.Beam.Sqlite.Syntax.SqliteSelectTableSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92GroupingSyntax Database.Beam.Sqlite.Syntax.SqliteGroupingSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92ProjectionSyntax Database.Beam.Sqlite.Syntax.SqliteProjectionSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92AggregationExpressionSyntax Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92AggregationSetQuantifierSyntax Database.Beam.Sqlite.Syntax.SqliteAggregationSetQuantifierSyntax instance Database.Beam.Backend.SQL.SQL92.IsSql92QuantifierSyntax Database.Beam.Sqlite.Syntax.SqliteComparisonQuantifierSyntax instance Data.Hashable.Class.Hashable Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax instance Database.Beam.Query.CustomSQL.IsCustomSqlSyntax Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax instance Data.String.IsString (Database.Beam.Query.CustomSQL.CustomSqlSyntax Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax) instance Database.Beam.Backend.SQL.SQL99.IsSql99ConcatExpressionSyntax Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax instance Database.Beam.Backend.SQL.SQL99.IsSql99FunctionExpressionSyntax Database.Beam.Sqlite.Syntax.SqliteExpressionSyntax instance Data.Hashable.Class.Hashable Database.Beam.Sqlite.Syntax.SqliteSyntax instance Data.Hashable.Class.Hashable Database.Beam.Sqlite.Syntax.SqliteData instance GHC.Show.Show Database.Beam.Sqlite.Syntax.SqliteSyntax instance Database.Beam.Backend.SQL.SQL92.Sql92DisplaySyntax Database.Beam.Sqlite.Syntax.SqliteSyntax instance GHC.Base.Semigroup Database.Beam.Sqlite.Syntax.SqliteSyntax instance GHC.Base.Monoid Database.Beam.Sqlite.Syntax.SqliteSyntax instance GHC.Classes.Eq Database.Beam.Sqlite.Syntax.SqliteSyntax module Database.Beam.Sqlite.Connection -- | The SQLite backend. Used to parameterize MonadBeam and -- FromBackendRow to provide support for SQLite databases. See the -- documentation for MonadBeam and the user guide for more -- information on how to use this backend. data Sqlite Sqlite :: Sqlite -- | MonadBeam instance inside which SQLite queries are run. See the -- user guide for more information newtype SqliteM a SqliteM :: ReaderT (String -> IO (), Connection) IO a -> SqliteM a -- | Run an IO action with access to a SQLite connection and a debug -- logging function, called or each query submitted on the connection. [runSqliteM] :: SqliteM a -> ReaderT (String -> IO (), Connection) IO a -- | URI syntax for use with withDbConnection. See documentation for -- BeamURIOpeners for more information. sqliteUriSyntax :: c Sqlite Connection SqliteM -> BeamURIOpeners c runBeamSqlite :: Connection -> SqliteM a -> IO a runBeamSqliteDebug :: (String -> IO ()) -> Connection -> SqliteM a -> IO a -- | Build a SqliteInsertReturning representing inserting the -- given values into the given table. Use runInsertReturningList insertReturning :: Beamable table => DatabaseEntity Sqlite db (TableEntity table) -> SqlInsertValues Sqlite (table (QExpr Sqlite s)) -> SqlInsert Sqlite table -- | Runs a SqliteInsertReturning statement and returns a result -- for each inserted row. runInsertReturningList :: (Beamable table, FromBackendRow Sqlite (table Identity)) => SqlInsert Sqlite table -> SqliteM [table Identity] instance Control.Monad.Trans.Control.MonadBaseControl GHC.Types.IO Database.Beam.Sqlite.Connection.SqliteM instance Control.Monad.Base.MonadBase GHC.Types.IO Database.Beam.Sqlite.Connection.SqliteM instance Control.Monad.Fail.MonadFail Database.Beam.Sqlite.Connection.SqliteM instance Control.Monad.IO.Class.MonadIO Database.Beam.Sqlite.Connection.SqliteM instance GHC.Base.Applicative Database.Beam.Sqlite.Connection.SqliteM instance GHC.Base.Functor Database.Beam.Sqlite.Connection.SqliteM instance GHC.Base.Monad Database.Beam.Sqlite.Connection.SqliteM instance Database.Beam.Sqlite.Connection.IsSqliteSerialIntegerType GHC.Int.Int32 instance Database.Beam.Sqlite.Connection.IsSqliteSerialIntegerType GHC.Int.Int64 instance (TypeError ...) => Database.Beam.Sqlite.Connection.IsSqliteSerialIntegerType GHC.Types.Int instance Database.Beam.Sqlite.Connection.IsSqliteSerialIntegerType a => Database.Beam.Migrate.Generics.Tables.HasDefaultSqlDataType Database.Beam.Sqlite.Connection.Sqlite (Database.Beam.Backend.SQL.Types.SqlSerial a) instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite a => Database.SQLite.Simple.FromRow.FromRow (Database.Beam.Sqlite.Connection.BeamSqliteRow a) instance Database.Beam.Backend.SQL.MonadBeam Database.Beam.Sqlite.Connection.Sqlite Database.Beam.Sqlite.Connection.SqliteM instance Database.SQLite.Simple.ToRow.ToRow Database.Beam.Sqlite.Connection.BeamSqliteParams instance Database.Beam.Backend.SQL.BeamExtensions.MonadBeamInsertReturning Database.Beam.Sqlite.Connection.Sqlite Database.Beam.Sqlite.Connection.SqliteM instance Database.Beam.Migrate.SQL.Tables.FieldReturnType 'GHC.Types.True 'GHC.Types.False Database.Beam.Sqlite.Connection.Sqlite resTy a => Database.Beam.Migrate.SQL.Tables.FieldReturnType 'GHC.Types.False 'GHC.Types.False Database.Beam.Sqlite.Connection.Sqlite resTy (Database.Beam.Sqlite.Connection.SqliteHasDefault -> a) instance Database.Beam.Migrate.SQL.BeamExtensions.BeamSqlBackendHasSerial Database.Beam.Sqlite.Connection.Sqlite instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite Data.Scientific.Scientific instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite Database.Beam.Sqlite.Connection.SqliteScientific instance Database.SQLite.Simple.FromField.FromField Database.Beam.Sqlite.Connection.SqliteScientific instance Database.Beam.Backend.Types.BeamBackend Database.Beam.Sqlite.Connection.Sqlite instance Database.Beam.Query.Types.HasQBuilder Database.Beam.Sqlite.Connection.Sqlite instance Database.Beam.Query.Ord.HasSqlInTable Database.Beam.Sqlite.Connection.Sqlite instance Database.Beam.Backend.SQL.BeamSqlBackendIsString Database.Beam.Sqlite.Connection.Sqlite Data.Text.Internal.Text instance Database.Beam.Backend.SQL.BeamSqlBackendIsString Database.Beam.Sqlite.Connection.Sqlite GHC.Base.String instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Bool instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Double instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Float instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int8 instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int16 instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int32 instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int64 instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Num.Integer.Integer instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word8 instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word16 instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word32 instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word64 instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite Data.ByteString.Internal.ByteString instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite Data.ByteString.Lazy.Internal.ByteString instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite Data.Text.Internal.Text instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite Data.Text.Internal.Lazy.Text instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite Data.Time.Clock.Internal.UTCTime.UTCTime instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite Data.Time.Calendar.Days.Day instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite Database.SQLite.Simple.Types.Null instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Char instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite Database.Beam.Backend.SQL.Types.SqlNull instance Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite Data.Time.LocalTime.Internal.LocalTime.LocalTime instance (TypeError ...) => Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Int instance (TypeError ...) => Database.Beam.Backend.SQL.Row.FromBackendRow Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Word instance Database.Beam.Backend.SQL.BeamSqlBackend Database.Beam.Sqlite.Connection.Sqlite instance Database.Beam.Migrate.SQL.Types.BeamMigrateOnlySqlBackend Database.Beam.Sqlite.Connection.Sqlite instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int8 instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int8 instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int16 instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int16 instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int32 instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int32 instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int64 instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Int.Int64 instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word8 instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word8 instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word16 instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word16 instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word32 instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word32 instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word64 instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Word.Word64 instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Double instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Double instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Float instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Float instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Bool instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Bool instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Base.String instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Base.String instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Text.Internal.Text instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Text.Internal.Text instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Text.Internal.Lazy.Text instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Text.Internal.Lazy.Text instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.ByteString.Internal.ByteString instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.ByteString.Internal.ByteString instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.ByteString.Lazy.Internal.ByteString instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.ByteString.Lazy.Internal.ByteString instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Time.Clock.Internal.UTCTime.UTCTime instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Time.Clock.Internal.UTCTime.UTCTime instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Time.Calendar.Days.Day instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Time.Calendar.Days.Day instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Time.LocalTime.Internal.LocalTime.LocalTime instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Time.LocalTime.Internal.LocalTime.LocalTime instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Time.LocalTime.Internal.ZonedTime.ZonedTime instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Time.LocalTime.Internal.ZonedTime.ZonedTime instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Char instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Char instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Num.Integer.Integer instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Num.Integer.Integer instance Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Scientific.Scientific instance Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite Data.Scientific.Scientific instance (TypeError ...) => Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Int instance (TypeError ...) => Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Int instance (TypeError ...) => Database.Beam.Query.Ord.HasSqlEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Word instance (TypeError ...) => Database.Beam.Query.Ord.HasSqlQuantifiedEqualityCheck Database.Beam.Sqlite.Connection.Sqlite GHC.Types.Word instance Database.Beam.Migrate.Generics.Tables.HasDefaultSqlDataType Database.Beam.Sqlite.Connection.Sqlite Data.ByteString.Internal.ByteString instance Database.Beam.Migrate.Generics.Tables.HasDefaultSqlDataType Database.Beam.Sqlite.Connection.Sqlite Data.Time.LocalTime.Internal.LocalTime.LocalTime instance Database.Beam.Backend.SQL.BeamExtensions.BeamHasInsertOnConflict Database.Beam.Sqlite.Connection.Sqlite -- | Migrations support for SQLite databases module Database.Beam.Sqlite.Migrate -- | Top-level BeamMigrationBackend loaded dynamically by the -- beam-migrate CLI tool. migrationBackend :: BeamMigrationBackend Sqlite SqliteM -- | A SQLite command. INSERT is special cased to handle AUTO -- INCREMENT columns. The fromSqliteCommand function will -- take an SqliteCommandSyntax and convert it into the correct -- SqliteSyntax. data SqliteCommandSyntax -- | Render a series of MigrationSteps in the -- SqliteCommandSyntax into a line-by-line list of lazy -- BL'ByteStrings. The output is suitable for inclusion in a -- migration script. Comments are generated giving a description of each -- migration step. migrateScript :: MigrationSteps Sqlite () a -> [ByteString] -- | Write the output of migrateScript to a file writeMigrationScript :: FilePath -> MigrationSteps Sqlite () a -> IO () -- | HaskellPredicateConverter that can convert all constraints -- generated by getDbConstaints into their equivalent in the -- beam-migrate haskell syntax. Suitable for auto-generation of -- a haskell migration. sqlitePredConverter :: HaskellPredicateConverter -- | Convert a SQLite data type to the corresponding Haskell one sqliteTypeToHs :: SqliteDataTypeSyntax -> Maybe HsDataType -- | Get a list of database predicates for the current database. This is -- beam's best guess at providing a schema for the current database. Note -- that SQLite type names are not standardized, and the so-called column -- "affinities" are too broad to be of use. This function attemps to -- guess a good enough type based on the exact type supplied in the -- CREATE TABLE commands. It will correctly parse any type -- generated by beam and most SQL compliant types, but it may falter on -- databases created or managed by tools that do not follow these -- standards. getDbConstraints :: SqliteM [SomeDatabasePredicate] sqliteText :: DataType Sqlite Text sqliteBlob :: DataType Sqlite ByteString sqliteBigInt :: DataType Sqlite Int64 module Database.Beam.Sqlite sqliteText :: DataType Sqlite Text sqliteBlob :: DataType Sqlite ByteString sqliteBigInt :: DataType Sqlite Int64 -- | A SQLite command. INSERT is special cased to handle AUTO -- INCREMENT columns. The fromSqliteCommand function will -- take an SqliteCommandSyntax and convert it into the correct -- SqliteSyntax. data SqliteCommandSyntax SqliteCommandSyntax :: SqliteSyntax -> SqliteCommandSyntax SqliteCommandInsert :: SqliteInsertSyntax -> SqliteCommandSyntax -- | The syntax for SQLite is stored as a Builder along with a list -- of data that hasn't been serialized yet. -- -- The first argument is a function that receives a builder for -- SQLData and returns the concrete syntax to embed into the -- query. For queries sent to the backend, this is simply a function that -- returns "?". Thus, the syntax sent to the backend includes -- proper placeholders. The list of data is sent to the SQLite library -- for proper escaping. -- -- When the syntax is being serialized for display (for use in beam -- migrate for example), the data builder attempts to properly format and -- escape the data. This returns syntax suitable for inclusion in -- scripts. In this case, the value list is ignored. data SqliteSyntax -- | SQLite SELECT syntax data SqliteSelectSyntax -- | SQLite INSERT syntax. This doesn't directly wrap -- SqliteSyntax because we need to do some processing on -- INSERT statements to deal with AUTO INCREMENT -- columns. Use formatSqliteInsert to turn -- SqliteInsertSyntax into SqliteSyntax. data SqliteInsertSyntax -- | SQLite UPDATE syntax data SqliteUpdateSyntax -- | SQLite DELETE syntax data SqliteDeleteSyntax -- | Convert a SqliteCommandSyntax into a renderable -- SqliteSyntax fromSqliteCommand :: SqliteCommandSyntax -> SqliteSyntax -- | Render a SqliteSyntax as a lazy ByteString, for purposes -- of displaying to a user. Embedded SQLData is directly embedded -- into the concrete syntax, with a best effort made to escape strings. sqliteRenderSyntaxScript :: SqliteSyntax -> ByteString -- | The SQLite group_concat function. Joins the value in each row -- of the first argument, using the second argument as a delimiter. See -- sqliteGroupConcatOver if you want to provide explicit -- quantification. sqliteGroupConcat :: (BeamSqlBackendCanSerialize Sqlite a, BeamSqlBackendIsString Sqlite str, BeamSqlBackendIsString Sqlite str2) => QExpr Sqlite s a -> QExpr Sqlite s str -> QAgg Sqlite s (Maybe str2) -- | The SQLite group_concat function. Joins the value in each row -- of the first argument using ','. See sqliteGroupConcat if you -- want to change the delimiter. Choosing a custom delimiter and -- quantification isn't allowed by SQLite. sqliteGroupConcatOver :: (BeamSqlBackendCanSerialize Sqlite a, BeamSqlBackendIsString Sqlite str) => Maybe SqliteAggregationSetQuantifierSyntax -> QExpr Sqlite s a -> QAgg Sqlite s (Maybe str)