{"record":{"id":"eba3c7e03c54f8f3","repo":"prestodb/presto","slug":"bigquery-unsupported-type-for-block","errorCode":"BIGQUERY_UNSUPPORTED_TYPE_FOR_BLOCK","errorMessage":"Unhandled type for Block: ","messagePattern":"Unhandled type for Block: ","errorType":"error_code","errorClass":"BigQueryException","httpStatus":null,"severity":"error","filePath":"presto-bigquery/src/main/java/com/facebook/presto/plugin/bigquery/BigQueryResultPageSource.java","lineNumber":266,"sourceCode":"            return;\n        }\n        if (type instanceof RowType && value instanceof GenericRecord) {\n            GenericRecord record = (GenericRecord) value;\n            BlockBuilder builder = output.beginBlockEntry();\n\n            List<String> fieldNames = new ArrayList<>();\n            for (int i = 0; i < type.getTypeSignature().getParameters().size(); i++) {\n                TypeSignatureParameter parameter = type.getTypeSignature().getParameters().get(i);\n                fieldNames.add(parameter.getNamedTypeSignature().getName().orElse(\"field\" + i));\n            }\n            checkState(fieldNames.size() == type.getTypeParameters().size(), \"fieldName doesn't match with type size : %s\", type);\n            for (int index = 0; index < type.getTypeParameters().size(); index++) {\n                appendTo(type.getTypeParameters().get(index), record.get(fieldNames.get(index)), builder);\n            }\n            output.closeEntry();\n            return;\n        }\n        throw new BigQueryException(BIGQUERY_UNSUPPORTED_TYPE_FOR_BLOCK, \"Unhandled type for Block: \" + type.getTypeSignature());\n    }\n\n    @Override\n    public long getSystemMemoryUsage()\n    {\n        return 0;\n    }\n\n    @Override\n    public void close()\n            throws IOException\n    {\n        bigQueryReadClient.close();\n        closed = true;\n    }\n\n    Iterable<GenericRecord> parse(ReadRowsResponse response)\n    {","sourceCodeStart":248,"sourceCodeEnd":284,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-bigquery/src/main/java/com/facebook/presto/plugin/bigquery/BigQueryResultPageSource.java#L248-L284","documentation":"writeBlock throws this when a nested (row/array) Presto type or value cannot be assembled into a Block — the type is not a supported ArrayType/RowType combination (or the value is not the expected List/record). It is the connector's guard for unhandled nested types read from BigQuery.","triggerScenarios":"Reading a BigQuery STRUCT/RECORD or ARRAY whose resulting Presto type/value does not match the ArrayType-with-List or row-record branches, e.g. unexpected nested type signature.","commonSituations":"BigQuery nested/repeated fields with unusual schemas; legacy RECORD columns; connector lacking support for nested maps or deeply nested structs.","solutions":["Flatten the nested BigQuery columns in SQL (unnest / selecting leaf fields)","Add an explicit branch in writeBlock for the reported type signature","Upgrade the connector to a version with broader nested-type support","Exclude the nested column from the query"],"exampleFix":"// before\nthrow new BigQueryException(BIGQUERY_UNSUPPORTED_TYPE_FOR_BLOCK, \"Unhandled type for Block: \" + type.getTypeSignature());\n// after\nif (type instanceof MapType && value instanceof Map) {\n    // build map block\n    return;\n}\nthrow new BigQueryException(BIGQUERY_UNSUPPORTED_TYPE_FOR_BLOCK, \"Unhandled type for Block: \" + type.getTypeSignature());","handlingStrategy":"validation","validationCode":"// verify nested columns are supported before querying\nif (column.getType() instanceof ArrayType || column.getType() instanceof RowType) {\n    // ensure connector version supports this nested signature\n    checkSupportedNestedSignature(column.getType().getTypeSignature());\n}","typeGuard":"boolean isSupportedNestedType(Type type) {\n    return (type instanceof ArrayType || type instanceof RowType)\n        && SUPPORTED_NESTED_SIGNATURES.contains(type.getTypeSignature().toString());\n}","tryCatchPattern":"try {\n    query.execute();\n} catch (BigQueryException e) {\n    if (BIGQUERY_UNSUPPORTED_TYPE_FOR_BLOCK.getCode() == e.getErrorCode().getCode()) {\n        // retry with flattened columns (UNNEST / leaf fields only)\n    } else { throw e; }\n}","preventionTips":["Prefer flattened BigQuery schemas over deeply nested RECORDs","UNNEST arrays/structs instead of selecting them wholesale","Keep connector updated for nested-type support","Document which nested shapes the deployment supports"],"tags":["bigquery","nested-types","block"],"backgroundTag":"unsupported-column-type","analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}