apache/beam · error · UnsupportedOperationException

Converting to Beam schema type is not supported

Error message

Converting %s to Beam schema type is not supported

What it means

SingleStoreDefaultRowMapper's ResultSetFieldConverter.of(...) maps each SingleStore column type to a Beam Schema.FieldType converter. Column types not covered by the switch (anything outside the supported VARCHAR/CHAR/numeric/date/NULL set) hit the default branch and throw UnsupportedOperationException, because there is no defined Beam schema representation for them.

Solutions

  1. Exclude the unsupported column from the read query (select only supported columns)
  2. Implement a custom UserDataMapper/row mapper that converts the column to a supported Beam type (e.g. read as STRING)
  3. Cast the column to a supported type in the SQL query (e.g. CAST(col AS CHAR))
  4. File/patch the IO to add a converter case for the column type

Example fix

// before
statement.apply("SELECT * FROM t"); // table has JSON column -> throws
// after
statement.apply("SELECT id, name, CAST(extra AS CHAR) AS extra FROM t");
Defensive patterns

Strategy: validation

Validate before calling

Set<String> unsupported = tableColumns.stream().map(c -> c.getType()).filter(t -> !SUPPORTED_TYPES.contains(t)).collect(toSet()); if (!unsupported.isEmpty()) { /* exclude or cast these columns */ }

Try / catch

try { pipeline.apply(SingleStoreIO.read()...); } catch (UnsupportedOperationException e) { if (e.getMessage().contains("to Beam schema type is not supported")) { /* narrow SELECT column list */ } throw e; }

Prevention

When it happens

Trigger: Reading from a SingleStore table containing a column whose java.sql.Type/SingleStore type falls through the switch in of(), e.g. exotic or JSON/GEOMETRY/BIT types not handled, during schema inference in SingleStoreIO.read().

Common situations: Tables with JSON, GEOMETRY, or other semi-structured SingleStore column types; newer SingleStore server versions introducing types the connector/IO doesn't map yet; schema drift after a table ALTER adds an unsupported column.

Understand the failure class

Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.

Related errors


AI-assisted analysis of apache/beam@12126d8942 (2026-09-13). Data as JSON: /api/errors/aa0e462e44d62d7a. Report an issue: GitHub.

Appendix: source

Thrown at sdks/java/io/singlestore/src/main/java/org/apache/beam/sdk/io/singlestore/SingleStoreDefaultRowMapper.java:176

              Schema.FieldType.DECIMAL, ResultSet::getBigDecimal);
        case TIMESTAMP:
          return new TimestampResultSetFieldConverter();
        case DATE:
          return new DateResultSetFieldConverter();
        case TIME:
          return new TimeResultSetFieldConverter();
        case LONGVARBINARY:
        case VARBINARY:
        case BINARY:
          return new BinaryResultSetFieldConverter();
        case LONGVARCHAR:
        case VARCHAR:
        case CHAR:
          return new CharResultSetFieldConverter();
        case NULL:
          return new DirectResultSetFieldConverter(STRING, ResultSet::getString);
        default:
          throw new UnsupportedOperationException(
              "Converting " + columnType + " to Beam schema type is not supported");
      }
    }
  }

  static class DirectResultSetFieldConverter extends ResultSetFieldConverter {
    Schema.FieldType fieldType;
    ResultSetFieldExtractor extractor;

    public DirectResultSetFieldConverter(
        Schema.FieldType fieldType, ResultSetFieldExtractor extractor) {
      this.fieldType = fieldType;
      this.extractor = extractor;
    }

    @Override
    @Nullable Object getValue(ResultSet rs, Integer index) throws SQLException {
      return extractor.extract(rs, index);

View on GitHub (pinned to 12126d8942)