@@ -30,7 +30,7 @@ module Squeal.PostgreSQL.Definition
3030 , (>>>)
3131 -- * Create
3232 , createTable
33− , TableConstraint (UnsafeTableConstraint, renderTableConstraint)
33+ , TableConstraintExpression (..)
3434 , check
3535 , unique
3636 , primaryKey
@@ -113,14 +113,14 @@ createTable
113113 => Alias tab -- ^ the name of the table to add
114114 -> NP (Aliased TypeExpression) (column ': columns)
115115 -- ^ the names and datatype of each column
116− -> NP (TableConstraint schema (column ': columns)) constraints
116+ -> NP (TableConstraintExpression schema (column ': columns)) constraints
117117 -- ^ constraints that must hold for the table
118118 -> Definition schema (Create tab table schema)
119119createTable table columns constraints = UnsafeDefinition $
120120 "CREATE TABLE" <+> renderAlias table
121121 <+> parenthesized
122122 ( renderCommaSeparated renderColumnDef columns
123− <> renderCommaSeparated renderTableConstraint constraints )
123+ <> renderCommaSeparated renderTableConstraintExpression constraints )
124124 <> ";"
125125 where
126126 renderColumnDef :: Aliased TypeExpression x -> ByteString
@@ -139,11 +139,12 @@ createTable table columns constraints = UnsafeDefinition $
139139-- as you wish. If a user attempts to store data in a column that would
140140-- violate a constraint, an error is raised. This applies
141141-- even if the value came from the default value definition.
142−newtype TableConstraint
142+newtype TableConstraintExpression
143143 (schema :: SchemaType)
144144 (columns :: ColumnsType)
145− (tableConstraint :: TableConstraint')
146− = UnsafeTableConstraint { renderTableConstraint :: ByteString }
145+ (tableConstraint :: TableConstraint)
146+ = UnsafeTableConstraintExpression
147+ { renderTableConstraintExpression :: ByteString }
147148 deriving (GHC.Generic,Show,Eq,Ord,NFData)
148149
149150-- | A `check` constraint is the most generic `TableConstraint` type.
@@ -161,8 +162,8 @@ newtype TableConstraint
161162check
162163 :: Condition '[table ::: columns] 'Ungrouped '[]
163164 -- ^ condition to check
164− -> TableConstraint schema columns 'Check
165−check condition = UnsafeTableConstraint $
165+ -> TableConstraintExpression schema columns 'Check
166+check condition = UnsafeTableConstraintExpression $
166167 "CHECK" <+> parenthesized (renderExpression condition)
167168
168169-- | A `unique` constraint ensure that the data contained in a column,
@@ -180,8 +181,8 @@ unique
180181 :: SOP.SListI subcolumns
181182 => NP (Column columns) subcolumns
182183 -- ^ unique column or group of columns
183− -> TableConstraint schema columns ( 'Uniques (Aliases subcolumns))
184−unique columns = UnsafeTableConstraint $
184+ -> TableConstraintExpression schema columns ( 'Uniques (Aliases subcolumns))
185+unique columns = UnsafeTableConstraintExpression $
185186 "UNIQUE" <+> parenthesized (renderCommaSeparated renderColumn columns)
186187
187188-- | A `primaryKey` constraint indicates that a column, or group of columns,
@@ -200,8 +201,8 @@ primaryKey
200201 :: (SOP.SListI subcolumns, NotAllNull subcolumns)
201202 => NP (Column columns) subcolumns
202203 -- ^ identifying column or group of columns
203− -> TableConstraint schema columns ('Uniques (Aliases subcolumns))
204−primaryKey columns = UnsafeTableConstraint $
204+ -> TableConstraintExpression schema columns ('Uniques (Aliases subcolumns))
205+primaryKey columns = UnsafeTableConstraintExpression $
205206 "PRIMARY KEY" <+> parenthesized (renderCommaSeparated renderColumn columns)
206207
207208-- | A `foreignKey` specifies that the values in a column
@@ -253,10 +254,10 @@ foreignKey
253254 -- ^ what to do when reference is deleted
254255 -> OnUpdateClause
255256 -- ^ what to do when reference is updated
256− -> TableConstraint schema columns
257+ -> TableConstraintExpression schema columns
257258 ('ForeignKey (Aliases subcolumns) tab (Aliases refsubcolumns))
258259foreignKey columns reftable refcolumns onDelete onUpdate =
259− UnsafeTableConstraint $
260+ UnsafeTableConstraintExpression $
260261 "FOREIGN KEY" <+> parenthesized (renderCommaSeparated renderColumn columns)
261262 <+> "REFERENCES" <+> renderAlias reftable
262263 <+> parenthesized (renderCommaSeparated renderColumn refcolumns)
@@ -359,16 +360,16 @@ alterTableRename table0 table1 = UnsafeDefinition $
359360-- alterTableAddConstraint
360361-- :: (HasTable table schema columns, (table ::: table0) `In` schema)
361362-- => Alias table -- ^ table to constrain
362−-- -> TableConstraint schema columns constraint -- ^ what constraint to add
363+-- -> TableConstraintExpression schema columns constraint -- ^ what constraint to add
363364-- -> Definition schema (Alter table schema (AddConstraint constraint table0))
364365-- alterTableAddConstraint table constraint = UnsafeDefinition $
365366-- "ALTER TABLE" <+> renderAlias table
366−-- <+> "ADD" <+> renderTableConstraint constraint <> ";"
367+-- <+> "ADD" <+> renderTableConstraintExpression constraint <> ";"
367368
368369addConstraint
369370 :: (tab ::: table) `In` schema
370371 => Alias tab
371− -> TableConstraint schema columns constraint
372+ -> TableConstraintExpression schema columns constraint
372373 -> AlterTable schema table (AddConstraint constraint table)
373374addConstraint = undefined
374375