@@ -184,7 +184,8 @@ in printSQL setup
184CREATE TABLE IF NOT EXISTS "tab" ("a" int NULL, "b" real NULL);
184CREATE TABLE IF NOT EXISTS "tab" ("a" int NULL, "b" real NULL);
186createTableIfNotExists
186createTableIfNotExists
187+ :: ( Has sch db schema
187− :: ( HasQualified sch tab db schema ('Table (constraints :=> columns))
188+ , Has tab schema ('Table (constraints :=> columns))
188 , SOP.SListI columns
189 , SOP.SListI columns
189 , SOP.SListI constraints )
190 , SOP.SListI constraints )
190 => QualifiedAlias sch tab -- ^ the name of the table to add
191 => QualifiedAlias sch tab -- ^ the name of the table to add
@@ -273,7 +274,8 @@ let
273CREATE TABLE "tab" ("a" int NOT NULL, "b" int NOT NULL, CONSTRAINT "inequality" CHECK (("a" > "b")));
274CREATE TABLE "tab" ("a" int NOT NULL, "b" int NOT NULL, CONSTRAINT "inequality" CHECK (("a" > "b")));
276− :: ( HasQualified sch tab db schema ('Table table)
277+ :: ( Has sch db schema
278+ , Has tab schema ('Table table)
277 , HasAll aliases (TableToRow table) subcolumns )
279 , HasAll aliases (TableToRow table) subcolumns )
278 => NP Alias aliases
280 => NP Alias aliases
279 -- ^ specify the subcolumns which are getting checked
281 -- ^ specify the subcolumns which are getting checked
@@ -307,7 +309,8 @@ let
307CREATE TABLE "tab" ("a" int NULL, "b" int NULL, CONSTRAINT "uq_a_b" UNIQUE ("a", "b"));
309CREATE TABLE "tab" ("a" int NULL, "b" int NULL, CONSTRAINT "uq_a_b" UNIQUE ("a", "b"));
310− :: ( HasQualified sch tab db schema('Table table)
312+ :: ( Has sch db schema
313+ , Has tab schema('Table table)
311 , HasAll aliases (TableToRow table) subcolumns )
314 , HasAll aliases (TableToRow table) subcolumns )
312 => NP Alias aliases
315 => NP Alias aliases
313 -- ^ specify subcolumns which together are unique for each row
316 -- ^ specify subcolumns which together are unique for each row
@@ -340,7 +343,8 @@ let
340CREATE TABLE "tab" ("id" serial, "name" text NOT NULL, CONSTRAINT "pk_id" PRIMARY KEY ("id"));
343CREATE TABLE "tab" ("id" serial, "name" text NOT NULL, CONSTRAINT "pk_id" PRIMARY KEY ("id"));
342primaryKey
345primaryKey
343− :: ( HasQualified sch tab db schema ('Table table)
346+ :: ( Has sch db schema
347+ , Has tab schema ('Table table)
344 , HasAll aliases (TableToColumns table) subcolumns
348 , HasAll aliases (TableToColumns table) subcolumns
345 , AllNotNull subcolumns )
349 , AllNotNull subcolumns )
346 => NP Alias aliases
350 => NP Alias aliases
@@ -456,8 +460,9 @@ type ForeignKeyed db
456 columns refcolumns
460 columns refcolumns
457 constraints cols
461 constraints cols
458 reftys tys =
462 reftys tys =
459− ( HasQualified sch child db schema ('Table table)
464+ , Has child schema ('Table table)
460− , HasQualified sch parent db schema ('Table reftable)
465+ , Has parent schema ('Table reftable)
461 , HasAll columns (TableToColumns table) tys
466 , HasAll columns (TableToColumns table) tys
462 , reftable ~ (constraints :=> cols)
467 , reftable ~ (constraints :=> cols)
463 , HasAll refcolumns cols reftys
468 , HasAll refcolumns cols reftys
@@ -518,7 +523,8 @@ DROP statements
518-- >>> printSQL definition
523-- >>> printSQL definition
519-- DROP TABLE "muh_table";
524-- DROP TABLE "muh_table";
521− :: HasQualified sch tab db schema ('Table table)
526+ :: ( Has sch db schema
527+ , Has tab schema ('Table table))
522 => QualifiedAlias sch tab -- ^ table to remove
528 => QualifiedAlias sch tab -- ^ table to remove
523 -> Definition db (Alter sch (Drop tab schema) db)
529 -> Definition db (Alter sch (Drop tab schema) db)
524dropTable tab = UnsafeDefinition $ "DROP TABLE" <+> renderQualifiedAlias tab <> ";"
530dropTable tab = UnsafeDefinition $ "DROP TABLE" <+> renderQualifiedAlias tab <> ";"
@@ -529,7 +535,7 @@ ALTER statements
530-- | `alterTable` changes the definition of a table from the schema.
536-- | `alterTable` changes the definition of a table from the schema.
531alterTable
537alterTable
532− :: HasQualified sch tab db schema ('Table table0)
538+ :: (Has sch db schema, Has tab schema ('Table table0))
533 => QualifiedAlias sch tab -- ^ table to alter
539 => QualifiedAlias sch tab -- ^ table to alter
534 -> AlterTable sch tab db table1 -- ^ alteration to perform
540 -> AlterTable sch tab db table1 -- ^ alteration to perform
535 -> Definition db (Alter sch (Alter tab ('Table table1) schema) db)
541 -> Definition db (Alter sch (Alter tab ('Table table1) schema) db)
@@ -575,7 +581,8 @@ newtype AlterTable
575-- ALTER TABLE "tab" ADD CONSTRAINT "positive" CHECK (("col" > 0));
581-- ALTER TABLE "tab" ADD CONSTRAINT "positive" CHECK (("col" > 0));
576addConstraint
582addConstraint
577 :: ( KnownSymbol alias
583 :: ( KnownSymbol alias
578− , HasQualified sch tab db schema ('Table table0)
584+ , Has sch db schema
585+ , Has tab schema ('Table table0)
579 , table0 ~ (constraints :=> columns)
586 , table0 ~ (constraints :=> columns)
580 , table1 ~ (Create alias constraint constraints :=> columns) )
587 , table1 ~ (Create alias constraint constraints :=> columns) )
581 => Alias alias
588 => Alias alias
@@ -599,7 +606,8 @@ addConstraint alias constraint = UnsafeAlterTable $
599-- ALTER TABLE "tab" DROP CONSTRAINT "positive";
606-- ALTER TABLE "tab" DROP CONSTRAINT "positive";
600dropConstraint
607dropConstraint
601 :: ( KnownSymbol constraint
608 :: ( KnownSymbol constraint
602− , HasQualified sch tab db schema ('Table table0)
609+ , Has sch db schema
610+ , Has tab schema ('Table table0)
603 , table0 ~ (constraints :=> columns)
611 , table0 ~ (constraints :=> columns)
604 , table1 ~ (Drop constraint constraints :=> columns) )
612 , table1 ~ (Drop constraint constraints :=> columns) )
605 => Alias constraint
613 => Alias constraint
@@ -638,7 +646,8 @@ class AddColumn ty where
638 -- ALTER TABLE "tab" ADD COLUMN "col2" text NULL;
646 -- ALTER TABLE "tab" ADD COLUMN "col2" text NULL;
639 addColumn
647 addColumn
640 :: ( KnownSymbol column
648 :: ( KnownSymbol column
641− , HasQualified sch tab db schema ('Table table0)
649+ , Has sch db schema
650+ , Has tab schema ('Table table0)
642 , table0 ~ (constraints :=> columns) )
651 , table0 ~ (constraints :=> columns) )
643 => Alias column -- ^ column to add
652 => Alias column -- ^ column to add
644 -> ColumnTypeExpression db ty -- ^ type of the new column
653 -> ColumnTypeExpression db ty -- ^ type of the new column
@@ -666,7 +675,8 @@ instance {-# OVERLAPPABLE #-} AddColumn ('NoDef :=> 'Null ty)
666-- ALTER TABLE "tab" DROP COLUMN "col2";
675-- ALTER TABLE "tab" DROP COLUMN "col2";
667dropColumn
676dropColumn
668 :: ( KnownSymbol column
677 :: ( KnownSymbol column
669− , HasQualified sch tab db schema ('Table table0)
678+ , Has sch db schema
679+ , Has tab schema ('Table table0)
670 , table0 ~ (constraints :=> columns)
680 , table0 ~ (constraints :=> columns)
671 , table1 ~ (constraints :=> Drop column columns) )
681 , table1 ~ (constraints :=> Drop column columns) )
672 => Alias column -- ^ column to remove
682 => Alias column -- ^ column to remove
@@ -688,7 +698,8 @@ dropColumn column = UnsafeAlterTable $
688renameColumn
698renameColumn
689 :: ( KnownSymbol column0
699 :: ( KnownSymbol column0
690 , KnownSymbol column1
700 , KnownSymbol column1
691− , HasQualified sch tab db schema ('Table table0)
701+ , Has sch db schema
702+ , Has tab schema ('Table table0)
692 , table0 ~ (constraints :=> columns)
703 , table0 ~ (constraints :=> columns)
693 , table1 ~ (constraints :=> Rename column0 column1 columns) )
704 , table1 ~ (constraints :=> Rename column0 column1 columns) )
694 => Alias column0 -- ^ column to rename
705 => Alias column0 -- ^ column to rename
@@ -700,7 +711,8 @@ renameColumn column0 column1 = UnsafeAlterTable $
700-- | An `alterColumn` alters a single column.
711-- | An `alterColumn` alters a single column.
701alterColumn
712alterColumn
702 :: ( KnownSymbol column
713 :: ( KnownSymbol column
703− , HasQualified sch tab db schema ('Table table0)
714+ , Has sch db schema
715+ , Has tab schema ('Table table0)
704 , table0 ~ (constraints :=> columns)
716 , table0 ~ (constraints :=> columns)
705 , Has column columns ty0
717 , Has column columns ty0
706 , tables1 ~ (constraints :=> Alter column ty1 columns))
718 , tables1 ~ (constraints :=> Alter column ty1 columns))
@@ -833,7 +845,7 @@ createView alias query = UnsafeDefinition $
834-- DROP VIEW "bc";
846-- DROP VIEW "bc";
836− :: HasQualified sch vw db schema ('View view)
848+ :: (Has sch db schema, Has vw schema ('View view))
837 => QualifiedAlias sch vw -- ^ view to remove
849 => QualifiedAlias sch vw -- ^ view to remove
838 -> Definition db (Alter sch (Drop vw schema) db)
850 -> Definition db (Alter sch (Drop vw schema) db)
839dropView vw = UnsafeDefinition $ "DROP VIEW" <+> renderQualifiedAlias vw <> ";"
851dropView vw = UnsafeDefinition $ "DROP VIEW" <+> renderQualifiedAlias vw <> ";"
@@ -938,7 +950,7 @@ instance (KnownSymbol alias, PGTyped schema ty)
938-- >>> printSQL (dropType #schwarma :: Definition '["schwarma" ::: 'Typedef (PG (Enumerated Schwarma))] '[])
950-- >>> printSQL (dropType #schwarma :: Definition '["schwarma" ::: 'Typedef (PG (Enumerated Schwarma))] '[])
939-- DROP TYPE "schwarma";
951-- DROP TYPE "schwarma";
941− :: HasQualified sch td db schema ('Typedef ty)
953+ :: (Has sch db schema, Has td schema ('Typedef ty))
942 => QualifiedAlias sch td
954 => QualifiedAlias sch td
943 -- ^ name of the user defined type
955 -- ^ name of the user defined type
944 -> Definition db (Alter sch (Drop td schema) db)
956 -> Definition db (Alter sch (Drop td schema) db)