{"record":{"id":"42ebec70425473ca","repo":"apache/druid","slug":"duplicate-column-names-are-not-allowed-in-rowsigna","errorCode":null,"errorMessage":"Duplicate column names are not allowed in RowSignature","messagePattern":"Duplicate column names are not allowed in RowSignature","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"multi-stage-query/src/main/java/org/apache/druid/msq/indexing/report/MSQResultsReport.java","lineNumber":148,"sourceCode":"    {\n      return Objects.hash(name, type);\n    }\n\n    @Override\n    public String toString()\n    {\n      return name + \":\" + type;\n    }\n\n    public static RowSignature toRowSignature(List<ColumnAndType> columnAndTypes)\n    {\n      final RowSignature.Builder builder = RowSignature.builder();\n      for (MSQResultsReport.ColumnAndType columnAndType : columnAndTypes) {\n        builder.add(columnAndType.getName(), columnAndType.getType());\n      }\n      RowSignature rowSignature = builder.build();\n      if (rowSignature.size() != columnAndTypes.size()) {\n        throw new IllegalArgumentException(\"Duplicate column names are not allowed in RowSignature\");\n      }\n      return rowSignature;\n    }\n  }\n}\n","sourceCodeStart":130,"sourceCodeEnd":154,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/multi-stage-query/src/main/java/org/apache/druid/msq/indexing/report/MSQResultsReport.java#L130-L154","documentation":"In MSQResultsReport.toRowSignature, after building a RowSignature from the results' ColumnAndType list, the built signature's size is compared to the input list size. RowSignature silently deduplicates duplicate names, so a size mismatch proves the query produced duplicate column names in its output — which would corrupt result reporting — and this IAE rejects it.","triggerScenarios":"Thrown at multi-stage-query/src/main/java/org/apache/druid/msq/indexing/report/MSQResultsReport.java:148 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Rewrite the query to alias duplicate output columns to distinct names (e.g. SELECT f(x) AS x_sum, f(y) AS y_sum).","Check the SQL for repeated output column names or self-joins producing colliding names.","If generated by a planner, report a bug: MSQ should deduplicate/verify output column names earlier."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9b90983fd291f26935af934383ce360473179e4d","analyzedAt":"2026-09-07T13:32:30.957Z","contentChangedAt":"2026-09-07T13:32:30.957Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}