on dev help sign in
remove HasQualified

it's redundant

commita69f25770e4095fe67276a8d31ecbf32c6fc62c8 authorEitan Chatav <eitan.chatav@gmail.com> dateSat 24 Nov 2018, 12:18 (8 years ago) parent8a8a3cf
5 files changed+55−49
squeal-postgresql/src/Squeal/PostgreSQL/Definition.hs+28−16 squeal-postgresql/src/Squeal/PostgreSQL/Expression.hs+5−4 squeal-postgresql/src/Squeal/PostgreSQL/Manipulation.hs+19−10 squeal-postgresql/src/Squeal/PostgreSQL/Query.hs+2−2 squeal-postgresql/src/Squeal/PostgreSQL/Schema.hs+1−17
squeal-postgresql/src/Squeal/PostgreSQL/Definition.hs+28−16
@@ -184,7 +184,8 @@ in printSQL setup
184184CREATE TABLE IF NOT EXISTS "tab" ("a" int NULL, "b" real NULL);
185185-}
186186createTableIfNotExists
187− :: ( HasQualified sch tab db schema ('Table (constraints :=> columns))
187+ :: ( Has sch db schema
188+ , Has tab schema ('Table (constraints :=> columns))
188189 , SOP.SListI columns
189190 , SOP.SListI constraints )
190191 => QualifiedAlias sch tab -- ^ the name of the table to add
@@ -273,7 +274,8 @@ let
273274CREATE TABLE "tab" ("a" int NOT NULL, "b" int NOT NULL, CONSTRAINT "inequality" CHECK (("a" > "b")));
274275-}
275276check
276− :: ( HasQualified sch tab db schema ('Table table)
277+ :: ( Has sch db schema
278+ , Has tab schema ('Table table)
277279 , HasAll aliases (TableToRow table) subcolumns )
278280 => NP Alias aliases
279281 -- ^ specify the subcolumns which are getting checked
@@ -307,7 +309,8 @@ let
307309CREATE TABLE "tab" ("a" int NULL, "b" int NULL, CONSTRAINT "uq_a_b" UNIQUE ("a", "b"));
308310-}
309311unique
310− :: ( HasQualified sch tab db schema('Table table)
312+ :: ( Has sch db schema
313+ , Has tab schema('Table table)
311314 , HasAll aliases (TableToRow table) subcolumns )
312315 => NP Alias aliases
313316 -- ^ specify subcolumns which together are unique for each row
@@ -340,7 +343,8 @@ let
340343CREATE TABLE "tab" ("id" serial, "name" text NOT NULL, CONSTRAINT "pk_id" PRIMARY KEY ("id"));
341344-}
342345primaryKey
343− :: ( HasQualified sch tab db schema ('Table table)
346+ :: ( Has sch db schema
347+ , Has tab schema ('Table table)
344348 , HasAll aliases (TableToColumns table) subcolumns
345349 , AllNotNull subcolumns )
346350 => NP Alias aliases
@@ -456,8 +460,9 @@ type ForeignKeyed db
456460 columns refcolumns
457461 constraints cols
458462 reftys tys =
459− ( HasQualified sch child db schema ('Table table)
460− , HasQualified sch parent db schema ('Table reftable)
463+ ( Has sch db schema
464+ , Has child schema ('Table table)
465+ , Has parent schema ('Table reftable)
461466 , HasAll columns (TableToColumns table) tys
462467 , reftable ~ (constraints :=> cols)
463468 , HasAll refcolumns cols reftys
@@ -518,7 +523,8 @@ DROP statements
518523-- >>> printSQL definition
519524-- DROP TABLE "muh_table";
520525dropTable
521− :: HasQualified sch tab db schema ('Table table)
526+ :: ( Has sch db schema
527+ , Has tab schema ('Table table))
522528 => QualifiedAlias sch tab -- ^ table to remove
523529 -> Definition db (Alter sch (Drop tab schema) db)
524530dropTable tab = UnsafeDefinition $ "DROP TABLE" <+> renderQualifiedAlias tab <> ";"
@@ -529,7 +535,7 @@ ALTER statements
529535
530536-- | `alterTable` changes the definition of a table from the schema.
531537alterTable
532− :: HasQualified sch tab db schema ('Table table0)
538+ :: (Has sch db schema, Has tab schema ('Table table0))
533539 => QualifiedAlias sch tab -- ^ table to alter
534540 -> AlterTable sch tab db table1 -- ^ alteration to perform
535541 -> Definition db (Alter sch (Alter tab ('Table table1) schema) db)
@@ -575,7 +581,8 @@ newtype AlterTable
575581-- ALTER TABLE "tab" ADD CONSTRAINT "positive" CHECK (("col" > 0));
576582addConstraint
577583 :: ( KnownSymbol alias
578− , HasQualified sch tab db schema ('Table table0)
584+ , Has sch db schema
585+ , Has tab schema ('Table table0)
579586 , table0 ~ (constraints :=> columns)
580587 , table1 ~ (Create alias constraint constraints :=> columns) )
581588 => Alias alias
@@ -599,7 +606,8 @@ addConstraint alias constraint = UnsafeAlterTable $
599606-- ALTER TABLE "tab" DROP CONSTRAINT "positive";
600607dropConstraint
601608 :: ( KnownSymbol constraint
602− , HasQualified sch tab db schema ('Table table0)
609+ , Has sch db schema
610+ , Has tab schema ('Table table0)
603611 , table0 ~ (constraints :=> columns)
604612 , table1 ~ (Drop constraint constraints :=> columns) )
605613 => Alias constraint
@@ -638,7 +646,8 @@ class AddColumn ty where
638646 -- ALTER TABLE "tab" ADD COLUMN "col2" text NULL;
639647 addColumn
640648 :: ( KnownSymbol column
641− , HasQualified sch tab db schema ('Table table0)
649+ , Has sch db schema
650+ , Has tab schema ('Table table0)
642651 , table0 ~ (constraints :=> columns) )
643652 => Alias column -- ^ column to add
644653 -> ColumnTypeExpression db ty -- ^ type of the new column
@@ -666,7 +675,8 @@ instance {-# OVERLAPPABLE #-} AddColumn ('NoDef :=> 'Null ty)
666675-- ALTER TABLE "tab" DROP COLUMN "col2";
667676dropColumn
668677 :: ( KnownSymbol column
669− , HasQualified sch tab db schema ('Table table0)
678+ , Has sch db schema
679+ , Has tab schema ('Table table0)
670680 , table0 ~ (constraints :=> columns)
671681 , table1 ~ (constraints :=> Drop column columns) )
672682 => Alias column -- ^ column to remove
@@ -688,7 +698,8 @@ dropColumn column = UnsafeAlterTable $
688698renameColumn
689699 :: ( KnownSymbol column0
690700 , KnownSymbol column1
691− , HasQualified sch tab db schema ('Table table0)
701+ , Has sch db schema
702+ , Has tab schema ('Table table0)
692703 , table0 ~ (constraints :=> columns)
693704 , table1 ~ (constraints :=> Rename column0 column1 columns) )
694705 => Alias column0 -- ^ column to rename
@@ -700,7 +711,8 @@ renameColumn column0 column1 = UnsafeAlterTable $
700711-- | An `alterColumn` alters a single column.
701712alterColumn
702713 :: ( KnownSymbol column
703− , HasQualified sch tab db schema ('Table table0)
714+ , Has sch db schema
715+ , Has tab schema ('Table table0)
704716 , table0 ~ (constraints :=> columns)
705717 , Has column columns ty0
706718 , tables1 ~ (constraints :=> Alter column ty1 columns))
@@ -833,7 +845,7 @@ createView alias query = UnsafeDefinition $
833845-- :}
834846-- DROP VIEW "bc";
835847dropView
836− :: HasQualified sch vw db schema ('View view)
848+ :: (Has sch db schema, Has vw schema ('View view))
837849 => QualifiedAlias sch vw -- ^ view to remove
838850 -> Definition db (Alter sch (Drop vw schema) db)
839851dropView vw = UnsafeDefinition $ "DROP VIEW" <+> renderQualifiedAlias vw <> ";"
@@ -938,7 +950,7 @@ instance (KnownSymbol alias, PGTyped schema ty)
938950-- >>> printSQL (dropType #schwarma :: Definition '["schwarma" ::: 'Typedef (PG (Enumerated Schwarma))] '[])
939951-- DROP TYPE "schwarma";
940952dropType
941− :: HasQualified sch td db schema ('Typedef ty)
953+ :: (Has sch db schema, Has td schema ('Typedef ty))
942954 => QualifiedAlias sch td
943955 -- ^ name of the user defined type
944956 -> Definition db (Alter sch (Drop td schema) db)
squeal-postgresql/src/Squeal/PostgreSQL/Expression.hs+5−4
@@ -484,7 +484,8 @@ row exprs = UnsafeExpression $ "ROW" <> parenthesized
484484-- >>> printSQL $ i & field #complex #imaginary
485485-- (ROW(0, 1)::"complex")."imaginary"
486486field
487− :: ( HasQualified sch tydef db schema ('Typedef ('PGcomposite row))
487+ :: ( Has sch db schema
488+ , Has tydef schema ('Typedef ('PGcomposite row))
488489 , Has field row ty)
489490 => QualifiedAlias sch tydef -- ^ row type
490491 -> Alias field -- ^ field name
@@ -1613,7 +1614,7 @@ newtype TypeExpression (db :: DBType) (ty :: NullityType)
16131614
16141615-- | The enum or composite type in a `Typedef` can be expressed by its alias.
16151616typedef
1616− :: HasQualified sch td db schema ('Typedef ty)
1617+ :: (Has sch db schema, Has td schema ('Typedef ty))
16171618 => QualifiedAlias sch td
16181619 -> TypeExpression db (nullity ty)
16191620typedef = UnsafeTypeExpression . renderQualifiedAlias
@@ -1621,7 +1622,7 @@ typedef = UnsafeTypeExpression . renderQualifiedAlias
16211622-- | The composite type corresponding to a `Table` definition can be expressed
16221623-- by its alias.
16231624typetable
1624− :: HasQualified sch tab db schema ('Table table)
1625+ :: (Has sch db schema, Has tab schema ('Table table))
16251626 => QualifiedAlias sch tab
16261627 -> TypeExpression db (nullity ('PGcomposite (TableToRow table)))
16271628typetable = UnsafeTypeExpression . renderQualifiedAlias
@@ -1629,7 +1630,7 @@ typetable = UnsafeTypeExpression . renderQualifiedAlias
16291630-- | The composite type corresponding to a `View` definition can be expressed
16301631-- by its alias.
16311632typeview
1632− :: HasQualified sch vw db schema ('View view)
1633+ :: (Has sch db schema, Has vw schema ('View view))
16331634 => QualifiedAlias sch vw
16341635 -> TypeExpression db (nullity ('PGcomposite view))
16351636typeview = UnsafeTypeExpression . renderQualifiedAlias
squeal-postgresql/src/Squeal/PostgreSQL/Manipulation.hs+19−10
@@ -232,7 +232,8 @@ INSERT statements
232232insertRows
233233 :: ( SOP.SListI columns
234234 , SOP.SListI results
235− , HasQualified sch tab db schema ('Table table)
235+ , Has sch db schema
236+ , Has tab schema ('Table table)
236237 , row ~ TableToRow table
237238 , columns ~ TableToColumns table )
238239 => QualifiedAlias sch tab -- ^ table to insert into
@@ -263,7 +264,8 @@ insertRows tab rw rws conflict returning = UnsafeManipulation $
263264insertRow
264265 :: ( SOP.SListI columns
265266 , SOP.SListI results
266− , HasQualified sch tab db schema ('Table table)
267+ , Has sch db schema
268+ , Has tab schema ('Table table)
267269 , row ~ TableToRow table
268270 , columns ~ TableToColumns table )
269271 => QualifiedAlias sch tab -- ^ table to insert into
@@ -277,7 +279,8 @@ insertRow tab rw = insertRows tab rw []
277279-- | Insert multiple rows returning `Nil` and raising an error on conflicts.
278280insertRows_
279281 :: ( SOP.SListI columns
280− , HasQualified sch tab db schema ('Table table)
282+ , Has sch db schema
283+ , Has tab schema ('Table table)
281284 , columns ~ TableToColumns table )
282285 => QualifiedAlias sch tab -- ^ table to insert into
283286 -> NP (Aliased (ColumnValue db '[] params)) columns -- ^ row to insert
@@ -289,7 +292,8 @@ insertRows_ tab rw rws =
289292-- | Insert a single row returning `Nil` and raising an error on conflicts.
290293insertRow_
291294 :: ( SOP.SListI columns
292− , HasQualified sch tab db schema ('Table table)
295+ , Has sch db schema
296+ , Has tab schema ('Table table)
293297 , columns ~ TableToColumns table )
294298 => QualifiedAlias sch tab -- ^ table to insert into
295299 -> NP (Aliased (ColumnValue db '[] params)) columns -- ^ row to insert
@@ -300,7 +304,8 @@ insertRow_ tab rw = insertRow tab rw OnConflictDoRaise (Returning Nil)
300304insertQuery
301305 :: ( SOP.SListI columns
302306 , SOP.SListI results
303− , HasQualified sch tab db schema ('Table table)
307+ , Has sch db schema
308+ , Has tab schema ('Table table)
304309 , row ~ TableToRow table
305310 , columns ~ TableToColumns table )
306311 => QualifiedAlias sch tab -- ^ table to insert into
@@ -318,7 +323,8 @@ insertQuery tab query conflict returning = UnsafeManipulation $
318323-- | Insert a `Query` returning `Nil` and raising an error on conflicts.
319324insertQuery_
320325 :: ( SOP.SListI columns
321− , HasQualified sch tab db schema ('Table table)
326+ , Has sch db schema
327+ , Has tab schema ('Table table)
322328 , columns ~ TableToColumns table )
323329 => QualifiedAlias sch tab -- ^ table to insert into
324330 -> Query db params (TableToRow table)
@@ -427,7 +433,8 @@ UPDATE statements
427433update
428434 :: ( SOP.SListI columns
429435 , SOP.SListI results
430− , HasQualified sch tab db schema ('Table table)
436+ , Has sch db schema
437+ , Has tab schema ('Table table)
431438 , row ~ TableToRow table
432439 , columns ~ TableToColumns table )
433440 => QualifiedAlias sch tab -- ^ table to update
@@ -458,7 +465,8 @@ update tab columns wh returning = UnsafeManipulation $
458465-- | Update a row returning `Nil`.
459466update_
460467 :: ( SOP.SListI columns
461− , HasQualified sch tab db schema ('Table table)
468+ , Has sch db schema
469+ , Has tab schema ('Table table)
462470 , row ~ TableToRow table
463471 , columns ~ TableToColumns table )
464472 => QualifiedAlias sch tab -- ^ table to update
@@ -476,7 +484,8 @@ DELETE statements
476484-- | Delete rows of a table.
477485deleteFrom
478486 :: ( SOP.SListI results
479− , HasQualified sch tab db schema ('Table table)
487+ , Has sch db schema
488+ , Has tab schema ('Table table)
480489 , row ~ TableToRow table
481490 , columns ~ TableToColumns table )
482491 => QualifiedAlias sch tab -- ^ table to delete from
@@ -491,7 +500,7 @@ deleteFrom tab wh returning = UnsafeManipulation $
491500
492501-- | Delete rows returning `Nil`.
493502deleteFrom_
494− :: ( HasQualified sch tab db schema ('Table table)
503+ :: ( Has sch db schema, Has tab schema ('Table table)
495504 , row ~ TableToRow table
496505 , columns ~ TableToColumns table )
497506 => QualifiedAlias sch tab -- ^ table to delete from
squeal-postgresql/src/Squeal/PostgreSQL/Query.hs+2−2
@@ -859,7 +859,7 @@ newtype FromClause db params from
859859
860860-- | A real `table` is a table from the schema.
861861table
862− :: HasQualified sch tab db schema ('Table table)
862+ :: (Has sch db schema, Has tab schema ('Table table))
863863 => Aliased (QualifiedAlias sch) (alias ::: tab)
864864 -> FromClause db params '[alias ::: TableToRow table]
865865table (tab `As` alias) = UnsafeFromClause $
@@ -873,7 +873,7 @@ subquery = UnsafeFromClause . renderAliasedAs (parenthesized . renderQuery)
873873
874874-- | `view` derives a table from a `View`.
875875view
876− :: HasQualified sch vw db schema ('View view)
876+ :: (Has sch db schema, Has vw schema ('View view))
877877 => Aliased (QualifiedAlias sch) (alias ::: vw)
878878 -> FromClause db params '[alias ::: view]
879879view (vw `As` alias) = UnsafeFromClause $
squeal-postgresql/src/Squeal/PostgreSQL/Schema.hs+1−17
@@ -77,7 +77,6 @@ module Squeal.PostgreSQL.Schema
7777 , QualifiedAlias (..)
7878 , IsQualified (..)
7979 , renderQualifiedAlias
80− , HasQualified
8180 -- * Enumerated Labels
8281 , IsPGlabel (..)
8382 , PGlabel (..)
@@ -476,6 +475,7 @@ class IsQualified table column expression where
476475instance IsQualified table column (Alias table, Alias column) where (!) = (,)
477476
478477data QualifiedAlias (qualifier :: Symbol) (alias :: Symbol) = QualifiedAlias
478+ deriving (Eq,GHC.Generic,Ord,Show,NFData)
479479instance (q ~ q', a ~ a') => IsQualified q a (QualifiedAlias q' a') where
480480 _!_ = QualifiedAlias
481481instance (q' ~ "public", a ~ a') => IsLabel a (QualifiedAlias q' a') where
@@ -491,22 +491,6 @@ renderQualifiedAlias _ =
491491 in
492492 if qualifier == "public" then alias else qualifier <> "." <> alias
493493
494−class (KnownSymbol qualifier, KnownSymbol alias) => HasQualified
495− (qualifier :: Symbol)
496− (alias :: Symbol)
497− (xss :: [(Symbol,[(Symbol, kind)])])
498− (xs :: [(Symbol,kind)])
499− (x :: kind)
500− | qualifier xss -> xs
501− , alias xs -> x where
502−
503−instance
504− ( KnownSymbol qualifier
505− , KnownSymbol alias
506− , Has qualifier xss xs
507− , Has alias xs x
508− ) => HasQualified qualifier alias xss xs x
509−
510494-- | @Elem@ is a promoted `Data.List.elem`.
511495type family Elem x xs where
512496 Elem x '[] = 'False