@@ -349,8 +349,8 @@ let
349349 '[ "c1" ::: 'NotNull 'PGtext
350350 , "c2" ::: 'NotNull 'PGtext ]
351351 query = with (
352− selectStar (from (view #t1)) `as` #t2 :>>
353− selectStar (from (view #t2)) `as` #t3
352+ CommonTableExpression (selectStar (from (view #t1)) `as` #t2) :>>
353+ CommonTableExpression (selectStar (from (view #t2)) `as` #t3) :>> Done
354354 ) (selectStar (from (view #t3)))
355355in printSQL query
356356:}
@@ -1362,34 +1362,33 @@ rowGteAny = unsafeRowSubqueryExpression ">= ANY"
13621362-- | A `CommonTableExpression` is an auxiliary statement in a `with` clause.
13631363data CommonTableExpression statement
13641364 (params :: [NullityType])
1365− (db :: DBType)
1366− (schema0 :: SchemaType)
1367− (schema1 :: SchemaType) where
1365+ (db0 :: DBType)
1366+ (db1 :: DBType) where
13681367 CommonTableExpression
1369− :: Has "public" db schema
1368+ :: ( Has "public" db schema
1369+ , Alter "public" (alias ::: 'View cte ': schema) db ~ db1 )
13701370 => Aliased (statement db params) (alias ::: cte)
1371− -> CommonTableExpression
1372− statement params db schema (alias ::: 'View cte ': schema)
1373−instance
1374− ( KnownSymbol vw
1375− , Has "public" db schema
1376− , schema1 ~ (vw ::: 'View cte ': schema)
1377− ) => Aliasable vw
1378− (statement db params cte)
1379− (CommonTableExpression statement params db schema schema1) where
1380− statement `as` vw = CommonTableExpression (statement `as` vw)
1381−instance
1382− ( KnownSymbol vw
1383− , Has "public" db schema
1384− , schema1 ~ (vw ::: 'View cte ': schema)
1385− ) => Aliasable vw (statement db params cte)
1386− (AlignedList (CommonTableExpression statement params db) schema schema1) where
1387− statement `as` vw = single (statement `as` vw)
1371+ -> CommonTableExpression statement params db db1
1372+-- instance
1373+-- ( KnownSymbol vw
1374+-- , Has "public" db schema
1375+-- , Alter "public" (vw ::: 'View cte ': schema) db ~ db1
1376+-- ) => Aliasable vw
1377+-- (statement db params cte)
1378+-- (CommonTableExpression statement params db db1) where
1379+-- statement `as` vw = CommonTableExpression (statement `as` vw)
1380+-- instance
1381+-- ( KnownSymbol vw
1382+-- , Has "public" db schema
1383+-- , Alter "public" (vw ::: 'View cte ': schema) db ~ db1
1384+-- ) => Aliasable vw (statement db params cte)
1385+-- (AlignedList (CommonTableExpression statement params) db db1) where
1386+-- statement `as` vw = single (statement `as` vw)
13881387
13891388-- | render a `CommonTableExpression`.
13901389renderCommonTableExpression
13911390 :: (forall db ps row. statement db ps row -> ByteString) -- ^ render statement
1392− -> CommonTableExpression statement params db0 schema0 schema1 -> ByteString
1391+ -> CommonTableExpression statement params db0 db1 -> ByteString
13931392renderCommonTableExpression renderStatement
13941393 (CommonTableExpression (statement `As` alias)) =
13951394 renderAlias alias <+> "AS" <+> parenthesized (renderStatement statement)
@@ -1397,8 +1396,8 @@ renderCommonTableExpression renderStatement
13971396-- | render a non-empty `AlignedList` of `CommonTableExpression`s.
13981397renderCommonTableExpressions
13991398 :: (forall db ps row. statement db ps row -> ByteString) -- ^ render statement
1400− -> CommonTableExpression statement params db0 schema0 schema1
1401− -> AlignedList (CommonTableExpression statement params db0) schema1 schema2
1399+ -> CommonTableExpression statement params db0 db1
1400+ -> AlignedList (CommonTableExpression statement params) db1 db2
14021401 -> ByteString
14031402renderCommonTableExpressions renderStatement cte ctes =
14041403 renderCommonTableExpression renderStatement cte <> case ctes of
@@ -1412,9 +1411,9 @@ renderCommonTableExpressions renderStatement cte ctes =
14121411class With statement where
14131412 with
14141413 :: Has "public" db0 schema0
1415− => AlignedList (CommonTableExpression statement params db0) schema0 schema1
1414+ => AlignedList (CommonTableExpression statement params) db0 db1
14161415 -- ^ common table expressions
1417− -> statement (Alter "public" schema1 db0) params row
1416+ -> statement db1 params row
14181417 -- ^ larger query
14191418 -> statement db0 params row
14201419instance With Query where