on dev help sign in
add and drop constraints
341d010Eitan Chatav
squeal-postgresql/squeal-postgresql.cabal−1
@@ -49,7 +49,6 @@ library
49 , time >= 1.8.0.2 && < 2
49 , time >= 1.8.0.2 && < 2
50 , transformers >= 0.5.2.0 && < 1
50 , transformers >= 0.5.2.0 && < 1
51 , transformers-base >= 0.4.4 && < 1
51 , transformers-base >= 0.4.4 && < 1
52− , type-level-sets >= 0.8.5.0 && < 1
53 , uuid >= 1.3.13 && < 2
52 , uuid >= 1.3.13 && < 2
54
53
55test-suite squeal-postgresql-spec
54test-suite squeal-postgresql-spec
squeal-postgresql/src/Squeal/PostgreSQL/Definition.hs+19−11
@@ -45,6 +45,7 @@ module Squeal.PostgreSQL.Definition
45 , alterTable
45 , alterTable
46 , alterTableRename
46 , alterTableRename
47 , addConstraint
47 , addConstraint
48+ , dropConstraint
48 , AlterTable (UnsafeAlterTable, renderAlterTable)
49 , AlterTable (UnsafeAlterTable, renderAlterTable)
49 , addColumnDefault
50 , addColumnDefault
50 , addColumnNull
51 , addColumnNull
@@ -373,17 +374,24 @@ alterTableRename table0 table1 = UnsafeDefinition $
373-- <+> "ADD" <+> renderTableConstraintExpression constraint <> ";"
374-- <+> "ADD" <+> renderTableConstraintExpression constraint <> ";"
374
375
375addConstraint
376addConstraint
377+ :: KnownSymbol constraintName
378+ => Alias constraintName
376− :: Aliased (TableConstraintExpression schema (UnconstrainColumns columns)) constraint
379+ -> TableConstraintExpression schema (UnconstrainColumns columns) constraint
380+ -> AlterTable schema
377− -> AlterTable schema (constraints :=> columns)
381+ (constraints :=> columns)
378− ((constraint ': constraints) :=> columns)
382+ (Create constraintName constraint constraints :=> columns)
379−addConstraint constraint = UnsafeAlterTable $
383+addConstraint constraintName constraint = UnsafeAlterTable $
380− "ADD" <+> "CONSTRAINT" <+> renderConstraint constraint
384+ "ADD" <+> "CONSTRAINT" <+> renderAlias constraintName
381− where
382− renderConstraint
383− :: Aliased (TableConstraintExpression schema columns) constraint
384− -> ByteString
385− renderConstraint (constraint' `As` alias) =
386− "CONSTRAINT" <+> renderAlias alias <+> renderTableConstraintExpression constraint'
385+ <+> renderTableConstraintExpression constraint
386+
387+dropConstraint
388+ :: KnownSymbol constraintName
389+ => Alias constraintName
390+ -> AlterTable schema
391+ (constraints :=> columns)
392+ (Drop constraintName constraints :=> columns)
393+dropConstraint constraint = UnsafeAlterTable $
394+ "DROP" <+> "CONSTRAINT" <+> renderAlias constraint
387
395
388-- | An `AlterTable` describes the alteration to perform on the columns
396-- | An `AlterTable` describes the alteration to perform on the columns
389-- of a table.
397-- of a table.
squeal-postgresql/src/Squeal/PostgreSQL/Schema.hs−8
@@ -81,12 +81,7 @@ module Squeal.PostgreSQL.Schema
81 , UnconstrainTable
81 , UnconstrainTable
82 , UnconstrainSchema
82 , UnconstrainSchema
83 , ColumnConstraint (..)
83 , ColumnConstraint (..)
84− -- , DropDefault
85− -- , DropDefaultList
86− -- , AddConstraint
87− -- , DropConstraint
88 , TableConstraint (..)
84 , TableConstraint (..)
89− -- , AsSet
90 , Aliases
85 , Aliases
91 , Has
86 , Has
92 ) where
87 ) where
@@ -95,9 +90,6 @@ import Control.DeepSeq
95import Data.ByteString
90import Data.ByteString
96import Data.Monoid
91import Data.Monoid
97import Data.String
92import Data.String
98−-- import Data.Type.Bool
99−-- import Data.Type.Equality
100−-- import Data.Type.Set
101import Generics.SOP (AllZip)
93import Generics.SOP (AllZip)
102import GHC.Generics (Generic)
94import GHC.Generics (Generic)
103import GHC.Exts
95import GHC.Exts
stack.yaml−2
@@ -1,5 +1,3 @@
1resolver: nightly-2017-08-25
1resolver: nightly-2017-08-25
2packages:
2packages:
3- squeal-postgresql
3- squeal-postgresql
4−extra-deps:
5−- type-level-sets-0.8.5.0