{"record":{"id":"b71243166fb726f9","repo":"prestodb/presto","slug":"unexpected-column-for-table-s-query-s","errorCode":null,"errorMessage":"Unexpected column for table '%s$query': %s","messagePattern":"Unexpected column for table '(.+?)\\$query': (.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchMetadata.java","lineNumber":397,"sourceCode":"            return queryTableColumns;\n        }\n\n        InternalTableMetadata tableMetadata = makeInternalTableMetadata(session, tableHandle);\n        return tableMetadata.getColumnHandles();\n    }\n\n    @Override\n    public ColumnMetadata getColumnMetadata(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnHandle columnHandle)\n    {\n        ElasticsearchTableHandle table = (ElasticsearchTableHandle) tableHandle;\n        ElasticsearchColumnHandle column = (ElasticsearchColumnHandle) columnHandle;\n\n        if (isPassthroughQuery(table)) {\n            if (column.getName().equals(queryResultColumnMetadata.getName())) {\n                return queryResultColumnMetadata;\n            }\n\n            throw new IllegalArgumentException(format(\"Unexpected column for table '%s$query': %s\", table.getIndex(), column.getName()));\n        }\n\n        return ColumnMetadata.builder()\n                .setName(column.getName())\n                .setType(column.getType())\n                .build();\n    }\n\n    private static boolean isPassthroughQuery(ElasticsearchTableHandle table)\n    {\n        return table.getType().equals(QUERY);\n    }\n\n    @Override\n    public Map<SchemaTableName, List<ColumnMetadata>> listTableColumns(ConnectorSession session, SchemaTablePrefix prefix)\n    {\n        if (prefix.getSchemaName() != null && !prefix.getSchemaName().equals(schemaName)) {\n            return ImmutableMap.of();","sourceCodeStart":379,"sourceCodeEnd":415,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchMetadata.java#L379-L415","documentation":"Column-handle consistency check for passthrough-query ($query) tables: getColumnMetadata received a column handle whose name is not the expected query column, meaning the handle does not belong to this virtual table.","triggerScenarios":"Thrown at presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchMetadata.java:397 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Refresh metadata so column handles match the current $query table","Avoid mixing column handles from different table handles"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}