ibis
ibis copied to clipboard
feat(api): add `TableUnnest` operation to support cross-join unnest semantics as well as `offset`
Would love to get feedback from folks on the API especially @tswast. The new test is likely to fail on many backends. Looking for a bit of feedback before beefing up the test suite.
Closes #7781.
Ok, I've started going down the rabbit hole of supporting this on as many of our backends that support arrays as possible.
Rebasing, will merge on green.
Clouds are good:
…/ibis on bigquery-table-unnest is 📦 v9.1.0 via 🐍 v3.10.14 via ❄️ impure (ibis-3.10.14-env) took 30s
❯ pytest -m 'bigquery or snowflake' -n 8 --dist loadgroup --snapshot-update -q
bringing up nodes...
.....................x.x.....................x...........x...x.x........xx.....x....x.................x.x..xx............x..s....x.x................................x................. [ 4%]
.........x.......x...........................x......................x..x.xxx....x..xxxx..xx.......x...x...x......x....................s...................s..........................s [ 9%]
.....................x.....x....x...x.....xx.........................x.....................x..x.......x.........x....x.................x..x..............x.....................x...... [ 14%]
........x.......................x....x......xx..x.x.....x.....x.x........x......x..x..........x....xx....xx.x...x....x..........x.x........x...................x......x.....xx.x.....x [ 19%]
.........x...xx.xxxxxx.x.x.......x.x..xxx.x....x.x........x..............x......x....................x.x..xx....xx..x.......................................x...........xx............ [ 24%]
....x............................x...x.....x......................xx.......x......................x........xx.x.....x..............x..........x........x...x........x............x.... [ 29%]
..x.............x..........x.............sssssssssssssssssssss.............x............x...xs..............x........x..x.............x....................x.......................... [ 34%]
......................................x........................................x.......................x.........................x.....x......s.x..............x.xxx..x...xxx...xxx.xx [ 39%]
xxx..xx.xx.x.xx..xxxxx.x.xx..xxx........x..xx...x..x...xxx.xxxxxxx..xxx....x....x..x.xxx....x...xxx...xx.x........x...xxx..xx.x...x.xx.x...x..xx.xx....xx..x.xx.xxx....xxx......x..... [ 44%]
.xx........................x.......x...........................x................x............................x.........xx.....x...........x..x..................x.x.........xxxx.xxx.x [ 49%]
xx...xx...x......x.x..x...........s.....s...............................................s.........x.x..x........x.............xx....x........x.......x.............................x.. [ 54%]
........x...........x.........................x....................................................x.........................................x................xx..x..x........x....x.. [ 59%]
.x.....x...x.........x...x.......x.xx.x.............x..x...x.x.........x.x.........x.x....x......xxxxxxxx..x.x.x.x...x.xx.x..x.....xxx..x...x.................xx...x......x.......x.xx [ 64%]
..x..x.............x..........x.......x..x.......x....xx............x.x..........x.....x..x.x..x..xx.......x.........x..............x..x.........................................x.x.. [ 69%]
....x.....xx.........x...x.....x..x...x..xx..........................x............x..x....xx....xx...x......................x..x..x......................x...........x......s.....x... [ 73%]
......................xxx......x........xx.............x........x...xx..x....xxx....x.x..x..............x...x...x.xx..........x......x.x.....x.....x...x...x....s..x..x............... [ 78%]
.........s....x...x...x.x..s.s.x.........xxxxxxx..xx..x..xxxxxxxxxxx.xxxxxxxxxxxxxxx.xxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.sxxxxsx.xx.xx.... [ 83%]
...........................x.......................x.........................................................................s.....................................x.x................ [ 88%]
.................................s.................................................................................................................................................... [ 93%]
..........................................................................................................x........................................................................... [ 98%]
.................................................. [100%]
3099 passed, 39 skipped, 552 xfailed in 835.57s (0:13:55)