Skip to content

Type Casting matches a column by its exact name where other operators ignore case #9036

Open

Description

@kz930

What happened?

Most operators look a column up through Schema, which ignores case, so a setting that names Name reads the column name. Type Casting does not. AttributeTypeUtils.SchemaCasting compares attr.getName == attribute and tupleCasting looks the target type up in a map keyed by the exact name. A unit whose column differs from the table's only in case therefore casts nothing. The run succeeds and the column passes through with its old type and values, with no error to say the unit was ignored.

A Filter or Projection naming the same column in the same case would work. So the behavior depends on which operator reads the name.

A possible fix is to match the column through Schema in both SchemaCasting and tupleCasting, as the other operators do. The output should keep the table's column name: SchemaCasting currently rebuilds the column as new Attribute(attribute, resultType), so only loosening the match would also rename the column to the setting's spelling. SchemaCasting is also used by Python Lambda Function, which would need to be checked with it. The export in #9035 matches today's exact-name behavior and would switch along with it.

How to reproduce?

  1. Feed a table with an INTEGER column n into Type Casting, with one unit casting N to STRING.
  2. Run the workflow. The output schema still declares n as INTEGER and the values are unchanged.
  3. Cast n instead and the column becomes STRING.

As with #9004, a column picked from the dropdown has the table's exact case, so this shows only for a hand-edited workflow, or after an upstream column changes case.

Version/Branch

1.4.0-incubating-SNAPSHOT (main)

Commit Hash (Optional)

a46ddc6

What browsers are you seeing the problem on?

No response

Relevant log output

None. The unit is skipped without an error.

Activity

  1. added theissue type on Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions