| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Database.Beam.Migrate.SQL.SQL92
Contents
Description
Finally-tagless encoding of SQL92 DDL commands.
If you're writing a beam backend driver and you want to support migrations,
making an instance of your command syntax for IsSql92DdlCommandSyntax and
making it satisfy Sql92SaneDdlCommandSyntax.
Synopsis
- type Sql92SaneDdlCommandSyntax cmd = (Sql92SaneDdlCommandSyntaxMigrateOnly cmd, Sql92ColumnSchemaExpressionSyntax (Sql92DdlCommandColumnSchemaSyntax cmd) ~ Sql92ExpressionSyntax cmd)
- type Sql92SaneDdlCommandSyntaxMigrateOnly cmd = (IsSql92DdlCommandSyntax cmd, Sql92SerializableDataTypeSyntax (Sql92DdlCommandDataTypeSyntax cmd), Sql92SerializableConstraintDefinitionSyntax (Sql92DdlCommandConstraintDefinitionSyntax cmd), Typeable (Sql92DdlCommandColumnSchemaSyntax cmd), Sql92AlterTableColumnSchemaSyntax (Sql92AlterTableAlterTableActionSyntax (Sql92DdlCommandAlterTableSyntax cmd)) ~ Sql92CreateTableColumnSchemaSyntax (Sql92DdlCommandCreateTableSyntax cmd))
- type Sql92DdlCommandDataTypeSyntax syntax = Sql92ColumnSchemaColumnTypeSyntax (Sql92DdlCommandColumnSchemaSyntax syntax)
- type Sql92DdlCommandColumnSchemaSyntax syntax = Sql92CreateTableColumnSchemaSyntax (Sql92DdlCommandCreateTableSyntax syntax)
- type Sql92DdlCommandConstraintDefinitionSyntax syntax = Sql92ColumnSchemaColumnConstraintDefinitionSyntax (Sql92DdlCommandColumnSchemaSyntax syntax)
- type Sql92DdlColumnSchemaConstraintSyntax syntax = Sql92ColumnConstraintDefinitionConstraintSyntax (Sql92ColumnSchemaColumnConstraintDefinitionSyntax syntax)
- type Sql92DdlCommandColumnConstraintSyntax syntax = Sql92DdlColumnSchemaConstraintSyntax (Sql92DdlCommandColumnSchemaSyntax syntax)
- type Sql92DdlCommandMatchTypeSyntax syntax = Sql92ColumnConstraintMatchTypeSyntax (Sql92DdlCommandColumnConstraintSyntax syntax)
- type Sql92DdlCommandReferentialActionSyntax syntax = Sql92ColumnConstraintReferentialActionSyntax (Sql92DdlCommandColumnConstraintSyntax syntax)
- type Sql92DdlCommandConstraintAttributesSyntax syntax = Sql92ColumnConstraintDefinitionAttributesSyntax (Sql92DdlCommandConstraintDefinitionSyntax syntax)
- type Sql92DdlCommandAlterTableActionSyntax syntax = Sql92AlterTableAlterTableActionSyntax (Sql92DdlCommandAlterTableSyntax syntax)
- class Sql92DisplaySyntax syntax where
- class (IsSql92CreateTableSyntax (Sql92DdlCommandCreateTableSyntax syntax), IsSql92DropTableSyntax (Sql92DdlCommandDropTableSyntax syntax), IsSql92AlterTableSyntax (Sql92DdlCommandAlterTableSyntax syntax)) => IsSql92DdlCommandSyntax syntax where
- type Sql92DdlCommandCreateTableSyntax syntax :: *
- type Sql92DdlCommandAlterTableSyntax syntax :: *
- type Sql92DdlCommandDropTableSyntax syntax :: *
- class (IsSql92TableConstraintSyntax (Sql92CreateTableTableConstraintSyntax syntax), IsSql92ColumnSchemaSyntax (Sql92CreateTableColumnSchemaSyntax syntax)) => IsSql92CreateTableSyntax syntax where
- type Sql92CreateTableColumnSchemaSyntax syntax :: *
- type Sql92CreateTableTableConstraintSyntax syntax :: *
- type Sql92CreateTableOptionsSyntax syntax :: *
- class IsSql92DropTableSyntax syntax where
- class IsSql92AlterTableActionSyntax (Sql92AlterTableAlterTableActionSyntax syntax) => IsSql92AlterTableSyntax syntax where
- type Sql92AlterTableAlterTableActionSyntax syntax :: *
- class (IsSql92ColumnSchemaSyntax (Sql92AlterTableColumnSchemaSyntax syntax), IsSql92AlterColumnActionSyntax (Sql92AlterTableAlterColumnActionSyntax syntax)) => IsSql92AlterTableActionSyntax syntax where
- type Sql92AlterTableAlterColumnActionSyntax syntax :: *
- type Sql92AlterTableColumnSchemaSyntax syntax :: *
- class IsSql92AlterColumnActionSyntax syntax where
- class (IsSql92ColumnConstraintDefinitionSyntax (Sql92ColumnSchemaColumnConstraintDefinitionSyntax columnSchema), IsSql92DataTypeSyntax (Sql92ColumnSchemaColumnTypeSyntax columnSchema), Typeable (Sql92ColumnSchemaColumnTypeSyntax columnSchema), Sql92DisplaySyntax (Sql92ColumnSchemaColumnTypeSyntax columnSchema), Hashable (Sql92ColumnSchemaColumnTypeSyntax columnSchema), Eq (Sql92ColumnSchemaColumnTypeSyntax columnSchema), Sql92DisplaySyntax (Sql92ColumnSchemaColumnConstraintDefinitionSyntax columnSchema), Eq (Sql92ColumnSchemaColumnConstraintDefinitionSyntax columnSchema), Hashable (Sql92ColumnSchemaColumnConstraintDefinitionSyntax columnSchema), IsSql92ExpressionSyntax (Sql92ColumnSchemaExpressionSyntax columnSchema), Typeable columnSchema, Sql92DisplaySyntax columnSchema, Eq columnSchema, Hashable columnSchema) => IsSql92ColumnSchemaSyntax columnSchema where
- type Sql92ColumnSchemaColumnTypeSyntax columnSchema :: *
- type Sql92ColumnSchemaExpressionSyntax columnSchema :: *
- type Sql92ColumnSchemaColumnConstraintDefinitionSyntax columnSchema :: *
- class Typeable constraint => IsSql92TableConstraintSyntax constraint where
- class Typeable match => IsSql92MatchTypeSyntax match where
- class Typeable refAction => IsSql92ReferentialActionSyntax refAction where
- class (IsSql92ColumnConstraintSyntax (Sql92ColumnConstraintDefinitionConstraintSyntax constraint), IsSql92ConstraintAttributesSyntax (Sql92ColumnConstraintDefinitionAttributesSyntax constraint), Typeable constraint) => IsSql92ColumnConstraintDefinitionSyntax constraint where
- type Sql92ColumnConstraintDefinitionConstraintSyntax constraint :: *
- type Sql92ColumnConstraintDefinitionAttributesSyntax constraint :: *
- class (Semigroup attrs, Monoid attrs, Typeable attrs) => IsSql92ConstraintAttributesSyntax attrs where
- class (IsSql92MatchTypeSyntax (Sql92ColumnConstraintMatchTypeSyntax constraint), IsSql92ReferentialActionSyntax (Sql92ColumnConstraintReferentialActionSyntax constraint), Typeable (Sql92ColumnConstraintExpressionSyntax constraint), Typeable constraint) => IsSql92ColumnConstraintSyntax constraint where
- type Sql92ColumnConstraintMatchTypeSyntax constraint :: *
- type Sql92ColumnConstraintReferentialActionSyntax constraint :: *
- type Sql92ColumnConstraintExpressionSyntax constraint :: *
- class Sql92SerializableDataTypeSyntax dataType where
- class Sql92SerializableConstraintDefinitionSyntax constraint where
Convenience type synonyms
type Sql92SaneDdlCommandSyntax cmd = (Sql92SaneDdlCommandSyntaxMigrateOnly cmd, Sql92ColumnSchemaExpressionSyntax (Sql92DdlCommandColumnSchemaSyntax cmd) ~ Sql92ExpressionSyntax cmd) #
Syntax equalities that any reasonable DDL syntax would follow, including equalities between beam-migrate and beam-core types.
type Sql92SaneDdlCommandSyntaxMigrateOnly cmd = (IsSql92DdlCommandSyntax cmd, Sql92SerializableDataTypeSyntax (Sql92DdlCommandDataTypeSyntax cmd), Sql92SerializableConstraintDefinitionSyntax (Sql92DdlCommandConstraintDefinitionSyntax cmd), Typeable (Sql92DdlCommandColumnSchemaSyntax cmd), Sql92AlterTableColumnSchemaSyntax (Sql92AlterTableAlterTableActionSyntax (Sql92DdlCommandAlterTableSyntax cmd)) ~ Sql92CreateTableColumnSchemaSyntax (Sql92DdlCommandCreateTableSyntax cmd)) #
Syntax equalities for any reasonable DDL syntax, only including types defined here.
type Sql92DdlCommandDataTypeSyntax syntax = Sql92ColumnSchemaColumnTypeSyntax (Sql92DdlCommandColumnSchemaSyntax syntax) #
type Sql92DdlCommandColumnSchemaSyntax syntax = Sql92CreateTableColumnSchemaSyntax (Sql92DdlCommandCreateTableSyntax syntax) #
type Sql92DdlCommandConstraintDefinitionSyntax syntax = Sql92ColumnSchemaColumnConstraintDefinitionSyntax (Sql92DdlCommandColumnSchemaSyntax syntax) #
type Sql92DdlColumnSchemaConstraintSyntax syntax = Sql92ColumnConstraintDefinitionConstraintSyntax (Sql92ColumnSchemaColumnConstraintDefinitionSyntax syntax) #
type Sql92DdlCommandColumnConstraintSyntax syntax = Sql92DdlColumnSchemaConstraintSyntax (Sql92DdlCommandColumnSchemaSyntax syntax) #
type Sql92DdlCommandMatchTypeSyntax syntax = Sql92ColumnConstraintMatchTypeSyntax (Sql92DdlCommandColumnConstraintSyntax syntax) #
type Sql92DdlCommandReferentialActionSyntax syntax = Sql92ColumnConstraintReferentialActionSyntax (Sql92DdlCommandColumnConstraintSyntax syntax) #
type Sql92DdlCommandConstraintAttributesSyntax syntax = Sql92ColumnConstraintDefinitionAttributesSyntax (Sql92DdlCommandConstraintDefinitionSyntax syntax) #
type Sql92DdlCommandAlterTableActionSyntax syntax = Sql92AlterTableAlterTableActionSyntax (Sql92DdlCommandAlterTableSyntax syntax) #
class Sql92DisplaySyntax syntax where #
Type classes for syntaxes which can be displayed
Minimal complete definition
Methods
displaySyntax :: syntax -> String #
Render the syntax as a String, representing the SQL expression it
stands for
Instances
| Sql92DisplaySyntax SqlSyntaxBuilder # | |
Defined in Database.Beam.Migrate.SQL.Builder Methods displaySyntax :: SqlSyntaxBuilder -> String # | |
| Sql92DisplaySyntax HsColumnSchema # | |
Defined in Database.Beam.Haskell.Syntax Methods displaySyntax :: HsColumnSchema -> String # | |
| Sql92DisplaySyntax HsDataType # | |
Defined in Database.Beam.Haskell.Syntax Methods displaySyntax :: HsDataType -> String # | |
| Sql92DisplaySyntax HsConstraintDefinition # | |
Defined in Database.Beam.Haskell.Syntax Methods | |
class (IsSql92CreateTableSyntax (Sql92DdlCommandCreateTableSyntax syntax), IsSql92DropTableSyntax (Sql92DdlCommandDropTableSyntax syntax), IsSql92AlterTableSyntax (Sql92DdlCommandAlterTableSyntax syntax)) => IsSql92DdlCommandSyntax syntax where #
Minimal complete definition
Associated Types
type Sql92DdlCommandCreateTableSyntax syntax :: * #
type Sql92DdlCommandAlterTableSyntax syntax :: * #
type Sql92DdlCommandDropTableSyntax syntax :: * #
Methods
createTableCmd :: Sql92DdlCommandCreateTableSyntax syntax -> syntax #
dropTableCmd :: Sql92DdlCommandDropTableSyntax syntax -> syntax #
alterTableCmd :: Sql92DdlCommandAlterTableSyntax syntax -> syntax #
Instances
| IsSql92DdlCommandSyntax SqlSyntaxBuilder # | |
Defined in Database.Beam.Migrate.SQL.Builder Associated Types type Sql92DdlCommandCreateTableSyntax SqlSyntaxBuilder :: * # type Sql92DdlCommandAlterTableSyntax SqlSyntaxBuilder :: * # | |
| IsSql92DdlCommandSyntax HsAction # | |
Defined in Database.Beam.Haskell.Syntax Associated Types type Sql92DdlCommandCreateTableSyntax HsAction :: * # type Sql92DdlCommandAlterTableSyntax HsAction :: * # type Sql92DdlCommandDropTableSyntax HsAction :: * # | |
class (IsSql92TableConstraintSyntax (Sql92CreateTableTableConstraintSyntax syntax), IsSql92ColumnSchemaSyntax (Sql92CreateTableColumnSchemaSyntax syntax)) => IsSql92CreateTableSyntax syntax where #
Minimal complete definition
Associated Types
type Sql92CreateTableColumnSchemaSyntax syntax :: * #
type Sql92CreateTableTableConstraintSyntax syntax :: * #
type Sql92CreateTableOptionsSyntax syntax :: * #
Methods
createTableSyntax :: Maybe (Sql92CreateTableOptionsSyntax syntax) -> Text -> [(Text, Sql92CreateTableColumnSchemaSyntax syntax)] -> [Sql92CreateTableTableConstraintSyntax syntax] -> syntax #
Instances
| IsSql92CreateTableSyntax SqlSyntaxBuilder # | |
Defined in Database.Beam.Migrate.SQL.Builder Associated Types type Sql92CreateTableColumnSchemaSyntax SqlSyntaxBuilder :: * # type Sql92CreateTableTableConstraintSyntax SqlSyntaxBuilder :: * # | |
| IsSql92CreateTableSyntax HsAction # | |
Defined in Database.Beam.Haskell.Syntax Associated Types type Sql92CreateTableColumnSchemaSyntax HsAction :: * # type Sql92CreateTableTableConstraintSyntax HsAction :: * # type Sql92CreateTableOptionsSyntax HsAction :: * # Methods createTableSyntax :: Maybe (Sql92CreateTableOptionsSyntax HsAction) -> Text -> [(Text, Sql92CreateTableColumnSchemaSyntax HsAction)] -> [Sql92CreateTableTableConstraintSyntax HsAction] -> HsAction # | |
class IsSql92DropTableSyntax syntax where #
Minimal complete definition
Methods
dropTableSyntax :: Text -> syntax #
Instances
| IsSql92DropTableSyntax SqlSyntaxBuilder # | |
Defined in Database.Beam.Migrate.SQL.Builder Methods dropTableSyntax :: Text -> SqlSyntaxBuilder # | |
| IsSql92DropTableSyntax HsAction # | |
Defined in Database.Beam.Haskell.Syntax Methods dropTableSyntax :: Text -> HsAction # | |
class IsSql92AlterTableActionSyntax (Sql92AlterTableAlterTableActionSyntax syntax) => IsSql92AlterTableSyntax syntax where #
Minimal complete definition
Associated Types
type Sql92AlterTableAlterTableActionSyntax syntax :: * #
Methods
alterTableSyntax :: Text -> Sql92AlterTableAlterTableActionSyntax syntax -> syntax #
Instances
| IsSql92AlterTableSyntax SqlSyntaxBuilder # | |
Defined in Database.Beam.Migrate.SQL.Builder Associated Types type Sql92AlterTableAlterTableActionSyntax SqlSyntaxBuilder :: * # | |
| IsSql92AlterTableSyntax HsAction # | |
Defined in Database.Beam.Haskell.Syntax Associated Types Methods alterTableSyntax :: Text -> Sql92AlterTableAlterTableActionSyntax HsAction -> HsAction # | |
class (IsSql92ColumnSchemaSyntax (Sql92AlterTableColumnSchemaSyntax syntax), IsSql92AlterColumnActionSyntax (Sql92AlterTableAlterColumnActionSyntax syntax)) => IsSql92AlterTableActionSyntax syntax where #
Minimal complete definition
alterColumnSyntax, addColumnSyntax, dropColumnSyntax, renameTableToSyntax, renameColumnToSyntax
Associated Types
type Sql92AlterTableAlterColumnActionSyntax syntax :: * #
type Sql92AlterTableColumnSchemaSyntax syntax :: * #
Methods
alterColumnSyntax :: Text -> Sql92AlterTableAlterColumnActionSyntax syntax -> syntax #
addColumnSyntax :: Text -> Sql92AlterTableColumnSchemaSyntax syntax -> syntax #
dropColumnSyntax :: Text -> syntax #
renameTableToSyntax :: Text -> syntax #
renameColumnToSyntax :: Text -> Text -> syntax #
Instances
class IsSql92AlterColumnActionSyntax syntax where #
Minimal complete definition
Instances
| IsSql92AlterColumnActionSyntax SqlSyntaxBuilder # | |
Defined in Database.Beam.Migrate.SQL.Builder | |
| IsSql92AlterColumnActionSyntax HsNone # | |
Defined in Database.Beam.Haskell.Syntax | |
class (IsSql92ColumnConstraintDefinitionSyntax (Sql92ColumnSchemaColumnConstraintDefinitionSyntax columnSchema), IsSql92DataTypeSyntax (Sql92ColumnSchemaColumnTypeSyntax columnSchema), Typeable (Sql92ColumnSchemaColumnTypeSyntax columnSchema), Sql92DisplaySyntax (Sql92ColumnSchemaColumnTypeSyntax columnSchema), Hashable (Sql92ColumnSchemaColumnTypeSyntax columnSchema), Eq (Sql92ColumnSchemaColumnTypeSyntax columnSchema), Sql92DisplaySyntax (Sql92ColumnSchemaColumnConstraintDefinitionSyntax columnSchema), Eq (Sql92ColumnSchemaColumnConstraintDefinitionSyntax columnSchema), Hashable (Sql92ColumnSchemaColumnConstraintDefinitionSyntax columnSchema), IsSql92ExpressionSyntax (Sql92ColumnSchemaExpressionSyntax columnSchema), Typeable columnSchema, Sql92DisplaySyntax columnSchema, Eq columnSchema, Hashable columnSchema) => IsSql92ColumnSchemaSyntax columnSchema where #
Minimal complete definition
Associated Types
type Sql92ColumnSchemaColumnTypeSyntax columnSchema :: * #
type Sql92ColumnSchemaExpressionSyntax columnSchema :: * #
type Sql92ColumnSchemaColumnConstraintDefinitionSyntax columnSchema :: * #
Methods
Arguments
| :: Sql92ColumnSchemaColumnTypeSyntax columnSchema | Column type |
| -> Maybe (Sql92ColumnSchemaExpressionSyntax columnSchema) | Default value |
| -> [Sql92ColumnSchemaColumnConstraintDefinitionSyntax columnSchema] | Column constraints |
| -> Maybe Text | Default collation |
| -> columnSchema |
Instances
| IsSql92ColumnSchemaSyntax SqlSyntaxBuilder # | |
Defined in Database.Beam.Migrate.SQL.Builder Associated Types type Sql92ColumnSchemaColumnTypeSyntax SqlSyntaxBuilder :: * # type Sql92ColumnSchemaExpressionSyntax SqlSyntaxBuilder :: * # type Sql92ColumnSchemaColumnConstraintDefinitionSyntax SqlSyntaxBuilder :: * # | |
| IsSql92ColumnSchemaSyntax HsColumnSchema # | |
Defined in Database.Beam.Haskell.Syntax Associated Types type Sql92ColumnSchemaColumnTypeSyntax HsColumnSchema :: * # type Sql92ColumnSchemaExpressionSyntax HsColumnSchema :: * # type Sql92ColumnSchemaColumnConstraintDefinitionSyntax HsColumnSchema :: * # | |
class Typeable constraint => IsSql92TableConstraintSyntax constraint where #
Minimal complete definition
Methods
primaryKeyConstraintSyntax :: [Text] -> constraint #
Instances
| IsSql92TableConstraintSyntax SqlSyntaxBuilder # | |
Defined in Database.Beam.Migrate.SQL.Builder Methods | |
| IsSql92TableConstraintSyntax HsTableConstraint # | |
Defined in Database.Beam.Haskell.Syntax Methods | |
class Typeable match => IsSql92MatchTypeSyntax match where #
Minimal complete definition
Instances
class Typeable refAction => IsSql92ReferentialActionSyntax refAction where #
Minimal complete definition
referentialActionCascadeSyntax, referentialActionSetNullSyntax, referentialActionSetDefaultSyntax, referentialActionNoActionSyntax
Methods
referentialActionCascadeSyntax :: refAction #
referentialActionSetNullSyntax :: refAction #
referentialActionSetDefaultSyntax :: refAction #
referentialActionNoActionSyntax :: refAction #
class (IsSql92ColumnConstraintSyntax (Sql92ColumnConstraintDefinitionConstraintSyntax constraint), IsSql92ConstraintAttributesSyntax (Sql92ColumnConstraintDefinitionAttributesSyntax constraint), Typeable constraint) => IsSql92ColumnConstraintDefinitionSyntax constraint where #
Minimal complete definition
Associated Types
type Sql92ColumnConstraintDefinitionConstraintSyntax constraint :: * #
type Sql92ColumnConstraintDefinitionAttributesSyntax constraint :: * #
Methods
constraintDefinitionSyntax :: Maybe Text -> Sql92ColumnConstraintDefinitionConstraintSyntax constraint -> Maybe (Sql92ColumnConstraintDefinitionAttributesSyntax constraint) -> constraint #
Instances
class (Semigroup attrs, Monoid attrs, Typeable attrs) => IsSql92ConstraintAttributesSyntax attrs where #
Minimal complete definition
initiallyDeferredAttributeSyntax, initiallyImmediateAttributeSyntax, notDeferrableAttributeSyntax, deferrableAttributeSyntax
Methods
initiallyDeferredAttributeSyntax :: attrs #
initiallyImmediateAttributeSyntax :: attrs #
notDeferrableAttributeSyntax :: attrs #
deferrableAttributeSyntax :: attrs #
class (IsSql92MatchTypeSyntax (Sql92ColumnConstraintMatchTypeSyntax constraint), IsSql92ReferentialActionSyntax (Sql92ColumnConstraintReferentialActionSyntax constraint), Typeable (Sql92ColumnConstraintExpressionSyntax constraint), Typeable constraint) => IsSql92ColumnConstraintSyntax constraint where #
Minimal complete definition
notNullConstraintSyntax, uniqueColumnConstraintSyntax, primaryKeyColumnConstraintSyntax, checkColumnConstraintSyntax, referencesConstraintSyntax
Associated Types
type Sql92ColumnConstraintMatchTypeSyntax constraint :: * #
type Sql92ColumnConstraintReferentialActionSyntax constraint :: * #
type Sql92ColumnConstraintExpressionSyntax constraint :: * #
Methods
notNullConstraintSyntax :: constraint #
uniqueColumnConstraintSyntax :: constraint #
primaryKeyColumnConstraintSyntax :: constraint #
checkColumnConstraintSyntax :: Sql92ColumnConstraintExpressionSyntax constraint -> constraint #
Arguments
| :: Text | |
| -> [Text] | |
| -> Maybe (Sql92ColumnConstraintMatchTypeSyntax constraint) | |
| -> Maybe (Sql92ColumnConstraintReferentialActionSyntax constraint) | On update |
| -> Maybe (Sql92ColumnConstraintReferentialActionSyntax constraint) | On delete |
| -> constraint |
Instances
class Sql92SerializableDataTypeSyntax dataType where #
IsSql92DataTypeSyntaxes that can be serialized to JSON
Minimal complete definition
Methods
serializeDataType :: dataType -> Value #
Instances
| Sql92SerializableDataTypeSyntax HsDataType # | |
Defined in Database.Beam.Haskell.Syntax Methods serializeDataType :: HsDataType -> Value # | |
class Sql92SerializableConstraintDefinitionSyntax constraint where #
IsSql92ColumnConstraintDefinitionSyntaxes that can be serialized to JSON
Minimal complete definition
Methods
serializeConstraint :: constraint -> Value #
Instances
| Sql92SerializableConstraintDefinitionSyntax HsConstraintDefinition # | |
Defined in Database.Beam.Haskell.Syntax Methods | |