Skip to content

[vdsql] Join fails with Ibis >= 9.0 due to deprecated suffixes parameter #2899

@terencelaurent

Description

@terencelaurent

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

  1. Open two database tables using vdsql/Ibis backend (requires Ibis >= 9.0)
  2. Mark key columns in both sheets (e.g., press ! on matching columns)
  3. Attempt to join the sheets using the standard join command
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions