@@ -286,7 +286,8 @@ unique columns = UnsafeTableConstraintExpression $
286-- "CREATE TABLE \"tab\" (\"id\" serial, \"name\" text NOT NULL, CONSTRAINT \"pk_id\" PRIMARY KEY (\"id\"));"
286-- "CREATE TABLE \"tab\" (\"id\" serial, \"name\" text NOT NULL, CONSTRAINT \"pk_id\" PRIMARY KEY (\"id\"));"
287primaryKey
287primaryKey
288 :: ( Has alias schema table
288 :: ( Has alias schema table
289− , HasAll aliases (TableToColumns table) subcolumns )
289+ , HasAll aliases (TableToColumns table) subcolumns
290+ , AllNotNull subcolumns )
290 => NP Alias aliases
291 => NP Alias aliases
291 -> TableConstraintExpression schema alias ('PrimaryKey aliases)
292 -> TableConstraintExpression schema alias ('PrimaryKey aliases)
292primaryKey columns = UnsafeTableConstraintExpression $
293primaryKey columns = UnsafeTableConstraintExpression $
@@ -337,8 +338,11 @@ foreignKey
337 :: ( Has child schema table
338 :: ( Has child schema table
338 , Has parent schema reftable
339 , Has parent schema reftable
339 , HasAll columns (TableToColumns table) tys
340 , HasAll columns (TableToColumns table) tys
340− , HasAll refcolumns (TableToColumns reftable) reftys
341+ , reftable ~ (constraints :=> cols)
342+ , HasAll refcolumns cols reftys
341− , SOP.AllZip SamePGType tys reftys )
343+ , SOP.AllZip SamePGType tys reftys
345+ , Uniquely refcolumns constraints )
342 => NP Alias columns
346 => NP Alias columns
343 -- ^ column or columns in the table
347 -- ^ column or columns in the table
344 -> Alias parent
348 -> Alias parent