| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Database.Beam.AutoMigrate.Diff
Synopsis
- class Diffable a where
- type Diff = DiffA []
- newtype Priority = Priority Word8
- newtype WithPriority a = WithPriority {
- unPriority :: (a, Priority)
- diffColumnReferenceImplementation :: TableName -> ColumnName -> Column -> Column -> Diff
- diffTablesReferenceImplementation :: Tables -> Tables -> Diff
- diffTableReferenceImplementation :: TableName -> Table -> Table -> Diff
- diffReferenceImplementation :: Schema -> Schema -> Diff
- diffColumn :: TableName -> ColumnName -> Column -> Column -> DiffA DList
- diffTables :: Tables -> Tables -> DiffA DList
- diffTable :: TableName -> Table -> Table -> DiffA DList
- sortEdits :: [WithPriority Edit] -> [WithPriority Edit]
Documentation
class Diffable a where Source #
Instances
| Diffable Tables Source # | |
| Diffable Sequences Source # | |
| Diffable Enumerations Source # | |
Defined in Database.Beam.AutoMigrate.Diff Methods diff :: Enumerations -> Enumerations -> Diff Source # | |
| Diffable Schema Source # | Computes the diff between two |
Some notion of Priority. The lower the value, the higher the priority.
newtype WithPriority a Source #
Constructors
| WithPriority | |
Fields
| |
Instances
| Eq a => Eq (WithPriority a) Source # | |
Defined in Database.Beam.AutoMigrate.Diff Methods (==) :: WithPriority a -> WithPriority a -> Bool # (/=) :: WithPriority a -> WithPriority a -> Bool # | |
| Ord a => Ord (WithPriority a) Source # | |
Defined in Database.Beam.AutoMigrate.Diff Methods compare :: WithPriority a -> WithPriority a -> Ordering # (<) :: WithPriority a -> WithPriority a -> Bool # (<=) :: WithPriority a -> WithPriority a -> Bool # (>) :: WithPriority a -> WithPriority a -> Bool # (>=) :: WithPriority a -> WithPriority a -> Bool # max :: WithPriority a -> WithPriority a -> WithPriority a # min :: WithPriority a -> WithPriority a -> WithPriority a # | |
| Show a => Show (WithPriority a) Source # | |
Defined in Database.Beam.AutoMigrate.Diff Methods showsPrec :: Int -> WithPriority a -> ShowS # show :: WithPriority a -> String # showList :: [WithPriority a] -> ShowS # | |
Reference implementation, for model-testing purposes
diffColumnReferenceImplementation :: TableName -> ColumnName -> Column -> Column -> Diff Source #
diffTablesReferenceImplementation :: Tables -> Tables -> Diff Source #
A slow but hopefully correct implementation of the diffing algorithm, for QuickCheck comparison with more sophisticated ones.
Hopefully-efficient implementation
diffColumn :: TableName -> ColumnName -> Column -> Column -> DiffA DList Source #
sortEdits :: [WithPriority Edit] -> [WithPriority Edit] Source #
Sort edits according to their execution order, to make sure they don't reference something which hasn't been created yet.