{"record":{"id":"c3610751df62405d","repo":"prestodb/presto","slug":"not-supported-c36107","errorCode":"NOT_SUPPORTED","errorMessage":"Could not create page source for table type ${tableType}","messagePattern":"Could not create page source for table type (.+?)","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"error","filePath":"presto-hudi/src/main/java/com/facebook/presto/hudi/HudiPageSourceProvider.java","lineNumber":135,"sourceCode":"                    layout.getTable().getSchemaName(),\n                    layout.getTable().getTableName(),\n                    layout.getPartitionColumns().stream().map(HudiColumnHandle::getName).collect(toImmutableList()),\n                    layout.getPartitionColumns().stream().map(HudiColumnHandle::getHiveType).collect(toImmutableList()));\n            RecordCursor recordCursor = HudiRecordCursors.createRealtimeRecordCursor(\n                    hdfsEnvironment,\n                    session,\n                    schema,\n                    hudiSplit,\n                    dataColumns,\n                    ZoneId.of(\"UTC\"), // TODO configurable\n                    typeManager);\n            List<Type> types = dataColumns.stream()\n                    .map(column -> column.getHiveType().getType(typeManager))\n                    .collect(toImmutableList());\n            dataColumnPageSource = new RecordPageSource(types, recordCursor);\n        }\n        else {\n            throw new PrestoException(NOT_SUPPORTED, \"Could not create page source for table type \" + tableType);\n        }\n\n        return new HudiPageSource(\n                hudiColumnHandles,\n                hudiSplit.getPartition().getKeyValues(),\n                dataColumnPageSource,\n                session.getSqlFunctionProperties().getTimeZoneKey(),\n                typeManager);\n    }\n\n    private static List<Column> toMetastoreColumns(List<HudiColumnHandle> hudiColumnHandles)\n    {\n        return hudiColumnHandles.stream()\n                .map(column -> new Column(column.getName(), column.getHiveType(), Optional.empty(), Optional.empty()))\n                .collect(toImmutableList());\n    }\n}\n","sourceCodeStart":117,"sourceCodeEnd":153,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-hudi/src/main/java/com/facebook/presto/hudi/HudiPageSourceProvider.java#L117-L153","documentation":"HudiPageSourceProvider builds either a Parquet-based page source or a RecordPageSource from a record cursor; if the split's table/input format matches neither branch, it throws NOT_SUPPORTED. This means the connector cannot produce a reader for that table type / storage format.","triggerScenarios":"createPageSource encounters a Hudi split whose data type is neither the supported columnar (Parquet/ORC) path nor a recognized record-cursor input format — e.g. an unexpected Hudi table type or base file format.","commonSituations":"Hudi tables written with formats the connector build doesn't support (e.g. newer base file formats), tables with input formats outside the supported set, or misconfigured table properties pointing at an exotic input format.","solutions":["Check the table's Hudi table type and base file format; convert the table to a supported format (e.g. Parquet-based COPY_ON_WRITE)","Rewrite data with a supported input format via Hudi compaction/clustering or a CTAS into a supported table","Upgrade Presto/Hudi connector to a version supporting the table type in the message","Fix table properties (inputformat) in the metastore if they were set incorrectly"],"exampleFix":"-- before: MOR table with unsupported log-only layout\n-- after: compact to supported base files / use COPY_ON_WRITE\nspark.sql(\"CALL hudi.compact(run => 'compaction-0001')\") -- or recreate as COPY_ON_WRITE Parquet","handlingStrategy":"fallback","validationCode":"// Check table layout before querying\nString inputFormat = tableProperty(\"inputformat\");\nSet<String> SUPPORTED = Set.of(\"org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat\" /*, other supported formats */);\nif (!SUPPORTED.contains(inputFormat)) {\n    throw new IllegalStateException(\"Unsupported input format: \" + inputFormat);\n}","typeGuard":null,"tryCatchPattern":"try {\n    return query(hudiTable);\n} catch (PrestoException e) {\n    if (e.getErrorCode().getCode() == StandardErrorCode.NOT_SUPPORTED.getCode()\n            && e.getMessage().contains(\"Could not create page source for table type\")) {\n        // fallback: run via an engine/format that supports it, or after conversion\n    }\n    throw e;\n}","preventionTips":["Standardize on supported base file formats (Parquet) for Hudi tables","Review release notes before upgrading writers to new formats","Keep a CTAS-conversion runbook for unsupported table layouts","Audit table properties (inputformat/table type) after external writes"],"tags":["presto","hudi","not-supported","table-type","page-source"],"backgroundTag":"unsupported-table-format","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"}