Ksqldb-api-client:7.0.0 No enum constant io.confluent.ksql.api.client.ColumnType.Type.TIMESTAMP

Hey,

I am using Avro 1.11.0 and have an attribute in timestamp format:

 {
      "name": "TRANSACTION_DATETIME",
      "type": {
        "type": "long",
        "logicalType": "timestamp-millis"
      }

when requesting the ksqldb server via ksqldb-api-client:7.0.0 i am getting this error:

Caused by: java.lang.IllegalArgumentException: No enum constant io.confluent.ksql.api.client.ColumnType.Type.TIMESTAMP
	at java.base/java.lang.Enum.valueOf(Enum.java:240)
	at io.confluent.ksql.api.client.ColumnType$Type.valueOf(ColumnType.java:23)
	at io.confluent.ksql.api.client.impl.ColumnTypeImpl.<init>(ColumnTypeImpl.java:26)
	at io.confluent.ksql.api.client.util.RowUtil.columnTypeFromString(RowUtil.java:51)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)

Having a look to this Enum I can not find the Timestamp Enum as well:
package io.confluent.ksql.api.client;

/**
 * The type of a column returned as part of a query result.
 */
public interface ColumnType {

  enum Type { STRING, INTEGER, BIGINT, DOUBLE, BOOLEAN, DECIMAL, ARRAY, MAP, STRUCT }

  /**
   * Returns the type.
   *
   * @return the type
   */
  Type getType();

}

Why is this attribute not supported?

This is a bug in the Java client. It was fixed in ksqlDB 0.22.

2 Likes

Hey Jzaralim,

I found the version of 0.22. but not in the maven central…
Would it be possible to also place it there?

This topic was automatically closed after 30 days. New replies are no longer allowed.