struct datatype not supported
Open
@xieandrew is already working on this.
Since Jan 27, 2026.
- Dominant language
- Java
- Stars
- 35
- Forks
- 7
- Avg merge
- 5d 12h
- Merged PRs (30d)
- 2
Description
Came across this while monkey testing. Not a priority. Reporting in case someone hit this.
use test;
CREATE TABLE datatype_structs_final
(
id UInt32,
-- Struct/Tuple
struct_tuple Tuple(
name String,
score Float64,
metrics Array(Int32),
meta Map(String, String) -- Map inside tuple
)
)
ENGINE = MergeTree
ORDER BY id;
INSERT INTO datatype_structs_final VALUES
(
1,
tuple(
'Test Name', -- name
99.95, -- score
[10, 20, 30], -- metrics
map('version', '1.0', 'env', 'prod') -- meta map
)
);
docker exec -it vector clickhouse-client --query "select * from test.datatype_structs_final into outfile 'test_struct.parquet' format Parquet"
docker cp vector:test_struct.parquet test_struct.parquet
./ice insert test.datatype_structs_final -p file://test_struct.parquet
Stack trace :
2025-09-04 22:42:25 [main] WARN o.a.i.rest.ErrorHandlers > Unable to parse error response
java.io.UncheckedIOException: com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1]
at org.apache.iceberg.util.JsonUtil.parse(JsonUtil.java:106)
at org.apache.iceberg.rest.responses.ErrorResponseParser.fromJson(ErrorResponseParser.java:71)
at org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.parseResponse(ErrorHandlers.java:194)
at org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:195)
at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:309)
at org.apache.iceberg.rest.BaseHTTPClient.get(BaseHTTPClient.java:77)
at org.apache.iceberg.rest.RESTSessionCatalog.fetchConfig(RESTSessionCatalog.java:1089)
at org.apache.iceberg.rest.RESTSessionCatalog.initialize(RESTSessionCatalog.java:261)
at org.apache.iceberg.rest.RESTCatalog.initialize(RESTCatalog.java:78)
at com.altinity.ice.cli.Main.loadCatalog(Main.java:464)
at com.altinity.ice.cli.Main.loadCatalog(Main.java:430)
at com.altinity.ice.cli.Main.insert(Main.java:282)
at com.altinity.ice.cli.Main.lambda$main$1(Main.java:480) [9 skipped]
at com.altinity.ice.cli.Main.main(Main.java:487) [1 skipped]
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1]
at org.apache.iceberg.util.JsonUtil.parse(JsonUtil.java:104) [5 skipped]
at org.apache.iceberg.rest.responses.ErrorResponseParser.fromJson(ErrorResponseParser.java:71)
at org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.parseResponse(ErrorHandlers.java:194)
at org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:195)
at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:309)
at org.apache.iceberg.rest.BaseHTTPClient.get(BaseHTTPClient.java:77)
... 23 common frames omitted
2025-09-04 22:42:25 [main] ERROR com.altinity.ice.cli.Main > Fatal
org.apache.iceberg.exceptions.RESTException: Unable to process:
at org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.accept(ErrorHandlers.java:224)
at org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.accept(ErrorHandlers.java:188)
at org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:225)
at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:309)
at org.apache.iceberg.rest.BaseHTTPClient.get(BaseHTTPClient.java:77)
at org.apache.iceberg.rest.RESTSessionCatalog.fetchConfig(RESTSessionCatalog.java:1089)
at org.apache.iceberg.rest.RESTSessionCatalog.initialize(RESTSessionCatalog.java:261)
at org.apache.iceberg.rest.RESTCatalog.initialize(RESTCatalog.java:78)
at com.altinity.ice.cli.Main.loadCatalog(Main.java:464)
at com.altinity.ice.cli.Main.loadCatalog(Main.java:430)
at com.altinity.ice.cli.Main.insert(Main.java:282)
at com.altinity.ice.cli.Main.lambda$main$1(Main.java:480) [9 skipped]
at com.altinity.ice.cli.Main.main(Main.java:487) [1 skipped]
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.