New joiner vs old joiner - "duplicate column" suffix case has changed

I just discovered a small “gotcha” between the new Joiner (in KNIME 5.3.3, but can’t recall the exact release it appeared) and the old Joiner (KNIME 4.7.8)

In the duplicate column handling, in 4.7.8 a newly placed Joiner node has the following column suffix by default:

image

(right)

In KNIME 5.3.3, the new Modern UI joiner has this column suffix:
image

(Right)

I just discovered this whilst trying to port a workflow back from 5.3.3 to 4.7.8 and happened to include a column filter a little while after the joiner, only to discover that my “ColumnX (Right)” column was not present in the workflow after executing the old joiner.

For the most part, with the creation of new workflows this shouldn’t be a problem, and when opening a 4.7.8 workflow in 5.3.3 it again isn’t an issue, as the Joiner values from the old joiner on the workflow are carried forward in the upgrade to the new Joiner node. So this “discovery” is something of an edge case (ie reworking a 5.3.3 flow so it works in 4.7.8 and not realising that the default value of the old joiner is different), but just something to be aware of if anybody has to do something similar.

But, there could be times when you have moved to KNIME 5.x or beyond and are extending a flow, originally created in 4.7.8 and adding new joiners only to discover that the tables created by the original parts of the flow have (right) columns whilst any from newly added joiners have (Right) columns. That could be confusing or problematic.

Hi @takbb ,

your observation is correct. With the update of the node dialog we changed the casing of the default value. Nodes created with older versions continue to use the value set in their dialog.
When updating node dialogs, we not only spend time to update and harmonize the settings dialogs, but also default values for output column names/suffixes in order to achieve a more consistent and ready to show experience.

Have a nice day,
nan

1 Like

Thanks @nan, yes I can see that you bring through the values and generally that’s not an issue. But it’s definitely something to be aware of that the default value now differs in the new node when further updating older workflows.

e.g. If I have a workflow containing the older joiner node like this:

and I migrate the workflow to KNIME 5.3.3 and then decide to extend the workflow to add a new joiner to bring in some additional details and concatenate the outputs, the result will be this:

If however, I had stayed in 4.7.8, and followed EXACTLY the same process, leaving all defaults in place, the result would have been different:

Now, I’m not saying it is a big problem, but I am surprised the default was changed. I’m assuming it was a decision to change it rather than accidental, but I guess this is how it is now because there is no way forward from here that would not further confuse. :wink:

The above workflow is of course very contrived to demonstrate the issue. It is an unexpected behaviour (and “unexpected” can lead to problems), but if known becomes relatively trivial.

Definitely worth noting that it could happen if for example you had some regex column renamers for handling (right) or (Right), or suchlike.

2 Likes