Commit 33286f2
authored
refactor(ir): impure values are never dereferencible (ibis-project#9023)
All impure values passed to the API methods are treated as separate
impure invocations:
```py
impure = ibis.random()
t1 = t.mutate(y=impure)
t2 = t1.mutate(z=impure.cast("string"))
```
now produce
```
r0 := UnboundTable: unbound_table_0
a int64
b string
r1 := Project[r0]
a: r0.a
b: r0.b
y: RandomScalar()
Project[r1]
a: r1.a
b: r1.b
y: r1.y
z: Cast(RandomScalar(), to=string)
```1 parent b3bbde1 commit 33286f2
5 files changed
Lines changed: 10 additions & 16 deletions
File tree
- ibis
- backends/pandas
- expr
- operations
- tests
- tests
- types
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
113 | 117 | | |
114 | 118 | | |
115 | 119 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
| 188 | + | |
195 | 189 | | |
196 | 190 | | |
197 | 191 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1618 | 1618 | | |
1619 | 1619 | | |
1620 | 1620 | | |
1621 | | - | |
| 1621 | + | |
1622 | 1622 | | |
1623 | 1623 | | |
1624 | 1624 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
169 | 169 | | |
170 | 170 | | |
171 | 171 | | |
172 | | - | |
| 172 | + | |
173 | 173 | | |
174 | 174 | | |
175 | 175 | | |
| |||
0 commit comments