-
-
Notifications
You must be signed in to change notification settings - Fork 319
Description
Small description
The IbisTableSheet.openJoin() method uses the deprecated suffixes parameter for Ibis join operations. In newer versions of Ibis (>= 9.0), this parameter was renamed to lname/rname, causing join operations to fail with a TypeError.
Data to reproduce
Two database tables or Ibis-backed sheets with a common key column.
Steps to reproduce
- Open two database tables using vdsql/Ibis backend (requires Ibis >= 9.0)
- Mark key columns in both sheets (e.g., press ! on matching columns)
- Attempt to join the sheets using the standard join command
- Error occurs due to suffixes parameter not being recognized by newer Ibis API
Expected result
The join operation should complete successfully, creating a new sheet with the joined data, with column name conflicts resolved appropriately.
Actual result with screenshot
The join fails because the Ibis API changed from suffixes=('left_suffix', 'right_suffix') to lname='left_suffix' and rname='right_suffix' for handling column name conflicts in joined tables.
Configuration
• Does this issue reproduce without any plugins or configuration (using the -N CLI flag)? Yes
• Does this issue reproduce with either the latest release, or with the develop branch? Yes, on develop branch with Ibis >= 9.0
Additional context
• Platform: MacOS
• Python version: Python 3.12.11
• ibis-framework 9.0.0
• Terminal: Various
Fix
The issue is in visidata/apps/vdsql/_ibis.py line 460. The fix implements backward-compatible handling:
python
This tries the new lname/rname parameters first and falls back to suffixes for older Ibis versions, ensuring compatibility across Ibis versions.