Safe Haskell | None |
---|---|
Language | Haskell2010 |
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 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 #
WithPriority | |
|
Instances
Eq a => Eq (WithPriority a) Source # | |
Defined in Database.Beam.AutoMigrate.Diff (==) :: WithPriority a -> WithPriority a -> Bool # (/=) :: WithPriority a -> WithPriority a -> Bool # | |
Ord a => Ord (WithPriority a) Source # | |
Defined in Database.Beam.AutoMigrate.Diff 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 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.