|
24 | 24 | from edb.testbase import server as tb
|
25 | 25 |
|
26 | 26 |
|
27 |
| -class TestRewrites(tb.QueryTestCase): |
| 27 | +class TestRewrites(tb.DDLTestCase): |
28 | 28 |
|
29 | 29 | SCHEMA = os.path.join(os.path.dirname(__file__), 'schemas', 'movies.esdl')
|
30 | 30 | # Setting up some rewrites makes the tests run a bit faster
|
@@ -1108,3 +1108,52 @@ async def test_edgeql_rewrites_29(self):
|
1108 | 1108 | update Project set { name := '## redacted ##' }
|
1109 | 1109 | '''
|
1110 | 1110 | )
|
| 1111 | + |
| 1112 | + async def test_edgeql_rewrites_30(self): |
| 1113 | + await self.con.execute(''' |
| 1114 | + insert Document { name := '1' }; |
| 1115 | + insert Document { name := '2' }; |
| 1116 | + insert Document { name := '3' }; |
| 1117 | + ''') |
| 1118 | + |
| 1119 | + await self.con.execute(''' |
| 1120 | + with H := ( x := (select Document filter .name = '1') ) |
| 1121 | + update H.x set { text := 'full' }; |
| 1122 | + ''') |
| 1123 | + await self.con.execute(''' |
| 1124 | + with H := { x := (select Document filter .name = '1') } |
| 1125 | + update H.x set { text := 'full' }; |
| 1126 | + ''') |
| 1127 | + await self.con.execute(''' |
| 1128 | + with H := { x := (select Document filter .name = '1' limit 1) } |
| 1129 | + update H.x set { text := 'full' }; |
| 1130 | + ''') |
| 1131 | + |
| 1132 | + async def test_edgeql_rewrites_triggers_01(self): |
| 1133 | + await self.con.execute(''' |
| 1134 | + create type Pidgeon { |
| 1135 | + create required link hole: Document; |
| 1136 | + create trigger set_hole_full |
| 1137 | + after insert |
| 1138 | + for each do (update |
| 1139 | + __new__.hole |
| 1140 | + set { |
| 1141 | + text := 'full' |
| 1142 | + }); |
| 1143 | + }; |
| 1144 | + ''') |
| 1145 | + |
| 1146 | + await self.con.execute(''' |
| 1147 | + insert Document { name := '1' }; |
| 1148 | + insert Document { name := '2' }; |
| 1149 | + insert Document { name := '3' }; |
| 1150 | + ''') |
| 1151 | + |
| 1152 | + # A 6.0 regression (#8444) |
| 1153 | + await self.con.execute(''' |
| 1154 | + insert Pidgeon { |
| 1155 | + hole := ( |
| 1156 | + (select Document filter .name = '1' limit 1) |
| 1157 | + ), |
| 1158 | + }; |
| 1159 | + ''') |
0 commit comments