@@ -45,6 +45,7 @@ module Squeal.PostgreSQL.Definition
4545 , alterTable
4646 , alterTableRename
4747 , addConstraint
48+ , dropConstraint
4849 , AlterTable (UnsafeAlterTable, renderAlterTable)
4950 , addColumnDefault
5051 , addColumnNull
@@ -373,17 +374,24 @@ alterTableRename table0 table1 = UnsafeDefinition $
373374-- <+> "ADD" <+> renderTableConstraintExpression constraint <> ";"
374375
375376addConstraint
376− :: Aliased (TableConstraintExpression schema (UnconstrainColumns columns)) constraint
377− -> AlterTable schema (constraints :=> columns)
378− ((constraint ': constraints) :=> columns)
379−addConstraint constraint = UnsafeAlterTable $
380− "ADD" <+> "CONSTRAINT" <+> renderConstraint constraint
381− where
382− renderConstraint
383− :: Aliased (TableConstraintExpression schema columns) constraint
384− -> ByteString
385− renderConstraint (constraint' `As` alias) =
386− "CONSTRAINT" <+> renderAlias alias <+> renderTableConstraintExpression constraint'
377+ :: KnownSymbol constraintName
378+ => Alias constraintName
379+ -> TableConstraintExpression schema (UnconstrainColumns columns) constraint
380+ -> AlterTable schema
381+ (constraints :=> columns)
382+ (Create constraintName constraint constraints :=> columns)
383+addConstraint constraintName constraint = UnsafeAlterTable $
384+ "ADD" <+> "CONSTRAINT" <+> renderAlias constraintName
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
387395
388396-- | An `AlterTable` describes the alteration to perform on the columns
389397-- of a table.