on dev help sign in
conversion
6a21abfEitan Chatav
squeal-postgresql/src/Squeal/PostgreSQL/Definition.hs+2−2
@@ -270,7 +270,7 @@ CREATE TABLE "tab" ("a" int NOT NULL, "b" int NOT NULL, CONSTRAINT "inequality"
270-}
270-}
271check
271check
272 :: ( Has alias schema ('Table table)
272 :: ( Has alias schema ('Table table)
273− , HasAll aliases (TableToRelation table) subcolumns )
273+ , HasAll aliases (TableToRow table) subcolumns )
274 => NP Alias aliases
274 => NP Alias aliases
275 -- ^ specify the subcolumns which are getting checked
275 -- ^ specify the subcolumns which are getting checked
276 -> (forall tab. Condition schema '[tab ::: subcolumns] 'Ungrouped '[])
276 -> (forall tab. Condition schema '[tab ::: subcolumns] 'Ungrouped '[])
@@ -304,7 +304,7 @@ CREATE TABLE "tab" ("a" int NULL, "b" int NULL, CONSTRAINT "uq_a_b" UNIQUE ("a",
304-}
304-}
305unique
305unique
306 :: ( Has alias schema ('Table table)
306 :: ( Has alias schema ('Table table)
307− , HasAll aliases (TableToRelation table) subcolumns )
307+ , HasAll aliases (TableToRow table) subcolumns )
308 => NP Alias aliases
308 => NP Alias aliases
309 -- ^ specify subcolumns which together are unique for each row
309 -- ^ specify subcolumns which together are unique for each row
310 -> TableConstraintExpression schema alias ('Unique aliases)
310 -> TableConstraintExpression schema alias ('Unique aliases)
squeal-postgresql/src/Squeal/PostgreSQL/Manipulation.hs+12−12
@@ -280,7 +280,7 @@ insertQuery
280 , Has tab schema ('Table table)
280 , Has tab schema ('Table table)
281 , columns ~ TableToColumns table )
281 , columns ~ TableToColumns table )
282 => Alias tab -- ^ table to insert into
282 => Alias tab -- ^ table to insert into
283− -> Query schema params (ColumnsToRelation columns)
283+ -> Query schema params (ColumnsToRow columns)
284 -> ConflictClause schema columns params
284 -> ConflictClause schema columns params
285 -- ^ what to do in case of constraint conflict
285 -- ^ what to do in case of constraint conflict
286 -> ReturningClause schema columns params results -- ^ results to return
286 -> ReturningClause schema columns params results -- ^ results to return
@@ -297,7 +297,7 @@ insertQuery_
297 , Has tab schema ('Table table)
297 , Has tab schema ('Table table)
298 , columns ~ TableToColumns table )
298 , columns ~ TableToColumns table )
299 => Alias tab -- ^ table to insert into
299 => Alias tab -- ^ table to insert into
300− -> Query schema params (ColumnsToRelation columns)
300+ -> Query schema params (ColumnsToRow columns)
301 -> Manipulation schema params '[]
301 -> Manipulation schema params '[]
302insertQuery_ tab query =
302insertQuery_ tab query =
303 insertQuery tab query OnConflictDoRaise (Returning Nil)
303 insertQuery tab query OnConflictDoRaise (Returning Nil)
@@ -336,10 +336,10 @@ data ReturningClause
336 (results :: RowType)
336 (results :: RowType)
337 where
337 where
338 ReturningStar
338 ReturningStar
339− :: results ~ ColumnsToRelation columns
339+ :: results ~ ColumnsToRow columns
340 => ReturningClause schema columns params results
340 => ReturningClause schema columns params results
341 Returning
341 Returning
342− :: rel ~ ColumnsToRelation columns
342+ :: rel ~ ColumnsToRow columns
343 => NP (Aliased (Expression schema '[table ::: rel] 'Ungrouped params)) results
343 => NP (Aliased (Expression schema '[table ::: rel] 'Ungrouped params)) results
344 -> ReturningClause schema columns params results
344 -> ReturningClause schema columns params results
345
345
@@ -363,8 +363,8 @@ data ConflictClause (schema :: SchemaType) (columns :: ColumnsType) params where
363 OnConflictDoRaise :: ConflictClause schema columns params
363 OnConflictDoRaise :: ConflictClause schema columns params
364 OnConflictDoNothing :: ConflictClause schema columns params
364 OnConflictDoNothing :: ConflictClause schema columns params
365 OnConflictDoUpdate
365 OnConflictDoUpdate
366− :: NP (Aliased (ColumnValue schema (ColumnsToRelation columns) params)) columns
366+ :: NP (Aliased (ColumnValue schema (ColumnsToRow columns) params)) columns
367− -> [Condition schema '[table ::: ColumnsToRelation columns] 'Ungrouped params]
367+ -> [Condition schema '[table ::: ColumnsToRow columns] 'Ungrouped params]
368 -> ConflictClause schema columns params
368 -> ConflictClause schema columns params
369
369
370-- | Render a `ConflictClause`.
370-- | Render a `ConflictClause`.
@@ -404,9 +404,9 @@ update
404 , Has tab schema ('Table table)
404 , Has tab schema ('Table table)
405 , columns ~ TableToColumns table )
405 , columns ~ TableToColumns table )
406 => Alias tab -- ^ table to update
406 => Alias tab -- ^ table to update
407− -> NP (Aliased (ColumnValue schema (ColumnsToRelation columns) params)) columns
407+ -> NP (Aliased (ColumnValue schema (ColumnsToRow columns) params)) columns
408 -- ^ modified values to replace old values
408 -- ^ modified values to replace old values
409− -> Condition schema '[tab ::: ColumnsToRelation columns] 'Ungrouped params
409+ -> Condition schema '[tab ::: ColumnsToRow columns] 'Ungrouped params
410 -- ^ condition under which to perform update on a row
410 -- ^ condition under which to perform update on a row
411 -> ReturningClause schema columns params results -- ^ results to return
411 -> ReturningClause schema columns params results -- ^ results to return
412 -> Manipulation schema params results
412 -> Manipulation schema params results
@@ -434,9 +434,9 @@ update_
434 , Has tab schema ('Table table)
434 , Has tab schema ('Table table)
435 , columns ~ TableToColumns table )
435 , columns ~ TableToColumns table )
436 => Alias tab -- ^ table to update
436 => Alias tab -- ^ table to update
437− -> NP (Aliased (ColumnValue schema (ColumnsToRelation columns) params)) columns
437+ -> NP (Aliased (ColumnValue schema (ColumnsToRow columns) params)) columns
438 -- ^ modified values to replace old values
438 -- ^ modified values to replace old values
439− -> Condition schema '[tab ::: ColumnsToRelation columns] 'Ungrouped params
439+ -> Condition schema '[tab ::: ColumnsToRow columns] 'Ungrouped params
440 -- ^ condition under which to perform update on a row
440 -- ^ condition under which to perform update on a row
441 -> Manipulation schema params '[]
441 -> Manipulation schema params '[]
442update_ tab columns wh = update tab columns wh (Returning Nil)
442update_ tab columns wh = update tab columns wh (Returning Nil)
@@ -451,7 +451,7 @@ deleteFrom
451 , Has tab schema ('Table table)
451 , Has tab schema ('Table table)
452 , columns ~ TableToColumns table )
452 , columns ~ TableToColumns table )
453 => Alias tab -- ^ table to delete from
453 => Alias tab -- ^ table to delete from
454− -> Condition schema '[tab ::: ColumnsToRelation columns] 'Ungrouped params
454+ -> Condition schema '[tab ::: ColumnsToRow columns] 'Ungrouped params
455 -- ^ condition under which to delete a row
455 -- ^ condition under which to delete a row
456 -> ReturningClause schema columns params results -- ^ results to return
456 -> ReturningClause schema columns params results -- ^ results to return
457 -> Manipulation schema params results
457 -> Manipulation schema params results
@@ -465,7 +465,7 @@ deleteFrom_
465 :: ( Has tab schema ('Table table)
465 :: ( Has tab schema ('Table table)
466 , columns ~ TableToColumns table )
466 , columns ~ TableToColumns table )
467 => Alias tab -- ^ table to delete from
467 => Alias tab -- ^ table to delete from
468− -> Condition schema '[tab ::: ColumnsToRelation columns] 'Ungrouped params
468+ -> Condition schema '[tab ::: ColumnsToRow columns] 'Ungrouped params
469 -- ^ condition under which to delete a row
469 -- ^ condition under which to delete a row
470 -> Manipulation schema params '[]
470 -> Manipulation schema params '[]
471deleteFrom_ tab wh = deleteFrom tab wh (Returning Nil)
471deleteFrom_ tab wh = deleteFrom tab wh (Returning Nil)
squeal-postgresql/src/Squeal/PostgreSQL/Query.hs+6−6
@@ -727,7 +727,7 @@ nullRow
727 :: Has tab schema ('Table table)
727 :: Has tab schema ('Table table)
728 => Alias tab
728 => Alias tab
729 -> Expression schema from grouping params
729 -> Expression schema from grouping params
730− (nullity ('PGcomposite (TableToRelation table)))
730+ (nullity ('PGcomposite (TableToRow table)))
731nullRow tab = UnsafeExpression ("null::"<+>renderAlias tab)
731nullRow tab = UnsafeExpression ("null::"<+>renderAlias tab)
732
732
733-- | Expands the JSON expression to a row whose columns match the record
733-- | Expands the JSON expression to a row whose columns match the record
@@ -737,7 +737,7 @@ jsonPopulateRecordAs
737 => Alias tab
737 => Alias tab
738 -> Expression schema '[] 'Ungrouped params (nullity 'PGjson)
738 -> Expression schema '[] 'Ungrouped params (nullity 'PGjson)
739 -> Alias alias
739 -> Alias alias
740− -> FromClause schema params '[alias ::: TableToRelation table]
740+ -> FromClause schema params '[alias ::: TableToRow table]
741jsonPopulateRecordAs tableName expr alias = unsafeAliasedFromClauseExpression
741jsonPopulateRecordAs tableName expr alias = unsafeAliasedFromClauseExpression
742 (unsafeVariadicFunction "json_populate_record"
742 (unsafeVariadicFunction "json_populate_record"
743 (nullRow tableName :* expr :* Nil) `As` alias)
743 (nullRow tableName :* expr :* Nil) `As` alias)
@@ -749,7 +749,7 @@ jsonbPopulateRecordAs
749 => Alias tab
749 => Alias tab
750 -> Expression schema '[] 'Ungrouped params (nullity 'PGjsonb)
750 -> Expression schema '[] 'Ungrouped params (nullity 'PGjsonb)
751 -> Alias alias
751 -> Alias alias
752− -> FromClause schema params '[alias ::: TableToRelation table]
752+ -> FromClause schema params '[alias ::: TableToRow table]
753jsonbPopulateRecordAs tableName expr alias = unsafeAliasedFromClauseExpression
753jsonbPopulateRecordAs tableName expr alias = unsafeAliasedFromClauseExpression
754 (unsafeVariadicFunction "jsonb_populate_record"
754 (unsafeVariadicFunction "jsonb_populate_record"
755 (nullRow tableName :* expr :* Nil) `As` alias)
755 (nullRow tableName :* expr :* Nil) `As` alias)
@@ -761,7 +761,7 @@ jsonPopulateRecordSetAs
761 => Alias tab
761 => Alias tab
762 -> Expression schema '[] 'Ungrouped params (nullity 'PGjson)
762 -> Expression schema '[] 'Ungrouped params (nullity 'PGjson)
763 -> Alias alias
763 -> Alias alias
764− -> FromClause schema params '[alias ::: TableToRelation table]
764+ -> FromClause schema params '[alias ::: TableToRow table]
765jsonPopulateRecordSetAs tableName expr alias = unsafeAliasedFromClauseExpression
765jsonPopulateRecordSetAs tableName expr alias = unsafeAliasedFromClauseExpression
766 (unsafeVariadicFunction "json_populate_record_set"
766 (unsafeVariadicFunction "json_populate_record_set"
767 (nullRow tableName :* expr :* Nil) `As` alias)
767 (nullRow tableName :* expr :* Nil) `As` alias)
@@ -774,7 +774,7 @@ jsonbPopulateRecordSetAs
774 => Alias tab
774 => Alias tab
775 -> Expression schema '[] 'Ungrouped params (nullity 'PGjsonb)
775 -> Expression schema '[] 'Ungrouped params (nullity 'PGjsonb)
776 -> Alias alias
776 -> Alias alias
777− -> FromClause schema params '[alias ::: TableToRelation table]
777+ -> FromClause schema params '[alias ::: TableToRow table]
778jsonbPopulateRecordSetAs tableName expr alias = unsafeAliasedFromClauseExpression
778jsonbPopulateRecordSetAs tableName expr alias = unsafeAliasedFromClauseExpression
779 (unsafeVariadicFunction "jsonb_populate_record_set"
779 (unsafeVariadicFunction "jsonb_populate_record_set"
780 (nullRow tableName :* expr :* Nil) `As` alias)
780 (nullRow tableName :* expr :* Nil) `As` alias)
@@ -872,7 +872,7 @@ newtype FromClause schema params from
872table
872table
873 :: Has tab schema ('Table table)
873 :: Has tab schema ('Table table)
874 => Aliased Alias (alias ::: tab)
874 => Aliased Alias (alias ::: tab)
875− -> FromClause schema params '[alias ::: TableToRelation table]
875+ -> FromClause schema params '[alias ::: TableToRow table]
876table (tab `As` alias) = UnsafeFromClause $
876table (tab `As` alias) = UnsafeFromClause $
877 renderAlias tab <+> "AS" <+> renderAlias alias
877 renderAlias tab <+> "AS" <+> renderAlias alias
878
878
squeal-postgresql/src/Squeal/PostgreSQL/Schema.hs+9−9
@@ -101,9 +101,9 @@ module Squeal.PostgreSQL.Schema
101 , NullifyType
101 , NullifyType
102 , NullifyRelation
102 , NullifyRelation
103 , NullifyRelations
103 , NullifyRelations
104− , ColumnsToRelation
104+ , ColumnsToRow
105 , TableToColumns
105 , TableToColumns
106− , TableToRelation
106+ , TableToRow
107 , RelationToNullityTypes
107 , RelationToNullityTypes
108 , ConstraintInvolves
108 , ConstraintInvolves
109 , DropIfConstraintsInvolve
109 , DropIfConstraintsInvolve
@@ -319,19 +319,19 @@ type family NilRelation :: RowType where NilRelation = '[]
319-- | `FromType` is a row of `RowType`s, thought of as a product.
319-- | `FromType` is a row of `RowType`s, thought of as a product.
320type FromType = [(Symbol,RowType)]
320type FromType = [(Symbol,RowType)]
321
321
322−-- | `ColumnsToRelation` removes column constraints.
322+-- | `ColumnsToRow` removes column constraints.
323−type family ColumnsToRelation (columns :: ColumnsType) :: RowType where
323+type family ColumnsToRow (columns :: ColumnsType) :: RowType where
324− ColumnsToRelation '[] = '[]
324+ ColumnsToRow '[] = '[]
325− ColumnsToRelation (column ::: constraint :=> ty ': columns) =
325+ ColumnsToRow (column ::: constraint :=> ty ': columns) =
326− column ::: ty ': ColumnsToRelation columns
326+ column ::: ty ': ColumnsToRow columns
327
327
328-- | `TableToColumns` removes table constraints.
328-- | `TableToColumns` removes table constraints.
329type family TableToColumns (table :: TableType) :: ColumnsType where
329type family TableToColumns (table :: TableType) :: ColumnsType where
330 TableToColumns (constraints :=> columns) = columns
330 TableToColumns (constraints :=> columns) = columns
331
331
332-- | Convert a table to a relation.
332-- | Convert a table to a relation.
333−type family TableToRelation (table :: TableType) :: RowType where
333+type family TableToRow (table :: TableType) :: RowType where
334− TableToRelation tab = ColumnsToRelation (TableToColumns tab)
334+ TableToRow tab = ColumnsToRow (TableToColumns tab)
335
335
336-- | `Grouping` is an auxiliary namespace, created by
336-- | `Grouping` is an auxiliary namespace, created by
337-- @GROUP BY@ clauses (`Squeal.PostgreSQL.Query.group`), and used
337-- @GROUP BY@ clauses (`Squeal.PostgreSQL.Query.group`), and used