String Manipulation (Multi Column) handling of incompatible data types

A “feature” of the String Manipulation (Multi Column) node that makes it a little more awkward to use than it should be is that it doesn’t play well with certain datatypes.

To my knowledge, “certain datatypes” means any datatype other than String, Integer or Double. If you attempt to pass it any other column it “breaks” with the following less-than-desirable and meaningless (to users) message:

It would be great if String Manipulation (Multi Column) could play nicely with other datatypes in the same way that it’s single-column sister node “String Manipulation” does, but in the absence of this, I believe it should be modified so that it does not even see any other column types than the ones it can handle (just like the way Math Formula behaves).

However, I’m going to go out on a limb and suggest that this is unlikely to happen any time soon, so I thought I’d add a demo workflow on the hub to demonstrate ways that this can be handled…

  1. There is the “manual” method, which works as a “one-off” but isn’t so great for future-proofed-robustness. Here you simply open the node and ensure that only S, I, D columns are selected:

  1. There is the column splitter method:

This performs a column filter/split based on type which means the only columns that make it to the node are S, I and D, but does mean you need to remember the following “workflow pattern” (or something like it) for splitting and reassembling columns in the original sequence

  1. There is a “component” method

This does exactly what option 2 does, but using components so you don’t have to remember the above pattern, or one like it.

There is no configuration required. Just join them up as per the above screenshot…

I have uploaded an example workflow to the hub.

If you wish to try the components used in option 3, they are available here. I hope you find them useful:

I just had the same issue again. And I do not understand why I can filter data-type in other nodes but not in a node that only accepts string by definition. Example: GroupBy as a dedicated “Type Based Aggregation” tab.

I agree with you @McReady . Sadly in recent years nodes such as this have received little in the way of love. Obvious fixes and updates for design flaws which would have made this node much more useful generally, have not been forthcoming.

It’s a real shame that to use this node without fear of it breaking the workflow in future, simply because of data types, requires that we must employ workarounds such as those identified, and take extra care.

Personally I would have invested effort in fixing this and many other similar “niggles” ahead of (or at least alongside) developing some of the other newer nodes.

Such ideas have been well documented on the forum over the past few months and years, and whilst I recognise there will be budget constraints, I remain hopeful that at some point in the future effort will be expended on making the product better overall, with perhaps some maintenance releases dedicated to fixing long standing bugs and obviously flawed design decisions rather than simply adding new, and in some cases, esoteric, nodes.

2 Likes

Really appreciated @takbb !
This single request (most likely also others) could be a task, where “vibe coding” tools like Claude Code maybe can help. I’m pretty sure, if someone is able to setup the environment correctly, taking a function from node A and implement it to node B should be in scope for such AI tools. Sadly I’m not a programmer and I already fail in the setup (I tried …) of the environment like git and such stuff.

1 Like