on dev help sign in
some fixes
commitc6143361fb22aed8cf07952052c54e182f89e427 authorEitan Chatav <eitan.chatav@gmail.com> dateSun 24 Dec 2017, 16:03 (9 years ago) parenta28d35a
2 files changed+15−11
squeal-postgresql/src/Squeal/PostgreSQL/Definition.hs+15−9 squeal-postgresql/src/Squeal/PostgreSQL/Expression.hs−2
squeal-postgresql/src/Squeal/PostgreSQL/Definition.hs+15−9
@@ -13,13 +13,17 @@ Squeal data definition language.
1313 , DeriveDataTypeable
1414 , DeriveGeneric
1515 , FlexibleContexts
16+ , FlexibleInstances
1617 , GADTs
1718 , GeneralizedNewtypeDeriving
1819 , KindSignatures
1920 , LambdaCase
21+ , MultiParamTypeClasses
2022 , OverloadedStrings
2123 , RankNTypes
24+ , ScopedTypeVariables
2225 , StandaloneDeriving
26+ , TypeApplications
2327 , TypeInType
2428 , TypeOperators
2529#-}
@@ -31,6 +35,7 @@ module Squeal.PostgreSQL.Definition
3135 -- * Create
3236 , createTable
3337 , TableConstraintExpression (..)
38+ , Column (..)
3439 , check
3540 , unique
3641 , primaryKey
@@ -158,13 +163,14 @@ newtype TableConstraintExpression
158163data Column
159164 (columns :: ColumnsType)
160165 (column :: (Symbol,ColumnType))
161− where
162− Column
163− :: Has column columns ty
164− => Column columns (column ::: ty)
165−deriving instance Show (Column columns columnty)
166−deriving instance Eq (Column columns columnty)
167−deriving instance Ord (Column columns columnty)
166+ where
167+ Column
168+ :: Has column columns ty
169+ => Alias column
170+ -> Column columns (column ::: ty)
171+
172+renderColumn :: Column columns column -> ByteString
173+renderColumn (Column column) = renderAlias column
168174
169175-- | A `check` constraint is the most generic `TableConstraint` type.
170176-- It allows you to specify that the value in a certain column must satisfy
@@ -267,7 +273,7 @@ primaryKey columns = UnsafeTableConstraintExpression $
267273-- "CREATE TABLE users (id serial, username text NOT NULL, CONSTRAINT pk_id PRIMARY KEY (id)); CREATE TABLE emails (id serial, userid integer NOT NULL, email text NOT NULL, CONSTRAINT pk_id PRIMARY KEY (id), CONSTRAINT fk_user_id FOREIGN KEY (userid) REFERENCES users (id) ON DELETE CASCADE ON UPDATE RESTRICT);"
268274foreignKey
269275 :: ( Has table schema reftable
270− , reftable ~ (constraints :=> refsubcolumns)
276+ , refcolumns ~ UnconstrainTable reftable
271277 , SameTypes subcolumns refsubcolumns
272278 , AllNotNull subcolumns
273279 , SOP.SListI subcolumns
@@ -388,7 +394,7 @@ alterTableRename table0 table1 = UnsafeDefinition $
388394addConstraint
389395 :: KnownSymbol constraintName
390396 => Alias constraintName
391− -> TableConstraintExpression schema table constraint
397+ -> TableConstraintExpression schema (UnconstrainTable table) constraint
392398 -> AlterTable schema table (AddConstraint constraintName constraint table)
393399addConstraint constraintName constraint = UnsafeAlterTable $
394400 "ADD" <+> "CONSTRAINT" <+> renderAlias constraintName
squeal-postgresql/src/Squeal/PostgreSQL/Expression.hs−2
@@ -37,8 +37,6 @@ module Squeal.PostgreSQL.Expression
3737 ( -- * Expression
3838 Expression (UnsafeExpression, renderExpression)
3939 , HasParameter (param)
40− -- , Column (Column)
41− -- , renderColumn
4240 , GroupedBy (getGroup1, getGroup2)
4341 -- ** Null
4442 , null_